Skip to content

CP2K benchmarks

CP2K is a quantum chemistry and solid state physics software package. This directory includes the H2O-64, H20-256, and LiH_HFX CP2K benchmarks based on ARCHER 2 HPC benchmarks.

Usage

From the top-level directory of the repository, you can run the benchmarks with

reframe -c benchmarks/apps/cp2k -r --performance-report

Filtering the benchmarks

By default all benchmarks will be run. You can run individual benchmarks with the --tag option:

  • h2o-64 to run the H2O-64 benchmark,
  • h2o-256 to run the H2O-256 benchmark,
  • lih-hfx to run the LiH_HFX benchmark.

Examples:

reframe -c benchmarks/apps/cp2k -r --performance-report --tag h2o-64
reframe -c benchmarks/apps/cp2k -r --performance-report --tag h2o-256
reframe -c benchmarks/apps/cp2k -r --performance-report --tag lih-hfx

Setting the number of threads and MPI processes

By default, these benchmarks will use

  • num_cpus_per_task: 2
  • num_tasks: current_partition.processor.num_cpus // min(1, current_partition.processor.num_cpus_per_core) // num_cpus_per_task
  • num_tasks_per_node: current_partition.processor.num_cpus // num_cpus_per_task

You can override the values of these variables from the command line with the --setvar option, for example

reframe -c benchmarks/apps/cp2k -r --performance-report --setvar=num_cpus_per_task=4 --setvar=num_tasks=16

Note: you're responsible for overriding these variables in a consistent way, so that, for example, num_tasks_per_node doesn't exceed the number of total tasks runnable on each node.

Figure of merit

The figure of merit captured by these benchmarks is the maximum total CP2K time. For example, if the output of the program is

 -------------------------------------------------------------------------------
 -                                                                             -
 -                                T I M I N G                                  -
 -                                                                             -
 -------------------------------------------------------------------------------
 SUBROUTINE                       CALLS  ASD         SELF TIME        TOTAL TIME
                                MAXIMUM       AVERAGE  MAXIMUM  AVERAGE  MAXIMUM
 CP2K                                 1  1.0    0.178    0.295  200.814  200.816
 qs_energies                          1  2.0    0.000    0.000  200.091  200.093
 scf_env_do_scf                       1  3.0    0.000    0.000  198.017  198.018
 qs_ks_update_qs_env                  8  5.0    0.000    0.000  161.422  161.440
 rebuild_ks_matrix                    7  6.0    0.000    0.000  161.419  161.437
 qs_ks_build_kohn_sham_matrix         7  7.0    0.001    0.001  161.419  161.437
 hfx_ks_matrix                        7  8.0    0.000    0.000  154.464  154.495

the number 200.816 will be captured.