OCTOPUSでは、PGIコンパイラが利用可能です。バージョンは18.1となります。
 

PGIコンパイラの利用方法

事前準備

PGIコンパイラを使用する前に、PATHの設定をお願いたします。

export PATH=/octfs/apl/pgi/18.10/linux86-64/18.10/bin/:$PATH

 

コンパイル コマンド

コンパイルを行う際のコマンドは、プログラミング言語ごとに異なります。

C言語 C++言語 Fortran言語
PGIコンパイラ pgcc pg++ pgfortran

 

実行スクリプト

プログラムの実行については、基本的な利用方法と差はありません。下記をご参照ください。
プログラムの実行方法
 
 

PGIコンパイラ+OpenMPIライブラリの利用方法

PGIコンパイラではOpenMPIライブラリが利用可能です。GPUの使用を前提としていますが、使用しない場合も並列実行可能です。詳細は実行スクリプトをご覧ください。
 

事前準備

コンパイルを行う前に、下記のPATHの設定をお願いたします。

export PATH=/octfs/apl/pgi/18.10/linux86-64/18.10/bin/:$PATH
export PATH=/octfs/apl/pgi/18.10/linux86-64/18.10/mpi/openmpi/bin:$PATH

 

コンパイル コマンド

コンパイルを行う際のコマンドは、プログラミング言語ごとに異なります。

C言語 C++言語 Fortran言語
OpenMPI mpicc mpic++ mpif90

 

実行スクリプト

OpenMPI(PGIコンパイラ)でのスクリプト例は下記の通りです。
2ノード48プロセス並列実行(1ノードあたり24プロセス)、経過時間 10時間でOpenMPI(PGIコンパイラ)のバッチリクエストを実行するスクリプトになります。

OpenMPI(PGIコンパイラ)を利用する場合、OpenMPI(GNUコンパイラ)の場合と違い5行目の -v オプションを指定する必要があります。
12行目で記述している「--mca mpi_cuda_support 0」はGPU(CUDAライブラリ)を利用しないこと指示しています。必須ではありませんが、余計な警告文が出力されるため、GPUノード以外で実行する場合は記述しておくとよいでしょう。GPUノードで実行する場合は不要ですが、GPUを利用する場合はCUDAのパスを通す必要があります。
 
 

OpenACCの利用方法

PGIコンパイラではOpenACCディレクティブが利用可能です。OpenACCを使用することで、比較的簡単にGPU向けの最適化が行えます。OpenMPIとの併用も可能です。
 

コンパイル例

OpenACCディレティブを挿入したコードtest.f90を、OCTOPUS GPUノード群向けにコンパイルする場合は、以下のようになります。
MPIを利用しない場合

pgfortran -O3 -acc -Minfo=accel -ta=tesla,cc60 -Mpreprocess test.f90

MPIを利用する場合

mpif90 -O3 -acc -Minfo=accel -ta=tesla,cc60 -Mpreprocess test.f90

 

実行スクリプト

GPUを利用するプログラムのOpenMPI(PGIコンパイラ)でのスクリプト例は下記の通りです。OpenACCを利用するプログラムも下記ジョブスクリプトで実行可能です。
2ノード8プロセス、8GPU並列実行(1ノードあたり4プロセス、4GPU)、経過時間 10時間でOpenMPI(PGIコンパイラ)のバッチリクエストを実行するスクリプトになります。

 

マニュアル

下記をご参照ください。
PGI version 18.1 Documentation