You are here

ゲストさん、ようこそ。 ログインはこちら / アカウント作成はこちら

GPUクラスタ利用の手引き

お知らせ

  • 試験公開を開始しました。(2019/03/15)

Last Updated: 2019/03/15


1. GPUクラスタの概要

試験公開中のシステムは加速器として1ノードあたり1基のTesla K20 を搭載しています.ノード間通信が不十分なためノード間並列はご利用になれません.
GRAPEライブラリを用いることでGRAPE用のコードをほぼそのまま利用することができます.

2 システム情報

2.1 ハードウェア構成

  • muv02.cfca.nao.ac.jp : ログインノード
    • 1ノード
    • CPU : Intel Xeon E5-2620 v4 2.10GHz
    • 主記憶容量 : 32GB
  • gk[201-208] : 計算ノード・Tesla K20c
    • 8ノード
    • 加速器 : nvidia Tesla K20c
    • CPU : Intel Xeon E5-1620 v3 3.50GHz
    • 主記憶容量 : 16GB

2.2 加速器の理論性能

加速器 Tesla K20c
単精度演算性能 3.52TFlops
倍精度演算性能 1.17TFlops

2.3 ファイルシステム

現在,GPUクラスタ用の独立したファイルシステムはありません./home/をご利用下さい.

2.4 アクセス方法

GPUクラスタはGRAPEシステム同様,CfCA-HPCネットワーク内に設置されています.
VPNを用いてHPCネットワークに接続し,muv02.cfca.ac.jp にログインしてください.

% ssh -l アカウント名 muv02.cfca.nao.ac.jp

VPNによる接続方法の詳細はHPCネットワークへの接続方法を御覧下さい。
CfCA共同利用計算機のアカウント名(本Webシステムのアカウント名ではありません)は本Webシステムのアカウント情報から確認することができます。
また初期NISパスワードは利用申請受理後にメールで配信されます。

2.5 パスワードやログインシェルの変更方法

ユーザーのパスワードの変更はログインノードで,

% yppasswd

とすれば行えます.

% ypcsh

とすることでシェルを変更することができますが,動作確認はbashで行っており,その他のシェルでの動作確認は十分ではありません.
GPUクラスタ以外の計算機システムでシェルを変更されている方は,シェル由来の不具合が発生する可能性があります.
あらかじめご承知おきください.今後段階的に対応していく予定です.

3 利用方法

計算ノードへ直接ログインすることはできません.ログインノードでプログラムの開発を行なって下さい.
開発したプログラムはジョブ管理システムを通して計算ノードで実行されます.ジョブの投入についてもログインノードで行います.
ログインノードでは計算の実行など重い処理を行なわないようご注意願います.

3.1 コンパイル

CUDA C/C++ で書かれたプログラムのコンパイルには nvidia CUDA Toolkit に含まれる nvcc を使用します.

bash-4.2$ nvcc -gencode=arch=compute_35,code=sm_35 -o sample sample.c

CUDA Fortran で書かれたプログラムの場合は pgi コンパイラでコンパイルします.
解析サーバと共通のpgiコンパイラを利用できます.

[muv02 ~]$ module avail

------------------------ /usr/share/Modules/modulefiles ------------------------
dot module-info null use.own
module-git modules pgi/18.5
[muv02 ~]$ module load pgi
[muv02 ~]$ pgf90 -Mcuda=cc35 -o sample sample.f90

GRAPE用プログラムをコンパイルするには別途GRAPE G5/G6 用のGRAPEライブラリをリンクする必要があります(後述).

3.2 ジョブ管理システム

GPUクラスタではジョブ管理システムとしてPBS (version 18.1)を導入しています.
ログインノードからジョブ管理システムを用いてジョブを実行して下さい.
試験公開中のため,予告なくキューの設定を改定することがあります.
現状の制限値は

[muv02 ~]$ qstat -Qf

で確認できます.

利用可能なキュー

Tesla k20c 搭載ノードはgk[201-208]の8ノードでそのうちgk201はdebug専用ノードです.
どのキューもCPU 1 ソケットと GPU 1枚を 1ジョブが占有し,複数のキューで資源を共有することはありません.

キューの詳細
キュー 計算ノード Wall time制限 同時実行数
gk20-1-debug gk2xx 30 min 1
gk20-1-middle gk2xx 48 hour 無制限 (7)
gk20-1-long gk2xx 168 hour 2 /user

ジョブの投入方法

計算の投入に必要な最小のジョブスクリプトは以下の通りです.test.sh など適当な名前で保存してください.

#! /bin/bash
#PBS -q gk20-1-debug
#PBS -l walltime=00:00:60
cd /home/YOUR_ACOUNT/DIR
./a.out > a.log

プログラムを実行するディレクトリの設定が必要です。
以下のようにプログラムを実行するディレクトリをcd コマンドで設定してください。

cd /home/YOUR_ACOUNT/DIR

ジョブスクリプトを投入したディレクトリは $PBS_O_WORKDIR という環境変数に格納されます.
したがって投入ディレクトリへの移動は以下のように記述することもできます.

cd $PBS_O_WORKDIR

ジョブスクリプトの最終行でプログラムを実行しています.
標準出力が多くなったときに不具合が生じることがあるため,リダイレクトは必ず書くようにしてください.

./a.out > a.log

スクリプトを作成後,qsubコマンドでジョブを投入します.

% qsub test.sh

ジョブの確認

qstat -a

以下は表示例です。

bash-4.2$ qstat -a

muv02:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
135.muv02 <user_name> gk20-1-m hello.sh 18366 1 1 -- 00:00 R 00:00

状態(S の列、Status の意味) は以下の意味がある。

E (Exiting) 実行済みで終了中
H (Held) 保留状態
Q (Queued) キュー待機状態
R (Running) 実行中
S (Suspended) 中断中
ジョブの消去

以下のコマンドによってジョブをキャンセルできます。

qdel <JOB-ID>

JOB-ID は上記qstat コマンドで調べることができます。

3.3 GRAPEライブラリの利用方法

GPUクラスタではCUDA用ライブラリをリンクすることでGRAPEライブラリを用いた(GRAPEシステム用の)プログラムコードをコンパイル,実行することができます.
GRAPE-5モード,GRAPE-6モードの両方が使用できます.
ただしGRAPEライブラリそのもののバージョンがGRAPEシステムよりも新しく一部の古い命令が廃止されています.
廃止された命令を使用している場合にはその部分の書き換えが必要になります.

コンパイル方法

コンパイルは以下のようにします.

$ gcc -pthread sample.c -o sample -O2 -lm -lcuda5 -lcudart -lstdc++

または

$ gcc -pthread sample.c -o sample -O2 -lm -lcuda6 -lcudart -lstdc++

ただし g5nbutil.h を使用しているプログラムは以下のように書き換える必要があります.

//#include "g5nbutil.h"
#include "g5util.h"

GRAPE CUDAライブラリドキュメント

GRAPE-G5/G6ライブラリのより詳しい情報は

muv02:/usr/local/grape/grapepkg1.7/doc/00readme
muv02:/usr/local/grape/grapepkg1.7/doc/00readme-j

を参照してください.

4 その他の注意事項

GRAPE/GPUシステムは利用申請を行い、申請が受理された利用者が使用出来ます。
GPUの試用のみを希望される場合もGRAPE利用申請フォームから利用申請を行ってください。
各利用者は利用方法を守り、他の利用者の利便を損なわないようにしてください。
利用方法が守られていないとこちらで判断した場合、警告無く利用者のプロセスを終了することをご了承下さい。