ADIOS2 icon indicating copy to clipboard operation
ADIOS2 copied to clipboard

`adios-campaign` directory

Open ax3l opened this issue 1 year ago • 5 comments

Hi,

With the update to ADIOS v2.10 we see adios-campaign/ folders appearing in the current working directory of WarpX simulations. It contains some .db files it seems.

What is that and is that intentional?

I compiled for a V100 cluster w/ Intel CPUs using

$ cmake
  -S $HOME/src/adios2  \
  -B ${build_dir}/adios2-v100-build  \
  -DADIOS2_USE_Blosc2=ON   \
  -DADIOS2_USE_Fortran=OFF  \
  -DADIOS2_USE_Python=OFF  \
  -DADIOS2_USE_ZeroMQ=OFF  \
  -DCMAKE_INSTALL_PREFIX=${SW_DIR}/adios2-2.10.0

I think if this is needed in some form, we should put it into the ADIOS .bp directory because we might have multiple ADIOS2 writers active at the same time for various simulation diagnostics.

first seen in https://github.com/ECP-WarpX/WarpX/pull/4869

cc @pnorbert @guj @franzpoeschel

ax3l avatar Apr 22 '24 21:04 ax3l

I have the same question to ask @pnorbert

guj avatar Apr 22 '24 23:04 guj

The Campaign Manager is on by default and records the ADIOS outputs (so far only the names) of an application. adios-campaign/ is the directory that contains one or more sqlite3 .db files, one per application/ADIOS/rank0 combo. So you can run multiple applications in the same directory, at once or one after the other. This directory should not affect anything besides your directory listing. You can deactivate it by creating an adios config in ~/.config/adios2/adios2.yaml and set active to false:

$ cat ~/.config/adios2/adios2.yaml

Campaign:
  active: false

Or you can turn off the whole thing at cmake configuration with -DADIOS2_USE_Campaign=OFF

pnorbert avatar Apr 25 '24 19:04 pnorbert

Thank you for the details @pnorbert !

Checking the code, it looks like it is auto-enabled when SQLLite is found, https://github.com/ornladios/ADIOS2/blob/v2.10.0/cmake/DetectOptions.cmake#L578-L583

which probably was the case on the system I saw it: https://github.com/ECP-WarpX/WarpX/pull/4869

Explained offline: the campaign is written serially, it creates a unique UUID for each entry. Thus, one can run multiple processes in the same directory as well as creating multiple adios files/file streams and they all get their own campaign databases in that folder.

It's generally a bit verbose, e.g., using a non-hidden directory in CWD and having no control with runtime options yet to store it elsewhere (or turning it off).

As an application person, where I would like to see such functionality would be more along the lines:

  • in CWD, but a .dot directory (because users will at best interface with it via tools)
  • in the bp/ directories
  • in a global, configurable directory

So

  • .adios-campaign/ would be better
  • configurable would be even better
  • turn-off (or changed location) via C++ API would be great, too

ax3l avatar Apr 29 '24 17:04 ax3l

Fix will use .adios-campaign/ but it also deactivates recording by default and it can only be turned on in ~/.config/adios2/adios2.yaml.

pnorbert avatar May 23 '24 18:05 pnorbert

Sounds good - yes active opt-in at runtime is what we need.

ax3l avatar Oct 08 '24 05:10 ax3l

Fixed in v2.10.1+ via #4174

ax3l avatar Feb 25 '25 18:02 ax3l