背景
Ubuntu 20.04 で GPGPU(CUDA, OpenCL)計算クラスタを作りたい.
(AMD の場合は取り上げないが, 基本ドライバ関連だけ変えればいけるはず)
Ubuntu install
USB メモリに ISO いれてインストールします.
ssh ログイン
Desktop 版では標準では sshd が入っていないので,
$ sudo apt install openssh-server
で sshd 動かして ssh ログインできるようにしておきます.
Suspend, sleep の off
Ubuntu 20.04 から(?) 裏でなにか CPU, GPU 使っていたとしても問答無用で数分たつと suspend するようになってしまっているので(Desktop 版の場合), suspend, sleep を off にします.
Ubuntu 20.04 + lightdm + NVIDIA driver で一定時間ログインしないと suspend する(解決策あり)
https://qiita.com/syoyo/items/55aeb57074a2bc8a47be
(↑ GPU 関係なくデフォルトでは suspend/sleep しました)
ビルド環境
build-essential
では cmake, git など入らないので適宜いれる.
$ sudo apt install build-essential
$ sudo apt install cmake git
x11 の設定(nvidia-settings で制御するもの)
GPU のファン量などコントロールしたい場合は, nvidia-settings を使う必要がありますが, これには X11 を入れる必要があります.
(headless 環境では動かない)
NVIDIA GPU の X11 headless setup + X11VNC/RDP 接続のメモ
https://qiita.com/syoyo/items/a14fa891b80bb82a4485
あたりを参考にして x11vnc を headless(物理画面出力なし)で動かせるようにします.
GPU ドライバ, CUDA
CUDA SDK 入れればドライバも入るので, CUDA SDK 入れるのが手っ取り早いでしょうか.
MPI
OpenMPI, MPICH お好みで.
とりあえずは OpenMPI がよいでしょうか.
Xubuntu16.04でOpenMPIを使って並列処理をしてみる
https://qiita.com/pochiMasahiro/items/3c0c2828234b3c6a5a44
apt で入れます.
MPICH, OpenMPI 混在させるばあいは, update-alternatives あたりで切り替え, もしくは MPICC など環境変数で mpich 側のコンパイラを指定, でしょうか.
InfiniBand
apt でドライバやパッケージ入ります.
共有ストレージ
NFS or CIFS(Samba) で接続でしょうか.
CIFS の場合は, ユーザー権限で接続できます.
Ubuntu 16.04 or 18.04 で gvfs で samba(cifs) をコマンドラインでユーザ権限でマウントする
https://qiita.com/syoyo/items/8f9cb366c7abe476ad7d
TODO
- 複数ノードをセットアップする場合, Ubuntu MAAS あたりで OS イメージを作って一括デプロイできる環境をつくる