現在地

2022年度スパコン更新内容

(最終更新: 2023/1/31) 2023年2月に運用開始する新システムについての情報です。

既知の問題(最終更新: 1/30)

  • GRRM17 の MPI 実行が正常に動作していません。現在検証中です。MPI を使わない実行については問題ありません。
  • Intel MPI を使うと実行開始時にエラーが発生するケースがあります。現時点では、避けられるのであれば Intel MPI は避けた方が無難かもしれません。
    • ご自身のディレクトリにインストールした Intel MPI を使う場合、I_MPI_HYDRA_BOOTSTRAP 環境変数を ssh という値に設定すれば問題が解消するかもしれません。

演算ノード

ノードタイプ CPU,GPU メモリ[GiB] ノード数 ローカル作業領域
(NVMe SSD上)[GB]
備考
TypeC AMD EPYC 7763 (64コア 2.45 GHz) [2 CPU/ノード] 256 804 1536 ノード(vnode)貸し/コア貸し
TypeF 1024 14 ノード(vnode)貸し、大容量メモリ
TypeG AMD EPYC 7763 (64コア 2.45 GHz) [2 CPU/ノード]
NVIDIA A100 NVLink 80 GB [8 GPU/ノード]
256 16 コア貸し、GPU搭載
  • ノード貸しは 64 コアの vnode (仮想ノード)単位で割り当てられます。
  • グローバルな作業領域(前システムの /work 相当)とは別に、ローカルストレージ上の作業領域が利用できます。

 

ストレージ

実効容量 14.8 PB (Lustre)
 

インターコネクト

InfiniBand
 

キュー構成とキュー係数(2023年度用)

ノードジョブは 64 コアの vnode (仮想ノード)を利用単位とします。(各ノードは 2 つの vnode に分けられます。)

キュー名
(jobtype)
vnode 数
(コア数)
ジョブあたり
制限
メモリ
[GiB/コア]
1グループ制限 キュー係数 利用単位 ノードタイプ
割り当て点数 コア数/GPU数 投入ジョブ数
H
(largemem)
28 vnode
(1,792 コア)
1〜14 vnode
(64〜896 コア)
7.875 720万点以上
240万点以上
72万点以上
24万点以上
24万点未満
9,600/72
6,400/48
4,096/28
3,200/12
768/8
1,000 60 点 / (1 vnode * 1時間) vnode TypeF
H
(vnode)
1,248 vnode 以上
(79,872 コア以上)
1〜50 vnode
(64〜3,200 コア)
1.875 45 点 / (1 vnode * 1時間) TypeC
H
(core)
200 vnode 以上
(12,800 コア以上)
1〜63 コア 1 点 / (1コア * 1時間) コア
H
(gpu)
32 vnode
(2,048 コア 128 GPU)
1〜48 GPU
1〜16 コア/GPU
60 点 / (1 GPU * 1時間)
1 点 / (1コア * 1時間)
TypeG
HR*
[専有利用]
- - 1.875 - - - 45 点 / (1 vnode * 1時間)

vnode

TypeC
  • ジョブの最大時間は、定期メンテナンスまでとなります。ただし、1週間を越えるジョブが実行できるノードは全体の半分程度とします。
  • largemem 以外の jobtype については指定したリソースより判定可能であるため、省略可能です。
  • TypeC の 80 ノード(160 vnode)は vnode ジョブと core ジョブ共存領域となります。
  • 短期の vnode ジョブが largemem 用の領域で実行される場合があります
  • 短期の core ジョブが gpu 用ノードで実行される場合があります。
  • (2022年度中のキュー係数は上記とは異なるものとなります。)

 

ログイン方法とファイルの転送方法

利用申請が許可され、アカウントが有効化されると、ログインノード(ccfep)に接続することができるようになります。
ログインやファイル転送の具体的な方法についてはクイックスタートガイドページの前半部分をご確認ください。
手順は前システムと同じです。
 

ジョブの投入方法について(jsub)

ジョブスクリプトを作成すれば、jsub コマンドでジョブを投入することができます。
ゼロからジョブスクリプトを作成することは、当センター特有の部分もあったりするためそれなりに大変です。
センター側で用意したしたサンプルをベースにして、適宜修正する形にした方が効率的かもしれません。
これらの方法についてはクイックスタートガイドページのジョブ投入ガイドの項目が参考になるかと思います。
Gaussian の場合は g16sub の利用をご検討ください。以下にリソース定義部分の例を示します。
 

例1: 5 ノードまるごと使う場合(640 (128*5) コア, 320 (64*5) MPI)

