Skip to content

Reproducing Published Results

Nick B edited this page Oct 20, 2021 · 4 revisions

Visualization methods like those described on the 'Visualizations' wiki page can be used to produce figures like those in the publications listed in the publications section of the 'Additional Project Details' wiki page.

ANACIN-X can produce the following types of visualizations. So we will outline how to reproduce corresponding visualizations from the publications.

  • The relationship between kernel distance and slices of an applications execution.
  • The relative frequency of appearances of function callstacks in execution slices with high amounts of non-determinism.
  • The relationship between kernel distance and message non-determinism percentage in one of the provided benchmark applications.

For figures in the paper "Identifying Degrees and Sources of Non-Determinism in MPI Applications via Graph Kernels.", we outline the process for reproducing such figures. If the user has access to the applications miniAMR and MCB, such visualizations can be reproduced as follows.

  1. Generate traces, event graphs, and kernel distance data for both miniAMR and MCB using the settings outlined in the paper. Details on how to generate traces, event graphs, and kernel distance data are found in the wiki page 'Running ANACIN-X'
  2. Use visualization procedures within the wiki page 'Visualization' to generate figures relevant to each type of data. We outline this the following figures in the paper.
  • For Figure 17, corresponding to visualizations of the kernel distance time series for MCB, run the kdts visualization script for external applications. (i.e., use the 'visualize_kernel_distance_time_series.py' script in the manner described here)
  • For Figure 14, corresponding to visualization of callstacks from the miniAMR tool, run the callstack visualization script for external applications. (i.e., use the 'visualize_callstack_report.py' script in the manner outlined in the manner here)
  • For Figure 13, corresponding to visualization of kernel distances across different miniAMR time steps, the 'visualize_kernel_distance_time_series.py' script can also be used, but must be accompanied by what are called 'application events' specific to miniAMR. For miniAMR, these application events are the number of blocks transferred per mesh refinement in a pickle file format. This is seen in the line showing the '# of Blocks Transferred per Mesh Refinement' in the referenced figure. The following command shows how to pass these application events into the visualization script.
python3 visualization/visualize_kernel_distance_time_series.py [Path to 'kdts.pkl' file with file name. This can be found in the directory that stores all your run directories.] --plot_type=box --application_events=blocks_transferred.pkl

To reproduce visualizations like those displayed in the publication "ANACIN-X: A Software Framework for Studying Non-determinism in MPI Applications.", see the ANACIN-X Code Ocean repository here

Clone this wiki locally