Skip to content

mfem/containers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 MFEM Docker Containers

This repository contains Docker images to aid MFEM development and the exploration of MFEM and its capabilities in a variety of computing environments: from personal laptops, to HPC clusters, and the cloud.

  • You can find pre-built images in the right sidebar under Packages.

  • Instructions how to use these containers locally can be found in the Docker page of the MFEM website.

  • You can also use them to setup your own cloud MFEM development environment. See this AWS script.

There are currently two main configurations that support CPU or GPU computation. Both types are available in the following configurations:

  • cpu

    • OpenMPI 4.1.2
    • hypre 2.27
  • cuda-sm70

    • CUDA toolkit 11.8
    • OpenMPI 4.1.2
    • hypre 2.27
  • cpu-tpls

    • OpenMPI 4.1.2
    • hypre 2.27.0
    • SuperLU_dist 8.2.1
    • PETSc 3.20.2
  • cuda-tpls-sm70

    • CUDA toolkit 11.8
    • OpenMPI 4.1.2
    • hypre 2.27.0
    • AmgX 8.2.1
  • developer-cpu

    • extension of cpu-tpls that includes a development environment with VSCode server and GLVis
    • see the MFEM AWS tutorial for details
  • developer-cuda-sm70

    • extension of cuda-tpls-sm70 that includes a development environment with VSCode server and GLVis
    • see the MFEM AWS tutorial for details

Note that the cuda images require the host has the NVIDIA Container Toolkit to installed and configured.

Note also that the cuda images have MFEM and its third-party libraries configured for CUDA sm_70. You can create your own image that support a different compute capability with docker-compose as follows:

git clone git@github.com:mfem/containers.git
cd containers
docker-compose build --build-arg cuda_arch_sm=80 cuda && docker image tag cuda:latest cuda-sm80:latest
docker-compose build --build-arg cuda_arch_sm=80 cuda-tpls && docker image tag cuda-tpls:latest cuda-tpls-sm80:latest

We recommend starting the container with:

docker run --cap-add=SYS_PTRACE -ti --gpus all ghcr.io/mfem/containers/cuda-tpls-sm70:latest /bin/bash

which puts you in the home directory for the euler user, enables access to all GPUs, and lets you explore the broad selection of examples or write your own.