|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Functions | |
| slice_block (glob, origin, size) | |
| build_hysing1 (nx=64) | |
| build_packed (nx=64, gnz=160) | |
| main () | |
Variables | |
| HERE = os.path.dirname(os.path.abspath(__file__)) | |
| dict | BUILD = {"hysing1": build_hysing1, "packed": build_packed} |
WO-V9 item 3 — the g = 3 colour-halo cost under MPI, and what it is a fraction of.
The colour advector owns its own g = 3 block with its own `GridHaloTopology`, and exchanges it
once per sweep (three times a step, plus the momentum advector's two sibling fields per sweep).
That is a deeper halo than the solver's own G = 2 and it is exchanged more often than anything
else in the step, which is why PARIS's partial-column-sum trick (exchange sums over the swept
column instead of the colour band, halving the depth) exists. This script measures what the
trick would be BUYING before anyone writes it.
Run:
mpirun -np 1 python tests/study/vof_profile_mpi.py --case hysing1 --steps 20
mpirun -np 2 python tests/study/vof_profile_mpi.py --case hysing1 --steps 20
mpirun -np 4 python tests/study/vof_profile_mpi.py --case packed --steps 20
Needs a `-DPECLET_FLOW_MPI=ON` module on PYTHONPATH.
| vof_profile_mpi.slice_block | ( | glob, | |
| origin, | |||
| size | |||
| ) |
Definition at line 33 of file vof_profile_mpi.py.
Referenced by build_hysing1(), and build_packed().
| vof_profile_mpi.build_hysing1 | ( | nx = 64 | ) |
Definition at line 38 of file vof_profile_mpi.py.
References slice_block().
| vof_profile_mpi.build_packed | ( | nx = 64, |
|
gnz = 160 |
|||
| ) |
Definition at line 66 of file vof_profile_mpi.py.
References slice_block().
| vof_profile_mpi.main | ( | ) |
| vof_profile_mpi.HERE = os.path.dirname(os.path.abspath(__file__)) |
Definition at line 28 of file vof_profile_mpi.py.
| dict vof_profile_mpi.BUILD = {"hysing1": build_hysing1, "packed": build_packed} |
Definition at line 101 of file vof_profile_mpi.py.