Use MPI::MPI_CXX target and rely on dependency.

This commit is contained in:
Ye Luo 2020-02-06 15:40:41 +08:00
parent 4d564edc9c
commit 65609be789
38 changed files with 140 additions and 153 deletions

View File

@ -182,8 +182,12 @@ IF ( DEFINED QMC_MPI )
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DQMC_MPI=${QMC_MPI}" )
ENDIF()
IF ( DEFINED MPIEXEC )
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DMPIEXEC=${MPIEXEC}" )
IF ( DEFINED MPIEXEC_EXECUTABLE )
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DMPIEXEC_EXECUTABLE=${MPIEXEC_EXECUTABLE}" )
ENDIF()
IF ( DEFINED MPIEXEC_NUMPROC_FLAG )
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DMPIEXEC_NUMPROC_FLAG=${MPIEXEC_NUMPROC_FLAG}" )
ENDIF()
IF ( DEFINED MPIEXEC_PREFLAGS )

View File

@ -86,11 +86,11 @@ FUNCTION( RUN_QMC_APP_NO_COPY TESTNAME WORKDIR PROCS THREADS TEST_ADDED TEST_LAB
MATH( EXPR TOT_PROCS "${PROCS} * ${THREADS}" )
SET( QMC_APP "${qmcpack_BINARY_DIR}/bin/qmcpack" )
SET( TEST_ADDED_TEMP FALSE )
IF ( USE_MPI )
IF ( HAVE_MPI )
IF ( ${TOT_PROCS} GREATER ${TEST_MAX_PROCS} )
MESSAGE_VERBOSE("Disabling test ${TESTNAME} (exceeds maximum number of processors ${TEST_MAX_PROCS})")
ELSEIF ( USE_MPI )
ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${ARGN} )
ELSE()
ADD_TEST( ${TESTNAME} ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${ARGN} )
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}"
PROCESSORS ${TOT_PROCS} PROCESSOR_AFFINITY TRUE WORKING_DIRECTORY ${WORKDIR}
ENVIRONMENT OMP_NUM_THREADS=${THREADS} )

View File

@ -11,7 +11,7 @@ IF (QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS)
ELSE (QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS)
FUNCTION( ADD_QE_TEST TESTNAME PROCS TEST_BINARY NPOOL WORKDIR TEST_INPUT)
IF ( USE_MPI )
IF ( HAVE_MPI )
ADD_TEST( NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${TEST_BINARY} -npool ${NPOOL} -inp ${TEST_INPUT} )
ELSE()
ADD_TEST( NAME ${TESTNAME} COMMAND ${TEST_BINARY} -npool 1 ${TEST_INPUT} )

View File

@ -4,7 +4,7 @@ INCLUDE("${PROJECT_SOURCE_DIR}/CMake/test_labels.cmake")
# Runs unit tests
FUNCTION( ADD_UNIT_TEST TESTNAME TEST_BINARY )
MESSAGE_VERBOSE("Adding test ${TESTNAME}")
IF ( USE_MPI )
IF ( HAVE_MPI )
ADD_TEST(NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 ${MPIEXEC_PREFLAGS} ${TEST_BINARY} ${ARGN})
#SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES ENVIRONMENT OMP_NUM_THREADS=1 )
ELSE()
@ -18,7 +18,7 @@ ENDFUNCTION()
FUNCTION( ADD_MPI_UNIT_TEST TESTNAME TEST_BINARY PROC_COUNT )
MESSAGE_VERBOSE("Adding test ${TESTNAME}")
IF ( USE_MPI )
IF ( HAVE_MPI )
ADD_TEST(NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROC_COUNT} ${MPIEXEC_PREFLAGS} ${TEST_BINARY} ${ARGN})
# Tests should be able to deal with any number of threads but mpi aware unit tests aren't
# guaranteed yet.

View File

