Scaling and profiling tools, with associated example problems, for the Dedalus pseudospectral framework. To run these problems, first install Dedalus (and on github).
Once Dedalus is installed and activated, run the triply-periodic shear flow example with:
mpirun -n 256 python3 shear_flow_3d.py
The Rayleigh-Benard convection examples can be run using:
mpirun -n 256 python3 rayleigh_benard_3d.py
If you would like to have detailed profiles of the cython routines, please make sure to set the following envinroment variable:
export CYTHON_PROFILE=True
before installing Dedalus.
Detailed profiling requires installation of the gprof2dot
library:
pip install gprof2dot
and the availability of dot
in the compute environment.
Profiling during runs is controlled in dedalus.cfg
or at the script level. When enabled, code profiles are stored by default in the ./profiles
directory. You can obtain detailed performance data aggregated across cores and on a per-core basis using:
python3 plot_profiles.py
which will produce a variety of graphical outputs, stored in ./profiles
as .png
files.
To run a standard set of scaling and profiling tests for the shear_flow_3d.py
triply-periodic problem on 64 to 1024 cores, run the following:
bash scale_shear_flow.sh 128 > scaling_shear_flow_3d_128x128x128.txt
bash scale_shear_flow.sh 256 > scaling_shear_flow_3d_256x256x256.txt
python3 plot_scaling.py scaling_shear_flow_3d_128x128x128.txt scaling_shear_flow_3d_256x256x256.txt
python3 plot_timing_changes.py shear_flow_3d_256x256x256_* --label='256x256x256'
python3 plot_timing_changes.py shear_flow_3d_128x128x128_* --label='128x128x128'