Supporting materials for the paper:
Stress-Testing Exascale Scientific Data Output — ADIOS2 Configuration Strategies for WarpX under Extreme Load Imbalance
This directory is the single reproducibility tree for the Artifact Description (AD). Do not create a separate AE tree yet — AE is optional after acceptance.
artifacts/
README.md
warpx_tests/ # copy of inputs + PerformanceRun scripts
warpx_tests_INDEX.md # paper ↔ directory map
repeat/ # same runs, organized for ×3 small-N repeats
scripts/frontier/ # bash.setup.env + build.setup (WORKDIR-based)
results/ # numerical results underlying tables/figures
ad/ # SC26 AD appendix (LaTeX)
Test tree roles
| Path | Contents |
|---|---|
warpx_tests/inputs_3d/ |
All WarpX inputs (balanced 3D and BTD) |
warpx_tests/PerformanceRun/ |
Frontier Slurm scripts (plus some Perlmutter) |
repeat/ |
Same style of batch scripts, grouped by config (bp, bp_async, …); submit each script 3× for the paper’s small-N repeats — see repeat/README.md |
scripts/frontier/ |
Module env + software build into $WORKDIR |
| Component | Version |
|---|---|
| WarpX | 25.12 |
| ADIOS2 | 2.11 |
| openPMD-api | as bundled with the WarpX build |
| Engine | BPFile / BP5 |
ADIOS2 features exercised: TwoLevelShm, EveryoneWritesSerial, DataSizeBased,
FlattenSteps, SPAN, Blosc2 (lossless), AsyncWrite.
- Primary documented platform: Frontier (ORNL) — Lustre/ClusterStor ORION; weak scaling up to 2048 nodes. Setup and job scripts in this tree target Frontier.
- Perlmutter (NERSC) — all-flash Lustre scratch; weak scaling up to 512 nodes. Same WarpX → openPMD-api → ADIOS2 stack; example Slurm scripts live under
warpx_tests/PerformanceRun/(e.g.BTD/N8/perlmutter.sh) — adapt modules, account/QOS, and scratch paths as needed.
Absolute TB/s depends on shared-filesystem load and will differ across platforms and days. Reproducible claims emphasize relative configuration rankings and the measurement methodology in the paper.
cd scripts/frontier
export WORKDIR=/lustre/orion/<project>/scratch/<user>/<exp>
source bash.setup.env
./build.setupPersonal scratch paths are removed; pass WORKDIR instead. See scripts/frontier/README.md.
cd warpx_tests
ln -sfn "$WORKDIR/binary/warpx/bin/<warpx-binary>" EXE
ln -sfn "$WORKDIR/binary/adios/bin/bpls" bpls
# edit #SBATCH -A YOUR_PROJECT in the script, then:
sbatch PerformanceRun/3D/N1/frontier_blosc.sh
# or
sbatch PerformanceRun/BTD/N8/frontier.shSee warpx_tests_INDEX.md for which input dir each paper figure uses.
Filled under results/ (Table I + Figs. 2–6). See results/README.md.
- Logs → times: from the parent of
job_id/, runpython3 scripts/frontier/extract_time_3.6.py job_id(bare id, no/). - DataSize: aggregate output file size observed from each run (on-disk).
- Figures: import CSVs into Google Sheets and export charts (no plotting scripts in this tree).
Primary link: https://github.com/guj/artifacts26
(recorded as (A_1) in ad/sc26_ad.tex)
- Push this
artifacts/tree contents to that repo (if not already) - Compile AD:
cd ad && pdflatex sc26_ad.texand upload the PDF
| AD | AE | |
|---|---|---|
| Required? | Yes (by Aug 14 AoE final) | Optional |
| Lives in | ad/ |
Wait until acceptance |
| Content | Describe + link this tree | Step-by-step install/run/eval |
MIT — see LICENSE. Applies to this artifacts/ tree (inputs, scripts,
results, AD sources), not to the paper PDF or to WarpX/ADIOS2 themselves.