Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adios-campaign directory #4148

Open
ax3l opened this issue Apr 22, 2024 · 4 comments
Open

adios-campaign directory #4148

ax3l opened this issue Apr 22, 2024 · 4 comments
Milestone

Comments

@ax3l
Copy link
Contributor

ax3l commented Apr 22, 2024

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 ECP-WarpX/WarpX#4869

cc @pnorbert @guj @franzpoeschel

@guj
Copy link
Contributor

guj commented Apr 22, 2024

I have the same question to ask @pnorbert

@ax3l ax3l changed the title adios2-campaign directory adios-campaign directory Apr 23, 2024
@pnorbert
Copy link
Contributor

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

@ax3l
Copy link
Contributor Author

ax3l commented Apr 29, 2024

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: ECP-WarpX/WarpX#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 added a commit to ax3l/spack that referenced this issue Apr 29, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
ax3l added a commit to ax3l/spack that referenced this issue Apr 29, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
ax3l added a commit to spack/spack that referenced this issue May 1, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
wdconinc pushed a commit to spack/spack that referenced this issue May 4, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
tldahlgren pushed a commit to tldahlgren/spack that referenced this issue May 8, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
@pnorbert pnorbert added this to the v2.10.1 milestone May 21, 2024
@pnorbert
Copy link
Contributor

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

@vicentebolea vicentebolea modified the milestones: v2.10.1, v2.11.0 May 28, 2024
arezaii pushed a commit to arezaii/spack that referenced this issue May 31, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
teaguesterling pushed a commit to teaguesterling/spack that referenced this issue Jun 15, 2024
With v2.10+, ADIOS added a campaign manager. This is auto-enabled
if SQLite3 is found.

Add explicit control for it now and disables it by default, to avoid
picking up system dependencies or bloating by default the ADIOS2
dependencies. Also, not yet fully mature to be used by default:
ornladios/ADIOS2#4148
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants