Merge remote-tracking branch 'origin/asd' into ewinter-python_environment_upgrade

This commit is contained in:
Eric Winter
2023-07-20 12:30:50 -06:00
2 changed files with 42 additions and 5 deletions

View File

@@ -58,8 +58,9 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES Intel)
message(WARNING "Compiler has incomplete F2008 features, Git hash/compiler information won't be saved to H5 files")
add_compile_definitions(__INTEL_COMPILER_OLD)
elseif( (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 20.0) )
message(WARNING "Setting default optimization to O2 to avoid certain Intel compiler bugs")
set(CMAKE_DEFOPT "-O2")
#message(WARNING "Setting default optimization to O2 to avoid certain Intel compiler bugs")
message(WARNING "You only live once so let's see what happens")
#set(CMAKE_DEFOPT "-O2")
endif()
elseif(CMAKE_Fortran_COMPILER_ID MATCHES GNU)
if(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 8.0)
@@ -101,9 +102,17 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES Intel)
if (HOST MATCHES cheyenne)
string(APPEND PROD " -march=corei7 -axCORE-AVX2")
string(APPEND PRODWITHDEBUGINFO " -march=corei7 -axCORE-AVX2")
elseif(HOST MATCHES pfe)
string(APPEND PROD " -march=corei7 -axCORE-AVX2")
string(APPEND PRODWITHDEBUGINFO " -march=corei7 -axCORE-AVX2")
elseif(HOST MATCHES pfe)
string(APPEND PROD " -march=corei7 -axCORE-AVX2")
string(APPEND PRODWITHDEBUGINFO " -march=corei7 -axCORE-AVX2")
elseif (HOST MATCHES derecho)
message("You're on Derecho, good for you!")
set(ALLOW_INVALID_COMPILERS ON)
if (ENABLE_MKL)
string(APPEND CMAKE_Fortran_FLAGS " -qmkl")
endif()
string(APPEND PROD " -march=core-avx2")
string(APPEND PRODWITHDEBUGINFO " -march=core-avx2")
endif()
#Check Intel Fortran version

28
scripts/preproc/pinCpuCores.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# usage: pinCpuCores.sh <program executable> <program arguments>
# THIS IS ONLY MEANT TO WORK ON DERECHO
# USE ON OTHER SYSTEMS AT YOUR OWN RISK
if [[ ! -v PMI_LOCAL_SIZE ]] || [[ ! -v PMI_LOCAL_RANK ]]; then
echo "pinCpuCores.sh is only meant to be used on systems that set the"
echo " PMI_LOCAL_SIZE and PMI_LOCAL_RANK environment variables."
echo " One or both of these was not set. Please use the"
echo " correctOMPEnvironment.sh script in conjunction with omplace instead"
exit 1
fi
let numCpus=`lscpu | sed --quiet "s/^CPU(s): \\+\\([0-9]\\+\\)$/\\1/p"`
let threadsPerCore=`lscpu | sed --quiet "s/^Thread(s) per core: \\+\\([0-9]\\+\\)$/\\1/p"`
let numCores=$numCpus/$threadsPerCore
let newNumThreads=$numCores/$PMI_LOCAL_SIZE
let minThread=$newNumThreads*$PMI_LOCAL_RANK
let maxThread=$minThread+$newNumThreads-1
export OMP_NUM_THREADS=$newNumThreads
#echo "I am rank $PMI_LOCAL_RANK of $PMI_LOCAL_SIZE on this node using cpus $minThread to $maxThread"
# call the arguments to this script
taskset --cpu-list $minThread-$maxThread $1 "${@:2}"