@ -1,7 +1,7 @@
######################################################################
# CMake version and policies
######################################################################
CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0)
CMAKE_MINIMUM_REQUIRED(VERSION 3.10.0)
cmake_policy(SET CMP0003 NEW)
IF(NOT $ENV{CRAYPE_VERSION} MATCHES ".")
@ -338,16 +338,18 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
MESSAGE(STATUS "Running on a Cray machine.")
SET(CMAKE_SKIP_RPATH TRUE)
# Flags for ctest
IF(NOT DEFINED MPIEXEC)
FIND_PROGRAM(MPIEXEC aprun)
IF(NOT MPIEXEC)
# For slurm use srun
FIND_PROGRAM(MPIEXEC srun)
ENDIF(NOT MPIEXEC)
IF(NOT $ENV{CRAYPE_LINK_TYPE} STREQUAL "dynamic")
MESSAGE(WARNING "Cray Programming Environment uses static linking by default. "
"We prefer dynamic linking which makes library searching easier. "
"Set environment variable CRAYPE_LINK_TYPE to \"dynamic\" enables dynamic linking.\n")
ENDIF()
IF(NOT DEFINED MPIEXEC_NUMPROC_FLAG)
SET(MPIEXEC_NUMPROC_FLAG "-n")
IF ( NOT DEFINED MPIEXEC_EXECUTABLE )
FIND_PROGRAM(MPIEXEC_EXECUTABLE aprun)
IF(NOT MPIEXEC_EXECUTABLE)
# For slurm use srun
FIND_PROGRAM(MPIEXEC_EXECUTABLE srun)
ENDIF(NOT MPIEXEC_EXECUTABLE)
ENDIF()
IF(QMC_CUDA)
@ -433,53 +435,6 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
#---------------------------------------------------
include(CMake/TestCxx14Library.cmake)
#-------------------------------------------------------------------
# check MPI installation
#-------------------------------------------------------------------
IF(QMC_MPI)
## mpi compilers
GET_FILENAME_COMPONENT(BASE_CXX_COMPILER_NAME ${CMAKE_CXX_COMPILER} NAME)
if(${BASE_CXX_COMPILER_NAME} MATCHES "^mp")
SET(HAVE_MPI 1)
SET(MPI_FOUND TRUE)
elseif($ENV{CRAYPE_VERSION} MATCHES ".")
SET(HAVE_MPI 1)
SET(MPI_FOUND TRUE)
else()
include(FindMPI)
IF(MPI_FOUND)
MESSAGE(STATUS "Found mpi.h and libraries. Check for working mpi compiler ")
INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
"#include <mpi.h>"
"int main(int argc, char** argv){MPI_Init(&argc,&argv); MPI_Finalize();return 0;}\n")
#TRY_COMPILE(MPI_WORKS ${CMAKE_BINARY_DIR}
#${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
#OUTPUT_VARIABLE OUTPUT)
set(MPI_WORKS 1)
SET(MPI_WARNING_LIST
"Building MPI version without using MPI compiler wrappers.\n"
"This may not build qmcpack correctly. To ensure the correct version, specify the compiler wrappers to cmake.\n"
"For example: cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpic++\n"
"To build without MPI, pass '-DQMC_MPI=0' to cmake")
MESSAGE(WARNING ${MPI_WARNING_LIST})
IF(MPI_WORKS)
MESSAGE(STATUS "MPI is enabled")
SET(HAVE_MPI 1)
LINK_LIBRARIES(${MPI_CXX_LIBRARIES})
ELSE(MPI_WORKS)
MESSAGE(STATUS "MPI is disabled")
SET(HAVE_MPI 0)
SET(MPI_LIBRARY "")
ENDIF(MPI_WORKS)
ELSE(MPI_FOUND)
MESSAGE(STATUS "MPI not found")
SET(MPI_LIBRARY "")
ENDIF(MPI_FOUND)
ENDIF()
ENDIF(QMC_MPI)
#-------------------------------------------------------------------
# check lapack/blas
#-------------------------------------------------------------------
@ -540,30 +495,47 @@ IF (BUILD_AFQMC AND NOT APPLE)
LINK_LIBRARIES("rt")
ENDIF()
# setup ctest variables
IF ( HAVE_MPI )
SET( USE_MPI 1 )
IF ( NOT DEFINED MPIEXEC )
SET( MPIEXEC "mpirun" )
#-------------------------------------------------------------------
# check MPI installation
#-------------------------------------------------------------------
IF(QMC_MPI)
#SET(MPI_CXX_SKIP_MPICXX TRUE) # we should enable this but currently cannot due to formic needs.
SET(MPI_DETERMINE_LIBRARY_VERSION TRUE)
FIND_PACKAGE(MPI COMPONENTS CXX)
IF(NOT MPI_FOUND)
MESSAGE(FATAL_ERROR "MPI support not found! Provide MPI compiler wrappers or build without MPI by passing '-DQMC_MPI=0' to cmake.")
ENDIF(NOT MPI_FOUND)
IF(${MPI_CXX_LIBRARY_VERSION_STRING} MATCHES "MVAPICH2" AND NOT ${MPI_CXX_LIBRARY_VERSION_STRING} MATCHES "disable-registration-cache")
MESSAGE(FATAL_ERROR "MVAPICH2 with registration cache enabled breaks QMCPACK. "
"Use a different MPI library or build MVAPICH2 with --disable-registration-cache configure option.")
ENDIF()
IF ( NOT DEFINED MPIEXEC_NUMPROC_FLAG )
SET( MPIEXEC_NUMPROC_FLAG "-np" )
ENDIF()
IF ( NOT DEFINED MPIEXEC_PREFLAGS )
SET( MPIEXEC_PREFLAGS "" )
IF(NOT ${CMAKE_CXX_COMPILER} STREQUAL ${MPI_CXX_COMPILER})
SET(MPI_WARNING_LIST
"Building MPI version without using MPI compiler wrappers.\n"
"This may not build qmcpack correctly. To ensure the correct version, specify the compiler wrappers to cmake.\n"
"For example: cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpic++\n"
"To build without MPI, pass '-DQMC_MPI=0' to cmake")
MESSAGE(WARNING ${MPI_WARNING_LIST})
ENDIF()
IF ( NOT TEST_MAX_PROCS )
SET( TEST_MAX_PROCS 100 )
ENDIF()
MESSAGE(STATUS "MPI runner is ${MPIEXEC}")
MESSAGE(STATUS "MPIEXEC_NUMPROC_FLAG is ${MPIEXEC_NUMPROC_FLAG}")
ENDIF(HAVE_MPI)
MESSAGE(STATUS "MPI runner MPIEXEC_EXECUTABLE : ${MPIEXEC_EXECUTABLE}")
MESSAGE(STATUS "MPIEXEC_NUMPROC_FLAG : ${MPIEXEC_NUMPROC_FLAG}")
MESSAGE(STATUS "MPIEXEC_PREFLAGS : ${MPIEXEC_PREFLAGS}")
MESSAGE(STATUS "Tests run as : ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} NUM_PROCS ${MPIEXEC_PREFLAGS} EXECUTABLE")
INCLUDE(${CMAKE_ROOT}/Modules/FindThreads.cmake)
SET(HAVE_MPI 1)
MESSAGE(STATUS "MPI is enabled")
ELSE(QMC_MPI)
SET(HAVE_MPI 0)
MESSAGE(STATUS "MPI is disabled")
ENDIF(QMC_MPI)
####################################################################
#First check the required libraries. Abort if these are not found.
@ -615,9 +587,9 @@ ELSE()
MESSAGE(FATAL_ERROR "Could not find required library Libxml2")
ENDIF(LIBXML2_FOUND)
####################################################################
# set up HDF5 library
####################################################################
#-------------------------------------------------------------------
# set up HDF5 library
#-------------------------------------------------------------------
IF(HAVE_MPI)
SET(HDF5_PREFER_PARALLEL 1 CACHE BOOL "Request parallel/serial HDF5 library")
ELSE(HAVE_MPI)

