Originally, libyt heavily relies on whether or not yt functionalities deal with data in parallel, which means they must only operate data on their rank. This greatly reduce the flexibility and ways to make a yt function runs in parallel. For example, SlicePlot can work in parallel in post-processing, but cannot in inline-analysis. It needs the data from other ranks.
We implement this feature, get nonlocal field data and particle data from other ranks, so that it solves this problem.
New Feature
We have support both getting nonlocal field data and particle data.
Code implementation for get non-local data from other ranks.
Class yt_rma_field and yt_rma_particle use one-sided MPI to get non-local data.
Wrappers in libyt yt frontend and C++ extended python method will make use of them.
When reading data in inline-analysis, every rank MUST go to data IO, so that they are in the same state.
This is because we use MPI_Win_fence, and it is a collective call.
We assume that each rank ask for the same field or particle.
Support yt Functionalities
OffAxisProjectionPlot
SlicePlot
OffAxisSlicePlot
Add gradient field
LinePlot
Volume Rendering, with MPI sive even.
MPI with odd size would fail.
Does NOT support ParticlePlot, ParticleProjectionPlot
Support Getting Nonlocal Data
Originally,
libyt
heavily relies on whether or notyt
functionalities deal with data in parallel, which means they must only operate data on their rank. This greatly reduce the flexibility and ways to make ayt
function runs in parallel. For example,SlicePlot
can work in parallel in post-processing, but cannot in inline-analysis. It needs the data from other ranks.We implement this feature, get nonlocal field data and particle data from other ranks, so that it solves this problem.
New Feature
yt_rma_field
andyt_rma_particle
use one-sided MPI to get non-local data.libyt yt frontend
and C++ extended python method will make use of them.MPI_Win_fence
, and it is a collective call.yt
FunctionalitiesOffAxisProjectionPlot
SlicePlot
OffAxisSlicePlot
gradient
fieldLinePlot
ParticlePlot
,ParticleProjectionPlot
32 .