HPL の実行

HPL の導入

  • HPLの実行に必要となるパッケージ(OpenBLAS)のインストールを行います。
sudo yum install -y openblas*
  • HPL2.3をダウンロードします
cd
wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz
tar xvzf hpl-2.3.tar.gz
cd hpl-2.3/
  • コンパイル用設定ファイルを以下よりダウンロードし、hpl-2.3/ 以下に設置します。
    • Make.pcluster-centos
    • 上記リンクをコピーし、wgetコマンドによりダウンロードが可能です。
  • コンパイルを実行します
module load openmpi
make arch=pcluster-centos
sudo mkdir -p /shared/apps/hpl
sudo cp ~/hpl-2.3/bin/pcluster-centos/xhpl /shared/apps/hpl

HPL2.3のディレクトリは /home/centos 直下に置きます。

この手順は参考のためのものです。 バージョンやコンパイル時のオプションなどは、要件にあわせたものをご利用ください。

計算条件ファイルの作成

  • 以下の計算条件ファイルを HPL.dat というファイル名でホームディレクトリ /home/centos に作成します。
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out      output file name (if any)
6            device out (6=stdout,7=stderr,file)
1            # of problems sizes (N)
10000         Ns
1            # of NBs
64           NBs
0            PMAP process mapping (0=Row-,1=Column-major)
1            # of process grids (P x Q)
2            Ps
2            Qs
16.0         threshold
1            # of panel fact
0            PFACTs (0=left, 1=Crout, 2=Right)
1            # of recursive stopping criterium
4            NBMINs (>= 1)
1            # of panels in recursion
2            NDIVs
1            # of recursive panel fact.
0            RFACTs (0=left, 1=Crout, 2=Right)
1            # of broadcast
0            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1            # of lookahead depth
0            DEPTHs (>=0)
2            SWAP (0=bin-exch,1=long,2=mix)
64           swapping threshold
0            L1 in (0=transposed,1=no-transposed) form
0            U  in (0=transposed,1=no-transposed) form
1            Equilibration (0=no,1=yes)
8            memory alignment in double (> 0)

ジョブスクリプトの作成

  • エディタ等で以下の hpl.sh スクリプトをホームディレクトリ /home/centos に作成します。
#!/bin/bash -xe

#$ -V
#$ -cwd
#$ -pe mpi 4
#$ -j y

module load openmpi
mpirun /shared/apps/hpl/xhpl

HPL の計算ノードでの実行

  • マスターノードの /home/centos からHPLのジョブを投入し、計算ノードで実行します
qsub hpl.sh
  • ジョブ確認

    qstat
    
  • 出力例

    job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
    -----------------------------------------------------------------------------------------------------------------
     17 0.00000 hpl.job    centos       qw    11/12/2019 16:43:06                                    4        
    

ジョブ実行が完了すると、qstatコマンドの出力からジョブの表示が無くなります。

HPL 実行結果の確認

  • ジョブを投入したディレクトリに出力されたファイル hpl.job.o<JOBID> を確認する事で、計算性能(GFLOPS)を取得することができます。

    # 一部略
    ================================================================================
    T/V                N    NB     P     Q               Time                 Gflops
    --------------------------------------------------------------------------------
    WR00L2L4       10000    64     2     2               4.96             1.3434e+02
    # 一部略
    

時間に余裕のある方は、HPL.datやコンパイル条件のチューニングを行い、より高いGFLOPS値を得られる条件を検討してみましょう。