Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial archdetect support for RISC-V and custom init script for RISC-V repo #568

Closed
wants to merge 85 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
fdf0d9a
add zen4 / AMD Genoa
hmeiland Jan 10, 2024
1ee221b
add all.output tests
hmeiland Jan 10, 2024
680e7b9
adding zen4 checks
hmeiland Jan 10, 2024
7070c04
commenting out power to prevent conflict
hmeiland Jan 10, 2024
ad70b6b
commenting out power9 to prevent conflict
hmeiland Jan 10, 2024
fd3103e
move to software.eessi.io
hmeiland Jan 10, 2024
a13bce8
move from pilot to software
hmeiland Jan 10, 2024
473a5b5
move EESSI action to v3
hmeiland Jan 11, 2024
807d784
fix upstream merge
hmeiland Jan 15, 2024
5fc4f7c
megerd
hmeiland Jan 15, 2024
743860f
{2023.06}[foss/2023b] GROMACS 2024.1
boegel Mar 13, 2024
f58d4dd
Merge branch '2023.06-software.eessi.io' into 2023.06-software.eessi.…
boegel Mar 13, 2024
f7c5fdf
Merge branch '2023.06-software.eessi.io' into 2023.06-software.eessi.…
boegel Mar 13, 2024
7e52842
Merge remote-tracking branch 'upstream/2023.06-software.eessi.io' int…
ocaisa Mar 15, 2024
1cc35d6
Merge remote-tracking branch 'upstream/2023.06-software.eessi.io' int…
ocaisa Mar 18, 2024
70d94a1
add R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb
bedroge Mar 30, 2024
0a6d98b
Merge branch '2023.06-software.eessi.io' into 2023.06-software.eessi.…
boegel Apr 2, 2024
8155154
Merge branch '2023.06-software.eessi.io_GROMACS-2024.1' of github.com…
boegel Apr 2, 2024
3ccecf9
Add possibility to ignore certain hooks on local modules. E.g. we don…
Apr 3, 2024
bb20ab2
Also use hooks for site extensions in host_injections AND for user ex…
Apr 3, 2024
838920b
Leave breadcrumb to notify that paths may need to be changed in the f…
Apr 3, 2024
f864d12
Merge branch '2023.06-software.eessi.io' into 2023.06-software.eessi.…
ocaisa Apr 4, 2024
145706e
add R-bundle-Bioconductor-3.18-foss-2023a-R-4.3.2.eb
bedroge Apr 5, 2024
e6eb9a9
Merge branch '2023.06-software.eessi.io' into bioconductor-3.18-2023a
bedroge Apr 5, 2024
cef7a27
add from-pr to bioconductor
bedroge Apr 5, 2024
3eaffe4
sync with 2023.06-software.eessi.io branch
bedroge Apr 5, 2024
3745ade
use pr 20316 for Bioconductor
bedroge Apr 8, 2024
03b708f
use PR 20316 for Bioconductor
bedroge Apr 8, 2024
8331e44
remove build_container.sh, as we now use eessi_container.sh
bedroge Apr 16, 2024
a730545
replace build_container.sh by eessi_container.sh
bedroge Apr 16, 2024
ddccb95
Merge branch '2023.06-software.eessi.io' of github.com:EESSI/software…
bedroge Apr 19, 2024
dee801b
move bioconductor to 4.9.1 easystack
bedroge Apr 19, 2024
cbad690
add bioconductor
bedroge Apr 19, 2024
494185b
solve merge conflict
bedroge Apr 19, 2024
7d4c72c
Merge branch '2023.06-software.eessi.io' of github.com:EESSI/software…
bedroge Apr 19, 2024
b6a2226
move biocondutor to 4.9.1 stack, use pr 20379
bedroge Apr 19, 2024
786e1e8
remove blank line
bedroge Apr 19, 2024
d6336e1
move bioconductor back to 4.9.0 file
bedroge Apr 19, 2024
339f358
add rebuild easystack for setuptools_scm fix
bedroge Apr 19, 2024
db81fd3
zen4-only {2023.06}[system] EasyBuild v4.9.1
truib Apr 20, 2024
8cb9547
make sure lmod cfg files exists early in build environment
truib Apr 20, 2024
da9f206
use create_lmodsitepackage.py
truib Apr 20, 2024
c4cbcd8
skip CUDA install if no EasyBuild module is found
truib Apr 20, 2024
eeb5537
remove extra if
truib Apr 20, 2024
4d465e9
Add SAMtools-1.18-GCC-12.3.0
Neves-P Apr 21, 2024
8cd5d84
attempt to fix the hatchling reinstallation issue
bedroge Apr 22, 2024
76ecccf
use right if condition for checking if dir is empty
bedroge Apr 22, 2024
c0efea4
Merge pull request #553 from Neves-P/2023.06-software.eessi.io-SAMtoo…
bedroge Apr 25, 2024
f2e8b88
Merge pull request #526 from bedroge/bioconductor_2022b
trz42 Apr 26, 2024
1642621
undo parent dir removal, workaround didn't work
bedroge Apr 26, 2024
a5bf9d3
only rebuild 2023a easyconfigs
bedroge Apr 26, 2024
c4af218
only try 2023b versions
bedroge Apr 26, 2024
33cb74f
try adding write permissions instead of removing
bedroge Apr 26, 2024
1e92daf
do remove the module to make sure it gets rebuilt
bedroge Apr 26, 2024
d0229cc
Update create_lmodsitepackage.py
ocaisa Apr 29, 2024
e305841
Merge branch '2023.06-software.eessi.io' into 2023.06-software.eessi.…
boegel Apr 30, 2024
a4dcf44
Merge branch '2023.06-software.eessi.io_GROMACS-2024.1' of github.com…
boegel Apr 30, 2024
b6371d0
use easyconfig PR for GROMACS 2024.1 that uses backported patch to fi…
boegel Apr 30, 2024
b94fa62
restore easystack, rebuild all required versions
bedroge Apr 30, 2024
66724f2
undo changes
bedroge Apr 30, 2024
01c49de
avoid building GROMACS 2024.1 with SVE on Neoverse V1, stick to Neon …
boegel Apr 30, 2024
4b5349d
Merge branch '2023.06-software.eessi.io' of github.com:EESSI/software…
bedroge Apr 30, 2024
ac82cc8
move bioconductor to eb 4.9.1 file
bedroge Apr 30, 2024
e4e639b
Merge pull request #546 from bedroge/rebuild_python_eb491
boegel Apr 30, 2024
0db3c69
Merge pull request #533 from bedroge/bioconductor-3.18-2023a
ocaisa May 1, 2024
3eee364
register known issue for GROMACS 2024.1 on neoverse_v1
boegel May 1, 2024
721f446
Merge pull request #499 from boegel/2023.06-software.eessi.io_GROMACS…
bedroge May 1, 2024
f625505
Merge pull request #544 from bedroge/remove_old_container_script
boegel May 2, 2024
a9e8ae8
Match name stub of files to CUDA allow list to ship
ocaisa May 6, 2024
28e5e9c
Update 2024.05.06-eb-4.9.1-CUDA-12.1.1-ship-full-runtime.yml
ocaisa May 6, 2024
a333a2b
Merge pull request #559 from ocaisa/rebuild_cuda
bedroge May 7, 2024
7145418
Merge pull request #451 from hmeiland/feature-zen4
boegel May 7, 2024
6682c7d
move OSU-Micro-Benchmarks 2023b to 2023b easystack
bedroge May 7, 2024
6c20a82
Merge pull request #561 from bedroge/OSU_easystack_fix
boegel May 7, 2024
298159e
bumping scorecard-action version to 2.3.1
truib May 7, 2024
4a6cd25
Merge pull request #547 from trz42/test_bot_on_azure
bedroge May 7, 2024
32ee8b8
Merge pull request #562 from trz42/bump_scorecard_action_version
boegel May 7, 2024
e729115
Merge pull request #530 from casparvl/ignore_eessi_hooks_on_local_mod…
trz42 May 7, 2024
c26f02d
add initial RISC-V support
bedroge May 7, 2024
764b2cc
add (empty) arch specs for RISC-V
bedroge May 7, 2024
9166fc5
remove easystacks from production repo
bedroge May 7, 2024
ab535f6
set EESSI_CVMFS_REPO and EESSI_VERSION to correct values for RISC-V repo
bedroge May 7, 2024
96e7bb6
sync with 2023.06-software.eessi.io branch
bedroge May 7, 2024
af88198
update README
bedroge May 7, 2024
06db829
remove unused versions dir
bedroge May 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/scorecards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v2.0.6
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
with:
results_file: results.sarif
results_format: sarif
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/tests_archdetect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ jobs:
- x86_64/intel/skylake_avx512/archspec-linux-6132
- x86_64/amd/zen2/Azure-CentOS7-7V12
- x86_64/amd/zen3/Azure-CentOS7-7V73X
- x86_64/amd/zen4/Azure-Alma8-9V33X
- x86_64/amd/zen4/Shinx-RHEL8-9654
- aarch64/neoverse_n1/Azure-Ubuntu20-Altra
- aarch64/neoverse_n1/AWS-awslinux-graviton2
- aarch64/neoverse_v1/AWS-awslinux-graviton3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests_scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: Tests for scripts
on:
push:
paths:
- build_container.sh
- create_directory_tarballs.sh
- create_lmodsitepackage.py
- eessi_container.sh
- EESSI-install-software.sh
- install_software_layer.sh
- load_easybuild_module.sh
Expand All @@ -15,9 +15,9 @@ on:

