E-HPC クライアントは、High-Performance Linpack (HPL)、iPerf、Flexible I/O Tester (FIO) などのベンチマークアプリケーションを設定するためのグラフィカルインターフェイスを提供します。このクライアントを使用すると、ジョブを迅速に送信し、クラスターの浮動小数点演算能力、ネットワーク帯域幅、I/O パフォーマンスをテストできます。
背景情報
クラスター性能のベンチマークには、以下の業界標準ツールが使用されます。
-
High-Performance Linpack (HPL):ハイパフォーマンスコンピューティング (HPC) クラスターの浮動小数点演算能力を測定するベンチマークプログラムです。ガウスの消去法を用いて密な連立一次方程式を解くことで、クラスターの性能を評価します。
-
iPerf:帯域幅やパケット損失などのメトリックを測定するネットワーク性能テストツールです。プロトコルやテスト期間など、さまざまなパラメーターを設定できます。
-
Flexible I/O Tester (FIO):ディスク性能のベンチマークに使用されるオープンソースの I/O ストレステストツールです。複数の I/O エンジンとテストシナリオをサポートしています。
前提条件
E-HPC クライアントで HPL、iPerf、FIO のテストを実行する前に、クラスターに以下のソフトウェアと依存関係がインストールされていることを確認してください。
-
HPL:intel-mpi 2018、linpack 2018、openmpi 3.0.0 が必要です。
-
iPerf:iPerf と intel-mpi 2018 が必要です。
-
FIO:fio 3.1 と intel-mpi 2018 が必要です。
iPerf をインストールするには、各ノードでyum install -y iperf コマンドを実行します。他のソフトウェアはコンソールからインストールできます。詳細については、「ソフトウェアのインストール」をご参照ください。
操作手順
-
E-HPC クライアントにログインします。
-
左側のナビゲーションウィンドウで、[アプリケーションセンター] をクリックします。
-
計算能力のテスト
-
hpl アプリケーションをクリックします。
-
パネルでパラメーターを設定し、[送信] をクリックします。
セクション
パラメーター
例
説明
基本パラメーター
ジョブ名
hpltest
ジョブのカスタム名です。
キュー
workq
ジョブが実行されるキューです。
コア数
2
ノードあたりの CPU コア数です。
ノード数
1
ジョブに必要な計算ノード数です。
ログ出力
hpl_test.log
ジョブログファイルの出力パスです。
アプリケーションパラメーター
問題サイズ (N)
10000
行列 (N) のサイズです。N の値が大きいほど、有効計算の割合が増加し、測定される浮動小数点性能が高くなります。ただし、行列が大きくなると、より多くのメモリを消費します。問題サイズが利用可能な物理メモリを超えると、システムがスワップ領域を使い始めるため、性能が大幅に低下します。最適な結果を得るには、行列がシステム総メモリの約 80% を占めるようにします。次の式を使用して N を推定します: N × N × 8 = システム総メモリ (バイト単位) × 0.80。
ブロックサイズ (NB)
192 256
行列処理中に使用されるブロックサイズ (NB) です。NB の最適値は通常、テストによって決定されます。
-
-
ネットワーク帯域幅のテスト
-
iperf アプリケーションをクリックします。
-
パネルでパラメーターを設定し、[送信] をクリックします。
セクション
パラメーター
例
説明
基本パラメーター
ジョブ名
iperftest
ジョブのカスタム名です。
キュー
workq
ジョブが実行されるキューです。
コア数
2
ノードあたりの CPU コア数です。
ノード数
1
ジョブに必要な計算ノード数です。
ログ出力
iperf_test.log
ジョブログファイルの出力パスです。
アプリケーションパラメーター
ホスト名
login0
テスト対象ノードのホスト名です。
ホスト NIC
eth0
テスト対象ノードのネットワークインターフェイスコントローラー (NIC) です。
-
-
I/O パフォーマンスのテスト
-
fio アプリケーションをクリックします。
-
パネルでパラメーターを設定し、[送信] をクリックします。
セクション
パラメーター
例
説明
基本パラメーター
ジョブ名
fiotest
ジョブのカスタム名です。
キュー
workq
ジョブが実行されるキューです。
コア数
2
ノードあたりの CPU コア数です。
ノード数
1
ジョブに必要な計算ノード数です。
ログ出力
fio_test.log
ジョブログファイルの出力パスです。
アプリケーションパラメーター
ioengine
psync
テストに使用する I/O エンジンです。オプション:
-
psync
-
libaio
読み書きメソッド
rw
テストの I/O パターンです。オプション:
-
read:シーケンシャル読み取り
-
write:シーケンシャル書き込み
-
rw:シーケンシャル読み書き
-
randread:ランダム読み取り
-
randwrite:ランダム書き込み
-
randrw:ランダム読み書き
I/O ブロックサイズ
4K
各 I/O ブロックのサイズです (例:4K、16K)。
スレッド数
1
テストに使用するスレッド数です。
実行時間
100s
テストの持続時間です。
I/O サイズ
1024M
読み書きするデータの総量です。
テストファイル
/home/username
システムが生成するテストファイルのパスです。
-
-
結果の表示
-
左側のナビゲーションウィンドウで、[ジョブリスト] をクリックします。
-
HPL、iPerf、FIO ジョブを見つけ、ステータスを確認し、結果を表示します。
ジョブのステータスが [FINISHED] に変わったら、[操作] 列の [詳細] をクリックします。[ジョブ詳細] ページで、[標準出力パス] の横にある [表示] をクリックします。以下は出力例です。
-
HPL
- The matrix A is randomly generated for each test. - The following scaled residual check will be computed: ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N ) - The relative machine precision (eps) is taken to be 1.11022 - Computational tests pass if scaled residuals are less than compute000 : Column=000192 Fraction=0.005 Kernel= 0.00 Mflops=15756 ============================================================================ T/V N NB P Q Time G ---------------------------------------------------------------------------- WC00C2R2 256 192 1 1 0.00 5.9646 HPL_pdgesv() start time Fri Sep 30 10:23:44 2022 HPL_pdgesv() end time Fri Sep 30 10:23:44 2022 ---------------------------------------------------------------------------- ||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 0.0110876 ...... P ============================================================================ Finished 1 tests with the following results: 1 tests completed and passed residual checks, 0 tests completed and failed residual checks, 0 tests skipped because of illegal input values. -
iPerf
Client connecting to 192.xxx.xxx.xxx TCP port 5001 TCP window size: 604 KByte (default) ------------------------------------------------------------ [ 12] local 192.168.xxx.1 port 47930 connected with 192.168.1.xxx port 5001 [ 4] local 192.168.xxx port 5001 connected with 192.168.1.xxx port 47930 [ ID] Interval Transfer Bandwidth [ 4] 0.0- 1.0 sec 1.16 GBytes 9.94 Gbits/sec [ ID] Interval Transfer Bandwidth [ 12] 0.0- 1.0 sec 1.16 GBytes 9.95 Gbits/sec [ 12] 1.0- 2.0 sec 795 MBytes 6.67 Gbits/sec [ 4] 1.0- 2.0 sec 797 MBytes 6.68 Gbits/sec [ 12] 2.0- 3.0 sec 1.10 GBytes 9.48 Gbits/sec [ 4] 2.0- 3.0 sec 1.10 GBytes 9.47 Gbits/sec [ 12] 3.0- 4.0 sec 1.18 GBytes 10.1 Gbits/sec [ 4] 3.0- 4.0 sec 1.17 GBytes 10.1 Gbits/sec [ 12] 4.0- 5.0 sec 1.00 GBytes 8.59 Gbits/sec [ 4] 4.0- 5.0 sec 1022 MBytes 8.57 Gbits/sec [ 12] 5.0- 6.0 sec 1.22 GBytes 10.5 Gbits/sec [ 4] 5.0- 6.0 sec 1.23 GBytes 10.5 Gbits/sec [ 4] 6.0- 7.0 sec 1.04 GBytes 8.93 Gbits/sec [ 12] 6.0- 7.0 sec 1.04 GBytes 8.91 Gbits/sec -
FIO
clat percentiles (usec): | 99.99th=[11338] bw ( KiB/s): min= 479, max= 1608, per=100.00%, avg=1238.62, stdev=163. iops : min= 119, max= 402, avg=309.64, stdev=40.98, samples=206 write: IOPS=309, BW=1240KiB/s (1270kB/s)(121MiB/100001msec) clat (usec): min=1695, max=84691, avg=2203.84, stdev=1582.55 lat (usec): min=1695, max=84691, avg=2203.97, stdev=1582.55 clat percentiles (usec): | 1.00th=[ 1827], 5.00th=[ 1893], 10.00th=[ 1909], 20.00th=[ 1958], | 30.00th=[ 1975], 40.00th=[ 2008], 50.00th=[ 2040], 60.00th=[ 2073], | 70.00th=[ 2114], 80.00th=[ 2147], 90.00th=[ 2278], 95.00th=[ 2573], | 99.00th=[ 5866], 99.50th=[ 7832], 99.90th=[23725], 99.95th=[33424], | 99.99th=[63177] bw ( KiB/s): min= 472, max= 1448, per=100.00%, avg=1239.76, stdev=136. iops : min= 118, max= 362, avg=309.93, stdev=34.15, samples=206 lat (usec) : 750=0.41%, 1000=36.82% lat (msec) : 2=30.29%, 4=31.00%, 10=1.29%, 20=0.14%, 50=0.05% lat (msec) : 100=0.01% cpu : usr=0.16%, sys=0.49%, ctx=61973, majf=0, minf=30 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, >=64=0 submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0 complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0 issued rwts: total=30969,30999,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=1239KiB/s (1268kB/s), 1239KiB/s-1239KiB/s (1268kB/s-1268kB/s), io=121MiB (127MB), run=100001-100001msec WRITE: bw=1240KiB/s (1270kB/s), 1240KiB/s-1240KiB/s (1270kB/s-1270kB/s), io=121MiB (127MB), run=100001-100001msec
-