Is anyone using Singularity for running Aspect on HPC? I only just starting experimenting with it, but as far as I can tell Singularity is better than Docker for scientific software in just about every way. For one thing, you don’t need to worry about binding local directories or copying things in/out of the container. It’s all pretty transparent to the user. Obtaining and running Aspect would look something like:
wget "https://foo.bar/aspect-v2.sif"
singularity exec aspect-v2.sif aspect input.prm
And the same commands should work identically on a cluster or a laptop or whatever else. XSEDE claims to support it, and I’m pretty sure it is available on Stampede2 (don’t quote me on that), but it doesn’t seem to be available on Expanse (yet).
Searching this forum, it looks like there’s only one mention of it in this old thread. The question that @tjhei raised about how MPI works within a container is answered in the documentation. It seems straightforward, but it does appear that there may be some gotchas that make a single distribution image slightly less portable. Namely, the MPI library in the container has to be compatible with the MPI version used on the cluster, and ideally the image should be configured with a specific cluster’s hardware in mind.
The only reason I could see for not dropping Docker entirely is that Singularity can run Docker images, but Docker is not compatible with Singularity files. So if it turns out there is some use case that’s better suited to Docker, then maybe it’s worth keeping that backwards compatibility. I’m usually sort of cautious about committing to new platforms, but in this case I’m struggling to find any downsides.
I’m interested to hear if anyone has experience with this already. Is there any advantage to Docker (or even VirtualBox, for that matter) over Singularity?