Alpine Linux with MPICH for developing and deploying distributed MPI programs
10K+
Docker image of Alpine Linux with latest version of MPICH -- portable implementation of Message Passing Interface (MPI) standard.
latest / default (Dockerfile) contains MPICH and essential build tools. Intended to be used as development environment for developing MPI programs.MPICH compiler (the version is according to the tag version)
build-base package (gcc, g++, make, wget, curl, etc.)
default user mpi (sudoer without password)
default working directory /project (owned by default user)
onbuild (Dockerfile) inherits base image with network setup for cluster. Can be used like base image but intended to be used to build image that contains compiled MPI program in order to deploy to a cluster.
See Deployment section for cluster setup
To download updated images:
$ docker pull nlknguyen/alpine-mpich
$ docker pull nlknguyen/alpine-mpich:onbuild
The image is available here at DockerHub and is automatically rebuilt by changes on this GitHub repository. This image is intended for developing projects that use MPICH and unlikely to be suitable for developing MPICH itself.

At the directory of your MPI project, run:
$ docker run --rm -it -v $(pwd):/project nlknguyen/alpine-mpich
mpicc, mpirun, or any software available in the container./project directory inside the container so that the programs in the container can have effects on your project directory. This way you can develop your MPI program using any editor in any host OS and use this Docker container to compile and run the MPI program.Argument explanation:
--rm remove the container after the program is finished.-it open an interactive terminal session (see -i -t for details)-v $(pwd):/project volume mount the current directory $(pwd) where your shell is at, to the directory /project inside the container.Follow general guidelines for using Docker container
To get updated image:
$ docker pull nlknguyen/alpine-mpich
It is common that you need to install/remove packages, add compiled program, configure network, or any administration task. To do that, create your own Dockerfile and extend from this image. Below is a simple example. See Docker documentation for details.
Example: add packages
Create your own Dockerfile with the content:
FROM nlknguyen/alpine-mpich
RUN sudo apk add --no-cache valgrind gdb
# if you need to run as root
USER root
# run commands as root
# switch back to non-root user
USER ${USER}
CMD ["/bin/ash"]
then build
$ docker build -t my-custom-image .
Build arguments are available. See this.
to run:
$ docker run --rm -it -v $(pwd):/project my-custom-image
Some environment variables from the image that you can use in your Dockerfile:
USER non-root user who is a sudoer without password. Default=mpiWORKDIR main working directory owned by default user. Default=/projectHowever, these are not intended to be set at Docker run command. They can be set at build time, and their meaningful values stay permanent. For build customization, go to the GitHub page for more details.
See cluster setup instruction
Feedbacks are always welcome. For general comments, use the comment section at the bottom of this image page on Docker Hub
Use this GitHub repository issues
Suggestions and pull requests are awesome.
Copyright © Nikyle Nguyen
Content type
Image
Digest
Size
51.9 MB
Last updated
over 9 years ago
docker pull nlknguyen/alpine-mpich