user/pages/07.run/05.cloud/docs.ja.md
452be89a
 ---
 title: クラウドシステムの利用
 published: true
 taxonomy:
     category:
         - docs
 external_links:
     process: true
     title: false
     no_follow: true
     target: _blank
     mode: active
 ---
 
 このページでは、クラウドシステムの利用方法について説明します。
 
 [toc]
 
 ## 概要{#overview}
 クラウドシステムは、商用のクラウドサービスを用いて小規模な計算機クラスタを構成し、
 本センターに設置したスーパーコンピュータシステムのストレージやジョブスケジューラと
 接続することで、本センターに設置したスーパーコンピュータシステムと同様にジョブの
 実行を行うことが可能なシステムです。
 
 スーパーコンピュータシステムの利用者番号をお持ちであればどなたでもご利用いただけます。
 
 ## システム構成{#configration}
 クラウドシステムで使用する計算機の仕様は以下のとおりです。
 なお、クラウドシステムのノード数は需要に応じて変動します。
 
 ### 計算ノード仕様{#specification}
 
 #### 現在使用可なノード
 
2d51f90b
 2023年6月15日の保守後より、以下のベアメタルインスタンスを使用しています。
 利用可能なノード数は、負荷状況に合わせて変動します。
 大規模な構成ではないため、1ジョブ当たり1ノードの規模を上限としています。
452be89a
 
 |項目                   |        内容                        |
 |--------------         |------------------------------------|
 |ノード数               | 変動                               |
2d51f90b
 |プロセッサ             | Intel Xeon Gold 6354 3.0GHz 18コア | 
452be89a
 |プロセッサ数 (コア数)  | 2 (36コア/ノード)                  |
 |アーキテクチャ         | x86-64                             |
 |演算性能               | 3.45TFlops/ノード                  |
2d51f90b
 |メモリ容量             | 512GByte                           |
 |ネットワーク           | 50Gbps Ethernet                    |
452be89a
 
 
 #### 過去に使用していたノード
 
2d51f90b
 2023年4月1日~6月13日までは、以下のベアメタルインスタンスを使用していました。
 リソース不足が生じた際には、このインスタンスを使用する場合があります。
452be89a
 
 |項目                   |        内容                        |
 |--------------         |------------------------------------|
 |ノード数               | 変動                               |
2d51f90b
 |プロセッサ             | Intel Xeon Gold 6154 3.0GHz 18コア | 
452be89a
 |プロセッサ数 (コア数)  | 2 (36コア/ノード)                  |
 |アーキテクチャ         | x86-64                             |
 |演算性能               | 3.45TFlops/ノード                  |
2d51f90b
 |メモリ容量             | 384GByte                           |
 |ネットワーク           | 25Gbps Ethernet                    |
