lammps/src/MAKE51a06334ad84master
README
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 USER-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 USER-OMP package, using default MPI Makefile.gpu GPU package, using default MPI
Makefile.intel_cpu_intelmpi USER-INTEL package for CPU with Intel MPI Makefile.intel_cpu_mpich USER-INTEL package for CPU with MPICH Makefile.intel_cpu_openmpi USER-INTEL package for CPU with OpenMPI Makefile.intel_coprocessor USER-INTEL package with Xeon Phi support Makefile.knl USER-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