pull_request:
paths:
- build_container.sh
- create_directory_tarballs.sh
- create_lmodsitepackage.py
- eessi_container.sh
- EESSI-install-software.sh
- install_software_layer.sh
- load_easybuild_module.sh
Expand Down
31 changes: 30 additions & 1 deletion EESSI-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,24 @@ else
mkdir -p ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
fi

# if we run the script for the first time, e.g., to start building for a new
# stack, we need to ensure certain files are present in
# ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
# - .lmod/lmodrc.lua
# - .lmod/SitePackage.lua
_eessi_software_path=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
_lmod_cfg_dir=${_eessi_software_path}/.lmod
_lmod_rc_file=${_lmod_cfg_dir}/lmodrc.lua
if [ ! -f ${_lmod_rc_file} ]; then
command -V python3
python3 ${TOPDIR}/create_lmodrc.py ${_eessi_software_path}
fi
_lmod_sitepackage_file=${_lmod_cfg_dir}/SitePackage.lua
if [ ! -f ${_lmod_sitepackage_file} ]; then
command -V python3
python3 ${TOPDIR}/create_lmodsitepackage.py ${_eessi_software_path}
fi

# Set all the EESSI environment variables (respecting $EESSI_SOFTWARE_SUBDIR_OVERRIDE)
# $EESSI_SILENT - don't print any messages
# $EESSI_BASIC_ENV - give a basic set of environment variables
Expand Down Expand Up @@ -203,10 +221,21 @@ ${TOPDIR}/install_scripts.sh --prefix ${EESSI_PREFIX}
# Hardcode this for now, see if it works
# TODO: We should make a nice yaml and loop over all CUDA versions in that yaml to figure out what to install
# Allow skipping CUDA SDK install in e.g. CI environments
# The install_cuda... script uses EasyBuild. So, we need to check if we have EB
# or skip this step.
module_avail_out=$TMPDIR/ml.out
module avail 2>&1 | grep EasyBuild &> ${module_avail_out}
if [[ $? -eq 0 ]]; then
echo_green ">> Found an EasyBuild module"
else
echo_yellow ">> No EasyBuild module found: skipping step to install CUDA (see output in ${module_avail_out})"
export skip_cuda_install=True
fi

