Korali Profiler

Usage

Syntax: python3 -m korali.profiler [--input PROFILING_FILE] [--output OUTPUT_FILE] [--tend END_TIME] [--test]

Where:

  • --input specifies the profiler file to load. By default: profiling.json.

  • --output indicates the output file path and type (e.g., eps, png). If not specified, it prints to screen.

  • --tend indicates time lapse to print. If not specified, it will print the entire execution.

  • --test verifies that the plotter works, without plotting to screen.

Examples

Profiling Multiple Experiments

In this example, we plot the execution timeline of a 512 workers (each executing Mirheo on a GPU) solving five different experiments simultaneously.

The image below shows in the y-axis the worker id, and in the x-axis the elapsed time. Colored lines show when a worker is active executing a model, with different colors corresponding to a different experiment. White segments indicate that the worker is idle, waiting for new samples to arrive.

../../_images/example_multiple_512Nodes.png

Profiling a Single Large-Experiment

In this example, we plot the execution timeline of a 4096 workers (each executing Mirheo on a GPU) solving a single experiment.

In this case, since workers can only draw from a single experiment, they tend to spend more time idle. This is caused by load imbalance, when some samples require more time to finish, forcing others to wait until the next generation.

../../_images/example_single_4096Nodes.png