Calculate particles min-max and corresponding overheads #4625
Replies: 3 comments 3 replies
-
I also following openPMD Backend-Specific Controls 'Due to performance considerations, the ADIOS2 backend configures ADIOS2 not to compute any dataset statistics (Min/Max) by default. Statistics may be activated by setting the JSON parameter'
and following Warpx Full Diagnostics
and I try
However, in |
Beta Was this translation helpful? Give feedback.
-
Hi @Change72, I iwll try to answer question by question. 1. Step Encoding
Looks good. Please note that groupBased encoding (g) is not recommended for BP4, but will work with our upcoming BP5 implementation: Until then, please use fileBased (f) and variableBased (v) encoding of steps. 2. Min/Max
yes, that is because we deactivated the min/max analysis in ADIOS2.
We need to remeasure it again We have an environment variable 3. GPU runs & Block Size
Without load balancing, just use one block per GPU. Otherwise with load balancing, 4-12 blocks per GPU are a good idea, if your problem is large enough to actually fill the GPU memory. Details: |
Beta Was this translation helpful? Give feedback.
-
3. Output formats
Here is the overview: WarpX can generate output for "full diagnostics" (heavy data) with either:
openPMD supports backends HDF5 and ADIOS2. We currently use ADIOS2 with BP4 and will change the default to BP5 soon. We will in the near future also change the WarpX default from plotfiles to openPMD. |
Beta Was this translation helpful? Give feedback.
-
Hi, I met several questions in my WarpX simulation:
Since I want to use ADIOS 2 as the backend, the only thing I changed is:
After generation, I use
bpls -l
to check the min-max value, but it shows all 0.bpls --help
, it shows:My question is whether there will be some kind of overheads in collecting min/max if WarpX using Adios 2 backend, like 'ParticleExtrema'? If so, does such a cost is negligible or significant?
in my previous issues Generating dataset on Summit: GPU last error detected #4438 @ax3l mention
Another small unrelated detail: your job seems to use 12 GPUs (2 nodes?) but your setup only has 8 grid blocks, so 4 GPUs will be unused right now.
For now, I try to control the grids number by Recommend configuration for large scale particles #4591setting amr.max_grid_size and amr.blocking_factor explicitly to the same numbers
. Does this mean if I want to achieve near-optimal performance with 4 nodes and each of them has 2 GPUS, I need at least set it to 8 grids or say 8x grids, like 16 or 24?what is the relationship of AMReX and ADIOS2 in WarpX? As far as I know, AMReX output format is plotfile and ADIOS2 is bp files. It seems they are two different I/O formats. However, in the last page of ADIOS2 talk, it tells
Codes such as the WarpX code, which uses AMReX can take advantage of ADIOS-BP4 for “fast” writing
. So I am a little puzzled now.I use this input_3d to do a simulation, and then I read it by ADIOS engine. However, I found an interesting thing is the total particle number is matched with
bpls -l
but the block number is 128. I cannot find any 128 in input files and output files. Also, I try another large dataset, and get a weird number as well. I use the following to read block number:Beta Was this translation helpful? Give feedback.
All reactions