-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathsupermic.cmake
57 lines (47 loc) · 1.73 KB
/
supermic.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Configuration and CMake modules for SuperMUC
# Set compiler to Intel Compiler
#
# Or:
# export CC=`which mpiicc`
# export CXX=`which mpiicc`
#
set(ENV{CXX} mpiicc)
set(ENV{CC} mpiicc)
set(DASH_ENV_HOST_SYSTEM_ID "supermic" CACHE STRING
"Host system type identifier")
# Force Intel MPI implementation:
if (NOT "$ENV{MPI_BASE}" MATCHES "intel")
message(ERROR "MIC build requires Intel MPI")
endif()
set(CC_ENV_SETUP_FLAGS "${CC_ENV_SETUP_FLAGS} -qopenmp -mmic -mkl")
set(CC_ENV_SETUP_FLAGS "${CC_ENV_SETUP_FLAGS} -mt_mpi")
set(CC_ENV_SETUP_FLAGS "${CC_ENV_SETUP_FLAGS} -qopt-streaming-stores always")
set(CC_ENV_SETUP_FLAGS "${CC_ENV_SETUP_FLAGS} -qopt-prefetch-distance=64,8")
set(CXX_ENV_SETUP_FLAGS "${CXX_ENV_SETUP_FLAGS} -qopenmp -mmic -mkl")
set(CXX_ENV_SETUP_FLAGS "${CXX_ENV_SETUP_FLAGS} -mt_mpi")
set(CXX_ENV_SETUP_FLAGS "${CXX_ENV_SETUP_FLAGS} -qopt-streaming-stores always")
set(CXX_ENV_SETUP_FLAGS "${CXX_ENV_SETUP_FLAGS} -qopt-prefetch-distance=64,8")
set(MKLROOT $ENV{MKLROOT})
# Sequential MKL
# set(MKL_LINK_FLAGS
# ${MKLROOT}/lib/mic/libmkl_scalapack_lp64.a
# -Wl,--start-group
# ${MKLROOT}/lib/mic/libmkl_intel_lp64.a
# ${MKLROOT}/lib/mic/libmkl_core.a
# ${MKLROOT}/lib/mic/libmkl_sequential.a
# ${MKLROOT}/lib/mic/libmkl_blacs_intelmpi_lp64.a
# -Wl,--end-group
# -lpthread -lm -ldl)
# Multithreaded MKL
set(MKL_LINK_FLAGS
${MKLROOT}/lib/mic/libmkl_scalapack_lp64.a
-Wl,--start-group
${MKLROOT}/lib/mic/libmkl_intel_lp64.a
${MKLROOT}/lib/mic/libmkl_core.a
${MKLROOT}/lib/mic/libmkl_intel_thread.a
${MKLROOT}/lib/mic/libmkl_blacs_intelmpi_lp64.a
-Wl,--end-group
-lpthread -lm -ldl)
set(MKL_INCLUDE_DIRS "${MKLROOT}/include")
set(MKL_LIBRARIES "")
set(MKL_FOUND TRUE)