Figure shows the overall time per time step along with speedups for both CP and BO dynamics. Using two task groups and four OpenMP threads per MPI process, we were able to efficiently use up to 1,920 cores. At this point one BO time step requires only 1.16 second and one CP time step is completed in 0.31 seconds. This can be compared to the existing QM/MM implementation that does not scale beyond 240 CPU cores as expected, which corresponds to 8.50 seconds per BO time step and 2.26 seconds per CP time step. It is also noticeable that in the BO benchmark (Fig. ), we observed superlinear scaling at core counts below 1,000. The reason for such a peculiar observation is the scaling performance of the plane wave FFT implementation, which has been reported to scale with more than 100% for certain system sizes. This has been attributed to an improved CPU cache utilization as the number of cores increases. For instance, the CPUs in JURECA have 30 MB L3 (level 3) cache shared across all cores in addition to 32 KB and 256 KB of L1 (level 1) and L2 (level 2) caches, respectively, on each core. The size of the FFT mesh for GB1 is estimated to be roughly 100 MB. With two CPUs on a single node, the grid is split between those into 50 MB portions. This means that the portion available for a single CPU does not fit into the cache available on said chip. However, as the number of CPUs increases, the portion sizes per CPU decrease. First, portions will reach a size where they fit into the L3 cache and, once the grid is decomposed even further, the part of the grid treated by a single core will ultimately fit into the L2 cache. The speedup obtained through better cache utilization due to more fine-grained grid distribution can compensate the slowdown due to the communication overhead up to 40 nodes (960 cores). After this point we do not observe the superlinear behavior anymore.