-
Notifications
You must be signed in to change notification settings - Fork 51
Document approaches for site builds on top of EESSI #778
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
Open
casparvl
wants to merge
27
commits into
EESSI:main
Choose a base branch
from
casparvl:site_builds
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 8 commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
a4d5de8
Add initial files for each site-building approach
259e935
Made a start with the site builds as a CVMFS repo
6aebcec
Started to write Stratum 0 install docs. Work in progress
dcf695f
Slight rephrasing of site-build overview section and add new pages to…
87ccf16
Merge branch 'main' into site_builds
c887a09
Corrected typo
729cf88
More or less completed the docs on how to setup a Stratum 0
c31746d
Finished description for Stratum 0 and Stratum 1
e4fac7e
Finished a few more chapters
b9205ca
Small update
7b027fc
Started section on installing EESSI build bot on a machine
3f49e7b
Further work on deploying bot on machine
8fe6e19
first attempt at writing the shared fs section
bedroge 0cddb6b
Merge pull request #5 from bedroge/site_builds_shared_fs
casparvl ed6f41a
Make sure we add instructions to stop _and disable_ autofs. Otherwise…
5aa289b
Merge branch 'site_builds' of github.com:casparvl/docs into site_builds
d200d12
Add some debugging instructions
92f27e0
Added an image, rewrote some parts, fixed some formatting
6ea3bef
Fixed some typos
acfcb9e
Added logic to do signature verification to the automatic ingestion s…
2bba8e8
Fixed codespell issues
e0724fa
Fix typo
Neves-P 7bef7b8
Fix missing word
Neves-P 51a0d0a
Fix markdown
Neves-P 0cc3ec7
Add line break
Neves-P bf3f6f8
Bash highlight
Neves-P e18965a
Use monospaced font for path
Neves-P File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # Introduction | ||
| This documentation is aimed at HPC sites or other facilities that make EESSI available on their system, but would like to offer additional installations that are performed 'on top' of EESSI (i.e. using dependencies provided by EESSI). | ||
|
|
||
| There are several reasons why, as a site, you may want to offer additional software on top of EESSI. For example: | ||
|
|
||
| 1. You want to offer software that does is not suitable for upstream deployment in EESSI (e.g. because it is proprietary, or because it is a development build / otherwise very specific build that is not useful for a general audience). | ||
| 2. You need to make software available on (very) short notice to your users, and cannot wait for it to be deployed in upstream EESSI. | ||
| 3. You want to retain full autonomy over what gets deployed. | ||
|
|
||
| While all of these are valid arguments, note that there is also one major downside to deploying things locally: you loose one of the core benefits of EESSI, namely that it provides _the same software on every system_. The more site-specific installations you have, the more difficult it will be for your users to move their workflows from e.g. their own development machine/cloud environment to your cluster, or scale up to larger clusters. If you're doing site-builds to make software available to your users on short notice, we highly encourage you to _also_ contribute the same software installation in upstream EESSI. This way, once accepted upstream, users that rely on that software retain their 'mobility'. | ||
|
|
||
| # Choosing your approach | ||
| There are two approaches to doing site builds, each with their own advantages and disadvantages. | ||
|
|
||
| 1. Perform site builds using EESSI-extend on a shared filesystem. | ||
| 2. Leverage EESSI's build procedure for site builds. In this approach, you use the EESSI build bot (`EESSI/eessi-bot-software-layer`), together with the EESSI build scripts (`EESSI/software-layer-scripts`) to build and deploy software into a CernVM-FS repository of your own. Essentially, this means you'll build in a way that is essentially identical to how it is done for upstream EESSI - with the only major difference being the target CernVM-FS repository. | ||
|
|
||
| In both cases, you build 'on top' of EESSI, meaning that dependencies that are already provided by EESSI will not be reinstalled: they will simply be loaded from EESSI. | ||
|
|
||
| Here, we list some advantages and disadvantages to help you choose which approach best suites your requirements. | ||
|
casparvl marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Approach 1: using EESSI-extend on shared FS | ||
|
|
||
| Advantages: | ||
|
|
||
| - Easy to get started: no additional setup or knowledge needed | ||
| - Automatically optimizes for the host on which you run the installation, and installs in architecture-specific prefix that matches the host architecture. This means you can install optimized software for each of your CPU/GPU architectures in an organized way. | ||
|
|
||
| Disadvantages: | ||
|
|
||
| - This is a manual procedure (unless you create your own automation around it). As such, doesn't scale well to installing large amounts of software and/or installing software for many different hardware targets. | ||
|
casparvl marked this conversation as resolved.
Outdated
|
||
| - The fact that you get optimized installations means that on a very heterogeneous system, you will have to run the installation many times - once for each architecture on which you want to offer that particular piece of software. | ||
| - Shared filesystems (and especially _parallal_ filesystems) are generally ill-suited to serve software. This means start-up time can be quite long (you can find some numbers [here](../training-events/2025/tutorial-best-practices-cvmfs-hpc/performance.md)). | ||
|
casparvl marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Approach 2: leveraging all of EESSI's tooling for site builds | ||
|
|
||
| Advantages: | ||
|
|
||
| - Highly automated | ||
| - Scalable to many architectures & installations | ||
| - Site builds are done based on a list of software in a GitHub repo - making it very transparent what is available / got added on your system | ||
| - Share maintenance on the automation with the EESSI community | ||
| - End-user look & feel are very similar to EESSI | ||
|
|
||
| Disadvantages | ||
|
|
||
| - More setup time | ||
| - Requires more extnesive knowledge (CVMFS, EESSI build bot, object store) | ||
|
casparvl marked this conversation as resolved.
Outdated
|
||
| - More hardware resources (CVMFS infrastructure, bot infrastructure) | ||
| - More components (software/hardware) to maintain | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| TODO |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.