452be89a
 
 
 ## 利用方法{#login}
 
 スーパーコンピュータのログインノードにログインした後、以下のmodule コマンドでクラウドシステムを利用する環境に切り替えることでクラウドシステムへのジョブ投入が可能です。
 
 ```nohighlight
 $ module switch SysCL
 ```
 
 ## ジョブ実行{#sbatch}
 
 システムA/B/C と同じXeonプロセッサを搭載したノードでプログラムを実行するため、再コンパイルすることなく、同じプログラムを利用することが可能です。
 ジョブキュー(パーティション)の構成や、ノード当たりのコア数、メモリ容量に違いはありますが、それ以外は同じ使い勝手でご利用いただけます。
 
 詳細な情報は、[プログラムの実行](/run)をご参照ください。
 
 ### クラウドシステムのキュー構成{#queue}
 
 クラウドシステムは以下のようなキュー構成としています。
 eoキューはデバッグ用として短時間のジョブに限定しています。
 soキューは小規模なジョブを実行することが可能です。
 大規模なキューについては、状況に応じて提供することがあります。
 
 
 #### 逐次プログラムのジョブスクリプトの例
 ```bash
 #!/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
 ```
 
 #### MPIプログラムのジョブスクリプトの例 (8プロセス)
 ```bash
 #!/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
 ```
 
 #### 利用可能なキュー{#available}
 |キュー名 | 利用可能なユーザ|
 |-----    | -------------   | 
 | eo      | 全ユーザ|
 | so      | パーソナルコース,グループコース,専用クラスタコースに所属するユーザ|
 
 #### キュー毎の利用可能な計算資源{#resource}
 | 説明 | eoキュー<br>初期値 |<br>最大値  | soキュー<br>初期値 |<br>最大値 | 
 | --- | --- | --- |
 | プロセス数 ( --rsc p=_X_ ) | 1 | 36 | 1 | 36 |
 | プロセスあたりのスレッド数 ( --rsc t=_X_ ) | 1 | 36 |  1 | 36 |
 | プロセスあたりのコア数 ( --rsc c=_X_ )  | 1 | 36 | 1 | 36 |
 | プロセスあたりのメモリ量( --rsc m=_X_ ) <br>(単位:M, G) | 13G | 500G | 13G | 500G |
 | 経過時間 ( -t ) | 1時間 | 1時間 | 1時間 | 7日 |
 | ユーザあたりの同時実行数 | 1 | 1 | 1 | 1 | 
 
 ### /tmp 領域について{#tmp}
 
 本センターのスーパーコンピュータシステムでは、/tmpの領域を一時的なデータの書き込み先として利用できます。
 細かいファイルI/Oを伴うプログラムは、/tmpを利用したほうが高速に処理できるケースがあります。
 
 /tmpはジョブごとにプライベートな領域として用意しますので、他のジョブとファイルが
 混在しないように作りこんでありますので、ぜひご活用ください。
 
 なお、/tmp の領域は、ジョブの終了時に自動で削除されますので、/tmpに書き込んだファイルを
 残すためには、ジョブスクリプトに /homeや/LARGE0,/LARGE1 にファイルをコピーする
 記述を含めて頂く必要があります。あとから取り出すことはできませんので、ご注意ください。
 
 #### /tmpを使用する具体例{#tmp_example}
 
 * プログラムで指定が可能な場合は、ファイルの書き込み先を /tmp に指定する。
 * 繰り返し読み込むファイルをプログラム実行開始前に /tmp に配置する。
 * 相対PATHでファイルにアクセスするプログラムや入力ファイルを、/tmp に配置したうえで実行する。
 
 #### 利用可能な/tmpの容量{#tmp_available}
 
 クラウドシステムで利用可能な/tmpの容量は、
 `プロセス数 x プロセスあたりのコア数 x 94GB`
 で求めることができます。
 
 例えば、4プロセス(1プロセスあたり 8コア) のジョブを投入した場合は
 `4 x 8 x 94` から、**3,008GB** の割当が行われます。
 
 ## クラウドシステムの利用に関する補足{#supplemental}
 
 ### ホームディレクトリや大容量ストレージへのアクセスについて{#storage}
 クラウドシステムにおいても、システムB等のオンプレミスのシステムと同様に、ホームディレクトリ($HOME)や
 大容量ストレージ(/LARGE)をマウントしていますので、同じPATHでファイルにアクセスすることができます。
 
 しかし、クラウドシステムと大学にあるストレージとの間には、ネットワークの距離や帯域の制約
 があるため、ストレージ性能を完全に引き出すことはできません。
 
 I/Oが少ないプログラムについては、システムBとの使い勝手の差は少ないと思いますが、
 I/Oが多いプログラムは、前節で紹介した/tmpを有効活用してください。
 
 ### 巨大ファイルの扱いについて{#large}
 巨大なファイルを/homeや/LARGE0/1に書き込むと、応答が悪くなりやすいため、
 効率的なファイル転送をお願いします。
 
 以下に、特定のディレクトリは以下を1つのファイルにまとめるtarコマンドの例を紹介します。
 
 ```bash
 ## 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
 ```
 
 ### ノード間のMPI性能について{#mpi}
 ノード間は50Gbps のEthernet のため、スーパーコンピュータの性能として考えるとあまり高くはありません。
 確保できる計算リソースも多くないため、ジョブ当たりのノードを1ノードに限定しています。