FX700の利用方法

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

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

Camphor2やLaurel2とは独立したネットワークに接続した小規模な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
  • スパコンの利用者ポータルに登録済みの鍵でログインできます.(Camphor2, Laurel2のホームディレクトリにある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 をマウント
  • /work は armst:/work をマウント.計算にはこちらを使ってください.
  • /home, /workはautofsによりアクセス時に都度マウントする仕様です.
  • ファイルサーバの応答が無い場合は管理者にお知らせください.ファイルサーバ側を再起動します.

利用可能なコンパイラは 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.

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

PBS -l select でリソースを確保し,OMP_NUM_THREADS や mpiexecコマンドで,実行時の並列数を制御する利用方法です.

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

#!/usr/bin/bash
#PBS -q debug
#PBS -l walltime=1:00:00
#PBS -l select=1:ncpus=1:mem=8G
#PBS -j oe

cd $PBS_O_WORKDIR

./a.out

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

#!/usr/bin/bash
#PBS -q debug
#PBS -l walltime=1:00:00
#PBS -l select=1:ncpus=16:ompthreads=16:mem=8G
#PBS -j oe

cd $PBS_O_WORKDIR

./a.out

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

#!/usr/bin/bash
#PBS -q debug
#PBS -l walltime=1:00:00
#PBS -l select=2:ncpus=48:mpiprocs=48:mem=8G
#PBS -j oe

cd $PBS_O_WORKDIR

mpiexec -n 96 --hostfile $PBS_NODEFILE ./a.out

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

#!/usr/bin/bash
#PBS -q debug
#PBS -l walltime=1:00:00
#PBS -l select=2:ncpus=48:mpiprocs=24:ompthreads=4:xxx:mem=30G
#PBS -j oe

cd $PBS_O_WORKDIR

mpiexec -n 24 --hostfile $PBS_NODEFILE ./a.out

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

# qstat -Qf debug
Queue: debug
    queue_type = Execution
    Priority = 0
    total_jobs = 0
    state_count = Transit:0 Queued:0 Held:0 Waiting:0 Running:0 Exiting:0 Begun
        :0
    resources_max.walltime = 01:00:00
    resources_default.walltime = 01:00:00
    max_run = [u:PBS_GENERIC=2]
    max_run_res.ncpus = [u:PBS_GENERIC=48]
    hasnodes = True
    enabled = True
    started = True

# qstat -Qf short
Queue: short
    queue_type = Execution
    Priority = 0
    total_jobs = 0
    state_count = Transit:0 Queued:0 Held:0 Waiting:0 Running:0 Exiting:0 Begun
        :0
    resources_max.walltime = 72:00:00
    resources_default.walltime = 01:00:00
    max_run = [u:PBS_GENERIC=2]
    max_run_res.ncpus = [u:PBS_GENERIC=96]
    hasnodes = True
    enabled = True
    started = True


Copyright © Academic Center for Computing and Media Studies, Kyoto University, All Rights Reserved.