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.pyThe Rayleigh-Benard convection examples can be run using:
mpirun -n 256 python3 rayleigh_benard_3d.pyIf you would like to have detailed profiles of the cython routines, please make sure to set the following envinroment variable:
export CYTHON_PROFILE=Truebefore installing Dedalus.
Detailed profiling requires installation of the gprof2dot library:
pip install gprof2dotand 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.pywhich 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'