diff --git a/etc/bashrc b/etc/bashrc index e2e887ac646048ac52fa5f7ef0845474bc7f4bec..597d5494d6cb976512b6a8d1ed611c2f11ed8885 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -65,7 +65,7 @@ export WM_COMPILER_TYPE=system #- Compiler: # WM_COMPILER = Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-3] | GccKNL -# | Clang | Clang3[8-9] | Clang40 | Icc | IccKNL +# | Clang | Clang3[8-9] | Clang40 | Icc | IccKNL | Cray export WM_COMPILER=Gcc unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH @@ -89,7 +89,7 @@ export WM_COMPILE_OPTION=Opt #- MPI implementation: # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPICH | MPICH-GM | HPMPI -# | MPI | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI +# | MPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI export WM_MPLIB=SYSTEMOPENMPI #- Operating System: diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi index e2ec875e4f2abac26f047d2a9d69f374f3995a90..ae9a7c15a467a06e57000cdcc230930b3a8e70c6 100644 --- a/etc/config.csh/mpi +++ b/etc/config.csh/mpi @@ -141,6 +141,28 @@ case MPICH-GM: _foamAddLib $GM_LIB_PATH breaksw +case CRAY-MPICH: + if ( ! $?MPICH_DIR ) setenv MPICH_DIR /dev/null + setenv FOAM_MPI cray-mpich + setenv MPI_ARCH_PATH $MPICH_DIR + + if ($?FOAM_VERBOSE && $?prompt) then + echo "Using $WM_MPLIB" + echo " FOAM_MPI : $FOAM_MPI" + echo " MPICH_DIR : $MPI_ARCH_PATH" + endif + + if ( ! -d "$MPI_ARCH_PATH" ) then + echo "Warning in $WM_PROJECT_DIR/etc/config.csh/mpi:" + echo " Not a valid $WM_MPLIB installation directory." + echo " Please set MPICH_DIR properly." + echo " Currently using '$MPI_ARCH_PATH'" + endif + + # _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + breaksw + case HPMPI: setenv FOAM_MPI hpmpi setenv MPI_HOME /opt/hpmpi diff --git a/etc/config.csh/settings b/etc/config.csh/settings index 98442b94a1e174f490edb62abddf7bd8df4877ed..40c3df898557536f4a10b424f488d4b2af8156a5 100644 --- a/etc/config.csh/settings +++ b/etc/config.csh/settings @@ -214,12 +214,17 @@ if (! $?WM_COMPILER_TYPE ) setenv WM_COMPILER_TYPE system # Adjustments for non-gcc compilers switch ("$WM_COMPILER") case Clang*: - # Using clang - not gcc + # Using clang compiler suite setenv WM_CC 'clang' setenv WM_CXX 'clang++' breaksw +case Cray*: + # Using cray system compilers + setenv WM_CC 'cc' + setenv WM_CXX 'CC' + breaksw case Icc*: - # Using icc - not gcc + # Using intel compilers setenv WM_CC 'icc' setenv WM_CXX 'icpc' breaksw diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi index a2d676d76b54c0fe4dc1ef4c74a2676754e7dea2..1a87bf238f91ea1bbb5a322acba22090d9cd1ba8 100644 --- a/etc/config.sh/mpi +++ b/etc/config.sh/mpi @@ -160,6 +160,28 @@ MPICH-GM) _foamAddLib $GM_LIB_PATH ;; +CRAY-MPICH) + export FOAM_MPI=cray-mpich + export MPI_ARCH_PATH=$MPICH_DIR + + if [ "$FOAM_VERBOSE" -a "$PS1" ] + then + echo "Using $WM_MPLIB" 1>&2 + echo " FOAM_MPI : $FOAM_MPI" 1>&2 + echo " MPICH_DIR : $MPI_ARCH_PATH" 1>&2 + fi + + [ -d "$MPI_ARCH_PATH" ] || { + echo "Warning in $WM_PROJECT_DIR/etc/config.sh/mpi:" 1>&2 + echo " Not a valid $WM_MPLIB installation directory." 1>&2 + echo " Please set MPICH_DIR properly" 1>&2 + echo " Currently using '$MPI_ARCH_PATH'" 1>&2 + } + + # _foamAddPath $MPI_ARCH_PATH/bin + _foamAddLib $MPI_ARCH_PATH/lib + ;; + HPMPI) export FOAM_MPI=hpmpi export MPI_HOME=/opt/hpmpi diff --git a/etc/config.sh/settings b/etc/config.sh/settings index ebc4bf435a71eb25df4c5702441b2913aba2a803..20821fae2e3dddfc028d5c98cb349c724fde3cd9 100644 --- a/etc/config.sh/settings +++ b/etc/config.sh/settings @@ -216,12 +216,17 @@ _foamAddLib $FOAM_USER_LIBBIN:$FOAM_SITE_LIBBIN:$FOAM_LIBBIN # Adjust for non-gcc compilers case "$WM_COMPILER" in Clang*) - # Using clang - not gcc + # Using clang compiler suite export WM_CC='clang' export WM_CXX='clang++' ;; +Cray*) + # Using cray system compilers + export WM_CC='cc' + export WM_CXX='CC' + ;; Icc*) - # Using icc - not gcc + # Using intel compilers export WM_CC='icc' export WM_CXX='icpc' ;; diff --git a/etc/cshrc b/etc/cshrc index 7b8da52c26df1b5c353a78e11628d0229187d17e..7cefb2f38306720229fd780d5b2f5948413fbf30 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -61,7 +61,7 @@ setenv WM_COMPILER_TYPE system #- Compiler: # WM_COMPILER = Gcc | Gcc4[8-9] | Gcc5[1-4] | Gcc6[1-3] | GccKNL -# | Clang | Clang3[8-9] | Clang40 | Icc | IccKNL +# | Clang | Clang3[8-9] | Clang40 | Icc | IccKNL | Cray setenv WM_COMPILER Gcc setenv WM_COMPILER_ARCH # defined but empty unsetenv WM_COMPILER_LIB_ARCH @@ -86,7 +86,7 @@ setenv WM_COMPILE_OPTION Opt #- MPI implementation: # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPICH | MPICH-GM | HPMPI -# | MPI | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI +# | MPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI setenv WM_MPLIB SYSTEMOPENMPI #- Operating System: diff --git a/wmake/rules/General/mplibCRAY-MPICH b/wmake/rules/General/mplibCRAY-MPICH new file mode 100644 index 0000000000000000000000000000000000000000..fdb91c13794fcf6f7757f66ba1e6f88f1cd96a75 --- /dev/null +++ b/wmake/rules/General/mplibCRAY-MPICH @@ -0,0 +1 @@ +include $(GENERAL_RULES)/mplibMPICH diff --git a/wmake/rules/linux64Cray/c b/wmake/rules/linux64Cray/c new file mode 100644 index 0000000000000000000000000000000000000000..d08f44144037dd10701b5adfe4f357fc4c83054f --- /dev/null +++ b/wmake/rules/linux64Cray/c @@ -0,0 +1,16 @@ +SUFFIXES += .c + +cWARN = -Wall + +cc = cc -m64 + +include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ + +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) -shared +LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs diff --git a/wmake/rules/linux64Cray/c++ b/wmake/rules/linux64Cray/c++ new file mode 100644 index 0000000000000000000000000000000000000000..30c2bc762e23a9651ba54620c3c955ac31d38e28 --- /dev/null +++ b/wmake/rules/linux64Cray/c++ @@ -0,0 +1,24 @@ +SUFFIXES += .C + +c++WARN = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof + +# Suppress some warnings for flex++ and CGAL +c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds + +CC = CC -std=c++11 -m64 + +include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) + +ptFLAGS = -DNoRepository -ftemplate-depth-100 + +c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@ +cxxtoo = $(Ctoo) +cctoo = $(Ctoo) +cpptoo = $(Ctoo) + +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed +LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed diff --git a/wmake/rules/linux64Cray/c++Debug b/wmake/rules/linux64Cray/c++Debug new file mode 100644 index 0000000000000000000000000000000000000000..19bdb9c3346fc7a69380dfedd6e7911fe220a965 --- /dev/null +++ b/wmake/rules/linux64Cray/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -ggdb3 -DFULLDEBUG +c++OPT = -O0 -fdefault-inline diff --git a/wmake/rules/linux64Cray/c++Opt b/wmake/rules/linux64Cray/c++Opt new file mode 100644 index 0000000000000000000000000000000000000000..599e6aba611dab95225e37204a5763288c546893 --- /dev/null +++ b/wmake/rules/linux64Cray/c++Opt @@ -0,0 +1,4 @@ +c++DBUG = +c++OPT = -O3 + +ROUNDING_MATH = -frounding-math diff --git a/wmake/rules/linux64Cray/c++Prof b/wmake/rules/linux64Cray/c++Prof new file mode 100644 index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a --- /dev/null +++ b/wmake/rules/linux64Cray/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linux64Cray/cDebug b/wmake/rules/linux64Cray/cDebug new file mode 100644 index 0000000000000000000000000000000000000000..72b638f458220e329d52b59e3566a3c807101f9d --- /dev/null +++ b/wmake/rules/linux64Cray/cDebug @@ -0,0 +1,2 @@ +cDBUG = -ggdb -DFULLDEBUG +cOPT = -O1 -fdefault-inline -finline-functions diff --git a/wmake/rules/linux64Cray/cOpt b/wmake/rules/linux64Cray/cOpt new file mode 100644 index 0000000000000000000000000000000000000000..17318709f1fa39e6bf89cbe87778bc6fa459de17 --- /dev/null +++ b/wmake/rules/linux64Cray/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linux64Cray/cProf b/wmake/rules/linux64Cray/cProf new file mode 100644 index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7 --- /dev/null +++ b/wmake/rules/linux64Cray/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linux64Cray/general b/wmake/rules/linux64Cray/general new file mode 100644 index 0000000000000000000000000000000000000000..a0c807e5d8a95848f20457716565c8debe747570 --- /dev/null +++ b/wmake/rules/linux64Cray/general @@ -0,0 +1,9 @@ +CPP = cpp -traditional-cpp $(GFLAGS) + +PROJECT_LIBS = -l$(WM_PROJECT) -ldl + +include $(GENERAL_RULES)/standard + +# include $(DEFAULT_RULES)/openmp +include $(DEFAULT_RULES)/c +include $(DEFAULT_RULES)/c++ diff --git a/wmake/rules/linux64Cray/mplibINTELMPI b/wmake/rules/linux64Cray/mplibINTELMPI new file mode 100644 index 0000000000000000000000000000000000000000..278e0b0f22c7c7d6fafc3334cddccb237afe232e --- /dev/null +++ b/wmake/rules/linux64Cray/mplibINTELMPI @@ -0,0 +1,3 @@ +PFLAGS = -DMPICH_SKIP_MPICXX +PINC = -isystem $(MPI_ARCH_PATH)/include64 +PLIBS = -L$(MPI_ARCH_PATH)/lib64 -lmpi diff --git a/wmake/rules/linux64Cray/openmp b/wmake/rules/linux64Cray/openmp new file mode 100644 index 0000000000000000000000000000000000000000..bcb805f57c6240bc577b1f04208ac09706d0846a --- /dev/null +++ b/wmake/rules/linux64Cray/openmp @@ -0,0 +1,4 @@ +# Flags for compiling/linking openmp + +COMP_OPENMP = -DUSE_OMP -fopenmp +LINK_OPENMP = -lgomp