Use Case B: Factors That Impact Non-Determinism

Non-determinism can be difficult to reproduce [22]. In such situations, developers and scientists need to know what factors impact the amount of non-determinism present to make the non-determinism more or less significant. For this reason, intermediate students should be able to identify the factors. Specifically, they should be able to answer the following questions:

  • What is the effect of increasing the number of MPI processes used during execution?
  • What is the effect of increasing the number of commu- nication pattern iterations?

Learning Goal B1: Study Effects of Number of Processes

In order to satisfy the Goal,students must know that the number of MPI processes in a simulation is directly related with the amount of non-determinism in the simulation: increasing the number of processes will increase the amount of non-determinism, and vice versa.

Observe the scenarios in each figure

Kernel distances for 20 executions of the Unstructured Mesh mini-application. The executions in (a) are performed on 32 MPI processes; and the executions in (b) are performed on 16 MPI processes. The kernel distance is a proxy for non-determinism: the higher, the more non-deterministic the execution.

Note

  • Each figure is a violin plot across 20 data points that displays the measured amount of non-determinism within the communication pattern at the setting along the X-axis. We use the Unstructured Mesh communication pattern for these two figures, but other patterns are available in ANACIN-X.

Questions

  • Task 1: Run ANACIN-X with similar settings on the other benchmarks. Observe that the increase in the number of processes in their simulations to reveal change in degree of non-determinism.

Learning Goal B2: Study Non-determinism across Iterations

Scientific applications often consist of the iterative execution of the same software code. These iterations during the same application execution exhibit non-determinism that is easy to identify. To satisfy Goal B.2, students should be able to link the iterations of an application execution to the amount of non- determinism in the application.

Observe the scenarios in each figure

Kernel distances for 20 executions of the Unstructured Mesh mini-application. The executions in (a) are performed with two iterations of the core application code; and the executions in (b) are performed with single iterations of the core application code. The kernel distance is a proxy for non-determinism: the higher, the more non-deterministic the execution.

Questions

  • Task 1: Run ANACIN-X with similar settings on the other benchmarks applications to generate plots. Discover if there is a link between iterations and amount of non-determinism in the application.

Note

  • For this test, ANACIN-X should be run with 100% non-determinism to produce results with significant non-determinism across iterations. These tests enable students to understand how, in applications exhibiting non-determinism, by increasing the number of iterations in their application, they may accumulate substantial differences in the numerical results and ultimately different scientific findings.