Skip to content
Snippets Groups Projects
README.md 3.12 KiB
Newer Older
cloirec's avatar
cloirec committed
Description:
============

Presentation
------------

GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.
It is primarily designed for biochemical molecules like proteins, lipids and nucleic acids that have a lot of complicated bonded interactions, but since GROMACS is extremely fast at calculating the nonbonded interactions (that usually dominate simulations) many groups are also using it for research on non-biological systems, e.g. polymers.

Technical information:
----------------------

* website : http://www.gromacs.org
* Scientific domain : molecular dynamics
* Language : C/C++/CUDA
* Parallelism : MPI + OpenMP + CUDA
* GPU acceleration : yes  
* Scalability : high
* Vectorization: high

MPI-Bound Code
cloirec's avatar
cloirec committed


Compilation and simulation:
===========================

Download:
---------

Sources are available at: http://manual.gromacs.org/documentation

For the test, we will use a specific release. To download this release, run:

```
./download.sh
```

Compile:
--------

cloirec's avatar
cloirec committed
Gromacs needs cmake (works with 3.9.1) and python (2.7) to be compiled and depends on a version of fftw (works with fftw from mkl version 18)
cloirec's avatar
cloirec committed

cloirec's avatar
cloirec committed
Information (if needed) about how to compile the application. 

For instance:

Compile the code using:
```
source machines/occigen-bdw/env
./compile.sh
```

cloirec's avatar
cloirec committed
`machines/occigen-bdw/env` contains the information for compilation (module load intel intelmpi ...)
cloirec's avatar
cloirec committed

Run and validate the simulation:
--------------------------------

For each test case, given in a separate folder (e.g. testcase_ion_channel_small and testcase_BSG_large), you can find three scripts:
cloirec's avatar
cloirec committed

*  prepare.sh: prepare the simulation (move data to the right location, recompile some minor changes, ...)
*  run.sh : run the application and print out the evaluated metric in a file called results (first numeric column representing ns/day corresponds to the evaluated metric to take into account)
*  validate.sh: validation of the simulation for (if the evaluated metric is print out and the simulation is completed with 20 000 steps for testcase_ion_channel_small and 1 200 000 steps for testcase_BSG_large, the bench is considered validated)
cloirec's avatar
cloirec committed

For running and validating the simulation, one should be able to do:
```
cd testcase_XXX
./prepare.sh compile_dir_name (ex : ./prepare.sh compile_02-07-20-09-45-52)
./run.sh run_dir_name (ex : ./run.sh run_02-07-20-09-52-08_compile_02-07-20-09-45-52)
./validate.sh run_dir_name (ex : ./validate.sh run_02-07-20-09-52-08_compile_02-07-20-09-45-52)
cloirec's avatar
cloirec committed
```
And getting no error code returned.
Those steps can also be used in a batch file for running the simulation using a job scheduler.


cloirec's avatar
cloirec committed
Bench description run and assessment:
-------------------------------------

The aim of the test case called testcase_ion_channel_small is to validate the compilation and to check that gromacs can be run on the target machine. It is not part of the evaluation.

The target machine will be evaluated by the case called testcase_BSG_large. This test case must be run with 560 MPI tasks and the performance of the target machine will be evaluated by the ns/day criteria.