View File

@ -12,11 +12,13 @@ export CRAYPE_LINK_TYPE=dynamic
TYPE=Release
Compiler=Intel
CURRENT_FOLDER=`pwd`
for name in real_AoS_legacy real_MP_AoS_legacy cplx_AoS_legacy cplx_MP_AoS_legacy \
real real_MP cplx cplx_MP
do
CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=$TYPE"
CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=$TYPE -D MPIEXEC_EXECUTABLE=/bin/sh -D MPIEXEC_NUMPROC_FLAG=$CURRENT_FOLDER/tests/scripts/aprunhelper.sh"
if [[ $name == *"cplx"* ]]; then
CMAKE_FLAGS="$CMAKE_FLAGS -D QMC_COMPLEX=1"

View File

@ -26,10 +26,12 @@ export BOOST_ROOT=/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914
TYPE=Release
Compiler=XL
CURRENT_FOLDER=`pwd`
for name in offload_real_MP offload_real # offload_cplx offload_cplx_MP
do
CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=$TYPE -D ENABLE_CUDA=1 -D CUDA_ARCH=sm_70 -DENABLE_MASS=1 -DMASS_ROOT=/sw/summit/xl/16.1.1-5/xlmass/9.1.1"
CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=$TYPE -D ENABLE_CUDA=1 -D CUDA_ARCH=sm_70 -D ENABLE_MASS=1 -D MASS_ROOT=/sw/summit/xl/16.1.1-5/xlmass/9.1.1 -D MPIEXEC_EXECUTABLE=/bin/sh -D MPIEXEC_NUMPROC_FLAG=$CURRENT_FOLDER/tests/scripts/jsrunhelper.sh"
if [[ $name == *"cplx"* ]]; then
CMAKE_FLAGS="$CMAKE_FLAGS -D QMC_COMPLEX=1"
fi

