Loading
las/SSORにおけるtuningとOpenACCの併存に関する修正
概要
_OPENACC マクロによる場合分けが、las / SSORで実施されているtuningと富士通コンパイラ用のディレクティブ( !ocl )とで異なっていた
→ _OPENACC マクロが有効でないケースの範囲に、 !ocl が入るよう修正した
対象ファイル
hecmw_solver_las_{22|33|44|66|nn}.F90hecmw_precond_SSOR_{11|22|33|44|66|nn}.F90
作業内容
_OPENACCマクロの移動:!OCLは!ompとともに、#ifndef _OPENACCもしくは#elseのエリアへ入れた- タイポ修正: "added for turning"を"added for tuning"に修正
- 未使用変数の削除:
hecMAT%cmat関係の変数宣言を削除(a3931ca1 での消し忘れ)
議論
tuning部分に関わる _OPENACC マクロの挿入は、以下のルールで行ってきた
- tuning用の変数宣言はマクロで囲わない(マクロの個数を減らすため、CPU版では必ず宣言されるのでGPU版も同様でよいため)
- tuningの実行部分は、
! added for tuning >>>の次の行から! <<< added for tuningの前の行までを#ifndefで囲む
このMRの変更も上記のルールに従って作成したところ、1つの #ifndef で囲めるのにあえて分割している部分が出てきた(例えば hecmw_precond_SSOR_22.F90 のL255付近)。
なるべくマクロの個数を減らすのか、可読性を重視してこのままのルールとするかは検討の余地がある。
Edited by Kanato Kono