Skip to content

Commit d9865b5

Browse files
authored
Merge branch 'nessi.no-2023.06' into nessi.no-2023.06-QuantumESPRESSO/6.7-foss/2021a
2 parents 7f0ea8d + ef8df11 commit d9865b5

15 files changed

+287
-189
lines changed

.github/workflows/test_eessi.yml

+15-17
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ jobs:
1313
- 2023.06
1414
EESSI_SOFTWARE_SUBDIR:
1515
- aarch64/generic
16-
- aarch64/graviton2
17-
- aarch64/graviton3
1816
- x86_64/amd/zen2
19-
- x86_64/amd/zen3
20-
- x86_64/intel/haswell
17+
- x86_64/intel/broadwell
18+
- x86_64/intel/cascadelake
2119
- x86_64/intel/skylake_avx512
2220
- x86_64/generic
2321
EASYSTACK_FILE:
@@ -33,24 +31,24 @@ jobs:
3331
cvmfs_http_proxy: DIRECT
3432
cvmfs_repositories: pilot.eessi-hpc.org
3533

36-
# - name: Test check_missing_installations.sh script
37-
# run: |
38-
# source /cvmfs/pilot.eessi-hpc.org/versions/${{matrix.EESSI_VERSION}}/init/bash
39-
# module load EasyBuild
40-
# eb --version
41-
# export EESSI_PREFIX=/cvmfs/pilot.eessi-hpc.org/versions/${{matrix.EESSI_VERSION}}
42-
# export EESSI_OS_TYPE=linux
43-
# export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}}
44-
# env | grep ^EESSI | sort
45-
# echo "just run check_missing_installations.sh (should use eessi-${{matrix.EESSI_VERSION}}.yml)"
46-
# ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}}
34+
- name: Test check_missing_installations.sh script
35+
run: |
36+
source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash
37+
module load EasyBuild
38+
eb --version
39+
export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}
40+
export EESSI_OS_TYPE=linux
41+
export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}}
42+
env | grep ^EESSI | sort
43+
echo "just run check_missing_installations.sh (should use eessi-${{matrix.EESSI_VERSION}}.yml)"
44+
./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}}
4745
4846
- name: Test check_missing_installations.sh with missing package (GCC/8.3.0)
4947
run: |
50-
source /cvmfs/pilot.eessi-hpc.org/versions/${{matrix.EESSI_VERSION}}/init/bash
48+
source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash
5149
module load EasyBuild
5250
eb --version
53-
export EESSI_PREFIX=/cvmfs/pilot.eessi-hpc.org/versions/${{matrix.EESSI_VERSION}}
51+
export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}
5452
export EESSI_OS_TYPE=linux
5553
export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}}
5654
env | grep ^EESSI | sort

.github/workflows/tests_readme.yml

-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ on:
77
- init/eessi_defaults
88

99
pull_request:
10-
branches:
11-
- main
1210
paths:
1311
- README.md
1412
- init/eessi_defaults

.github/workflows/tests_scripts.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ on:
1313
- update_lmod_cache.sh
1414

1515
pull_request:
16-
branches:
17-
- main
1816
paths:
1917
- build_container.sh
2018
- create_directory_tarballs.sh
@@ -42,7 +40,10 @@ jobs:
4240
# bind current directory into container as /software-layer
4341
export SINGULARITY_BIND="${PWD}:/software-layer"
4442
45-
for EB_VERSION in '4.5.0' '4.5.1' '4.7.2'; do
43+
# can't test with EasyBuild versions older than v4.5.2 when using EESSI pilot 2023.06,
44+
# since Python in compat layer is Python 3.11.x;
45+
# testing with a single EasyBuild version takes a while in GitHub Actions, so stick to a single sensible version
46+
for EB_VERSION in '4.6.0'; do
4647
# Create script that uses load_easybuild_module.sh which we can run in compat layer environment
4748
# note: Be careful with single vs double quotes below!
4849
# ${EB_VERSION} should be expanded, so use double quotes;

EESSI-pilot-install-software.sh

+32-30
Original file line numberDiff line numberDiff line change
@@ -50,59 +50,59 @@ set -- "${POSITIONAL_ARGS[@]}"
5050

5151
TOPDIR=$(dirname $(realpath $0))
5252

53-
source ${TOPDIR}/scripts/utils.sh
53+
source $TOPDIR/scripts/utils.sh
5454

