-
Notifications
You must be signed in to change notification settings - Fork 14
Run instructions
CabanaMD compiles both a library (CabanaMD
) and an executable (cbnMD
).
A LAMMPS style input file is the only required input. By default, CabanaMD runs with the default enabled Kokkos backend (https://github.com/kokkos/kokkos/wiki/Initialization):
mpiexec -n 10 build/bin/cbnMD -il input/in.lj
Both Lennard-Jones (LJ) and Behler-Parrinello style neural network potential (NNP) nickel examples are provided within the repository. Kokkos backends that are enabled, but not the default, can also be used with command line flags. For example, running LJ with OpenMP:
export OMP_NUM_THREADS=4
mpiexec -n 10 build/bin/cbnMD -il input/in.lj --device-type OPENMP
Running NNP with CUDA:
mpiexec -n 4 build/bin/cbnMD -il input/in.nnp --device-type CUDA
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)
--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_2D, TREE_CSR)
--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 parallelism, and algorithms. Some options are not allowed or not applicable based on underlying optional libraries (see Build Instructions).
Using Cabana::neighbor_parallel_for
- Lennard-Jones
- Neural network (Behler-Parrinello)
Using Cabana::NeighborList
- Verlet list
- ArborX based tree list
- Full or half lists
- 2D or CSR (compressed sparse row) layouts
Using Kokkos::parallel_for
- NVE (constant energy velocity-Verlet)
Using Cabana::Distributor
and Cabana::Halo
- MPI
Using Cabana::LinkedCellList
- Linked cell list spatial sort
- Restricted LAMMPS input files
- Command line options
While LAMMPS style input files are the main input to CabanaMD, most LAMMPS commands are not available. Warnings and errors are issued for those unsupported commands, but it should be noted that the ordering of LAMMPS commands is not enforced.