4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GPUクラスターを作ってみた Part.1

Posted at

はじめに

研究室内のPCサーバ内にJupyterHub環境を構築し,メンバーが空いているGPUマシンのリソースを自由に用いることができるようにすることで,作業効率が向上すると考え,今回はGPUマシンを贅沢に4台も使って,作ってみることにした.

しかし,せっかくGPUマシンを4台も用意したところで,複数人で作業する時に上手くリソースを配分できなければ,使われていない領域は無駄になってしまう.
そこで,GPUのリソースを最大限,有効活用するために,複数のGPUをクラスタ化する方法について,色々検証していこうと思う.

使用機材について

PCスペック

CPU:Core i9-11900K プロセッサー (3.50-5.30GHz/8コア/16スレッド/16MBキャッシュ/TDP 125W)
GPU:NVIDIA GeForce RTX 3070 8GB GDDR6
メモリ:DDR4-3200 32GB×4
ディスク:2TB SSD / NVMe M.2 [PCIe 4.0×4] + 4T HDD
水冷

計4台

PC画像

LANスイッチングハブ

TP-Link TL-SX1008 (8ポート 10G)

ハブ画像1


ハブ画像2

Ubuntuインストール

1.UbuntuのライブUSBを作成

下記のサイトを参考にして,UbuntuのOSイメージが入ったUSBメモリを作成

MacでUbuntuのライブUSBを作ってインストールするまでの流れ

2.ライブUSBを用いて,PCにUbuntuをインストール

  • USBメモリを挿し,PCを起動する.(ここで筆者たちはHDMIケーブルの不具合で,モニターが映らず1時間ぐらい苦戦しました笑)
    起動後画面

  • 起動して待機していると,下記のような画面になる.
    インストール画面

  • 画面の指示に従って,OSのインストールを行う.
    インストール実行画面

ssh接続

ubuntuを導入した4台のPCのうち3台をサーバ,1台をクライアントとして1台から残りの3台にアクセスできるようにする.
これは後にGPU-Clusterとしてジョブを割り当てる際に必要になる設定でもあり,これから先インストールするモジュールなどを4台同時にインストールできるようにして仕事効率を上げるためでもある.
手順を以下に示す

1. クライアントとサーバの設定

これは以下のサイトの手順通りに行なった.
公開鍵認証でのssh接続

この通りに作業を行うことで簡単にssh接続することができた.

2. サーバでのアクセス可能クライアントの制限

サーバとするPCでAllowUserの設定を行なった.これは,クライアントPC以外からのssh接続を無効にするためである.

AllowUserまたはGroupの設定方法

後に,研究室のPCからGPU-Clusterにアクセスできるよう,クライアントとしているPCにも同様の設定を行う.

イメージ

イメージ画像

クライアントPCからサーバPCにssh接続してみた

無事1台のクライアントPCから他3台のサーバPCにssh接続することができました!

ssh確認画面

次にやること

次回は,以下のサイトを参考にしながら,それぞれのGPUにKubernetes,Dockerをインストールしていこうと思う.
Docker環境構築
Kubernetes環境構築

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?