Commit de723745 authored by gbalduzz's avatar gbalduzz
Browse files

Merge remote-tracking branch 'origin/master' into tweak_accum_memory

parents 8a17c94a dfc5f501
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

If the DCA++ code contributes to your research, we kindly ask to acknowledge this in any resulting scientific publication by citing the following paper:

Urs R. Hähner, Gonzalo Alvarez, Thomas A. Maier, Raffaele Solcà, Peter Staar, Michael S. Summers, and Thomas C. Schulthess (2018).
*DCA++: A software framework to solve correlated electron problems with modern quantum cluster methods.*
Manuscript submitted for publication.
Urs R. Hähner, Gonzalo Alvarez, Thomas A. Maier, Raffaele Solcà, Peter Staar, Michael S. Summers, and Thomas C. Schulthess,
*DCA++: A software framework to solve correlated electron problems with modern quantum cluster methods,*
Comput. Phys. Commun (2019),
10.1016/j.cpc.2019.01.006.
+24 −4
Original line number Diff line number Diff line
@@ -2,19 +2,39 @@
#
# Usage: cmake -C /path/to/this/file /path/to/DCA/source -D<option>=<value> ...

# Prevent CMake from searching for BLAS and LAPACK libraries.
# Paths to IBM's ESSL (preferred) and NETLIB-LAPACK will be set manually.
set(DCA_HAVE_LAPACK TRUE CACHE INTERNAL "If set to TRUE, prevents CMake from searching for LAPACK.")
# To give ESSL precedence it needs to be specified before NETLIB.
set(LAPACK_LIBRARIES $ENV{OLCF_ESSL_ROOT}/lib64/libessl.so;$ENV{OLCF_NETLIB_LAPACK_ROOT}/lib64/liblapack.so;$ENV{OLCF_NETLIB_LAPACK_ROOT}/lib64/libblas.so CACHE FILEPATH "Libraries to link against to use LAPACK.")

# Use jsrun for executing the tests.
set(TEST_RUNNER "jsrun" CACHE STRING "Command for executing (MPI) programs.")
set(MPIEXEC_NUMPROC_FLAG "--np" CACHE STRING
set(MPIEXEC_NUMPROC_FLAG "-a" CACHE STRING
  "Flag used by TEST_RUNNER to specify the number of processes.")
set(MPIEXEC_PREFLAGS "-g1 --smpiargs=none" CACHE STRING
# Use 1 resource set with 1 GPU and 8 cores for executing the tests.
set(MPIEXEC_PREFLAGS "-n 1 -g 1 -c 8" CACHE STRING
  "Flags to pass to TEST_RUNNER directly before the executable to run.")
# The flag "--smpiargs=none" is needed to execute tests with no MPI functionalities.
set(SMPIARGS_FLAG_NOMPI "--smpiargs=none" CACHE STRING
  "Spectrum MPI argument list flag for serial tests.")
# The flag "--smpiargs=-mxm" is a workaround (for now) to execute tests with MPI to avoid tests from failing.
# It uses Mellanox's protocol and bypasses PAMI for MPI communications.
set(SMPIARGS_FLAG_MPI "--smpiargs=-mxm" CACHE STRING "Spectrum MPI argument list flag for MPI tests.")

# Enable the GPU support.
option(DCA_WITH_CUDA "Enable GPU support." ON)

# Compile for Volta compute architecture.
set(CUDA_GPU_ARCH "sm_70" CACHE STRING "Name of the *real* architecture to build for.")

# Summit's static CUDA runtime is bugged.
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)

# For the GPU support we also need MAGMA.
set(MAGMA_DIR $ENV{OLCF_MAGMA_ROOT} CACHE PATH
  "Path to the MAGMA installation directory. Hint for CMake to find MAGMA.")

set(FFTW_DIR $ENV{OLCF_ROOT_FFTW} CACHE PATH
  "Path to the FFTW3 installation directory. Hint for CMake to find FFTW3.")
# FFTW paths.
set(FFTW_INCLUDE_DIR $ENV{OLCF_FFTW_ROOT}/include CACHE PATH "Path to fftw3.h.")
set(FFTW_LIBRARY $ENV{OLCF_FFTW_ROOT}/lib/libfftw3.so CACHE FILEPATH "The FFTW3(-compatible) library.")
+19 −0
Original line number Diff line number Diff line
#!/bin/bash
#
# Loads all modules that are required to build DCA++ on ORNL's Summit supercomputer.
# A reset is done at the beginning to restore to the default programming environment on Summit.
#
# Usage: source summit_load_modules.sh

module reset
module load gcc/6.4.0
module load cuda
module load hdf5
module load fftw
module load cmake
module load magma
module load netlib-lapack
module load essl

export CC=mpicc
export CXX=mpicxx
+1 −2
Original line number Diff line number Diff line
@@ -117,8 +117,7 @@ if (DCA_PROFILER STREQUAL "Counting")
  set(DCA_PROFILER_INCLUDE "dca/profiling/counting_profiler.hpp")

elseif (DCA_PROFILER STREQUAL "PAPI")
  # TODO: Replace long long with std::size_t?
  set(DCA_PROFILING_EVENT_TYPE "dca::profiling::papi_and_time_event<long long>")  # Need quotes because of space in 'long long'.
  set(DCA_PROFILING_EVENT_TYPE "dca::profiling::PapiAndTimeEvent")
  set(DCA_PROFILING_EVENT_INCLUDE "dca/profiling/events/papi_and_time_event.hpp")
  set(DCA_PROFILER_TYPE dca::profiling::CountingProfiler<Event>)
  set(DCA_PROFILER_INCLUDE "dca/profiling/counting_profiler.hpp")
+2 −2
Original line number Diff line number Diff line
@@ -117,13 +117,13 @@ function(dca_add_gtest name)

    add_test(NAME ${name}
             COMMAND ${TEST_RUNNER} ${MPIEXEC_NUMPROC_FLAG} ${DCA_ADD_GTEST_MPI_NUMPROC}
                     ${MPIEXEC_PREFLAGS} "$<TARGET_FILE:${name}>")
                     ${MPIEXEC_PREFLAGS} ${SMPIARGS_FLAG_MPI} "$<TARGET_FILE:${name}>")
                 target_link_libraries(${name} ${MPI_C_LIBRARIES})
  else()
    if (TEST_RUNNER)
      add_test(NAME ${name}
               COMMAND ${TEST_RUNNER} ${MPIEXEC_NUMPROC_FLAG} 1
	               ${MPIEXEC_PREFLAGS} "$<TARGET_FILE:${name}>")
	               ${MPIEXEC_PREFLAGS} ${SMPIARGS_FLAG_NOMPI} "$<TARGET_FILE:${name}>")
    else (TEST_RUNNER)
      add_test(NAME ${name}
               COMMAND "$<TARGET_FILE:${name}>")
Loading