Skip to content

Commit d64982d

Browse files
committed
combine builds for different accelerators
1 parent b490258 commit d64982d

1 file changed

Lines changed: 30 additions & 17 deletions

File tree

bot/build.sh

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,6 @@ EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE:-${CPU_TARGET}}
161161
export EESSI_SOFTWARE_SUBDIR_OVERRIDE
162162
echo "bot/build.sh: EESSI_SOFTWARE_SUBDIR_OVERRIDE='${EESSI_SOFTWARE_SUBDIR_OVERRIDE}'"
163163

164-
# determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE}
165-
ACCEL_OVERRIDE=$(cfg_get_value "architecture" "accelerator")
166-
if [[ -n "$ACCEL_OVERRIDE" ]]; then
167-
# bot job config does not include accel subdirectory
168-
export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE"
169-
else
170-
export EESSI_ACCELERATOR_TARGET_OVERRIDE=""
171-
fi
172-
echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE}'"
173-
174164
# Log the full lscpu and os-release info:
175165
lscpu > _bot_job${SLURM_JOB_ID}.lscpu
176166
cat /etc/os-release > _bot_job${SLURM_JOB_ID}.os
@@ -259,11 +249,33 @@ fi
259249
# create tmp file for output of build step
260250
build_outerr=$(mktemp build.outerr.XXXX)
261251

262-
echo "Executing command to build software:"
263-
echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}"
264-
echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}"
265-
$software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \
266-
-- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr}
252+
# determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE}
253+
ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator")
254+
if [[ -n "$ACCEL_OVERRIDE" ]]; then
255+
for accel_override in ${ACCEL_OVERRIDES//,/ }
256+
do
257+
# bot job config does not include accel subdirectory
258+
export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE"
259+
echo "Executing command to build software:"
260+
echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}"
261+
echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}"
262+
$software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \
263+
-- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr}
264+
265+
# determine temporary directory to resume from for the next accelerator,
266+
# as we want to combine all accelerator builds into a single tarball in the end
267+
BUILD_TMPDIR=$(grep ' as tmp directory ' ${build_outerr} | cut -d ' ' -f 2)
268+
BUILD_STEP_ARGS+=("--resume" "${BUILD_TMPDIR}")
269+
done
270+
else
271+
export EESSI_ACCELERATOR_TARGET_OVERRIDE=""
272+
echo "Executing command to build software:"
273+
echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}"
274+
echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}"
275+
$software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \
276+
-- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr}
277+
fi
278+
echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE}'"
267279

268280
# prepare directory to store tarball of tmp for tarball step
269281
TARBALL_TMP_TARBALL_STEP_DIR=${PREVIOUS_TMP_DIR}/tarball_step
@@ -291,14 +303,15 @@ else
291303
fi
292304
# to set EESSI_VERSION we need to source init/eessi_defaults now
293305
source $software_layer_dir/init/eessi_defaults
294-
# Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
306+
# Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
295307
# append the project (subdirectory) name to the end tarball name. This is information
296308
# then used at the ingestion stage. If ${EESSI_DEV_PROJECT} is not defined, nothing is
297309
# appended
298310
if [[ -z ${EESSI_ACCELERATOR_TARGET_OVERRIDE} ]]; then
299311
export TARBALL=$(printf "eessi-%s-software-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
300312
else
301-
export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_ACCELERATOR_TARGET_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
313+
#export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_ACCELERATOR_TARGET_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
314+
export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} accel ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
302315
fi
303316

304317
# Export EESSI_DEV_PROJECT to use it (if needed) when making tarball

0 commit comments

Comments
 (0)