How to build LAMMPS with Arm Compiler for HPC.

LAMMPS is a computational chemistry classical molecular dynamics code. LAMMPS is an acronym for Large-scale Atomic Molecular Massively Parallel Simulator.

For the purposes of this build, the following components are used:

 Component Form
 LAMMPS  lammps-stable (11 Aug 2017)
 Arm Compiler for HPC
 Version 18.0
 Arm Performance Libraries  Version 18.0
 Open MPI  Version 2.1.2
 Operating system  RHEL 7.3
 Cavium ThunderX2



  1. Download the LAMMPS source from the LAMMPS repository, unpack the tarball, and change into the unpacked lammps-11Aug17 directory:

    tar zxf lammps-11Aug17.tar.gz
    cd lammps-11Aug17/
  2. Download the Makefile.arm_openmpi and Makefile.arm_serial Makefiles from the LAMMPS Gitlab page.

  3. Copy the downloaded Makefile.arm_openmpi and Makefile.arm_serial Makefiles to the src/MAKE/OPTIONS directory of the unpacked LAMMPS package.

    cp </path/to/>Makefile.arm_openmpi src/MAKE/OPTIONS
    cp </path/to/>Makefile.arm_serial src/MAKE/OPTIONS

    replacing </path/to/> with the path to your downloaded Makefiles.

  4. Configure your environment for Arm Compiler and Arm Performance Libraries:

    module load Generic-AArch64/<Linux_dist>/<dist_version>/arm-hpc-compiler-18.0/armpl/18.0.0

    replacing <Linux_dist> and <dist_version> with your respective Linux distribution and version, respectively. For example, for RHEL v7.3:

    module load Generic-AArch64/RHEL/7.3/arm-hpc-compiler-18.0/armpl/18.0.0
  5. Change to the src directory:

    cd src
  6. Build Open MPI and serial versions of LAMMPS using the lmp_arm_openmpi and lmp_arm_serial Makefiles, respectively:

    • For a basic build, use:

      make -j 64 arm_openmpi
      make clean-all
      cd STUBS
      cd ../
      make arm_serial
    • To build a more complete set of packages, use:

      make yes-std
      make no-lib make -j 64 arm_openmpi make clean-all cd STUBS make cd ../ make -j 64 arm_serial

      Note: These instructions do not build packages requiring external libraries. The executables lmp_arm_openmpi and lmp_arm_serial are produced.

Related information