クラウドシステムの利用

このページでは、クラウドシステムの利用方法について説明します。

クラウドシステムは、商用のクラウドサービスを用いて小規模な計算機クラスタを構成し、 本センターに設置したスーパーコンピュータシステムのストレージやジョブスケジューラと 接続することで、本センターに設置したスーパーコンピュータシステムと同様にジョブの 実行を行うことが可能なシステムです。

スーパーコンピュータシステムの利用者番号をお持ちであればどなたでもご利用いただけます。

クラウドシステムで使用する計算機の仕様は以下のとおりです。 なお、クラウドシステムのノード数は需要に応じて変動します。

2023年6月15日の保守後より、以下のベアメタルインスタンスを使用しています。 利用可能なノード数は、負荷状況に合わせて変動します。 大規模な構成ではないため、1ジョブ当たり1ノードの規模を上限としています。

項目 内容
ノード数 変動
プロセッサ Intel Xeon Gold 6354 3.0GHz 18コア
プロセッサ数 (コア数) 2 (36コア/ノード)
アーキテクチャ x86-64
演算性能 3.45TFlops/ノード
メモリ容量 512GByte
ネットワーク 50Gbps Ethernet

2023年4月1日~6月13日までは、以下のベアメタルインスタンスを使用していました。 リソース不足が生じた際には、このインスタンスを使用する場合があります。

項目 内容
ノード数 変動
プロセッサ Intel Xeon Gold 6154 3.0GHz 18コア
プロセッサ数 (コア数) 2 (36コア/ノード)
アーキテクチャ x86-64
演算性能 3.45TFlops/ノード
メモリ容量 384GByte
ネットワーク 25Gbps Ethernet

スーパーコンピュータのログインノードにログインした後、以下のmodule コマンドでクラウドシステムを利用する環境に切り替えることでクラウドシステムへのジョブ投入が可能です。

$ module switch SysCL

システムA/B/C と同じXeonプロセッサを搭載したノードでプログラムを実行するため、再コンパイルすることなく、同じプログラムを利用することが可能です。 ジョブキュー(パーティション)の構成や、ノード当たりのコア数、メモリ容量に違いはありますが、それ以外は同じ使い勝手でご利用いただけます。

詳細な情報は、プログラムの実行をご参照ください。

クラウドシステムは以下のようなキュー構成としています。 eoキューはデバッグ用として短時間のジョブに限定しています。 soキューは小規模なジョブを実行することが可能です。 大規模なキューについては、状況に応じて提供することがあります。

#!/bin/bash
#============ Slurm Options ===========
#SBATCH -p eo              # ジョブキュー(パーティション)の指定。投入したいキュー名に適宜変更が必要。
#SBATCH -t 1:00:00         # 経過時間の指定(1時間を指定する例)
#SBATCH --rsc p=1:t=1:c=1  # 要求リソースの指定
#SBATCH -o %x.%j.out       # ジョブの標準出力ファイルの指定
#============ Shell Script ============
set -x

srun ./a.out

#!/bin/bash
#============ Slurm Options ===========
#SBATCH -p eo              # ジョブキュー(パーティション)の指定。投入したいキュー名に適宜変更が必要。
#SBATCH -t 1:00:00         # 経過時間の指定 (1時間を指定する例)
#SBATCH --rsc p=8:t=1:c=1  # 要求リソースの指定
#SBATCH -o %x.%j.out       # ジョブの標準出力ファイルの指定
#============ Shell Script ============
set -x

srun ./a.out

キュー名 利用可能なユーザ
eo 全ユーザ
so パーソナルコース,グループコース,専用クラスタコースに所属するユーザ

説明 eoキュー
初期値

最大値
soキュー
初期値

最大値
プロセス数 ( --rsc p=X ) 1 36 1 36
プロセスあたりのスレッド数 ( --rsc t=X ) 1 36 1 36
プロセスあたりのコア数 ( --rsc c=X ) 1 36 1 36
プロセスあたりのメモリ量( --rsc m=X )
(単位:M, G)
13G 500G 13G 500G
経過時間 ( -t ) 1時間 1時間 1時間 7日
ユーザあたりの同時実行数 1 1 1 1

本センターのスーパーコンピュータシステムでは、/tmpの領域を一時的なデータの書き込み先として利用できます。 細かいファイルI/Oを伴うプログラムは、/tmpを利用したほうが高速に処理できるケースがあります。

/tmpはジョブごとにプライベートな領域として用意しますので、他のジョブとファイルが 混在しないように作りこんでありますので、ぜひご活用ください。

なお、/tmp の領域は、ジョブの終了時に自動で削除されますので、/tmpに書き込んだファイルを 残すためには、ジョブスクリプトに /homeや/LARGE0,/LARGE1 にファイルをコピーする 記述を含めて頂く必要があります。あとから取り出すことはできませんので、ご注意ください。

  • プログラムで指定が可能な場合は、ファイルの書き込み先を /tmp に指定する。
  • 繰り返し読み込むファイルをプログラム実行開始前に /tmp に配置する。
  • 相対PATHでファイルにアクセスするプログラムや入力ファイルを、/tmp に配置したうえで実行する。

クラウドシステムで利用可能な/tmpの容量は、 プロセス数 x プロセスあたりのコア数 x 94GB で求めることができます。

例えば、4プロセス(1プロセスあたり 8コア) のジョブを投入した場合は 4 x 8 x 94 から、3,008GB の割当が行われます。

クラウドシステムにおいても、システムB等のオンプレミスのシステムと同様に、ホームディレクトリ($HOME)や 大容量ストレージ(/LARGE)をマウントしていますので、同じPATHでファイルにアクセスすることができます。

しかし、クラウドシステムと大学にあるストレージとの間には、ネットワークの距離や帯域の制約 があるため、ストレージ性能を完全に引き出すことはできません。

I/Oが少ないプログラムについては、システムBとの使い勝手の差は少ないと思いますが、 I/Oが多いプログラムは、前節で紹介した/tmpを有効活用してください。

巨大なファイルを/homeや/LARGE0/1に書き込むと、応答が悪くなりやすいため、 効率的なファイル転送をお願いします。

以下に、特定のディレクトリは以下を1つのファイルにまとめるtarコマンドの例を紹介します。

## rsyncコマンドの例(圧縮あり(-z))
$ rsync -za /tmp/target-dir/ /LARGE0/gr19999/remote-dir/

## tar+gzip のコマンド例
$ cd /tmp
$ tar -zcvf target-dir archive-name.tar.gz; cp archive-name.tar.gz /LARGE0/gr19999/archive-name.tar.gz

## tar+zst のコマンド例(多くの場合gzipよりも高速かつ高圧縮)
$ cd /tmp
$ tar -Izstd -cvf target-dir archive-name.tar.zst; cp archive-name.tar.gz /LARGE0/gr19999/archive-name.tar.zst

ノード間は50Gbps のEthernet のため、スーパーコンピュータの性能として考えるとあまり高くはありません。 確保できる計算リソースも多くないため、ジョブ当たりのノードを1ノードに限定しています。