Pils

Program's name: Pils
Available version(s): Programming language(s): C ·
Programming model(s): MPI · OpenMP ·

Pils is a synthetic code which allows to play with multiple MPI ranks, each of them with a different work load. The program allows you to configure the work load per rank, the grain of a parallel region, the number of steps to execute, etc.

This program is an isolated version of the pils test included within the DLB distribution. Further information on https://pm.bsc.es/dlb.

Building the program

In order to build the program, you will need to check the variables defined within the Makefile file and run:

$ make

The build system will generate a binary called pils.

Executing the program

The pils program accepts several parameters to configure the execution. You should run:

$ <mpi-launcher> [mpi-options] pils [options]

Where pils options are:

-l, --loads <n1,n2*m,...>  comma separated values of load per rank.
-f, --loads-file <file>    file path with load per rank, separated in lines.
-g, --grain <double>       parallelism grain parameter: (0.0,1.0].
-i, --iterations <n>       number of iterations.
-t, --task-duration <n>    task duration in microseconds.
-v, --verbose              print iteration times per process.
-h, --help                 print this help.

For your convenience, the main directory contains a run.sh script which executes the program with default options. Check the variables defined in the header to modify its behaviour.

Program’s output

While executing the program it will print to the standard output the configuration, the estimated load balance, times obtained per iteration, and the total elapsed time.