View File

@ -70,6 +70,9 @@ ELSE(ENABLE_CUDA)
ENDIF(ENABLE_CUDA)
TARGET_LINK_LIBRARIES(afqmc PUBLIC qmcutil)
IF(HAVE_MPI)
TARGET_COMPILE_DEFINITIONS(afqmc PRIVATE "USE_MPI")
ENDIF(HAVE_MPI)
IF (BUILD_UNIT_TESTS)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/external_codes/catch)

View File

@ -18,7 +18,7 @@ SET(UTEST_DIR ${qmcpack_BINARY_DIR}/tests/afqmc/Estimators)
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")
ADD_EXECUTABLE(${UTEST_EXE} test_estimators.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS})
LIST(LENGTH AFQMC_UNIT_TEST_INPUTS NUM_PAIRS)
MATH(EXPR ENDP "${NUM_PAIRS}-1")

View File

@ -18,7 +18,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")
ADD_EXECUTABLE(${UTEST_EXE} test_hamiltonian_operations.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
IF (QMC_COMPLEX)
SET(UTEST_NAME deterministic-unit_test_${SRC_DIR}_ham_chol_uc_wfn_rhf)
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}"

View File

@ -21,7 +21,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")
ADD_EXECUTABLE(${UTEST_EXE} test_hamiltonian_factory.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
SET(UTEST_NAME deterministic-unit_test_${SRC_DIR}_ham_chol_uc)

View File

@ -19,7 +19,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_csr_matrix.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${QMCPACK_UNIT_TEST_DIR})

View File

@ -16,7 +16,7 @@ SET(UTEST_EXE test_${SRC_DIR})
SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_shm_gemm.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -25,7 +25,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_dense_numerics.cpp test_ma_blas.cpp
test_sparse_numerics.cpp test_sparse_numerics_native.cpp)
#ENDIF(ENABLE_CUDA)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -19,7 +19,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")
ADD_EXECUTABLE(${UTEST_EXE} test_propagator_factory.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
LIST(LENGTH AFQMC_UNIT_TEST_INPUTS NUM_PAIRS)
MATH(EXPR ENDP "${NUM_PAIRS}-1")

View File

@ -20,7 +20,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_sdet_ops.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${QMCPACK_UNIT_TEST_DIR})

View File

@ -20,7 +20,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_sharedwset.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${QMCPACK_UNIT_TEST_DIR})

View File