if [ -z "${skip_cuda_install}" ] || [ ! "${skip_cuda_install}" ]; then
${EESSI_PREFIX}/scripts/gpu_support/nvidia/install_cuda_host_injections.sh -c 12.1.1 --accept-cuda-eula
else
echo "Skipping installation of CUDA SDK in host_injections, since the --skip-cuda-install flag was passed"
echo "Skipping installation of CUDA SDK in host_injections, since the --skip-cuda-install flag was passed OR no EasyBuild module was found"
fi

# Install drivers in host_injections
Expand Down
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@ See also https://www.eessi.io/docs/software_layer .
You can set up your environment by sourcing the init script:

```
$ source /cvmfs/software.eessi.io/versions/2023.06/init/bash
Found EESSI repo @ /cvmfs/software.eessi.io/versions/2023.06!
Derived subdirectory for software layer: x86_64/intel/haswell
Using x86_64/intel/haswell subdirectory for software layer
$ source /cvmfs/riscv.eessi.io/versions/20240402/init/bash
Found EESSI repo @ /cvmfs/riscv.eessi.io/versions/20240402!
archdetect says riscv64/generic
Using riscv64/generic as software subdirectory.
Found Lmod configuration file at /cvmfs/riscv.eessi.io/versions/20240402/software/linux/riscv64/generic/.lmod/lmodrc.lua
Found Lmod SitePackage.lua file at /cvmfs/riscv.eessi.io/versions/20240402/software/linux/riscv64/generic/.lmod/SitePackage.lua
Using /cvmfs/riscv.eessi.io/versions/20240402/software/linux/riscv64/generic/modules/all as the directory to be added to MODULEPATH.
Initializing Lmod...
Prepending /cvmfs/software.eessi.io/versions/2023.06/software/x86_64/intel/haswell/modules/all to $MODULEPATH...
Environment set up to use EESSI (2023.06), have fun!
[EESSI 2023.06] $
Prepending /cvmfs/riscv.eessi.io/versions/20240402/software/linux/riscv64/generic/modules/all to $MODULEPATH...
Environment set up to use EESSI (20240402), have fun!
{EESSI 20240402} $
```

