Compiler Performance

As CP2K is very portable, performance was investigated using the 3 main compiler suites available on HECToR - Portland Group (PGI), Pathscale, and GNU gfortran. For each of these compilers, a reasonably aggressive set of optimisation settings were chosen, and the bench_64 case was run on 64 cores, where computation dominates the communication cost. The following results were obtained:

Table 1: Comparison of HECToR compilers, using bench_64
Compiler Optimisation flags Time(s)
PGI 8.0.2 -fast 337s
Pathscale 3.1 -O3 -OPT:Ofast 318s
gfortran 4.3.2 -O3 -ffast-math -funroll-loops -ftree-vectorize 335s

As Pathscale was significantly faster than the other two compilers it was used for all benchmarking runs. However, gfortran was used for development as it was able to compile the code much more quickly than either Pathscale or PGI.

The compiler versions indicated in table 1 are all able to compile CP2K correctly. Earlier versions of the PGI compiler are known to cause numerical issues at runtime and so should be avoided.