#PBS -l select=5:ncpus=128:mpiprocs=64:ompthreads=2

例1.5: 64 コアごとに 10 個確保するパターン(640 (64*10)コア, 320(32*10) MPI)

#PBS -l select=10:ncpus=64:mpiprocs=32:ompthreads=2

例2: 16 コアジョブ(16 MPI)

#PBS -l select=1:ncpus=16:mpiprocs=16:ompthreads=1

例3: 16 コア (16 OpenMP), 1 GPU ジョブ

#PBS -l select=1:ncpus=16:mpiprocs=1:ompthreads=16:ngpus=1

注意: ノードあたりの GPU 数は 8 で、GPU あたりの CPU コア数(ncpus/ngpus)は 16 以下である必要があります。

例4: 64 コア、大容量メモリ(約 500 GB)

#PBS -l select=1:ncpus=64:mpiprocs=32:ompthreads=2:jobtype=largemem

このジョブタイプだけは jobtype=largemem の指定が必須です。

前システムからの変更点

  • jsub 実行時にキュー指定(-q H)は不要です。
  • jobtype の指定についても大規模メモリ(jobtype=largemem)以外の場合は省略できます。
  • 演算ノードではローカルディスクが利用できます。(他のノードから直接参照することはできません。)場所は /lwork/users/${USER}/${PBS_JOBID} です。ジョブの終了時に削除されます。
    • 11.9 GB * ncpus の容量が利用できます。ここで ncpus はノードあたりの cpu 数で判断されます。
    • select=2:ncpus=64:mpiprocs=64... の場合は 64 * 11.9 GB はそれぞれのノードで割り当てられます。
  • 個々のユーザー向けのグローバルなスクラッチ領域は /gwork/users/${USER} にあります。前システムの /work/users/${USER} 相当になります。こちらは全ノードでシェアされています。

投入したジョブの確認方法について(jobinfo)

投入したジョブの情報は ccfep で jobinfo コマンドを実行することで確認できます。主な実行方法と出力例は以下の通りです。
今回のシステムではキューの名前(H)は省略できます。-q H のようにキューの名前をつけても問題はありません。
その他の点についてはほぼ前システムと同様の動作となっています。
 

jobinfo -c

自身のジョブの最新の情報を取得できます。ただし、GPU数など一部の情報は得られません。
また、他のオプションとの組み合わせも制限されます。

[user@ccfep ~]$ jobinfo -c

--------------------------------------------------------------------------------
Queue   Job ID Name            Status CPUs User/Grp       Elaps Node/(Reason)
--------------------------------------------------------------------------------
H       4008946 sample3.csh    Run      16  uuu/---     1:51:14 ccc001        
H       4008952 sample0.sh     Run      16  uuu/---     1:51:08 ccc001        
H       4010452 sample-gpu.sh  Queue     1  uuu/---     0:02:40 (gpu)         
--------------------------------------------------------------------------------
Job Status at 2023-01-28 14:00:12

jobinfo

最大で数分程度の遅れがありますが、-c をつけた際よりも詳しい情報が得られます。

(-m 等の他のオプションと組み合わせる状況が多いでしょうか。)

[user@ccfep ~]$ jobinfo

--------------------------------------------------------------------------------
Queue   Job ID Name            Status CPUs User/Grp       Elaps Node/(Reason)
--------------------------------------------------------------------------------
H(c)    4008946 sample3.csh    Run      16  uuu/ggg     1:51:14 ccc001        
H(c)    4008952 sample0.sh     Run      16  uuu/ggg     1:51:08 ccc001
H(g)    4010452 sample-gpu.sh  Queue   1+1  uuu/ggg     0:02:40 (gpu)          
--------------------------------------------------------------------------------
Job Status at 2023-01-28 14:00:12
For the latest status, please use '-c' option without '-m', '-w', '-s'.

jobinfo -s

自身やグループが利用しているコアやGPUの数、キューの空き状況を表示します。

[user@ccfep ~]$ jobinfo -s

User/Group Stat:
--------------------------------------------------------------------------------
 queue: H                       | user(qf7)             | group(za0)           
