This directory and its sub-directories contain machine Makefiles for
LAMMPS. The use of machine Makefiles and their settings are discussed
in Section 2 of the manual.
If you are new to LAMMPS, try the Makefile.mpi or Makefile.serial file
in this directory first. I.e. "make mpi" or "make serial".
Then you can try files in the sub-directories with more options you
may need, or that are specific to a machine you are running on.
If none of the existing files work, you can edit a file in either
directory to create your own customized Makefile.machine. Put it in
the MINE directory with a new suffix if you want to save it or avoid
conflicts with the Makefiles distributed with LAMMPS.
-----------------------------------
This directory has two generic Makefiles which should work as-is on
many platforms.
Makefile.mpi assumes MPI is installed on your machine
Makefile.serial build without MPI for serial execution (single core)
Makefile.mpi builds with the mpicxx wrapper provided with all MPI
installations. It uses a default compiler. You can see what it is by
type "mpicxx -v". Makefile.mpi should work with whatever version of
MPI is installed (OpenMPI, MPICH, vendor, etc).
Makefile.serial builds without MPI, using the GNU g++ compiler. It
uses the dummy MPI library in src/STUBS. Use
Options/Makefile.icc_serial for the same thing using the Intel icc
compiler instead of g++.
-----------------------------------
The OPTIONS directory has many Makefiles that are examples of
extending either Makefile.mpi or Makefile.serial to enable use of
different Makefile settings, different compilers, different MPIs, and
all the LAMMPS accelerator packages.
--------
These Makefiles derive from src/MAKE/Makefile.mpi with added settings
to illustrate how they can be added to any Makefile.
Makefile.big use of -DLAMMPS_BIGBIG setting
Makefile.fastmgpt optimzations for MGPT package
Makefile.fftw FFTW support for long-range Coulombics (PPPM)
Makefile.jpeg JPEG support for dump image
Makefile.png PNG support for dump image
--------
These Makefiles derive from src/MAKE/Makefile.mpi with added support
for each of the accelerator packages available in LAMMPS.
The INTEL/CPU variants require use of the Intel icc (or icpc) compiler
as the compiler wrapped by mpicxx. Setting this requires a different
syntax for different MPIs.
The KOKKOS/CUDA variants require use of the NVIDIA nvcc compiler as
the compiler wrapped by mpicxx. Setting this requires a different
syntax for different MPIs.
Makefile.opt OPT package, using default MPI
Makefile.omp OPENMP package, using default MPI
Makefile.gpu GPU package, using default MPI
Makefile.intel_cpu_intelmpi INTEL package for CPU with Intel MPI
Makefile.intel_cpu_mpich INTEL package for CPU with MPICH
Makefile.intel_cpu_openmpi INTEL package for CPU with OpenMPI
Makefile.intel_coprocessor INTEL package with Xeon Phi support
Makefile.knl INTEL package with KNL support
Makefile.kokkos_cuda_mpich KOKKOS package with GPU support for MPICH
Makefile.kokkos_cuda_openmpi KOKKOS package with GPU support for OpenMPI
Makefile.kokkos_omp KOKKOS package with OpenMP support
Makefile.kokkos_phi KOKKOS package with Xeon Phi support
--------
These Makefiles derive from src/MAKE/Makefile.mpi and
src/MAKE/Makefile.serial to use specific compilers. This is done by
setting the compiler wrapped by mpicxx (different syntax for different
MPIs). Or it can be done by using the GNU or Intel compiler and
explicitly linking to the appropriate MPI libraries.
Makefile.g++_mpich MPICH mpicxx wraps the GNU g++ compiler
Makefile.g++_mpich_link GNU g++ compiler, linked to MPICH
Makefile.g++_openmpi OpenMPI mpicxx wraps the GNU g++ compiler
Makefile.g++_openmpi_link GNU g++ compiler, linked to OpenMPI
Makefile.icc_mpich MPICH mpicxx wraps the Intel icc compiler
Makefile.icc_mpich_link Intel icc compiler, linked to MPICH
Makefile.icc_openmpi OpenMPI mpicxx wraps the Intel icc compiler
Makefile.icc_openmpi_link Intel icc compiler, linked to OpenMPI
Makefile.pgi_mpich_link Portland group PGI compiler, linked to MPICH
Makefile.g++_serial serial build (no MPI) with GNU g++ compiler
Makefile.icc_serial serial build (no MPI) with Intel icc compiler
------------------------------------
The MACHINE sub-directory has many Makefiles, each of which has been
setup for a specific kind of machine or a specific supercomputer.
Examples include:
Makefile.mac Apple Macintosh
Makefile.xe6 Cray XE6
Makefile.bgq IBM BG/Q
Makefile.stampede U Texas "stampede" machine