This repository contains the data, scripts, and figures used in the paper.
The benchmark software used in this work is available at:
- Source code is licensed under the MIT License.
- Data and figures are licensed under CC-BY-4.0.
- Provide the raw benchmark results (logs + CSV) used in the paper.
- Provide post-processing scripts to rebuild figure datasets.
- Provide plotting scripts to regenerate the final PDF figures.
- Provide patches required to reproduce the modified third-party codes:
- ADDA
- DDSCAT
patches/patches/adda_b03d648.patch: ADDA patch.patches/ddscat_250505.patch: DDSCAT patch.datas/logs_MPI_laptop/,logs_MPI_cluster/: CPU/MPI results.logs_GPU_2000Ada/,logs_GPU_6000Ada/,logs_GPU_cluster/: GPU results.- In
logs*, run logs are stored as.ziparchives; only aggregated files are kept uncompressed. *.csv: aggregated figure datasets.scripts/run_MPI_random_and_extract.sh: runs MPI/CPU simulations and extracts metrics.run_GPU_random_and_extract.sh: runs GPU simulations and extracts metrics.sort_datafiles.py: standard sorting of result CSV files.fill_time_in_datafiles.py: fills elapsed times (cluster/SLURM case).make_figure1_data.py,make_figure2_data.py,make_figure3_data.py,make_appendix_data.py: build figure CSV datasets.plot_figure1.py,plot_figure2.py,plot_figure3.py,plot_appendix.py: generate PDF figures infigures/.figures/: output folder storing generated PDF figures.
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtExpected base version: commit b03d6480b5f41b88abe0b201c847da780d1efe56.
Optional (without git clone and git checkout): download the ZIP snapshot of that commit directly from
https://github.com/adda-team/adda/archive/b03d6480b5f41b88abe0b201c847da780d1efe56.zip,
extract it, and apply the same patch in the extracted source tree.
git clone https://github.com/adda-team/adda.git
cd adda
git checkout b03d6480b5f41b88abe0b201c847da780d1efe56
git apply --check ../patches/adda_b03d648.patch
git apply ../patches/adda_b03d648.patchThen compile ADDA.
Expected base version: 7.3.4_250505.
Download the source ZIP from the official downloads page and extract it first. Then run the patch commands:
patch --dry-run -p0 < patches/ddscat_250505.patch
patch -p0 < patches/ddscat_250505.patchThen compile DDSCAT.
All run logs are already provided in logs* as .zip archives.
If you want to rerun simulations and re-extract metrics:
bash scripts/run_MPI_random_and_extract.sh
bash scripts/run_GPU_random_and_extract.shNote: both scripts contain local paths that must be adapted.
Aggregated CSV files are already included in logs* (uncompressed part), as *_results_sorted.csv.
Run:
python scripts/sort_datafiles.py
python scripts/fill_time_in_datafiles.pyNote:
- the ‘logs*’ folders must be unzipped in order to use these scripts.
sort_datafiles.pywill not reproduce the exact repository versions ofddscat_results_sorted.csvandifdda_results_sorted.csvunless 4 outlier runs are removed. In the repository, these 4 lines were manually removed because they correspond to broken runs with unrealistic values.
Final figure datasets are already provided in datas/ as CSV files.
Run:
python scripts/make_figure1_data.py
python scripts/make_figure2_data.py
python scripts/make_figure3_data.py
python scripts/make_appendix_data.pyRun:
python scripts/plot_figure1.py
python scripts/plot_figure2.py
python scripts/plot_figure3.py
python scripts/plot_appendix.pyOutputs are written to figures/.
If you use this dataset, please cite the dataset archive and the associated paper.
Argentin, C., & Chaumet, P. C., (2026). data-dda-benchmark-paper. Zenodo.
https://doi.org/10.5281/zenodo.18847515
Argentin, C., Chaumet, P. C., Gross, M., & Yurkin, M. A. (2026).
Floating-point--consistent cross-verification methodology for reproducible and interoperable DDA solvers with fair benchmarking.
arXiv:2603.02871