Use Case C: Root Sources of Non-determinism
ANACIN-X train students to identify potential root sources of non-determinism in their code: functions within code that can produce non-deterministic communication patterns. To this end, advanced students should be able to answer the following questions at an advanced level of understanding in non-determinism:
- How do root sources of non-determinism impact the amount of non-determinism?
- How can ANACIN-X be used to identify root sources of non-determinism?
Learning Goal C1: Quantify Amount of Non-determinism in Executions
Root sources of non-determinism are embedded in an application’s code.
The access to an application’s code is not always guaranteed; when available,
the code may be very complex to parse and understand.
To demonstrate understanding
of Goal C.1, students should be able to explain that root sources of non-determinism
can be used to directly control the amount of non-determinism in an application.
Observe the scenarios in each figure
Questions
- Task 1: Run ANACIN-X with similar settings on the other benchmarks applications to generate plots. Using figure, quantify the amount of non-determinism within one execution and demon- strate whether such an amount is directly related to the actual percentage of non-determinism for a given application.
Solution
Task 2: Solution to TASK 2
Learning Goal C2: Identify Root Sources of Non-determinism
It is not straightforward to control the amount of non-determinism within an application when the root source of that non-determinism is not already known and is embedded in the called system functions. For this reason, students should learn how to identify likely root sources of non-determinism in their code.
Observe the scenarios in each figure
Note
The ANACIN-X environment identifies the callstacks in the application and measures their frequency. In the figure, the X-axis corresponds to the list of callstacks in the application’s run that were identified as taking place during high periods of non-determinism. The Y-axis corresponds to the normalized relative frequency of the dentified callstacks as they appear in an execution’s event graph.
Questions
- Task 1: Observe which MPI functions were identified in regions of high amounts of non-determinism. These functions are likely root sources of non-determinism because MPI functions that take place during periods of high non-determinism are likely related to the non-determinism
- Task 2: Extend the ANACIN-X environment to support your own application: to determine where in your code you should look to manage the non-determinism by locating the callstack functions associated to the high non-determinism.
Solution
Task 2: Solution to TASK 2