--------------------------------------------------------------------------------
   NJob (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/2560
   CPUs (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/2560
   GPUs (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/48  
   core (Run/Queue/Hold/RunLim) |    0/    0/    0/600  |    0/    0/    0/600 
--------------------------------------------------------------------------------
note: "core" limit is for per-core assignment jobs (jobtype=core/gpu*)

Queue Status (H):
----------------------------------------------------------------------
      job         | free   |     free     | # jobs  |  requested  
      type        | nodes  | cores (gpus) | waiting | cores (gpus)
----------------------------------------------------------------------
week jobs
----------------------------------------------------------------------
1-4 vnodes        |    706 |  90368       |       0 |      0      
5+  vnodes        |    506 |  64768       |       0 |      0      
largemem          |     14 |   1792       |       0 |      0      
core              |    180 |  23040       |       0 |      0      
gpu               |     16 |   2048 (128) |       0 |      0 (0)  
----------------------------------------------------------------------
long jobs
----------------------------------------------------------------------
1-4 vnodes        |    326 |  41728       |       0 |      0      
5+  vnodes        |    226 |  28928       |       0 |      0      
largemem          |      7 |    896       |       0 |      0      
core              |     50 |   6400       |       0 |      0      
gpu               |      8 |   1024 (64)  |       0 |      0 (0)  
----------------------------------------------------------------------

 

Gaussianジョブの投入について(g16sub/g09sub)

ジョブは通常上記の jsub コマンドで投入しますが、Gaussian だけは g16sub という専用コマンドが用意されています。
Gaussian 09 用の g09sub というコマンドもあります。使い方については g16sub と基本的に同じです。
Gaussian のインプットを直接与えれば、自動でジョブスクリプトを生成、投入します。
デフォルトでは 8 コア(前システムでは 6 コア)使用で制限時間 72 時間(前システムと同じ)となっています。

基本形( 8コア、72 時間)

[user@ccfep somewhere]$ g16sub input.gjf

コア数、制限時間を変える場合(16 コア、168 時間)

[user@ccfep somewhere]$ g16sub -np 16 --walltime 168:00:00 input.gjf

注意点

  • 現時点では 64 コア、もしくは 128 コアを使う場合には -j vnode か -j largemem のどちらかの指定が必要です。
    • -j vnode の指定については今後の改修で省略可能とする予定です。

 

コンパイル環境について

gcc, aocc, NVIDIA HPC SDK を用意しています。
インテル oneAPI については、ライブラリ等は導入していますが、共用領域にコンパイラは用意していません。
インテルコンパイラが必要であれば oneAPI Base Toolkit や oneAPI HPC Toolkit をご自身のホームディレクトリに導入してください。

gcc についてはシステム標準のもの(8.5)に加えて gcc-toolset の新しいバージョン(9.2,10.3,11.2)も導入しています。
module load gcc-toolset/11 のように実行すれば使えるようになります。
 

科学計算ソフトウェアに関して

インストール済ソフトウェアのリストについては、パッケージプログラム一覧ページにてご確認ください。
module avail コマンドでも確認できます。(キーボードの q を押すか、ページの一番下まで動かせば終了できます)

以下、細々とした注意点です。

  • csh 用の設定スクリプトが用意されないソフトが増えてきています。module コマンドならば対応できますので、module コマンドの活用をご検討ください。
  • 以下のソフトは導入予定であるものの、運用開始までに準備が間に合いませんでした。申し訳ありませんが、少しお待ちください。
    • DIRAC 22, CP2K 2023.1, Quantum ESPRESSO 7.1, Julia 1.8.5, AlphaFold 2.3.1 (古いバージョンは導入済)
    • Miniforge (fuse を使って前システムの時よりアクセス速度を向上させる予定)

 

module コマンド(Environment Modules)

  • ログインシェルが csh の場合、ジョブスクリプトでは module コマンドを使う前に source /etc/profile.d/modules.csh を実行してください。
    • ログインシェルが /bin/bash で csh のジョブスクリプト使う場合も source /etc/profile.d/modules.csh が必須です。
    • ログインシェルが /bin/tcsh で sh のジョブスクリプトを使う場合は . /etc/profile.d/modules.sh が必須です。(. は source と同義です)
  • スクリプト内で実行する場合は、-s をつけて余計な出力をさせないようにした方が無難です。(例: module -s load openmpi/3.1.6)
  • module save コマンドで現在の状況を保存することができます。保存した状況は次にログインした時に自動で読み込まれます。

 

メモ

  • 計算中に演算サーバのローカルディスク(/lwork)や ramdisk (/ramd/users/${USER}/${PBS_JOBID})のデータを確認するためのソフト、remsh はまだ準備中です。
  • joblog は現在準備中です。
  • waitest については現時点では対応未定です。
  • 大量ジョブの短期間での実行については今後制約が導入される見込みです。一日に数千ジョブ、のような規模で実行するような場合は、ある程度ジョブをまとめるようお願いします。
  • ソフトウェアの構築手順については https://ccportal.ims.ac.jp/how_to_configure に掲載していく予定です。