LAMMPS

Overview

  • LAMMPS: Molecular Dynamics Simulator: LAMMPS is a classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for solid-state materials (metals, semiconductors) and soft matter (biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be used to model atoms or, more generically, as a parallel particle simulator at the atomic, meso, or continuum scale.

    • LAMMPS Documentation

    • LAMMPS is built with a number of packages. If a required package isn't installed please contact ARCC and request what you need.

Using

Use the module name lammps to discover versions available and to load the application.

Multicore

The lmp command can be used across multiple nodes (mpi) and cores (openmp). In general you can simply use the srun command. There is an early version on Teton that requires mpirun - see the table below.

General Rules

  • You have to request, allocate, and match the number of MPI slots for LAMMPS.

  • Use the three parameters: nodesntasks-per-node, and cpus-per-task:

    • nodes x ntasks-per-node defines the number of slots.

    • cpus-per-task defines the number of OpenMP threads.

  • By default, only one OpenMP thread is used. If you wish to increase this you must define and set the OMP_NUM_THREADS environment variable.

    • Use: export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

Beartooth Update History

Module Version

LAMMPS Stable Version

Packages Enabled

Module Version

LAMMPS Stable Version

Packages Enabled

20230118

22 Dec 2022

ADIOS, ATC, DIFFRACTION, KSPACE, MANYBODY, MEAM, ML-IAP, MOLECULE, REAXFF, REPLICA, RIGID and VORONOI

20220623

23 Jun 2022

ADIOS, ATC, DIFFRACTION, KSPACE, MANYBODY, MEAM, MOLECULE, REAXFF, REPLICA, RIGID and VORONOI

Teton Update History:

Module Version

LAMMPS Stable Version

Packages Enabled

Module Version

LAMMPS Stable Version

Packages Enabled

20220623

23 Jun 2022

ADIOS, ATC, DIFFRACTION, KSPACE, MANYBODY, MEAM, MOLECULE, REAXFF, REPLICA, RIGID, and VORONOI

srun lmp -in SC.in

20210809

29 Oct 2020

KSPACE, MANYBODY, MOLECULE, RIGID, REPLICA, USER-ADIOS, USER-ATC, USER-DIFFRACTION, USER-MEAMC, USER-REAXC and VORONOI

20201001

3 Mar 2020

KSPACE, MANYBODY, MOLECULE, RIGID, REPLICA, USER-ADIOS, USER-ATC, USER-MEAMC, USER-REAXC and VORONOI

Note: CPM fails to build with the later version of LAMMPS.

20200324

 

CPM, KSPACE, MANYBODY, MOLECULE, RIGID, USER-ADIOS, USER-ATC, USER-MEAMC, USER-REAXC, and VORONOI

20200305

 

CPM, KSPACE, MANYBODY, MOLECULE, USER-ADIOS, USER-ATC, USER-MEAMC, USER-REAXC, and VORONOI

20200227

 

MANYBODY, MOLECULE, VORONOI, USER-ATC, USER-MEAMC, USER-REAXC, and USER-ADIOS

20190807

 

MOLECULE and USER-REAXC

#SBATCH --nodes=1 #SBATCH --ntasks-per-node=16 mpirun -np 16 lmp -in SC.in #SBATCH --nodes=2 #SBATCH --ntasks-per-node=32 mpirun -np 64 lmp -in SC.in #SBATCH --nodes=4 #SBATCH --ntasks-per-node=16 #SBATCH --cpus-per-task=2 export OMP_NUM_THREADS=2 TOTAL_NP=$(($SLURM_JOB_NUM_NODES*$SLURM_CPUS_ON_NODE/$SLURM_CPUS_PER_TASK)) mpirun -np $TOTAL_NP lmp -in SC.in

Using Version 20201001 with REPLICA Package

Details of the Multi-replica simulations:

To run this on Teton, the value of the partition configuration must match the total number of tasks requested. For example:

srun lmp -partition 4x1 -in in.neb.hop1

So, with 4x1 = 4 then you’ll need to request four tasks, which can be requested in a number of nodes/ntasks_per_node configurations:

In each case nodes x ntasks-per-node: = 4

If you require:

Then you’ll need a total of 3x3=9 tasks.

Which one to choose? This will depend on:

  • How many cpus-per-task you request, where ntasks-per-node x cpus-per-task is the total number of cores required on a node, will determine which nodes you are allocated.

  • How much memory is required per task.