Running GROMACS with gmxbench
From Education
Introduction
Benchmarking provides useful information for determining cluster performance (CPU, network, etc.), and can give some indication as to what workloads and applications are reasonable for that cluster. The GROMACS group publishes benchmarking data for certain molecules on their own clusters, and then packages those molecules up so that other users of HPC resources can compare their performance.
Instructions for using gmxbench molecules with GROMACS
- Boot up your LAM world with the command:
lamboot -v ~/littlfe-hosts - Enter one of the molecule directories (e.g.
~/gmxbench/d.dppc/). Prepare the molecule for running by executing
grompp -v -np n
where n is the number of nodes to be used in the simulation. You can also omit the -np option if you want to only run on a single node.
- Run the molecule with the following command:
mpirun -np n /usr/local/gromacs/i686-pc-linux-gnu/bin/mdrun -v
where n is the number of processors in your LAM world you want to use. If you omitted -np above, you will want to do so here as well.
- When the run is done, the time it took plus other bits of information will be printed at the bottom. You can compare these values to the ones posted on the GROMACS benchmarking website.
Testing scaleup
In order to test scaleup, you need to run a molecule with many different numbers of nodes. The best way is just to start at one node, and then work up to running on the full cluster. You can use a simple Perl script like this:
#!/usr/bin/perl
my $i;
my $sw_path = "/usr/local/gromacs/i686-pc-linux-gnu/bin/";
for($i=1;$i<8;$i++) {
mkdir $i;
system("cp * $i");
chdir $i;
system("$sw_path/grompp -np $i -v >& grompp.out");
system("mpirun -np $i $sw_path/mdrun -v >& mdrun.out");
chdir "..";
}
This will write out all the debugging information to the files grompp.out and mdrun.out. You should of course replace 21 with the number of nodes that you are working on, and sw path with the path to your Gromacs installation. You can then use some grep and find magic to extract timing and performance data:
find . -name "mdrun.out" -exec \
grep -B 1 "\(Time\|Performance\)" {} \; -print
From here, you can use your favorite extraction utility to put these into a file, be that cut, awk, Perl, C, or the ever-handy Copy-&-Paste.