TSUBAME3.0計算サービスのWebページはこちら

TSUBAME2.5からTSUBAME3.0へのデータ移行方法の資料はこちら

TSUBAMEを使用してプログラムを高速化できますか。?

はい、できます。以下に例を示します。

0.基本性能を確認
  > gcc -c wclock.c
  > gfortran -o sample2  sample2.f wclock.o
  > ./sample2
    TIME=    4.4802789688110352        1586700028.4671783     

1.オプションを付加
  > gfortran -O3  -o sample2  sample2.f wclock.o
  > ./sample2
    TIME=    2.4241511304862797        1586700028.4671783     

  コンパイルオプションはチューニング講習会 P.11~
  または、TSUBAME内にある各マニュアルを参照してください。

2.市販のコンパイラ使用
  インテルコンパイラとPGIコンパイラを使用できます。
  (a) インテルコンパイラ
    > ifort -fast  -o sample2  sample2.f wclock.o
    > ./sample2
      TIME=    2.47723984718323        1586700028.46718     
  (b) PGIコンパイラ
    > pgf95 -fastsse  -o sample2  sample2.f wclock.o
    > ./sample2
      TIME=     2.340852022171021         1586700028.467178     
    Warning: ieee_inexact is signaling
    FORTRAN STOP
  ※ 高速化オプションを利用するだけである程度高速化できます。
     (結果が変化していないことを確認してください)

3.自動並列
市販のコンパイラの自動並列化機能を使ってみます。
(チューニング講習会/並列化、P.84)
  > pgf95 -Mconcur -fastsse -Minfo=all  -o sample2  sample2.f wclock.o
  > ./sample2
    TIME=     2.470033884048462         1586700028.467178 
  Warning: ieee_inexact is signaling
  FORTRAN STOP
  > export OMP_NUM_THREADS=2 (ここで、並列指定をします)
  > ./sample2
    TIME=     1.312394857406616         1586700028.467178
  Warning: ieee_inexact is signaling
  FORTRAN STOP
  > ifort -parallel -fast  -o sample2  sample2.f wclock.o
  > ./sample2
    TIME=    1.59019112586975        1586700028.46718
  ※ プログラムによってはかえって遅くなる場合もあります。

4.プログラムに多少の加工
メインの処理部分にアンロールをかけました。
  (チューニング講習会/高速化チューニング、P.36)
  > pgf95 -fastsse  -o sample2  sample2a.f wclock.o
  > ./sample2
    TIME=     1.697903871536255         1586700028.467178     
  Warning: ieee_inexact is signaling
  FORTRAN STOP

5.GPUを使用
 プログラムに指示行を挿入します。
(チューニング講習会/高速化チューニング、P.68)
  > pgf95 -fastsse -Minfo=all -ta=nvidia  -o sample2  sample2k.f wclock.o
  > ./sample2
    TIME=    0.3683249950408936         1586700028.467178     
  Warning: ieee_inexact is signaling
  FORTRAN STOP
GPUの利用については、GPUコンピューティング研究会が最先端の研究を進めています。

6.プログラムを並列化
指示行(OpenMP)による並列化と、MPIを使用した並列化を利用できます。
(チューニング講習会/並列化、P.71~)
  > mpif90 -o sample2  sample2m.f wclock.o
  > mpirun -np 1 ./sample2
    TIME=    2.66910314559937        1586700028.46718     
  > mpirun -np 2 ./sample2
    TIME=    1.28998279571533        1586700028.46718     
  > mpirun -np 4 ./sample2
    TIME=   0.838958024978638        1586700028.46718