las/SSORにおけるtuningとOpenACCの併存に関する修正

概要

_OPENACC マクロによる場合分けが、las / SSORで実施されているtuningと富士通コンパイラ用のディレクティブ( !ocl )とで異なっていた
→ _OPENACC マクロが有効でないケースの範囲に、 !ocl が入るよう修正した

対象ファイル

  • hecmw_solver_las_{22|33|44|66|nn}.F90
  • hecmw_precond_SSOR_{11|22|33|44|66|nn}.F90

作業内容

  1. _OPENACC マクロの移動: !OCL は !omp とともに、 #ifndef _OPENACC もしくは #else のエリアへ入れた
  2. タイポ修正: "added for turning"を"added for tuning"に修正
  3. 未使用変数の削除: hecMAT%cmat 関係の変数宣言を削除(a3931ca1 での消し忘れ)

議論

tuning部分に関わる _OPENACC マクロの挿入は、以下のルールで行ってきた

  1. tuning用の変数宣言はマクロで囲わない(マクロの個数を減らすため、CPU版では必ず宣言されるのでGPU版も同様でよいため)
  2. tuningの実行部分は、 ! added for tuning >>> の次の行から ! <<< added for tuning の前の行までを #ifndef で囲む

このMRの変更も上記のルールに従って作成したところ、1つの #ifndef で囲めるのにあえて分割している部分が出てきた(例えば hecmw_precond_SSOR_22.F90 のL255付近)。
なるべくマクロの個数を減らすのか、可読性を重視してこのままのルールとするかは検討の余地がある。

Edited by Kanato Kono

Merge request reports

Loading
Loading