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

Kernel distance visualization of the AMG2013 mini-application and its communication pattern on 32 MPI processes. We vary the percentage of non-determinism from 0% up to 100% at increments of 10%. Simulation is made using 1 compute node, 1 communication pattern iteration, and message sizes of 1 byte.

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.

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

Callstack visualization for the AMG2013 mini-application and its communication pattern. The settings are the same as in Figure for C1

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.