Set of benchmarks of the rascal library relying on the signac library to run and analyse the results.
These benchmarks have been used to produce the results for the journal article Efficient implementation of atom-density representations. J. Chem. Phys. 154, 114109 (2021). The version of the code used in the article is available here
Here is the recipe to run the benchmarks from scratch:
- create a conda environment with the required python packages running
conda env create -f environment.yml
and to make the environement file run
conda env export > environment.yml
- compile rascal (see https://github.com/cosmo-epfl/librascal for c++ requirements) and the benchmark suite by running
mkdir build
cd build
cmake .. && make -j4
For the QUIP benchmarks, QUIP is required
and the quip and gap_fit binaries should be in the $PATH.
The benchmarks are composed of dedicated c++ programs (sources are in src) and python scripts (in scripts) which drive the c++ programs and also perform some benchmarks using the python interface of rascal.
Most of the parameters of the benchmarks are defined in kernel_params.py and representation_params.py and each benchmark suites selects the appropriate subsets of parameters from these file (except for the model and the neighbor_list suite).
The whole suite of librascal benchmarks can be run with
cd ../scripts/
python driver.py --init --run -np 4 2>&1 | tee status.txt
or on a slurm compatible HPC
cd ../scripts/
python driver.py --init --submit
where the provided submit_*.sh where used on the helvetios@EPFL.
The QUIP benchmarks can be run using signac in the scripts/quip directory.
The complete process of running the benchmarks involves first training potentials
for the different datasets and parameter combinations, then evaluating those
potentials to get timings. Most of this workflow is automated using signac,
so a python project.py submit should be sufficient to run each step of the
process (use python project.py status to inspect execution progress), given
adequate computing resources and an appropriate
signac cluster configuration.
The datasets have been extracted from various published articles (see structures/raw_data/README.md for more details) and are stored in a custom .json format compatible with ASE and rascal reader. These files have been produced with the convert_structure notebook.
Some analysis of the benchmarks results have been done with the model_prediction_timings and query4plot_structure2rep notebooks. The silicon MLIPs used to predict structural properties have been developed in the MLIP_Si-prop notebook. Analysis and plotting of the QUIP benchmarks was done in the quip_timings.ipynb notebook.
rsync -avzh cosmo3:/home/musil/git/rascal_benchmarks/scripts ./
rsync -avzh --progress --max-size='5M' helvetios:/scratch/musil/rascal_benchmarks/scripts/* ./
python driver.py --run -np 15 2>&1 | tee status.txt
Sinteract -p build -c 4 -m 16G