---
# System prepended metadata

title: Bechmark for ESPResSo

---

In Espresso github: 

- maintainer/benchmarks has simple cases. Best way to make sure that Espresso is working fine. Run with `make -j<corecount> check_benchmarks`
    - TO run independenly ` mpiexec -n 16 ./pypresso ../maintainer/benchmarks/lj.py`
    - p3m, lb and lj scale to many cores (4000 or so).
        - Do they have GPU support? => They don't at the moment
        - Jean-Noel will open a PR to add GPU support, it is not there now => He'll push it to the development branch
    - with --help you get options. You can reduce number of particles per core `--particles-per-core`
    - `n_iterations` (in the benchmark file) can also be reduced to reduce the runtime
    - `-DWITH_CUDA=OFF` to make a CPU only build for Espresso
    - `cmake . -DESPRESSO_CTEST_ARGS="-j$(nproc)"` to allow ctest to use all cores (when calling from CMake's Makefiles)
    - It's pure MPI, so if you want to run on 4000 cores, you'll have to launch 4000 ranks.

- testsuite: 3 min, tests individual features of Espresso (run with `make check_python` and `check_unit_tests`). `check_python` covers everything, using the python interface. End users use this anyway. `check_unit_tests` uses CPP unit tests. They often bring issues to light quickly, but they don't cover the full codebase.

- samples has more complex cases

- prepare an easyconfig without CUDA support.( toolchain: `foss` )
    - Make Mesa optional dependency for Notebooks. (Add comments to the easyconfig)



