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-eu

  • Singularity 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/itwinai

  • Development Images: ghcr.io/intertwin-eu/itwinai-dev

    • Includes images built from pushes to the main branch.

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.txt

  • The application code (including main.py) is copied into the container

  • The 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.