Home

Awesome

HOOMD-blue benchmarks

This repository contains performance benchmarks for HOOMD-blue. Use the benchmarks to test your HOOMD-blue installation, check the performance of simulations on your hardware, or compare simulation performance between different versions, build configurations, or systems.

Requirements

Usage

  1. Clone this repository:
  1. Run a specific benchmark with options:
  1. Run the full benchmarks suite:

The first execution will take some time as the benchmark generates the requested input configuration. Subsequent runs with the same paramters will read input configurations from initial_configuration_cache/ if it exists. Activate the verbose -v command line option to see status messages during the initial configuration generation and the benchmark execution.

Scripting

Without the verbose flag, each benchmark module writes only a single performance number to stdout. Use this in conjunction with scripts to execute a number of benchmarks and compare the results. Python scripts can import the hoomd_benchmarks module and call the Benchmark classes directly. See their docstrings for details.

Common options

The following command line options are available for both the full test suite and individual tests:

When using the Python API, pass these options to the benchmark's constructor.

When running the full benchmark suite, benchmark_steps and warmup_steps set the number of steps for typical benchmarks. Some unusually fast or slow benchmarks may scale the given value to a larger or smaller number of actual steps.

When running individual benchmarks, benchmark_steps, and warmup_steps set the exact number of steps to run with no scaling.

The benchmark suite

Run the full suite with python3 -m hoomd_benchmarks <options>.

The full suite accepts the following command line options in addition to the common options:

Benchmarks

Run any benchmark individually with python3 -m hoomd_benchmarks.<benchmark_name> <options>. Some benchmarks have additional command line options, find these with python3 -m hoomd_benchmarks.<benchmark_name> --help.

Simulation benchmarks

Simulation benchmarks execute simulation runs with models representative of research use-cases and report performance in time steps per second (MD) and trial moves per second per particle (HPMC).

Microbenchmarks

Microbenchmarks exercise a portion of the code and report performance with a metric specific to each microbenchmark.

Change log

hoomd_benchmarks does not have a formal release cycle. Examine the git commit history to see the changes.

Contributing to HOOMD-blue

Contributions are welcome via pull requests. Please report bugs and suggest feature enhancements via the issue tracker. See CONTRIBUTING.md and ARCHITECTURE.md for more information.

Checking for performance regressions

To check for performance regressions before each HOOMD-relase:

  1. Build the release candidate in $HOME/build/hoomd/releases/<release>
  2. Run job-gl-cpu.sh and job-gl-gpu.sh on Great Lakes.
  3. Run python report.py to generate the report.

License

HOOMD-blue is available under the 3-clause BSD license.