@ -20,7 +20,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")
ADD_EXECUTABLE(${UTEST_EXE} test_wfn_factory.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil
${QMC_UTIL_LIBS} ${MPI_LIBRARY})
${QMC_UTIL_LIBS})
LIST(LENGTH AFQMC_UNIT_TEST_INPUTS NUM_PAIRS)
MATH(EXPR ENDP "${NUM_PAIRS}-1")
FOREACH(I RANGE 0 ${ENDP} 2)
@ -38,7 +38,7 @@ ENDFOREACH()
IF(NOT QMC_COMPLEX)
SET(UTEST_EXE test_afqmc_phmsd)
ADD_EXECUTABLE(${UTEST_EXE} test_phmsd.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} afqmc qmcutil ${QMC_UTIL_LIBS})
SET(UTEST_NAME deterministic-unit_test_afqmc_phmsd)
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}"
"--hamil ${qmcpack_SOURCE_DIR}/tests/afqmc/Be_sto-3g/qmcpack.h5 "

View File

@ -177,6 +177,10 @@ ENDIF()
TARGET_LINK_LIBRARIES(qmcutil PRIVATE ${CUDA_LIBRARIES})
ENDIF(HAVE_CUDA)
IF(HAVE_MPI)
TARGET_LINK_LIBRARIES(qmcutil PUBLIC MPI::MPI_CXX)
ENDIF()
# For unit tests, enable use for the fake RNG
FUNCTION( USE_FAKE_RNG TARGET )
TARGET_COMPILE_DEFINITIONS(${TARGET} PRIVATE "USE_FAKE_RNG")

View File

@ -27,7 +27,7 @@ SET(SRCS test_accumulator.cpp test_local_energy_est.cpp test_manager.cpp test_tr
ADD_EXECUTABLE(${UTEST_EXE} ${SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcham qmcwfs qmcbase qmcutil qmcdriver ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcham qmcwfs qmcbase qmcutil qmcdriver ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -17,6 +17,6 @@ SET(UTEST_EXE test_${SRC_DIR})
SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_communciate.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -30,7 +30,7 @@ SET(UTEST_SRCS test_grid_functor.cpp test_stdlib.cpp test_bessel.cpp
ADD_EXECUTABLE(${UTEST_EXE} ${UTEST_SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -17,7 +17,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_particle.cpp test_distance_table.cpp test_walker.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -19,7 +19,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_particle_attrib.cpp test_random_seq.cpp test_attrib_ops.cpp)
USE_FAKE_RNG(${UTEST_EXE})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -17,7 +17,7 @@ SET(UTEST_EXE test_${SRC_DIR})
SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_xml_io.cpp test_lattice_parser.cpp test_xml_mass.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcbase qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -57,9 +57,5 @@ FOREACH(l ${QMC_UTIL_LIBS})
TARGET_LINK_LIBRARIES(qmcpack ${l})
ENDFOREACH(l ${QMC_UTIL_LIBS})
IF(MPI_LIBRARY)
TARGET_LINK_LIBRARIES(qmcpack ${MPI_LIBRARY})
ENDIF(MPI_LIBRARY)
INSTALL(TARGETS qmcpack
RUNTIME DESTINATION bin)

View File

@ -34,8 +34,8 @@ ELSE(QMC_CUDA)
ENDIF(QMC_CUDA)
#USE_FAKE_RNG(${UTEST_EXE})
#TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
#TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -37,7 +37,7 @@ ENDIF()
ADD_EXECUTABLE(${UTEST_EXE} ${DRIVER_TEST_SRC})
USE_FAKE_RNG(${UTEST_EXE})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${UTEST_DIR})
@ -57,7 +57,7 @@ IF(NOT QMC_CUDA AND ENABLE_SOA)
SET(DRIVER_TEST_SRC SetupPools.cpp test_Crowd.cpp test_MCPopulation.cpp test_ContextForSteps.cpp test_QMCDriverInput.cpp test_QMCDriverNew.cpp test_VMCDriverInput.cpp test_VMCFactoryNew.cpp test_VMCBatched.cpp test_DMCBatched.cpp test_SimpleFixedNodeBranch.cpp)
ADD_EXECUTABLE(${UTEST_EXE} ${DRIVER_TEST_SRC})
USE_FAKE_RNG(${UTEST_EXE})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${UTEST_DIR})
@ -72,7 +72,7 @@ IF(NOT QMC_CUDA AND ENABLE_SOA)
SET(DRIVER_TEST_SRC SetupPools.cpp test_WalkerControlMPI.cpp)
ADD_EXECUTABLE(${UTEST_EXE} ${DRIVER_TEST_SRC})
#Way too many depenedencies make for very slow test linking
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcdriver_unit qmcham_unit qmcwfs qmcbase qmcutil qmcfakerng ${QMC_UTIL_LIBS})
# Right now the unified driver mpi tests are hard coded for 3 MPI ranks
ADD_MPI_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}" 3)
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${UTEST_DIR})