### Accessing EESSI via a container
Expand Down
69 changes: 0 additions & 69 deletions build_container.sh

This file was deleted.

29 changes: 27 additions & 2 deletions create_lmodsitepackage.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,28 @@
return content
end

local function from_eessi_prefix(t)
-- eessi_prefix is the prefix with official EESSI modules
-- e.g. /cvmfs/software.eessi.io/versions/2023.06
local eessi_prefix = os.getenv("EESSI_PREFIX")

-- If EESSI_PREFIX wasn't defined, we cannot check if this module was from the EESSI environment
-- In that case, we assume it isn't, otherwise EESSI_PREFIX would (probably) have been set
if eessi_prefix == nil then
return False
else
-- NOTE: exact paths for site so may need to be updated later.
-- See https://github.com/EESSI/software-layer/pull/371

-- eessi_prefix_host_injections is the prefix with site-extensions (i.e. additional modules)
-- to the official EESSI modules, e.g. /cvmfs/software.eessi.io/host_injections/2023.06
local eessi_prefix_host_injections = string.gsub(eessi_prefix, 'versions', 'host_injections')

-- Check if the full modulepath starts with the eessi_prefix_*
return string.find(t.fn, "^" .. eessi_prefix) ~= nil or string.find(t.fn, "^" .. eessi_prefix_host_injections) ~= nil
end
end

local function load_site_specific_hooks()
-- This function will be run after the EESSI hooks are registered
-- It will load a local SitePackage.lua that is architecture independent (if it exists) from e.g.
Expand Down Expand Up @@ -153,10 +175,13 @@
-- Combine both functions into a single one, as we can only register one function as load hook in lmod
-- Also: make it non-local, so it can be imported and extended by other lmodrc files if needed
function eessi_load_hook(t)
eessi_cuda_enabled_load_hook(t)
-- Only apply CUDA hooks if the loaded module is in the EESSI prefix
-- This avoids getting an Lmod Error when trying to load a CUDA module from a local software stack
if from_eessi_prefix(t) then
eessi_cuda_enabled_load_hook(t)
end
end


hook.register("load", eessi_load_hook)

-- Note that this needs to happen at the end, so that any EESSI specific hooks can be overwritten by the site
Expand Down
7 changes: 0 additions & 7 deletions easystacks/software.eessi.io/2023.06/README.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading