FX700の利用方法

PRIMEHPC FX700は、富岳と同じCPUを搭載した最新のスーパーコンピュータです。京都大学学術情報メディアセンターでは、FX700を小規模な構成で保有しており、スーパーコンピュータシステムの利用者向けの評価環境として提供しています。

利用するためには、FX700「試用制度」及び「小ノード実行枠」に応募してください。試用制度であれば審査なし1か月間お使いいただけます。利用にかかる費用負担はありません。

2023年4月より、ジョブスケジューラを PBS から Slurm に変更しました。

Camphor3やLaurel3とは独立したネットワークに接続した小規模なPCクラスタ型の構成です。 ログインノードは、Intel Xeonプロセッサ(x86_64アーキテクチャ)のサーバのため、計算ノードのA64FXプロセッサ(aarch64アーキテクチャ)でプログラムを実行するためには、クロスコンパイルが必要となります。利便性を考えて、計算ノード fx-0001 でも対話的にネイティブコンパイルが可能な構成としています。

fx700_system

計算ノードCPU仕様

項目 内容
名称 A64FX
命令 セット
アーキテクチャー Armv8.2-A SVE
演算コア数 48 コア
クロック 1.8 GHz
理論演算性能 2.7648 TFLOPS

計算ノード仕様

項目 内容
アーキテクチャー 1 CPU/ノード
メモリ容量 32 GiB(HBM2, 4スタック)
メモリバンド幅 1,024 GB/s
インターコネクト InfiniBand EDR
内蔵ストレージ M.2 SSD Type 2280 スロット(NVMe)
OS Red Hat Enterprise Linux 8

PRIMEHPC FX700の製品情報

FX700にログインするには、SSH公開鍵認証により次のホストに接続してください。

fx-login.kudpc.kyoto-u.ac.jp
  • スパコンの利用者ポータルに登録済みの鍵でログインできます。(Camphor3, Laurel3のホームディレクトリにあるauthorized_keysに直接追加した鍵は利用できません)
  • クラスタ内部はホストベース認証で相互ログイン可能です。

/home および /work を共有ストレージとして構成しています。/homeは fx-loginのローカルストレージですので、ログインノード上の操作に対する応答は高速ですが、負荷には強くありません。計算の実行には /work をご利用ください。

[root@fx-0001 ~]# df -h /home/ /work/
Filesystem         Size  Used Avail Use% Mounted on
fx-login-ib:/home  399G   27G  373G   7% /home
armst-ib:/work     7.0T   25G  7.0T   1% /work
  • /home は fx-login:/home をマウントしています。 ユーザ当たり20GB の容量制限をかけています。
  • /work は armst:/work をマウント。計算にはこちらを使ってください。 ユーザ当たり 500GB の容量制限をかけています。
  • /home, /workはautofsによりアクセス時に都度マウントする仕様です。
  • /work の容量が不足する場合はご相談ください。
  • ファイルサーバの応答が無い場合は管理者にお知らせください。ファイルサーバ側を再起動します。
  • 利用終了後にファイルは削除しますので、利用期間中にご自身でバックアップを実施してください。

利用可能なコンパイラは Fujitsu compiler と GCC です.

fx-login におけるクロスコンパイル用コマンド

# fortran用
[b12345@fx-login ~]$ frtpx -v
frtpx: Fujitsu Fortran Compiler 4.4.0
使用法: frtpx [オプション] ファイル

[b12345@fx-login ~]$ mpifrtpx -v
frtpx: Fujitsu Fortran Compiler 4.4.0
使用法: frtpx [オプション] ファイル

# C言語用
[b12345@fx-login ~]$ fccpx -v
fccpx: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1

[b12345@fx-login ~]$ mpifccpx -v
fccpx: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: fccpx [オプション] ファイル

# C++言語用
[b12345@fx-login ~]$ FCCpx  -v
FCCpx: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: FCCpx [オプション] ファイル

[b12345@fx-login ~]$ mpiFCCpx -v
FCCpx: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: FCCpx [オプション] ファイル

fx-0001 におけるネイティブコンパイル用コマンド

# fortran用
[b12345@fx-0001 ~]$ frt -v
frt: Fujitsu Fortran Compiler 4.4.0
使用法: frt [オプション] ファイル

[b12345@fx-0001 ~]$ mpifrt -v
frt: Fujitsu Fortran Compiler 4.4.0
使用法: frt [オプション] ファイル

# C言語用
[b12345@fx-0001 ~]$ fcc -v
fcc: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: fcc [オプション] ファイル

[b12345@fx-0001 ~]$ mpifcc -v
fcc: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: fcc [オプション] ファイル

# C++言語用
[b12345@fx-0001 ~]$ FCC -v
FCC: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: FCC [オプション] ファイル

[b12345@fx-0001 ~]$ mpiFCC -v
FCC: Fujitsu C/C++ Compiler 4.4.0
simulating gcc version 6.1
使用法: FCC [オプション] ファイル

代表的なコンパイルオプション

オプション名 説明
-Kopenmp OpenMP指示子を有効にしてコンパイルします。
-Kparallel 自動並列化を有効にします。
-Kfast ターゲットマシン上で高速に実行するオブジェクトプログラムを作成します。-O3 -Keval,fast_matmul,fp_contract,fp_relaxed,fz,ilfunc,mfunc,omitfp,simd_packed_promotion と等価です。
-KA64FX A64FXプロセッサ向けのオブジェクトファイルを出力するように指示します。
-KSVE Armv8-Aアーキテクチャの拡張であるSVEを利用するか否かを指示します。

コンパイラの詳細は、マニュアルを参照してください。

富士通コンパイラマニュアル (アクセスにはスパコンのログインアカウントで認証が必要)

fx-0001上でネイティブコンパイルしてください。

[b12345@fx-0001 ~]$ gfortran --version
GNU Fortran (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[b12345@fx-0001 ~]$ gcc --version
gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[b12345@fx-0001 ~]$ g++ --version
g++ (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sbatchコマンドでジョブを投入してください。Camphor3, Laurel3 とはジョブスクリプトの記述方法が異なりますのでご注意ください。 Camphor3, Laurel3 はSlurm を独自仕様にカスタマイズしていますが、FX700は標準のSlurmの機能のみを使用します。

1ノードだけ割り当てたdebugキューと、10ノード割り当てた shortキューがあります。 debugキューでテストした後に、shortキューで本番のジョブを実行してください。

$ sinfo -s
PARTITION AVAIL  TIMELIMIT   NODES(A/I/O/T) NODELIST
debug*       up   infinite         2/7/2/11 fx-[0002-0012]
short        up   infinite         2/7/2/11 fx-[0002-0012]

オプション 説明 初期値 最大値
#SBATCH -p QUEUE キュー名の指定 -- --
#SBATCH -N NODE 使用するノード数の指定 1 試用制度:1 / 小ノード実行枠:8
#SBATCH -n PROCS プロセス数の指定 1 試用制度:48 / 小ノード実行枠:384
#SBATCH --cpus-per-task=CORES プロセスあたりのコア数の指定 1 48
#SBATCH --mem=MEMORY プロセスあたりのメモリサイズの指定 650M 31200M
#SBATCH -t HOUR:MINUTES:SECONDS 実行時間の上限を指定 1:00:00(1時間) 168:0:0(7日間)

ジョブスクリプト例1 (1コア8GBを確保した逐次ジョブ)

#!/bin/bash
#SBATCH -p debug
#SBATCH -N 1              # ノード数
#SBATCH -n 8              # プロセス数
#SBATCH --cpus-per-task=1 # プロセスあたりのコア数
#SBATCH --mem=8G          # ノード当たりのメモリサイズ

srun ./a.out

ジョブスクリプト例2 (16コア8GBを確保したOpenMPジョブ(16スレッド))

#!/bin/bash
#SBATCH -p debug
#SBATCH -N 1               # ノード数
#SBATCH -n 1               # プロセス数
#SBATCH --cpus-per-task=16 # プロセスあたりのコア数
#SBATCH --mem=8G           # ノード当たりのメモリサイズ
#SBATCH -t 1:00:00 # 経過時間の上限1時間

srun ./a.out

ジョブスクリプト例3 ((48コア、8GBメモリ) x 2ノードのMPIジョブ(96プロセス))

#!/usr/bin/bash
#SBATCH -p debug
#SBATCH -N 2               # ノード数
#SBATCH -n 96              # プロセス数
#SBATCH --cpus-per-task=1  # プロセスあたりのコア数
#SBATCH --mem=30G          # ノード当たりのメモリサイズ
#SBATCH -t 1:00:00 # 経過時間の上限1時間

srun ./a.out

ジョブスクリプト例4 ((48コア、30GBメモリ) x 2ノードのハイブリッドジョブ(24プロセス x 4スレッド))

#!/bin/bash
#SBATCH -p debug
#SBATCH -N 2               # ノード数
#SBATCH -n 24              # プロセス数
#SBATCH --cpus-per-task=4  # プロセスあたりのコア数
#SBATCH --mem=30G          # ノード当たりのメモリサイズ
#SBATCH -t 1:00:00 # 経過時間の上限1時間

srun ./a.out