We want to understand the costs of the different algorithms used in the diocotron example.
The relevant files are here: https://github.com/struphy-hub/struphy/tree/devel/examples/ToyGyrokinetic/diocotron_instability
We have to install Struphy from source in development mode:
git clone git@github.com:struphy-hub/struphy.git
cd struphy
pip install -e .[dev]
struphy compile
To run the diocotron example:
mpirun -n 1 python examples/ToyGyrokinetic/diocotron_instability/params_diocotron.py
For testing we can run just 10-100 time steps.
Turn on profiling with
and run again. Increase the number of MPI ranks and see what happens to the time per time step.
We can try different algorithms in the propagator model.propagators.push_gc_bxe.options, for instance explicit algos with various Butcher tableaus. Just change the file params_diocotron.py for this.
See some plots with
python examples/ToyGyrokinetic/diocotron_instability/pproc_diocotron.py
Our tasks are:
Based on these results, we will try to alleviate some of the bottlenecks.
We want to understand the costs of the different algorithms used in the diocotron example.
The relevant files are here: https://github.com/struphy-hub/struphy/tree/devel/examples/ToyGyrokinetic/diocotron_instability
We have to install Struphy from source in development mode:
To run the diocotron example:
For testing we can run just 10-100 time steps.
Turn on profiling with
and run again. Increase the number of MPI ranks and see what happens to the time per time step.
We can try different algorithms in the propagator
model.propagators.push_gc_bxe.options, for instance explicit algos with various Butcher tableaus. Just change the fileparams_diocotron.pyfor this.See some plots with
Our tasks are:
Based on these results, we will try to alleviate some of the bottlenecks.