Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
doku:gromacs [2023/05/17 12:29] – msiegel | doku:gromacs [2023/05/17 15:56] – [Installations] msiegel | ||
---|---|---|---|
Line 11: | Line 11: | ||
===== GPU Partition ===== | ===== GPU Partition ===== | ||
- | First you have to decide on which hardware GROMACS should run, we call | + | First you have to decide on which hardware GROMACS should run, we call this a '' |
- | this a '' | + | |
- | SLURM]]. On any login node, type '' | + | ===== Installations ===== |
- | available partitions, or take a look at [[doku: | + | |
- | see the example below. Be aware that each partition has different | + | We provide the following GROMACS installations: |
- | hardware, so choose the parameters accordingly. GROMACS decides mostly on its own how it wants to | + | |
- | work, so don't be surprised if it ignores settings like environment | + | * '' |
- | variables. | + | * '' |
+ | |||
+ | Type '' | ||
+ | |||
+ | Because of the low efficiency of GROMACS on many nodes with many GPUs via MPI, we do not provide '' | ||
===== Batch Script ===== | ===== Batch Script ===== | ||
Line 28: | Line 33: | ||
* clean modules: '' | * clean modules: '' | ||
* load modules: '' | * load modules: '' | ||
- | * starting the program in question: '' | + | * starting the program in question: '' |
<code bash mybatchscript.sh> | <code bash mybatchscript.sh> | ||
Line 42: | Line 47: | ||
module purge | module purge | ||
module load gromacs/ | module load gromacs/ | ||
- | gmx_mpi | + | gmx mdrun -s topol.tpr |
</ | </ | ||
- | Type '' | + | Type '' |
- | [[doku: | + | |
- | executed automatically. | + | |
Line 55: | Line 58: | ||
==== CPU / GPU Load ==== | ==== CPU / GPU Load ==== | ||
- | There is a whole page dedicated to [[doku: | + | There is a whole page dedicated to [[doku: |
- | GPU, for GROMACS the relevant sections are section | + | |
- | [[doku: | + | |
==== Short Example ==== | ==== Short Example ==== | ||
- | As a short example we ran '' | + | As a short example we ran '' |
- | different options, where '' | + | |
- | we don't actually care about the result, we just want to know how many **ns/day** we can get, Gromacs | + | |
- | The following table lists our 5 tests: Without any options GROMACS | + | The following table lists our 5 tests: Without any options GROMACS already runs fine (a). Setting the number of tasks (b) is not needed; if set wrong can even slow the calculation down significantly ( c ) due to over provisioning! We would advise to enforce pinning, in our example it does not show any effects though (d), we assume that the tasks are pinned automatically already. The only further improvement we could get was using the '' |
- | already runs fine (a). Setting the number of tasks (b) is not needed; | + | |
- | if set wrong can even slow the calculation down significantly ( c ) due | + | |
- | to over provisioning! We would advise to enforce pinning, in our | + | |
- | example it does not show any effects though (d), we assume that the | + | |
- | tasks are pinned automatically already. The only further improvement | + | |
- | we could get was using the '' | + | |
- | load on the GPU (e). | + | |
^ # ^ cmd ^ ns / day ^ cpu load / % ^ gpu load / % ^ notes ^ | ^ # ^ cmd ^ ns / day ^ cpu load / % ^ gpu load / % ^ notes ^ | ||
Line 85: | Line 77: | ||
==== 7 Test Cases ==== | ==== 7 Test Cases ==== | ||
- | Since Gromacs | + | Since GROMACS |
benchmark various scenarios: | benchmark various scenarios: | ||
Line 135: | Line 127: | ||
}, | }, | ||
title: { | title: { | ||
- | text: 'Gromacs | + | text: 'GROMACS |
}, | }, | ||
xaxis: { | xaxis: { | ||
Line 176: | Line 168: | ||
In most cases 1 GPU is **better** than 2 GPUs! | In most cases 1 GPU is **better** than 2 GPUs! | ||
- | In some cases, for example a large molecule like Test 7, you might want to run Gromacs | + | In some cases, for example a large molecule like Test 7, you might want to run GROMACS |
To find out if more GPUs mean more work done we need some math: the parallel efficiency **η** is the ratio of the [[https:// | To find out if more GPUs mean more work done we need some math: the parallel efficiency **η** is the ratio of the [[https:// | ||
Line 182: | Line 174: | ||
η = S(N) / N | η = S(N) / N | ||
- | In this chart we compare | + | In this chart we compare |
- | Set the number of GPUs on the node visible to Gromacs | + | Set the number of GPUs on the node visible to GROMACS |
< | < | ||
Line 240: | Line 232: | ||
In most cases one node is **better** than more nodes. | In most cases one node is **better** than more nodes. | ||
- | In some cases, for example a large molecule like Test 7, you might want to run Gromacs | + | In some cases, for example a large molecule like Test 7, you might want to run GROMACS |
- | multiple nodes in parallel using MPI, with multiple | + | |
- | GPUs (one each node). We strongly encourage you to test if you | + | |
- | actually benefit from running with GPUs on many nodes. | + | |
- | many nodes in parallel than on a single one, even considerably! | + | |
- | Run Gromacs | + | Run GROMACS |
<code bash> | <code bash> | ||
Line 290: | Line 278: | ||
}, | }, | ||
title: { | title: { | ||
- | text: 'Gromacs | + | text: 'GROMACS |
}, | }, | ||
xaxis: { | xaxis: { | ||
Line 322: | Line 310: | ||
* Large problem: 8 ranks per node | * Large problem: 8 ranks per node | ||
- | If you want to run Gromacs | + | If you want to run GROMACS |
tell MPI how many processes should be launched on each node | tell MPI how many processes should be launched on each node | ||
'' | '' | ||
Line 336: | Line 324: | ||
</ | </ | ||
- | The reason for this is that the graphics cards does more work than the CPU. Gromacs | + | The reason for this is that the graphics cards does more work than the CPU. GROMACS |
- | different ranks on the CPUs and all GPUs, which takes more time with more ranks. | + | |
- | '' | + | |
- | 1 with 16 ranks on 1 node: the '' | + | |
- | of the time spent! | + | |
< | < | ||
Line 377: | Line 361: | ||
}, | }, | ||
title: { | title: { | ||
- | text: 'Gromacs | + | text: 'GROMACS |
}, | }, | ||
xaxis: { | xaxis: { |