6. PAPIの利用

PAPIの利用について説明します。

6.1. 概要

スーパーコンピュータ「富岳」で、PAPI(Performance Application Programming Interface)を利用したプログラムのコンパイル・リンク方法、および、留意事項を示します。

PAPIに関する情報は、https://icl.utk.edu/papi/ 等を参考にしてください。

6.2. コンパイル・リンク

コンパイル・リンク時に指定が必要なオプションを示します。

  1. コンパイル時に必要となるオプション

言語

オプション

Fortran

-I/opt/FJSVxos/devkit/aarch64/rfs/usr/include

C/C++

-

  1. リンク時に必要となるオプション

言語

コンパイラモード

オプション

Fortran

-

-Nnofjprof -lpapi

C/C++

tradモード

-Nnofjprof -lpapi

C/C++

clangモード

-ffj-no-fjprof -lpapi

注意

実行可能ファイル(a.out)作成時は、-Nnofjprof(clang モードの場合は、-ffj-no-fjprof)オプションを指定して、富士通ツールライブラリをリンクしないようにしてください。

各言語でのコンパイル例を次に示します。

  1. Forttranコンパイル例

[_LNlogin]$ frtpx -o papi_sample_f -Kfast,parallel,optmsg=2 -I/opt/FJSVxos/devkit/aarch64/rfs/usr/include -Nlst=t -Nnofjprof -lpapi  papi_sample.f95
  1. Cコンパイル例(tradモード)

[_LNlogin]$ fccpx -o papi_sample_c -Kfast,parallel,optmsg=2 -Nlst=t -Nnofjprof -lpapi papi_sample_c.c
  1. C++コンパイル例(clangモード)

[_LNlogin]$ FCCpx -o papi_sample_cc -Nclang -Ofast -Rpass=.* -ffj-lst=t -ffj-no-fjprof -lpapi papi_sample_cc.cc

6.3. 実行方法

PAPIを利用したプログラムの実行方法を示します。

[実行例]

#!/bin/bash
#
#PJM -L "node=4"
#PJM -L "elapse=00:10:00"
#PJM --mpi "proc=16"
#PJM -x PJM_LLIO_GFSCACHE=/vol000N
#PJM -g groupname
#PJM -s
#

export OMP_NUM_THREADS=12

xospastop      #必須
mpiexec ./papi.out

注意

  • PAPIを利用したプログラムは、xospastopコマンドを実行した後に実行してください。xospastopコマンドを実行しなかった場合は、PAPIの処理中にエラーが発生する場合があります。

  • xospastopコマンドを実行したジョブは、PMUカウンタ(Performance Monitoring Unit Counter)の採取を停止します。オプションやメッセージ出力はなく、終了ステータスは常に0になります。

6.4. 留意事項

PAPIを利用したプログラムの留意事項は以下のとおりです。

  • PAPIは、サポート対象外です。

  • xospastopを実行していない場合は、正しい結果が得られません。