computePtclBalance.py

This analysis script helps with choosing the parallel decomposition of the computation domain onto multiple processors. It uses internal variables stored in the particle output to work out which processors have the most macroparticles, and which have fewest, determining the ratio between ‘perfectly’ balanced and how well balanced this data set is. Perfect load balancing actually depends on a number of other parameters too, for example field decomposition and other species are also likely to be important. Nevertheless, if you know particles are your bottleneck, this could be very helpful.

-s <simname>, --simulationName=<simname>

(string, required)

<simname> is the name of the simulation to be analyzed. The file extension should NOT be included in this text field.

-S <spname>, --speciesName=<spname>

(string, required)

<spname> is the name of the species to be analyzed.

-o <outname>, --outputHistoryName=<outname>

(string, optional)

The filename will be determined from <outname> by adding the simulation name and an extension. If not set, we simply default to <simname>_Balance.vsh5.

-r <maxranks>, --maxRanksToReport=<maxranks>

(string, required, default = 8)

If the number of ranks in the computation is less than <maxranks> we output number of particles on each rank, and the fraction of total for each rank, otherwise we just give statistics for the particle balance.

-w, --overwrite

(flag)

Whether a dataset or group should be overwritten if it already exists.

Output

The output is a VizSchema compatible dataset containing a set of ‘history’ or 1D vs time data. Always the maximum number of macros on any individual rank is reported, as is the ratio of this to the number of macros that would be perfectly balanced (ie total number of particles/number of ranks). We report which rank has the most macroparticles (so the worst balance), and the standard deviation of values of the balance which helps determine if most ranks have a reasonably similar number of macros. If the number of ranks is fewer than the number specified in <maxranks> above, then the number of macroparticles on each rank, and the particle balance for each rank, is also reported.

If you are running this analyzer from the UI, and the output dataset file already exists, then it will be overwritten each time the analyzer is run, unless you uncheck the Overwrite Existing Files box near the bottom of the Analysis Results pane.

If you are running the analyzer from the command line, the dataset will not be overwritten unless the -w, or --overwrite flag is specified on the command line.

The results of your analyzer may not be written into the output file if you have not specified the overwrite option to be True.