Commits on Source (2)
...@@ -54,12 +54,12 @@ NGIO_DEPS=( ...@@ -54,12 +54,12 @@ NGIO_DEPS=(
) )
DIRECT_DEPS=( DIRECT_DEPS=(
"ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
) )
ALL_DEPS=( ALL_DEPS=(
"bzip2" "zstd" "lz4" "snappy" "capstone" "bmi" "ofi" "mercury" "argobots" "margo" "rocksdb" "bzip2" "zstd" "lz4" "snappy" "capstone" "bmi" "ofi" "mercury" "argobots" "margo" "rocksdb"
"syscall_intercept" "date" "agios" "syscall_intercept" "date" "agios"
) )
CI_DEPS=( CI_DEPS=(
...@@ -67,7 +67,7 @@ CI_DEPS=( ...@@ -67,7 +67,7 @@ CI_DEPS=(
) )
usage_short() { usage_short() {
echo " echo "
usage: compile_dep.sh [-h] [-l] [-n <NAPLUGIN>] [-c <CONFIG>] [-d <DEPENDENCY>] [-j <COMPILE_CORES>] usage: compile_dep.sh [-h] [-l] [-n <NAPLUGIN>] [-c <CONFIG>] [-d <DEPENDENCY>] [-j <COMPILE_CORES>]
source_path install_path source_path install_path
" "
...@@ -114,22 +114,22 @@ list_dependencies() { ...@@ -114,22 +114,22 @@ list_dependencies() {
for d in "${MOGON1_DEPS[@]}"; do for d in "${MOGON1_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
done done
echo echo
echo -n " Mogon 2: " echo -n " Mogon 2: "
for d in "${MOGON2_DEPS[@]}"; do for d in "${MOGON2_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
done done
echo echo
echo -n " NGIO: " echo -n " NGIO: "
for d in "${NGIO_DEPS[@]}"; do for d in "${NGIO_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
done done
echo echo
echo -n " Direct GekkoFS dependencies: " echo -n " Direct GekkoFS dependencies: "
for d in "${DIRECT_DEPS[@]}"; do for d in "${DIRECT_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
done done
echo echo
echo -n " All: " echo -n " All: "
for d in "${ALL_DEPS[@]}"; do for d in "${ALL_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
...@@ -139,28 +139,28 @@ list_dependencies() { ...@@ -139,28 +139,28 @@ list_dependencies() {
for d in "${CI_DEPS[@]}"; do for d in "${CI_DEPS[@]}"; do
echo -n "$d " echo -n "$d "
done done
echo echo
} }
check_dependency() { check_dependency() {
local DEP=$1 local DEP=$1
shift shift
local DEP_CONFIG=("$@") local DEP_CONFIG=("$@")
# ignore template when specific dependency is set # ignore template when specific dependency is set
if [[ -n "${DEPENDENCY}" ]]; then if [[ -n "${DEPENDENCY}" ]]; then
# check if specific dependency was set and return from function # check if specific dependency was set and return from function
if echo "${DEPENDENCY}" | grep -q "${DEP}"; then if echo "${DEPENDENCY}" | grep -q "${DEP}"; then
return return
fi
else
# if not check if dependency is part of dependency config
for e in "${DEP_CONFIG[@]}"; do
if [[ "${DEP}" == "${e}" ]]; then
return
fi fi
done else
fi # if not check if dependency is part of dependency config
false for e in "${DEP_CONFIG[@]}"; do
if [[ "${DEP}" == "${e}" ]]; then
return
fi
done
fi
false
} }
prepare_build_dir() { prepare_build_dir() {
...@@ -275,29 +275,29 @@ fi ...@@ -275,29 +275,29 @@ fi
# enable predefined dependency template # enable predefined dependency template
case ${TMP_DEP_CONF} in case ${TMP_DEP_CONF} in
mogon1) mogon1)
DEP_CONFIG=("${MOGON1_DEPS[@]}") DEP_CONFIG=("${MOGON1_DEPS[@]}")
echo "'Mogon1' dependencies are compiled" echo "'Mogon1' dependencies are compiled"
;; ;;
mogon2) mogon2)
DEP_CONFIG=("${MOGON2_DEPS[@]}") DEP_CONFIG=("${MOGON2_DEPS[@]}")
echo "'Mogon2' dependencies are compiled" echo "'Mogon2' dependencies are compiled"
;; ;;
ngio) ngio)
DEP_CONFIG=("${NGIO_DEPS[@]}") DEP_CONFIG=("${NGIO_DEPS[@]}")
echo "'NGIO' dependencies are compiled" echo "'NGIO' dependencies are compiled"
;; ;;
all) all)
DEP_CONFIG=("${ALL_DEPS[@]}") DEP_CONFIG=("${ALL_DEPS[@]}")
echo "'All' dependencies are compiled" echo "'All' dependencies are compiled"
;; ;;
ci) ci)
DEP_CONFIG=("${CI_DEPS[@]}") DEP_CONFIG=("${CI_DEPS[@]}")
echo "'CI' dependencies are compiled" echo "'CI' dependencies are compiled"
;; ;;
direct | *) direct | *)
DEP_CONFIG=("${DIRECT_DEPS[@]}") DEP_CONFIG=("${DIRECT_DEPS[@]}")
echo "'Direct' GekkoFS dependencies are compiled (default)" echo "'Direct' GekkoFS dependencies are compiled (default)"
;; ;;
esac esac
USE_BMI="-DNA_USE_BMI:BOOL=OFF" USE_BMI="-DNA_USE_BMI:BOOL=OFF"
...@@ -419,7 +419,7 @@ if check_dependency "ofi" "${DEP_CONFIG[@]}"; then ...@@ -419,7 +419,7 @@ if check_dependency "ofi" "${DEP_CONFIG[@]}"; then
elif check_dependency "psm2-system" "${DEP_CONFIG[@]}"; then elif check_dependency "psm2-system" "${DEP_CONFIG[@]}"; then
OFI_CONFIG="${OFI_CONFIG} --enable-psm2=yes" OFI_CONFIG="${OFI_CONFIG} --enable-psm2=yes"
fi fi
${OFI_CONFIG} ${OFI_CONFIG}
make -j${CORES} make -j${CORES}
make install make install
[ "${PERFORM_TEST}" ] && make check [ "${PERFORM_TEST}" ] && make check
...@@ -428,12 +428,12 @@ fi ...@@ -428,12 +428,12 @@ fi
# AGIOS # AGIOS
if check_dependency "agios" "${DEP_CONFIG[@]}"; then if check_dependency "agios" "${DEP_CONFIG[@]}"; then
echo "############################################################ Installing: AGIOS" echo "############################################################ Installing: AGIOS"
CURR=${SOURCE}/agios CURR=${SOURCE}/agios
prepare_build_dir "${CURR}" prepare_build_dir "${CURR}"
cd "${CURR}"/build cd "${CURR}"/build
$CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" .. $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL}" ..
make install make install
fi fi
# Mercury # Mercury
...@@ -502,7 +502,8 @@ if check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then ...@@ -502,7 +502,8 @@ if check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
cd "${CURR}" cd "${CURR}"
make clean make clean
USE_RTTI=1 make -j"${CORES}" static_lib USE_RTTI=1 make -j"${CORES}" static_lib
INSTALL_PATH="${INSTALL}" make install # INSTALL_PATH older version, PREFIX newer versions
INSTALL_PATH="${INSTALL}" PREFIX="${INSTALL}" make install
fi fi
# syscall_intercept # syscall_intercept
......
...@@ -389,7 +389,7 @@ fi ...@@ -389,7 +389,7 @@ fi
# get libfabric # get libfabric
if [ "${NA_LAYER}" == "ofi" ] || [ "${NA_LAYER}" == "all" ]; then if [ "${NA_LAYER}" == "ofi" ] || [ "${NA_LAYER}" == "all" ]; then
if check_dependency "ofi-experimental" "${DEP_CONFIG[@]}"; then if check_dependency "ofi-experimental" "${DEP_CONFIG[@]}"; then
clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.11.1" & clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.12.1" &
elif check_dependency "ofi-verbs" "${DEP_CONFIG[@]}"; then elif check_dependency "ofi-verbs" "${DEP_CONFIG[@]}"; then
# libibverbs 1.2.1-1 used on mogon 1i (installed on system) which is linked to libfabric # libibverbs 1.2.1-1 used on mogon 1i (installed on system) which is linked to libfabric
# libfabric 1.8 random RPCs fail to be send. 1.9 RPC client cannot be started when in an MPI environment # libfabric 1.8 random RPCs fail to be send. 1.9 RPC client cannot be started when in an MPI environment
...@@ -404,30 +404,33 @@ if check_dependency "psm2" "${DEP_CONFIG[@]}"; then ...@@ -404,30 +404,33 @@ if check_dependency "psm2" "${DEP_CONFIG[@]}"; then
fi fi
# get Mercury # get Mercury
if check_dependency "mercury" "${DEP_CONFIG[@]}"; then if check_dependency "mercury-experimental" "${DEP_CONFIG[@]}"; then
clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "3b2934490fbbcc291541e9f417fed120ffc1a04f" "--recurse-submodules" & # currently not compatible with Hermes
clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "71672b0d453dc5a64d20f46b86f25fed12566eff" "--recurse-submodules" &
elif check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "4796aeeb90ba58be8a3b17a73f27aa3afed1ee0f" "--recurse-submodules" &
fi fi
# get Argobots # get Argobots
if check_dependency "argobots" "${DEP_CONFIG[@]}"; then if check_dependency "argobots" "${DEP_CONFIG[@]}"; then
wgetdeps "argobots" "https://github.com/pmodels/argobots/archive/v1.0.1.tar.gz" & wgetdeps "argobots" "https://github.com/pmodels/argobots/archive/refs/tags/v1.1.tar.gz" &
fi fi
# get Margo # get Margo
if check_dependency "margo" "${DEP_CONFIG[@]}"; then if check_dependency "margo" "${DEP_CONFIG[@]}"; then
clonedeps "margo" "https://github.com/mochi-hpc/mochi-margo" "084b61323933a0e014653eecf8f6b66a94196a2d" & clonedeps "margo" "https://github.com/mochi-hpc/mochi-margo" "84c7a123fcabaac1545cc0352a74ea27ed1d6a83" &
fi fi
# get rocksdb # get rocksdb
if check_dependency "rocksdb-experimental" "${DEP_CONFIG[@]}"; then if check_dependency "rocksdb-experimental" "${DEP_CONFIG[@]}"; then
wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.15.5.tar.gz" & wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/refs/tags/v6.16.4.tar.gz" &
elif check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then elif check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.11.4.tar.gz" & wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.11.4.tar.gz" &
fi fi
# get syscall_intercept # get syscall_intercept
if check_dependency "syscall_intercept" "${DEP_CONFIG[@]}"; then if check_dependency "syscall_intercept" "${DEP_CONFIG[@]}"; then
clonedeps "syscall_intercept" "https://github.com/pmem/syscall_intercept.git" "f7cebb7b7e7512a19b78a31ce236ad6ca22636dd" "" "syscall_intercept.patch" & clonedeps "syscall_intercept" "https://github.com/pmem/syscall_intercept.git" "304404581c57d43478438d175099d20260bae74e" "" "syscall_intercept.patch" &
fi fi
# get AGIOS # get AGIOS
......