55-
# honor ${TMPDIR} if it is already defined, use /tmp otherwise
56-
if [ -z ${TMPDIR} ]; then
57-
export WORKDIR=/tmp/${USER}
55+
# honor $TMPDIR if it is already defined, use /tmp otherwise
56+
if [ -z $TMPDIR ]; then
57+
export WORKDIR=/tmp/$USER
5858
else
59-
export WORKDIR=${TMPDIR}/${USER}
59+
export WORKDIR=$TMPDIR/$USER
6060
fi
6161

6262
TMPDIR=$(mktemp -d)
6363

6464
echo ">> Setting up environment..."
6565

66-
source ${TOPDIR}/init/minimal_eessi_env
66+
source $TOPDIR/init/minimal_eessi_env
6767

68-
if [ -d ${EESSI_CVMFS_REPO} ]; then
69-
echo_green "${EESSI_CVMFS_REPO} available, OK!"
68+
if [ -d $EESSI_CVMFS_REPO ]; then
69+
echo_green "$EESSI_CVMFS_REPO available, OK!"
7070
else
71-
fatal_error "${EESSI_CVMFS_REPO} is not available!"
71+
fatal_error "$EESSI_CVMFS_REPO is not available!"
7272
fi
7373

74-
# make sure we're in Prefix environment by checking ${SHELL}
74+
# make sure we're in Prefix environment by checking $SHELL
7575
if [[ ${SHELL} = ${EPREFIX}/bin/bash ]]; then
7676
echo_green ">> It looks like we're in a Gentoo Prefix environment, good!"
7777
else
7878
fatal_error "Not running in Gentoo Prefix environment, run '${EPREFIX}/startprefix' first!"
7979
fi
8080

8181
# avoid that pyc files for EasyBuild are stored in EasyBuild installation directory
82-
export PYTHONPYCACHEPREFIX=${TMPDIR}/pycache
82+
export PYTHONPYCACHEPREFIX=$TMPDIR/pycache
8383

8484
DETECTION_PARAMETERS=''
8585
GENERIC=0
8686
EB='eb'
87-
if [[ "${EASYBUILD_OPTARCH}" == "GENERIC" ]]; then
87+
if [[ "$EASYBUILD_OPTARCH" == "GENERIC" ]]; then
8888
echo_yellow ">> GENERIC build requested, taking appropriate measures!"
89-
DETECTION_PARAMETERS="${DETECTION_PARAMETERS} --generic"
89+
DETECTION_PARAMETERS="$DETECTION_PARAMETERS --generic"
9090
GENERIC=1
9191
EB='eb --optarch=GENERIC'
9292
fi
9393

9494
echo ">> Determining software subdirectory to use for current build host..."
95-
if [ -z ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} ]; then
96-
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=$(python3 ${TOPDIR}/eessi_software_subdir.py ${DETECTION_PARAMETERS})
97-
echo ">> Determined \$EESSI_SOFTWARE_SUBDIR_OVERRIDE via 'eessi_software_subdir.py ${DETECTION_PARAMETERS}' script"
95+
if [ -z $EESSI_SOFTWARE_SUBDIR_OVERRIDE ]; then
96+
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=$(python3 $TOPDIR/eessi_software_subdir.py $DETECTION_PARAMETERS)
97+
echo ">> Determined \$EESSI_SOFTWARE_SUBDIR_OVERRIDE via 'eessi_software_subdir.py $DETECTION_PARAMETERS' script"
9898
else
9999
echo ">> Picking up pre-defined \$EESSI_SOFTWARE_SUBDIR_OVERRIDE: ${EESSI_SOFTWARE_SUBDIR_OVERRIDE}"
100100
fi
101101

102102
# Set all the EESSI environment variables (respecting ${EESSI_SOFTWARE_SUBDIR_OVERRIDE})
103103
# $EESSI_SILENT - don't print any messages
104104
# $EESSI_BASIC_ENV - give a basic set of environment variables
105-
EESSI_SILENT=1 EESSI_BASIC_ENV=1 source ${TOPDIR}/init/eessi_environment_variables
105+
EESSI_SILENT=1 EESSI_BASIC_ENV=1 source $TOPDIR/init/eessi_environment_variables
106106

107107
if [[ -z ${EESSI_SOFTWARE_SUBDIR} ]]; then
108108
fatal_error "Failed to determine software subdirectory?!"
@@ -113,39 +113,38 @@ else
113113
fi
114114

115115
echo ">> Initializing Lmod..."
116-
source ${EPREFIX}/usr/share/Lmod/init/bash
117-
ml_version_out=${TMPDIR}/ml.out
118-
ml --version &> ${ml_version_out}
116+
source $EPREFIX/usr/share/Lmod/init/bash
117+
ml_version_out=$TMPDIR/ml.out
118+
ml --version &> $ml_version_out
119119
if [[ $? -eq 0 ]]; then
120120
echo_green ">> Found Lmod ${LMOD_VERSION}"
121121
else
122122
fatal_error "Failed to initialize Lmod?! (see output in ${ml_version_out}"
123123
fi
124124

