Using EESSI with Apple Silicon on macOS 26¶
Requirements
- Mac with Apple Silicon (M-series chip)
- macOS 26 (Tahoe) or later
- internet connection (EESSI software is streamed on demand from CVMFS Stratum 1 servers)/Other advanced solutions are also possible
1. Install the container tool¶
Download the latest signed installer package (.pkg) from the
apple/container GitHub releases page.
Double-click the downloaded .pkg file and follow the on-screen instructions.
When prompted, enter your administrator password to allow the installer to place
files under /usr/local
Alternatively, using Homebrew:
Verify the installation:
You should see output similar to:
2. Start the container system service¶
The container tool requires a background API server. Start it with:
To confirm the service is running:
3. Pull the EESSI client container image¶
Pull the EESSI ubuntu22.04-macOS-26 image from the GitHub Container Registry:
This image is an arm64 (Apple Silicon) Ubuntu 22.04 image that includes the
CernVM-FS client pre-installed and configured for EESSI.
4. Start an interactive EESSI session¶
Run the container interactively:
Note:-it provides an interactive session inside the container and --rm keeps your system clean by automatically removing the stopped container after you exit.
5. Once inside the container shell¶
Verify that the EESSI repository is accessible:
You should see output similar to:
Initialize the EESSI environment:
Expected output:Note: EESSI currently supports NVIDIA GPUs, so the message EESSI did not identify an accelerator on the system is expected.
Module for EESSI/2023.06 loaded successfully
EESSI has selected aarch64/neoverse_n1 as the compatible CPU target for EESSI/2023.06
EESSI did not identify an accelerator on the system
(for debug information when loading the EESSI module, set the environment variable EESSI_MODULE_DEBUG_INIT)
7. Use EESSI software¶
List available modules:
Search for a specific package:
Load and use a module:
module load TensorFlow/2.13.0-foss-2023a
python3 -c "import tensorflow as tf; print(tf.__version__)"
Cleanup¶
Remove the pulled image:
Stop thecontainer system service when it is no longer needed: