Verified Commit 7534019c authored by Marc Vef's avatar Marc Vef
Browse files

Merge branch '145-add-mercury-2-0' into frschimm/stage_in_tests

parents db3e1fdc 1d39292a
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
[submodule "external/hermes"]
	path = external/hermes
	url = https://github.com/bsc-ssrg/hermes.git
	url = https://github.com/marcvef/hermes.git
[submodule "external/fmt"]
	path = external/fmt
	url = https://github.com/fmtlib/fmt
+68 −55
Original line number Diff line number Diff line
@@ -40,17 +40,17 @@ VALID_DEP_OPTIONS="mogon2 mogon1 ngio direct all ci"

MOGON1_DEPS=(
    "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "verbs"
    "syscall_intercept" "date" "verbs" "json-c"
)

MOGON2_DEPS=(
    "bzip2" "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "psm2"
    "syscall_intercept" "date" "psm2" "json-c"
)

NGIO_DEPS=(
    "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "agios" "psm2"
    "syscall_intercept" "date" "agios" "psm2" "json-c"
)

DIRECT_DEPS=(
@@ -59,11 +59,11 @@ DIRECT_DEPS=(

ALL_DEPS=(
    "bzip2" "zstd" "lz4" "snappy" "capstone" "bmi" "ofi" "mercury" "argobots" "margo" "rocksdb"
     "syscall_intercept" "date" "agios"
    "syscall_intercept" "date" "agios" "json-c"
)

CI_DEPS=(
    "ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios"
    "ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios" "json-c"
)

usage_short() {
@@ -372,6 +372,18 @@ if check_dependency "capstone" "${DEP_CONFIG[@]}"; then
    make -j"${CORES}" install
fi

# build json-c for Margo
if check_dependency "json-c" "${DEP_CONFIG[@]}"; then
    echo "############################################################ Installing:  json-c"
    CURR=${SOURCE}/json-c
    prepare_build_dir ${CURR}
    cd ${CURR}/build
    ../cmake-configure --prefix=${INSTALL}
    make -j${CORES} install
    mkdir -p ${INSTALL}/lib/pkgconfig
    find ${INSTALL} -type f -name "json-c.pc" -exec mv {} ${INSTALL}/lib/pkgconfig \;
fi

# build BMI
if check_dependency "bmi" "${DEP_CONFIG[@]}"; then
    if [[ "${NA_LAYER}" == "bmi" || "${NA_LAYER}" == "all" ]]; then
@@ -491,7 +503,8 @@ if check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
    cd "${CURR}"
    make clean
    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

# syscall_intercept
+23 −20
Original line number Diff line number Diff line
@@ -39,18 +39,18 @@ VERBOSE=false
VALID_DEP_OPTIONS="mogon2 mogon1 ngio direct all ci"

MOGON1_DEPS=(
    "zstd" "lz4" "snappy" "capstone" "ofi-verbs" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date"
    "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "json-c"
)

MOGON2_DEPS=(
    "bzip2" "zstd" "lz4" "snappy" "capstone" "ofi-experimental" "mercury" "argobots" "margo" "rocksdb-experimental"
    "syscall_intercept" "date" "psm2"
    "bzip2" "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "psm2" "json-c"
)

NGIO_DEPS=(
    "zstd" "lz4" "snappy" "capstone" "ofi-experimental" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "psm2" "agios"
    "zstd" "lz4" "snappy" "capstone" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "psm2" "agios" "json-c"

)
DIRECT_DEPS=(
@@ -59,11 +59,11 @@ DIRECT_DEPS=(

ALL_DEPS=(
    "bzip2" "zstd" "lz4" "snappy" "capstone" "bmi" "ofi" "mercury" "argobots" "margo" "rocksdb"
    "syscall_intercept" "date" "agios"
    "syscall_intercept" "date" "agios" "json-c"
)

CI_DEPS=(
    "ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios"
    "ofi" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios" "json-c"
)

# Stop all backround jobs on interruption.
@@ -372,6 +372,11 @@ if check_dependency "capstone" "${DEP_CONFIG[@]}"; then
    wgetdeps "capstone" "https://github.com/aquynh/capstone/archive/4.0.1.tar.gz" &
fi

# get json-c for Margo
if check_dependency "json-c" "${DEP_CONFIG[@]}"; then
    wgetdeps "json-c" "https://github.com/json-c/json-c/archive/json-c-0.15-20200726.tar.gz" &
fi

## Direct GekkoFS dependencies

# get BMI
@@ -383,46 +388,44 @@ fi

# get libfabric
if [ "${NA_LAYER}" == "ofi" ] || [ "${NA_LAYER}" == "all" ]; then
    if check_dependency "ofi-experimental" "${DEP_CONFIG[@]}"; then
        clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.9.1" &
    if check_dependency "ofi-legacy" "${DEP_CONFIG[@]}"; then
        clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.8.1" &
    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
        # libfabric 1.8 random RPCs fail to be send. 1.9 RPC client cannot be started when in an MPI environment
        clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.7.2" &
    elif check_dependency "ofi" "${DEP_CONFIG[@]}"; then
        clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.8.1" &
        clonedeps "libfabric" "https://github.com/ofiwg/libfabric.git" "" "-b v1.12.1" &
    fi
fi

if check_dependency "psm2" "${DEP_CONFIG[@]}"; then
    wgetdeps "psm2" "https://github.com/intel/opa-psm2/archive/PSM2_11.2.86.tar.gz" &
    wgetdeps "psm2" "https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz" &
fi

# get Mercury
if check_dependency "mercury" "${DEP_CONFIG[@]}"; then
    clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "41caa143a07ed179a3149cac4af0dc7aa3f946fd" "--recurse-submodules" &
    clonedeps "mercury" "https://github.com/mercury-hpc/mercury" "75cb615894699a4df5872ba9d187f37cc94330a3" "--recurse-submodules" &
fi

# get Argobots
if check_dependency "argobots" "${DEP_CONFIG[@]}"; then
    wgetdeps "argobots" "https://github.com/pmodels/argobots/archive/v1.0rc1.tar.gz" &
    wgetdeps "argobots" "https://github.com/pmodels/argobots/archive/refs/tags/v1.1.tar.gz" &
fi

# get Margo
if check_dependency "margo" "${DEP_CONFIG[@]}"; then
    clonedeps "margo" "https://xgitlab.cels.anl.gov/sds/margo.git" "v0.6.3" &
    clonedeps "margo" "https://github.com/mochi-hpc/mochi-margo" "34bff25aa8ec9e9348ee07a455308bfe3c17d623" &
fi

# get rocksdb
if check_dependency "rocksdb-experimental" "${DEP_CONFIG[@]}"; then
    wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.11.4.tar.gz" &
elif check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
    wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/v6.2.2.tar.gz" &
if check_dependency "rocksdb" "${DEP_CONFIG[@]}"; then
    wgetdeps "rocksdb" "https://github.com/facebook/rocksdb/archive/refs/tags/v6.16.4.tar.gz" &
fi

# get syscall_intercept
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

# get AGIOS
+2 −0
Original line number Diff line number Diff line
@@ -111,6 +111,8 @@ extract_protocol(const string& uri) {
        protocol = gkfs::rpc::protocol::ofi_psm2;
    } else if(uri.find(gkfs::rpc::protocol::ofi_verbs) != string::npos) {
        protocol = gkfs::rpc::protocol::ofi_verbs;
    } else if(uri.find(gkfs::rpc::protocol::ofi_tcp) != string::npos) {
        protocol = gkfs::rpc::protocol::ofi_tcp;
    }
    // check for shared memory protocol. Can be plain shared memory or real ofi
    // protocol + auto_sm
+2 −1
Original line number Diff line number Diff line
@@ -383,7 +383,8 @@ parse_input(const po::variables_map& vm) {
        rpc_protocol = vm["rpc-protocol"].as<string>();
        if(rpc_protocol != gkfs::rpc::protocol::ofi_verbs &&
           rpc_protocol != gkfs::rpc::protocol::ofi_sockets &&
           rpc_protocol != gkfs::rpc::protocol::ofi_psm2) {
           rpc_protocol != gkfs::rpc::protocol::ofi_psm2 &&
           rpc_protocol != gkfs::rpc::protocol::ofi_tcp) {
            throw runtime_error(fmt::format(
                    "Given RPC protocol '{}' not supported. Check --help for supported protocols.",
                    rpc_protocol));