Skip to content

Commit 40d5bd0

Browse files
authored
Merge pull request #30 from bedroge/host_injections_easystacks_version_specific
add EESSI/2025.06 module file (+ populate scripts for all CPU targets in 2025.06 software layer)
2 parents 7c560eb + 73b2e87 commit 40d5bd0

File tree

6 files changed

+37
-22
lines changed

6 files changed

+37
-22
lines changed

EESSI-install-software.sh

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,20 @@ else
183183
fatal_error "Failed to initialize Lmod?! (see output in ${ml_version_out}"
184184
fi
185185

186+
# install any additional required scripts
187+
# order is important: these are needed to install a full CUDA SDK in host_injections
188+
# for now, this just reinstalls all scripts. Note the most elegant, but works
189+
190+
# the install_scripts.sh script relies on knowing the location of the PR diff
191+
# assume there's only one diff file that corresponds to the PR patch file
192+
pr_diff=$(ls [0-9]*.diff | head -1)
193+
export PR_DIFF="$PWD/$pr_diff"
194+
195+
# Only run install_scripts.sh if not in dev.eessi.io for security
196+
if [[ -z ${EESSI_DEV_PROJECT} ]]; then
197+
${TOPDIR}/install_scripts.sh --prefix ${EESSI_CVMFS_REPO}/versions/${EESSI_VERSION} --eessi-version ${EESSI_VERSION}
198+
fi
199+
186200
# Make sure we start with no modules and clean $MODULEPATH
187201
echo ">> Setting up \$MODULEPATH..."
188202
module --force purge
@@ -238,20 +252,6 @@ if [ ! -f ${_lmod_sitepackage_file} ]; then
238252
python3 ${TOPDIR}/create_lmodsitepackage.py ${_eessi_software_path}
239253
fi
240254

241-
# install any additional required scripts
242-
# order is important: these are needed to install a full CUDA SDK in host_injections
243-
# for now, this just reinstalls all scripts. Note the most elegant, but works
244-
245-
# the install_scripts.sh script relies on knowing the location of the PR diff
246-
# assume there's only one diff file that corresponds to the PR patch file
247-
pr_diff=$(ls [0-9]*.diff | head -1)
248-
export PR_DIFF="$PWD/$pr_diff"
249-
250-
# Only run install_scripts.sh if not in dev.eessi.io for security
251-
if [[ -z ${EESSI_DEV_PROJECT} ]]; then
252-
${TOPDIR}/install_scripts.sh --prefix ${EESSI_PREFIX}
253-
fi
254-
255255
echo ">> Configuring EasyBuild..."
256256

257257
# Make sure EESSI-extend is not loaded, and configure location variables for a

init/modules/EESSI/2023.06.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ More information
1010
whatis("Description: The European Environment for Scientific Software Installations (EESSI, pronounced as easy) is a collaboration between different European partners in HPC community. The goal of this project is to build a common stack of scientific software installations for HPC systems and beyond, including laptops, personal workstations and cloud infrastructure.")
1111
whatis("URL: https://www.eessi.io/docs/")
1212
conflict("EESSI")
13+
-- this is a version-agnostic module file, works for EESSI/2023.06, EESSI/2025.06, etc.
1314
local eessi_version = myModuleVersion()
1415
local eessi_repo = "/cvmfs/software.eessi.io"
1516
if (subprocess("uname -m"):gsub("\n$","") == "riscv64") then

init/modules/EESSI/2025.06.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2023.06.lua

install_scripts.sh

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ POSITIONAL_ARGS=()
129129

130130
while [[ $# -gt 0 ]]; do
131131
case $1 in
132+
--eessi-version)
133+
EESSI_VERSION="$2"
134+
shift 2
135+
;;
132136
-p|--prefix)
133137
INSTALL_PREFIX="$2"
134138
shift 2
@@ -149,6 +153,16 @@ while [[ $# -gt 0 ]]; do
149153
esac
150154
done
151155

156+
if [ -z "${INSTALL_PREFIX}" ]; then
157+
echo "EESSI prefix not specified, you must use --prefix" >&2
158+
exit 2
159+
fi
160+
161+
if [ -z "${EESSI_VERSION}" ]; then
162+
echo "EESSI version not specified, you must use --eessi-version" >&2
163+
exit 3
164+
fi
165+
152166
set -- "${POSITIONAL_ARGS[@]}"
153167

154168
TOPDIR=$(dirname $(realpath $0))
@@ -175,7 +189,7 @@ copy_files_by_list ${TOPDIR}/init/Magic_Castle ${INSTALL_PREFIX}/init/Magic_Cast
175189

176190
# Copy for init/modules/EESSI directory
177191
mc_files=(
178-
2023.06.lua
192+
${EESSI_VERSION}.lua
179193
)
180194
copy_files_by_list ${TOPDIR}/init/modules/EESSI ${INSTALL_PREFIX}/init/modules/EESSI "${mc_files[@]}"
181195

@@ -199,13 +213,12 @@ nvidia_files=(
199213
)
200214
copy_files_by_list ${TOPDIR}/scripts/gpu_support/nvidia ${INSTALL_PREFIX}/scripts/gpu_support/nvidia "${nvidia_files[@]}"
201215

202-
# Easystacks to be used to install software in host injections
203-
host_injections_easystacks=(
204-
eessi-2023.06-eb-4.9.4-2023a-CUDA-host-injections.yml
205-
eessi-2023.06-eb-4.9.4-2023b-CUDA-host-injections.yml
206-
)
207-
copy_files_by_list ${TOPDIR}/scripts/gpu_support/nvidia/easystacks \
208-
${INSTALL_PREFIX}/scripts/gpu_support/nvidia/easystacks "${host_injections_easystacks[@]}"
216+
# Easystacks to be used to install software in host injections for this EESSI version
217+
host_injections_easystacks_dir=${TOPDIR}/scripts/gpu_support/nvidia/easystacks/${EESSI_VERSION}
218+
if [[ -d ${host_injections_easystacks_dir} ]]; then
219+
host_injections_easystacks=$(find ${host_injections_easystacks_dir} -name eessi-${EESSI_VERSION}-*-CUDA-host-injections.yml -exec basename {} \;)
220+
copy_files_by_list ${host_injections_easystacks_dir} ${INSTALL_PREFIX}/scripts/gpu_support/nvidia/easystacks "${host_injections_easystacks[@]}"
221+
fi
209222

210223
# Copy over EasyBuild hooks file used for installations
211224
hook_files=(

0 commit comments

Comments
 (0)