我们面临的问题是很多人想在我们的高性能计算集群上运行不同的科学软件。每个用户都需要一组不同的库和库版本,我们不希望管理员每次都处理新库的安装。
因此,我们正在考虑为此目的使用 docker 容器:每个用户都可以使用他需要的用户空间库设置自己的容器,然后使用该容器运行批处理作业。
然而,正如我所看到的,docker 主要专注于服务而不是批处理作业:通常你有一个(例如 web)服务,它应该一直运行并处理新作业(这基本上总是与 new 相同的任务输入数据)一旦他们进来。
我们的情况完全不同:新用户应该能够设置应该在硬件上运行的新任务,并且应该为他的批处理作业获得一定数量的资源。
因此,我想知道是否已经有针对这种情况的解决方案。我看了一下https://github.com/NERSC/shifter似乎朝着正确的方向发展,但发展停滞不前。