125125
echo ">> Configuring EasyBuild..."
126-
source ${TOPDIR}/configure_easybuild
126+
source $TOPDIR/configure_easybuild
127127

128128
echo ">> Setting up \$MODULEPATH..."
129129
# make sure no modules are loaded
130130
module --force purge
131131
# ignore current $MODULEPATH entirely
132-
module unuse ${MODULEPATH}
133-
module use ${EASYBUILD_INSTALLPATH}/modules/all
132+
module unuse $MODULEPATH
133+
module use $EASYBUILD_INSTALLPATH/modules/all
134134
if [[ -z ${MODULEPATH} ]]; then
135135
fatal_error "Failed to set up \$MODULEPATH?!"
136136
else
137137
echo_green ">> MODULEPATH set up: ${MODULEPATH}"
138138
fi
139139

140140
for eb_version in '4.7.2'; do
141+
141142
# load EasyBuild module (will be installed if it's not available yet)
142143
source ${TOPDIR}/load_easybuild_module.sh ${eb_version}
143144

144145
echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..."
145146

146-
for gen in '2021a'; do
147-
148-
es="eessi-${EESSI_PILOT_VERSION}-eb-${eb_version}-${gen}.yml"
147+
for es in $(ls eessi-${EESSI_PILOT_VERSION}-eb-${eb_version}-*.yml); do
149148

150149
if [ -f ${es} ]; then
151150
echo_green "Feeding easystack file ${es} to EasyBuild..."
@@ -157,16 +156,19 @@ for eb_version in '4.7.2'; do
157156
fatal_error "Easystack file ${es} not found!"
158157
fi
159158
done
159+
160160
done
161161

162+
### add packages here
163+
162164
echo ">> Creating/updating Lmod cache..."
163165
export LMOD_RC="${EASYBUILD_INSTALLPATH}/.lmod/lmodrc.lua"
164-
if [ ! -f ${LMOD_RC} ]; then
165-
python3 ${TOPDIR}/create_lmodrc.py ${EASYBUILD_INSTALLPATH}
166-
check_exit_code $? "${LMOD_RC} created" "Failed to create ${LMOD_RC}"
166+
if [ ! -f $LMOD_RC ]; then
167+
python3 $TOPDIR/create_lmodrc.py ${EASYBUILD_INSTALLPATH}
168+
check_exit_code $? "$LMOD_RC created" "Failed to create $LMOD_RC"
167169
fi
168170

169-
${TOPDIR}/update_lmod_cache.sh ${EPREFIX} ${EASYBUILD_INSTALLPATH}
171+
$TOPDIR/update_lmod_cache.sh ${EPREFIX} ${EASYBUILD_INSTALLPATH}
170172

171173
echo ">> Cleaning up ${TMPDIR}..."
172174
rm -r ${TMPDIR}

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ See also https://eessi.github.io/docs/software_layer.
99
You can set up your environment by sourcing the init script:
1010

1111
```
12-
$ source /cvmfs/pilot.eessi-hpc.org/versions/2021.12/init/bash
13-
Found EESSI pilot repo @ /cvmfs/pilot.eessi-hpc.org/versions/2021.12!
14-
Derived subdirectory for software layer: x86_64/intel/haswell
15-
Using x86_64/intel/haswell subdirectory for software layer (HARDCODED)
12+
$ source /cvmfs/pilot.nessi.no/versions/2023.06/init/bash
13+
Found EESSI pilot repo @ /cvmfs/pilot.nessi.no/versions/2023.06!
14+
Derived subdirectory for software layer: x86_64/intel/broadwell
15+
Using x86_64/intel/broadwell subdirectory for software layer (HARDCODED)
1616
Initializing Lmod...
17-
Prepending /cvmfs/pilot.eessi-hpc.org/versions/2021.12/software/x86_64/intel/haswell/modules/all to $MODULEPATH...
17+
Prepending /cvmfs/pilot.nessi.no/versions/2023.06/software/x86_64/intel/broadwell/modules/all to $MODULEPATH...
1818
Environment set up to use EESSI pilot software stack, have fun!
19-
[EESSI pilot 2021.12] $
19+
[EESSI pilot 2023.06] $
2020
```
2121

2222
### Accessing EESSI via a container

0 commit comments

Comments
 (0)