Skip to content

Commit

Permalink
Set process binding for GROMACS. It is single core, but if launched w…
Browse files Browse the repository at this point in the history
…ith mpirun it is currently free to migrate between cores within a numa domain. On Snellius I've seen some strange issues with occassionally very slow performance (10x slower than normal), potentially due to the OS thread schedulling being silly. Process binding leads to better _and_ more reproducible results
  • Loading branch information
Caspar van Leeuwen committed May 3, 2024
1 parent 6ecad3a commit 4d8e10f
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions eessi/testsuite/tests/apps/gromacs.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,11 @@ def set_omp_num_threads(self):

self.env_vars['OMP_NUM_THREADS'] = omp_num_threads
log(f'env_vars set to {self.env_vars}')

@run_after('setup')
def set_binding_policy(self):
"""
Default process binding may depend on the launcher used. We've seen some variable performance.
Better set it explicitely to make sure process migration cannot cause such variations.
"""
hooks.set_compact_process_binding(self)

0 comments on commit 4d8e10f

Please sign in to comment.