2014/8/27(水)OpenACC講習会が筑波大学計算科学研究センター ワークショップ室にて開催され、30人の参加がありました。
計算速度の高速化は効率よく並列化することが重要です。また近年、演算加速装置(アクセラレーター)を搭載したスパコンが増えてきました。OpenACCはCPUのマルチコアにもGPUのアクセラレーターにも対応する標準並列プログラミングモデルで、PGIなどいくつかのコンパイラが対応しています。
既存のコードをGPUで使用したい場合に、GPUに特化したプログラミング言語に書き換えなくても、コードにコンパイラへのヒント(FORTRANは「!$acc… 」C言語は「#pragma acc…」)を挿入することによって、コンパイラがコードを自動で並列化し、GPUで計算することができるようになります。
最初に、PGIコンパイラにおける OpenACC 開発を主導しているDr Michael Wolfe 氏からGPUによる並列化の現状について講演がありました。GPUハードウェアの基礎と題した講演では、気象・天候・海洋モデル、地震シミュレーション、数値流体力学、QCDコードなどで実際にOpenACCによる並列化がなされ、計算速度が上がったとの報告がありました。
続くOpenACC 講習では、参加者はFortran と C のどちらかを用いて4つの課題に挑戦しました。「どの部分が並列化するのに有効か見極めるのが難しい」と苦戦する参加者もいました。