Using itwinai Container Images
itwinai provides pre-built container images to facilitate the deployment and scaling of machine learning applications. These containers are built at each release and are available in two locations:
Docker images: Hosted on GitHub Container Registry (GHCR) under
ghcr.io/intertwin-euSingularity images: Available on Harbor at
registry.cern.ch/itwinai
These images provide a convenient base for users to build their applications on top of a pre-configured environment optimized for high-performance computing (HPC) and deep learning workflows.
Available Container Images
Three types of container flavors are available:
torch-slim: Includes Horovod and DeepSpeed, tested on HPC (currently Vega)
torch-skinny: A minimal installation with a significantly reduced image size
jlab-slim: Designed for JupyterLab single-user mode, supports offloading to HPC via interLink
Container Registries
Docker Containers (GHCR)
Docker images are hosted on GitHub Container Registry (GHCR) under two repositories:
Release Images:
ghcr.io/intertwin-eu/itwinaiDevelopment Images:
ghcr.io/intertwin-eu/itwinai-devIncludes images built from pushes to the
mainbranch.
To use these containers as a base for your application, reference them in your Dockerfile
with the FROM directive.
All the containers under ghcr.io/intertwin-eu/itwinai image, whose tag matches *-latest
will be made available through CVMFS via Unpacker.
Singularity Containers (Harbor)
Singularity images are stored on Harbor (registry.cern.ch) and can be directly
pulled on HPC systems without conversion. Only release images are converted to Singularity and
pushed to the containers registry.
For JupyterHub integration, use the following URI format to launch JupyterLab single-user containers:
oras://registry.cern.ch/itwinai/itwinai:TAG
For example:
oras://registry.cern.ch/itwinai/itwinai:jlab-slim-latest
Building Applications on Top of itwinai Containers
Users can build their applications by creating a Dockerfile that extends an itwinai
container image. Below is an example Dockerfile using torch-slim-latest as a base
image:
FROM ghcr.io/intertwin-eu/itwinai:torch-slim-latest
# Set working directory
WORKDIR /app
# Copy application dependencies
COPY requirements.txt ./
# Install dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Set entrypoint
CMD ["python", "main.py"]
This example assumes that:
The application dependencies are listed in
requirements.txtThe application code (including
main.py) is copied into the containerThe application is executed by running
python main.py
If you want to create a JupyterLab container you can replace
ghcr.io/intertwin-eu/itwinai:jlab-slim-latest in the FROM clause above.
By using itwinai container images, users can focus on their application logic while
leveraging a pre-configured environment optimized for HPC and deep learning workflows.