LAMMPS
LAMMPS is a "Molecular Dynamics Simulator" which supports a wide variety of different force fields. CSC does not have a general purpose installation of LAMMPS, as each user typically needs a little bit customised version. Please read below how to create yours.
Available
- Puhti: Instructions and Makefile available for building in
/appl/soft/chem/lammps/
- Mahti: Instructions and Makefile available for building in
/appl/soft/chem/lammps/
License
LAMMPS is an open-source code, distributed freely under the terms of the GNU Public License (GPL).
Usage
Don't use prebuilt binaries, but take a look at the instructions for configuring and compiling LAMMPS on Puhti or Mahti for optimal performance.
- Navigate to
/appl/soft/chem/lammps/
on Puhti or Mahti - If you can't find a pre-downloaded source code (e.g.
lammps-stable.tar.gz
) or a suitable LAMMPS version, download it yourself from the LAMMPS home page. - Read the compilation instructions, e.g.
lammps-puhti-instruction.txt
- Configure the packages you want to include and compile the software
Please compile in $TMPDIR
for faster performance and less load on the shared filesystem. After
compiling, move your files to /projappl/<project code>
(the local disk is cleaned frequently).
Consult these pages on how to create batch jobs on
Puhti and on
Mahti.
If you encounter problems compiling LAMMPS, don't hesitate to contact CSC Service Desk.
High-throughput computing with LAMMPS
LAMMPS offers comprehensive support for executing loops and multiple independent simulations using a
single input file. The -partition
command-line switch enables running these concurrently within a
single Slurm job step, thus accelerating the computations while keeping the load on the batch queue
system minimal as excessive calls of srun
or sbatch
are avoided. An example LAMMPS batch script
using the -partition
option is provided below.
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=00:15:00
#SBATCH --nodes=3
#SBATCH --ntasks-per-node=40
#SBATCH --mem-per-cpu=100
export PATH=$PATH:/path/to/lmp_puhti
srun lmp_puhti -in loop.lammps -partition 24x5
The above example runs an umbrella sampling simulation of ethanol adsorption on a NaCl surface in
accordance with this LAMMPS tutorial.
The simulation consists of 24 iterations where the ethanol molecule is gradually pulled closer to
the surface. These 24 iterations are all run concurrently using 5 MPI tasks each, which is specified
in the batch script as -partition 24x5
. The number of processors must add up to the amount
requested, in this case 3 full Puhti nodes (120 cores). In general, the partitions do not have
to be of equal size, but one could for example specify -partition 3x30 20 10
for 3 partitions of
30 cores, one of 20 cores and one of 10 cores (3 Puhti nodes). This does of course not make
sense for jobs where the subtasks are virtually identical such as here.
If the -partition
switch is used one needs to replace the usual index
and loop
variable styles
used in the input of sequential simulations. The corresponding styles compatible with multi-partition
jobs are world
, universe
and uloop
. For further details, see the LAMMPS documentation on
running multiple simulations from one input script,
the partition switch and variable styles
compatible with multi-partition jobs.
References
The following JCP paper is the canonical reference to use for citing LAMMPS. It describes the parallel spatial-decomposition, neighbor-finding, and communcation algorithms used in the code. Please also give the URL of the LAMMPS website in your paper, namely http://lammps.sandia.gov.
- S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995)
References to other methods used in LAMMPS can be found here
More information
- LAMMPS home page: https://lammps.sandia.gov/