Skip to content

Commit 8d0085c

Browse files
committed
take into account accelerator target when configuring EasyBuild
1 parent 50e7edd commit 8d0085c

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

EESSI-install-software.sh

+12
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,19 @@ echo ">> Setting up \$MODULEPATH..."
207207
module --force purge
208208
# ignore current $MODULEPATH entirely
209209
module unuse $MODULEPATH
210+
211+
# if an accelerator target is specified, we need to make sure that the CPU-only modules are also still available
212+
if [ ! -z ${EESSI_ACCELERATOR_TARGET} ]; then
213+
CPU_ONLY_MODULES_PATH=$(echo $EASYBUILD_INSTALLPATH | sed "s@/accel/${EESSI_ACCELERATOR_TARGET}@@g")/modules/all
214+
if [ -d ${CPU_ONLY_MODULES_PATH} ]; then
215+
module use ${CPU_ONLY_MODULES_PATH}
216+
else
217+
fatal_error "Derived path to CPU-only modules does not exist: ${CPU_ONLY_MODULES_PATH}"
218+
fi
219+
fi
220+
210221
module use $EASYBUILD_INSTALLPATH/modules/all
222+
211223
if [[ -z ${MODULEPATH} ]]; then
212224
fatal_error "Failed to set up \$MODULEPATH?!"
213225
else

bot/build.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ echo "bot/build.sh: EESSI_VERSION_OVERRIDE='${EESSI_VERSION_OVERRIDE}'"
141141
export EESSI_CVMFS_REPO_OVERRIDE=/cvmfs/$(cfg_get_value "repository" "repo_name")
142142
echo "bot/build.sh: EESSI_CVMFS_REPO_OVERRIDE='${EESSI_CVMFS_REPO_OVERRIDE}'"
143143

144-
# determine architecture to be used from entry .architecture in ${JOB_CFG_FILE}
144+
# determine CPU architecture to be used from entry .architecture in ${JOB_CFG_FILE}
145145
# fallbacks:
146146
# - ${CPU_TARGET} handed over from bot
147147
# - left empty to let downstream script(s) determine subdir to be used
@@ -150,6 +150,10 @@ EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE:-${CPU_TARGET}}
150150
export EESSI_SOFTWARE_SUBDIR_OVERRIDE
151151
echo "bot/build.sh: EESSI_SOFTWARE_SUBDIR_OVERRIDE='${EESSI_SOFTWARE_SUBDIR_OVERRIDE}'"
152152

153+
# determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE}
154+
export EESSI_ACCELERATOR_TARGET=$(cfg_get_value "architecture" "accelerator")
155+
echo "bot/build.sh: EESSI_ACCELERATOR_TARGET='${EESSI_ACCELERATOR_TARGET}'"
156+
153157
# get EESSI_OS_TYPE from .architecture.os_type in ${JOB_CFG_FILE} (default: linux)
154158
EESSI_OS_TYPE=$(cfg_get_value "architecture" "os_type")
155159
export EESSI_OS_TYPE=${EESSI_OS_TYPE:-linux}

configure_easybuild

+19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,26 @@
1+
# if $WORKDIR is not defined, use a local temporary directory
2+
if [ -z ${WORKDIR} ]; then
3+
WORKDIR=$(mktemp -d)
4+
fi
5+
16
export EASYBUILD_PREFIX=${WORKDIR}/easybuild
27
export EASYBUILD_INSTALLPATH=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR}
38
export EASYBUILD_SOURCEPATH=${WORKDIR}/easybuild/sources:${EESSI_SOURCEPATH}
49

10+
# take into account accelerator target (if specified via $EESSI_ACCELERATOR_TARGET)
11+
if [ ! -z ${EESSI_ACCELERATOR_TARGET} ]; then
12+
if [[ "${EESSI_ACCELERATOR_TARGET}" =~ ^nvidia/cc[0-9][0-9]$ ]]; then
13+
# tweak path to installation directories used by EasyBuild
14+
export EASYBUILD_INSTALLPATH=${EASYBUILD_INSTALLPATH}/accel/${EESSI_ACCELERATOR_TARGET}
15+
# nvidia/cc80 should result in setting $EASYBUILD_CUDA_COMPUTE_CAPABILITIES to '8.0'
16+
export EASYBUILD_CUDA_COMPUTE_CAPABILITIES=$(echo ${EESSI_ACCELERATOR_TARGET} | cut -f2 -d/ | sed 's/^cc\([0-9]\)\([0-9]\)/\1.\2/g')
17+
else
18+
fatal_error "Incorrect value for \$EESSI_ACCELERATOR_TARGET: ${EESSI_ACCELERATOR_TARGET}"
19+
fi
20+
else
21+
echo_yellow "(configure_easybuild) \$EESSI_ACCELERATOR_TARGET not defined"
22+
fi
23+
524
# just ignore OS dependencies for now, see https://github.com/easybuilders/easybuild-framework/issues/3430
625
export EASYBUILD_IGNORE_OSDEPS=1
726

run_in_compat_layer_env.sh

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ fi
2020
if [ ! -z ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} ]; then
2121
INPUT="export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE}; ${INPUT}"
2222
fi
23+
if [ ! -z ${EESSI_ACCELERATOR_TARGET} ]; then
24+
INPUT="export EESSI_ACCELERATOR_TARGET=${EESSI_ACCELERATOR_TARGET}; ${INPUT}"
25+
fi
2326
if [ ! -z ${EESSI_CVMFS_REPO_OVERRIDE} ]; then
2427
INPUT="export EESSI_CVMFS_REPO_OVERRIDE=${EESSI_CVMFS_REPO_OVERRIDE}; ${INPUT}"
2528
fi

0 commit comments

Comments
 (0)