Skip to content

Run instructions

Sam Reeve edited this page Jun 16, 2020 · 7 revisions

CabanaMD compiles both a library (CabanaMD) and an executable (cbnMD).

A LAMMPS style input file is the only required input. For example, running with the default (serial) Kokkos backend:

export OMP_NUM_THREADS=10
mpiexec -n 10 build/bin/cbnMD -il input/in.lj

Both Lennard-Jones (LJ) and Behler-Parinello style neural network potential (NNP) nickel examples are provided within the repository. For example, running LJ with OpenMP:

export OMP_NUM_THREADS=4
mpiexec -n 10 build/bin/cbnMD -il input/in.lj --device-type OPENMP

Or running NNP with CUDA:

mpiexec -n 4 build/bin/cbnMD -il input/in.nnp --device-type CUDA

Other options

All command line options can be shown with the -h flag:

mpiexec -n 1 build/bin/cbnMD -h


Options:
  -il [FILE] (OR)
  --input-lammps [FILE]:    Provide LAMMPS input file

  --device-type [TYPE]:     Kokkos device type to run with
                                (SERIAL, OPENMP, CUDA, HIP)
  --layout-type [TYPE]:     Number of AoSoA for particle properties
                                (1AOSOA, 2AOSOA, 6AOSOA)
  --nnp-layout-type [TYPE]: Number of AoSoA for neural network potential particle properties
                                (1AOSOA, 3AOSOA)
  --force-iteration [TYPE]: Specify iteration style for force calculations
                                (NEIGH_FULL, NEIGH_HALF)
  --neigh-parallel [TYPE]:  Specify neighbor parallelism and, if applicable, angular neighbor parallelism
                                (SERIAL, TEAM, TEAM_VECTOR)
  --neigh-type [TYPE]:      Specify Neighbor Routines implementation 
                                (VERLET_2D, VERLET_CSR, TREE)
  --dumpbinary [N] [PATH]:  Request that binary output files PATH/output* be generated every N steps
                                (N = positive integer)
                                (PATH = location of directory)
  --correctness [N] [PATH] [FILE]: Request that correctness check against files PATH/output* be performed every N steps, correctness data written to FILE
                                (N = positive integer)
                                (PATH = location of directory)

This includes options for data layouts, parallelism, and algorithms. Some options are not allowed or not applicable based on underlying optional libraries (see Build Instructions).

Clone this wiki locally