Here, we describe the Charliecloud workflow, using as an
example an MPI “hello world” program; It is presented in
full in order to demonstrate the simplicity of the Charliecloud
model.
We selected Docker for image building because it appears
to be an emerging industry standard and because it provides a
well-defined, reproducible procedure for defining, composing,
and sharing11 images. However, we found Docker’s security
posture and complexity undesirable for running images, using
instead a simple C wrapper we wrote ourselves.
While running the Docker daemon and executing Docker
commands require privileged access, this happens on usermanaged
resources; nothing in the Charliecloud workflow
requires privileged processes or daemons on center-managed
resources. All privileged steps take place on user systems.
We tested this workflow on Ubuntu 15.10 with vendor
kernel 4.2.0-34-generic and OpenMPI 1.10.2. Each step
notes where it is done (user- or center-managed system)
and the privilege level needed; the scripts escalate specific
commands with sudo as needed.