Open ptheywood opened 2 years ago
Singularities --fakeroot
option might make this process much simpler, allowing users to build (some/most) containers on Bede directly, rather than having to find an extra Power9 system / use QEMU.
https://sylabs.io/guides/3.5/user-guide/fakeroot.html
This requires a recent-ish kernel, and must be enabled for the singularity install. I do not know if this is currently enabled on Bede, or if this would require changes to the installation (if this is desired).
Fakeroot I've used it on CentOS 7 machines, and from a user perspective, it's lovely. It's enabled in the EPEL singularity build, since that's the version I've tested (on EL7/8).
It adds some filesystem management complexity, as files can be created by users owned by any of their subordinate uids/gids.
I updated the write-up of building images unprivileged on a foreign architecture for current versions: https://fx.srht.site/posts/2022-01-21-building-foreign-images.html https://hpc.github.io/charliecloud/ has documentation about multi-node use.
Bede requires containers built for PPC64LE architecture CPUs, and most users will not have access to PPC64LE systems where they have the required privileges (root) to create containers.
MIT's Satori system includes some documentation on creating docker containers from X86-64 hosts:
https://mit-satori.github.io/tips-and-tricks/singularity-tips/index.html?highlight=singularity#set-up-to-run-docker-in-ppc64le-mode-on-an-x86-machine
Alternatively, @loveshack has suggested using Charliecloud and QEMU: