ORNL cades-virtues上编译 RMG/ Compile RMG on Cades-virtues at ORNL
System information:
Linux version 3.10.0-327.4.4.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Tue Jan 5 16:07:00 UTC 2016
Step 1: Load all required modules (All other modules have been compiled separately, and will be found by cmake later).
module load cmake/3.6.1
Step 2: Modify CMakeFindRootPath.inc file in source code directory: add all separately compiled modules' paths here.
set(CMAKE_FIND_ROOT_PATH /software/user_tools/current/cades-virtues/apps/fftw/gcc5/3.3.4/ /software/tools/spack/opt/spack/linux-x86_64/gcc-4.8.5/openblas-0.2.15-f74b2gb6oq6bdcwpewkbbgake2rbe25z /home/z8j/softwares/pfft /home/z8j/softwares/spglib-1.9.5 /home/z8j/softwares/libxc-2.2.3 /home/z8j/softwares/bzip2-1.0.6
/home/z8j/softwares/scalapack-2.0.2/build
)
Step 3: Modify cmake/Modules/FindFFTW.cmake. There is an error linking FFTW library if we use static libray here, so we need to make sure that cmake find the shared library of FFTW(While in other cases, we will have to use static library, which I am also confused).
# - Find FFTW # Find the native FFTW3 includes and library # # FFTW_INCLUDES - where to find fftw3.h # FFTW_LIBRARIES - List of libraries when using FFTW3. # FFTW_FOUND - True if FFTW3 found. if (FFTW_INCLUDES) # Already in cache, be silent set (FFTW_FIND_QUIETLY TRUE) endif (FFTW_INCLUDES) find_path (FFTW_INCLUDES fftw3.h) if(NOT FFTW_INCLUDES) find_path (FFTW_INCLUDES dfftw3.h) endif(NOT FFTW_INCLUDES) find_library (FFTW_LIBRARIES NAMES dfftw3) if(NOT FFTW_LIBRARIES) find_library (FFTW_LIBRARIES NAMES libfftw3.a) endif(NOT FFTW_LIBRARIES) if(NOT FFTW_LIBRARIES) find_library (FFTW_LIBRARIES NAMES fftw3) endif(NOT FFTW_LIBRARIES) find_library (FFTW_MPI_LIBRARIES NAMES libfftw3_mpi.so) # handle the QUIETLY and REQUIRED arguments and set FFTW_FOUND to TRUE if # all listed variables are TRUE include (FindPackageHandleStandardArgs) find_package_handle_standard_args (FFTW DEFAULT_MSG FFTW_LIBRARIES FFTW_INCLUDES) mark_as_advanced (FFTW_LIBRARIES FFTW_INCLUDES)
Step 4: run following commands in order.
cmake . make -j 4 rmg-cpu