singularity

singularity是跟docker相似的容器系统,通常用在HPC或者超算上,跑代码之前要先把环境打包,自己制作镜像。

.镜像可以用docker或者singularity hub或者singularity library上pull下来,但好比如说跑python代码,很多时候需要自己增删改包,就必须对镜像进行个性化修改.

因为原来独占服务器到期,这次任务只能用学校的HPC,必须学这个singularity,学了十天,后面都不想搞了,但是想到花了七八天代码一直跑不通就相当于没有成果,时间就纯浪费了。

就多琢磨几天,终于搞好了

学校服务器真的强,又便宜。内存存储无限用,GPU A100按需使用也3块钱一个小时,比腾讯云,阿里云便宜一百倍。

官方文档链接:https://docs.sylabs.io/guides/3.5/user-guide/introduction.html

1,首先从容器平台下基础镜像,

singularity pull docker://deepcortex/ubuntu-conda
#从docker下载镜像并转换成sif格式

2,sif格式是个只读模式,如果修改需要创建sandbox

singularity build --sandbox ubuntu18 ubuntu-conda_latest.sif

3,创建sandbox目录后,使用shell –w命令对sandbox进行修改

sudo singularity shell --writable ubuntu18/

4,修改完镜像后重新build成sif格式

singularity build test.sif ubuntu18

说下经验,直接拉ubuntu镜像从0搭建python环境比较复杂,而且会导致sif镜像包非常大,大几G。而且从0配置CUDA是真麻烦

这次调通是直接拉的pytorch带cuda的官方镜像,然后用pip安装几个包,直接打包,方便又快。

常用的docker镜像有ubuntu官方的,nvidia官方的,pytorch官方的

再说下经验,每次为服务器换源太折腾了,又是conda的,又是ubuntu的,又是pip的。干脆直接不换源,如果是虚拟机的话用宿主机开局域网代理,再给虚拟机linux配置临时代理。又方便又快捷