View File

@ -43,7 +43,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy "${qmcpack_SOURCE_DIR}/tests/ps
ADD_EXECUTABLE(${UTEST_EXE} ${SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcham qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcham qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -34,49 +34,49 @@ SET(MOSRCS
GamesFMOParser.cpp
QPParser.cpp
LCAOHDFParser.cpp
convertpw4qmc.cpp
WriteEshdf.cpp
XmlRep.cpp
)
# create libmocommon
ADD_LIBRARY(mocommon ${MOSRCS})
#YYYY: to be recoverred
#TARGET_LINK_LIBRARIES(mocommon PUBLIC qmcbase qmcutil)
set(QTOOLS convert4qmc qmc-extract-eshdf-kvectors)
ADD_EXECUTABLE(qmc-get-supercell getSupercell.cpp)
INSTALL(TARGETS qmc-get-supercell
RUNTIME DESTINATION bin)
ADD_EXECUTABLE(qmc-check-affinity check-affinity.cpp)
INSTALL(TARGETS qmc-check-affinity
RUNTIME DESTINATION bin)
ADD_EXECUTABLE(convertpw4qmc convertpw4qmc.cpp XmlRep.cpp WriteEshdf.cpp)
FOREACH(l ${QMC_UTIL_LIBS})
TARGET_LINK_LIBRARIES(convertpw4qmc ${l})
ENDFOREACH(l ${QMC_UTIL_LIBS})
INSTALL(TARGETS convertpw4qmc
RUNTIME DESTINATION bin)
FOREACH(p ${QTOOLS})
ADD_EXECUTABLE(${p} ${p}.cpp)
TARGET_LINK_LIBRARIES(${p} mocommon qmcbase qmcutil)
TARGET_LINK_LIBRARIES(${p} PRIVATE mocommon qmcbase qmcutil)
INSTALL(TARGETS ${p}
RUNTIME DESTINATION bin)
FOREACH(l ${QMC_UTIL_LIBS})
TARGET_LINK_LIBRARIES(${p} ${l})
TARGET_LINK_LIBRARIES(${p} PRIVATE ${l})
ENDFOREACH(l ${QMC_UTIL_LIBS})
IF(MPI_LIBRARY)
TARGET_LINK_LIBRARIES(${p} ${MPI_LIBRARY})
ENDIF(MPI_LIBRARY)
ENDFOREACH(p ${QTOOLS})
ADD_EXECUTABLE(qmc-get-supercell getSupercell.cpp)
INSTALL(TARGETS qmc-get-supercell
RUNTIME DESTINATION bin)
ADD_EXECUTABLE(qmc-check-affinity check-affinity.cpp)
IF(HAVE_MPI)
TARGET_LINK_LIBRARIES(qmc-check-affinity PRIVATE MPI::MPI_CXX)
ENDIF()
INSTALL(TARGETS qmc-check-affinity
RUNTIME DESTINATION bin)
ADD_EXECUTABLE(convertpw4qmc convertpw4qmc.cpp XmlRep.cpp WriteEshdf.cpp)
TARGET_LINK_LIBRARIES(convertpw4qmc PRIVATE qmcutil)
FOREACH(l ${QMC_UTIL_LIBS})
TARGET_LINK_LIBRARIES(convertpw4qmc PRIVATE ${l})
ENDFOREACH(l ${QMC_UTIL_LIBS})
INSTALL(TARGETS convertpw4qmc
RUNTIME DESTINATION bin)
#ppconvert
if( BUILD_PPCONVERT )
SUBDIRS(ppconvert)

View File

@ -61,7 +61,7 @@ ADD_EXECUTABLE(${UTEST_EXE} test_wf.cpp test_TrialWaveFunction.cpp test_wavefunc
test_rpa_jastrow.cpp test_example_he.cpp test_user_jastrow.cpp
test_lattice_gaussian.cpp test_kspace_jastrow.cpp
test_short_range_cusp_jastrow.cpp ${MO_SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmc qmcwfs qmcbase qmcutil ${QMC_UTIL_LIBS})
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
SET_TESTS_PROPERTIES(${UTEST_NAME} PROPERTIES WORKING_DIRECTORY ${UTEST_DIR})

View File

@ -7,30 +7,30 @@ SET(ESTEST diff_distancetables diff_jeeI diff_j2 diff_j1 einspline_spo einspline
FOREACH(p ${ESTEST})
ADD_EXECUTABLE( ${p} ${p}.cpp)
TARGET_LINK_LIBRARIES(${p} einspline qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${p} einspline qmcbase qmcutil ${QMC_UTIL_LIBS})
ENDFOREACH(p ${ESTEST})
ADD_EXECUTABLE(diff_wfs diff_wfs.cpp AoSWaveFunction.cpp SoAWaveFunction.cpp)
TARGET_LINK_LIBRARIES(diff_wfs einspline qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(diff_wfs einspline qmcbase qmcutil ${QMC_UTIL_LIBS})
ADD_EXECUTABLE(miniqmc_gr miniqmc.cpp AoSWaveFunction.cpp SoAWaveFunction.cpp)
set_target_properties (miniqmc_gr PROPERTIES COMPILE_FLAGS "-DNX=48 -DNY=48 -DNZ=60")
TARGET_LINK_LIBRARIES(miniqmc_gr einspline qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(miniqmc_gr einspline qmcbase qmcutil ${QMC_UTIL_LIBS})
ADD_EXECUTABLE(miniqmc_nio miniqmc.cpp AoSWaveFunction.cpp SoAWaveFunction.cpp)
set_target_properties (miniqmc_nio PROPERTIES COMPILE_FLAGS "-DUSE_NIO -DNX=37 -DNY=37 -DNZ=37")
TARGET_LINK_LIBRARIES(miniqmc_nio einspline qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(miniqmc_nio einspline qmcbase qmcutil ${QMC_UTIL_LIBS})
#Use a denser grid for graphite
#ADD_EXECUTABLE(miniqmc_gr2 miniqmc.cpp AoSWaveFunction.cpp SoAWaveFunction.cpp)
#set_target_properties (miniqmc_gr2 PROPERTIES COMPILE_FLAGS "-DNX=64 -DNY=64 -DNZ=80")
#TARGET_LINK_LIBRARIES(miniqmc_gr2 qmcbase qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
#TARGET_LINK_LIBRARIES(miniqmc_gr2 qmcbase qmcutil ${QMC_UTIL_LIBS})
endif()
#SET(boost_test exchange_walker)
#FOREACH(p ${boost_test})
# ADD_EXECUTABLE( ${p} ${p}.cpp)
# TARGET_LINK_LIBRARIES(${p} qmcbase qmcutil ${QMC_UTIL_LIBS} boost ${MPI_LIBRARY})
# TARGET_LINK_LIBRARIES(${p} qmcbase qmcutil ${QMC_UTIL_LIBS} boost)
#ENDFOREACH(p ${boost_test})

View File

@ -19,7 +19,7 @@ SET(UTEST_NAME deterministic-unit_test_${SRC_DIR})
ADD_EXECUTABLE(${UTEST_EXE} test_rng.cpp test_parser.cpp test_timer.cpp
test_prime_set.cpp test_partition.cpp test_pooled_memory.cpp
test_infostream.cpp test_output_manager.cpp)
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
@ -31,7 +31,7 @@ IF(HAVE_MPI)
SET(MPI_UTILITY_TEST_SRC test_mpi_exception_wrapper.cpp)
ADD_EXECUTABLE(${UTEST_EXE} ${MPI_UTILITY_TEST_SRC})
#Way too many depenedencies make for very slow test linking
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS})
# Right now the unified driver mpi tests are hard coded for 3 MPI ranks
ADD_MPI_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}" 3)
ENDIF(HAVE_MPI)

View File

@ -30,13 +30,13 @@ configure_file(declare.h.in ${FORMIC_BINARY_DIR}/src/formic/utils/declare.h)
configure_file(mangle.h.in ${FORMIC_BINARY_DIR}/src/formic/utils/mangle.h)
# determine how to comment/uncomment the mpi interface header file
if(USE_MPI)
if(HAVE_MPI)
set(MPI_COMMENT_I "")
set(MPI_COMMENT_O "//")
else(USE_MPI)
else(HAVE_MPI)
set(MPI_COMMENT_I "//")
set(MPI_COMMENT_O "")
endif(USE_MPI)
endif(HAVE_MPI)
# determine the level of mpi thread support to demand
if(USE_OPENMP)
@ -78,6 +78,10 @@ add_library(formic_utils matrix.cpp
TARGET_COMPILE_DEFINITIONS(formic_utils INTERFACE "HAVE_LMY_ENGINE")
IF(HAVE_MPI)
TARGET_LINK_LIBRARIES(formic_utils PUBLIC MPI::MPI_CXX)
ENDIF()
#target_link_libraries(formic_utils ${FORMIC_LAPACK_BLAS_LIBS})
#set_property(TARGET formic_utils PROPERTY CXX_STANDARD 11)

View File

@ -24,7 +24,7 @@ IF(BUILD_AFQMC)
ENDIF(BUILD_AFQMC)
ADD_EXECUTABLE(${UTEST_EXE} ${UTEST_SRC})
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY} )
TARGET_LINK_LIBRARIES(${UTEST_EXE} qmcutil ${QMC_UTIL_LIBS} )
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "${UTEST_DIR}")

View File

@ -25,7 +25,7 @@ SET(SRCS test_multi_spline.cpp)
ADD_EXECUTABLE(${UTEST_EXE} ${SRCS})
TARGET_LINK_LIBRARIES(${UTEST_EXE} einspline qmcutil ${QMC_UTIL_LIBS} ${MPI_LIBRARY})
TARGET_LINK_LIBRARIES(${UTEST_EXE} einspline qmcutil ${QMC_UTIL_LIBS})
#ADD_TEST(NAME ${UTEST_NAME} COMMAND "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")
ADD_UNIT_TEST(${UTEST_NAME} "${QMCPACK_UNIT_TEST_DIR}/${UTEST_EXE}")

View File

@ -81,7 +81,7 @@ then
fi
CTEST_FLAGS="-D CMAKE_C_COMPILER=$CC -D CMAKE_CXX_COMPILER=$CXX -D QMC_DATA=$QMC_DATA -D ENABLE_TIMERS=1
-DQMC_OPTIONS='-DMPIEXEC=sh;-DMPIEXEC_NUMPROC_FLAG=$place/$entry/tests/scripts/aprunhelper.sh'"
-DQMC_OPTIONS='-DMPIEXEC_EXECUTABLE=/bin/sh;-DMPIEXEC_NUMPROC_FLAG=$place/$entry/tests/scripts/aprunhelper.sh'"
if [[ $sys == *"Complex"* ]]; then
CTEST_FLAGS="$CTEST_FLAGS -D QMC_COMPLEX=1"

View File

@ -85,7 +85,7 @@ if [ -e ${source_dir}/CMakeLists.txt ]; then
-DENABLE_TIMERS=1 \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_C_COMPILER=mpicc \
-DQMC_OPTIONS='-DMPIEXEC=sh;-DMPIEXEC_NUMPROC_FLAG=${source_dir}/tests/scripts/jsrunhelper.sh'"
-DQMC_OPTIONS='-DMPIEXEC_EXECUTABLE=/bin/sh;-DMPIEXEC_NUMPROC_FLAG=${source_dir}/tests/scripts/jsrunhelper.sh'"
[[ ${variant} == *"Complex"* ]] && CTEST_FLAGS="${CTEST_FLAGS} -D QMC_COMPLEX=1"
[[ ${variant} == *"-SoA"* ]] && CTEST_FLAGS="${CTEST_FLAGS} -D ENABLE_SOA=1"