以前の記事までで、Singularityをインストールできたので、PGIコンパイラーコミュニティ版のイメージを作成する。
(0)GPUボードを交換
・この記事で書いたとおり、このサーバに搭載していたQuadro 4000では、最新のドライバーが使えず、これため使用するCUDAのバージョンも9.0となってします。
・こちらのサーバと同じCUDAバージョンを使うため、最新のドライバーが使える、Quadro K2000をヤフオクから購入。
・インストールしていたnvidia-driver-390を削除して、最新の440をインストールする。
$ sudo apt remove --purge nvidia-driver-390
$ sudo apt install nvidia-driver-440
※これで、最新のcudaバージョンのDockerイメージ(nvidia/cuda:latest)が使える。
→ Dockerfile:FROM nvidia/cuda:latest
(1)PGIコミュニティ版
・このページから、最新版のPGIコミュニティエディション(pgilinux-2019-1910-x86-64.tar.gz)をダウンロードする。
→ Dockerfile:ADD ./pgilinux-2019-1910-x86-64.tar.gz /tmp
(2)Dockerfile
・このページ(hopobcn/pgi-ce)を参考にしてDockerfileを作った。
上記の「→ Dockerfile:」も参考。特にADDの「./pgi・・・」の部分は要注意!
・Dockerイメージを作成
$ sudo docker build -t pgi-ce .
(3)Singularityイメージを作成
・上記で作成されたDockerイメージを指定するため、docker-daemon:を付ける。
$ sudo singularity build sifs/pgi-ce.sif docker-daemon://pgi-ce:latest
※あけんじの環境では、SIFファイルをsifsディレクトリ配下に格納している。
(4)Singularityで起動
$ singularity shell --nv sifs/pgi-ce.sif
Singularity pgi-ce.sif:~>