第14回 HPF合同検討会 議事録

  1. 日時 : 1998年4月8日(水) 13:00〜16:30

  2. 場所 : 財団法人 高度情報科学技術研究機構(中目黒) 大会議室

  3. 出席者: 以上23名

  4. 配布資料

  5. 新規会員紹介
    水見俊介氏(日立製作所)が紹介された。ユーザ会員として参加。

  6. 検討議事
    1. WG3進捗状況報告
       高橋氏,水見氏により,ユーザ会員提供ベンチマーク5本のHPF化が報告された。
      1. Car-Parrinello法 (荻津氏提供)
        • 手続境界の再マッピング,分散ループからのサブルーチン呼出し,Fortranルーチンとの結合などが特徴。
        • 再マッピングを利用するために,オリジナルプログラムの配列データをCOMMON→モジュール→引数と変更しなければならなかった。
         以下質疑応答
        • モジュール配列の再分散をどう記述すべきか。
             ワーク配列への代入で解決したい。(荻津氏)
             そもそもモジュール配列の再分散はできるべき。(妹尾氏)
             手続戻り時のマッピングをRANGE指示で書けないか。
              →現在は仮引数とポインタにしかRANGE指示は書けない。
             ワーク配列を使うとメモリが2倍必要ではないか。
              →元の配列は実はもう1次元あり,1断面ずつ再マップすればよい。(荻津氏)
             実引数に部分配列を書けば良いのではないか。
        • 複数の手続内のリダクション演算に対する通信を,全手続終了後に1回だけ行いたい。(荻津氏)
             →現状のHPFでは困難。
        • NEW, REDUCTIONに仮引数を書けないのは不便。(高橋氏)
             →仮引数を書かれても実装上特に問題はない。なぜHPFが禁止しているのか不明。(ベンタ)
        • JAHPF仕様は使ったのか。
             →使わなかった。(高橋氏)
        • 当初の出題は,モジュール,allocatable,多次元分散,であったことを忘れないでほしい。(荻津氏)

      2. PIC法 (坂上氏提供)
        • 格子配列を分散する方法と,粒子配列を分散する方法が考えられるが,前者は現状のHPFでは困難。
        • ベクトル化のために,1重ループを2重化して外側ループを分散並列化したいが,現状のコンパイラでは分散されなかった。1重ループに戻せば分散される。
         以下質疑応答
        • 格子配列への足し込みはINDIRECTになるのか。(妹尾氏)
             →Yes。ただし( ,PU)で書けば,ローカルになる。(高橋氏)
        • 本来は格子配列を分散するのが筋ではないか。(谷氏)
             →シャドウへの足し込みが必要,粒子のプロセッサ間移管が困難,などの長い議論の末,検討継続となった。

      3. 3次元TVD法 (坂上氏提供)
        • 差分なので,比較的簡単にHPF化できた。
        • 呼出し元でシャドウに値が設定されていても,呼出し先で再度シャドウへの通信が発生し,性能低下している模様。JAHPF仕様のREFLECT, ON HOME, LOCALが必要か。
         以下質疑応答
        • HPF出力ソースから人手で不要通信を削除すれば,JAHPF仕様の効果が分かるのでは?

      4. MICCG法 (理研清水氏提供)
        • 原作はハイパープレーン法で並列化。同じアルゴリズムでHPF化すると,余分なデータ転送が発生し性能出ない。
        • 素直に書いてコンパイラのパイプライン並列化に任せた。
         以下質疑応答
        • パイプラインのピッチを指示できると良いのでは?(妹尾氏)
            →チューニングの助けにはなるだろう。ただし3次元問題ならば多くの場合1で良いはず。(太田)

      5. CIP法 (阪大田口氏提供)
        • 3次元の差分法
        • 異なる配列を実引数として同一ルーチンを何度も呼び出す。SHADOW情報を合わせるために不要なSHADOWを確保せざるを得なかった。
        • 変数im1にif条件下でi+1またはi-1を代入し,配列添字としてa(im1)のように記述したいが,そうするとコンパイラがループ分散してくれない。REFLECT+ON HOME, LOCALがあれば便利。
         以下質疑応答
        • if条件を実は通らないときに,HPFでは領域外アクセスを起こす危険はないか。
            →HPFコンパイラまたは実行時ライブラリが対処すべき。
        • 転写的なSHADOW指示が書けるとよいのでは?(岡部氏)
        • 上側または下側だけのREFLECTや,次元毎のREFLECTがあるとよいのでは?
            →必要があれば,実装はできそう。(ベンダ)

      6. 今後のベンチマーク収集に関して
        • 嶋氏(川崎重工)にFEMを打診してみる。
        • 提供ソースコードは原則としてJAHPF内ではオープンとする。
        • JAHPF配布資料レベルならば一般公開しても良いのでは?

    2. WG1進捗状況報告
       太田より以下が報告された。
      • HPF2.0日本語訳は,第0.2版完(訳語,文体統一版)。その後,相互レビューとその反映がほぼ完。スタイルを調整後,正式版とする予定。
      • HPF/JA仕様書は進捗なし。
       今後の進め方について
      • 4月中にHPF2.0日本語訳,HPF/JA仕様書をJAHPFホームページにて一般公開する。 HPF/JAについては現状(第0.9版)のままでよいが,「レビュー中であり,最終版とは異なる可能性がある」と注を付ける。

    3. ホームページ公開について
      • HPF2.0日本語訳,HPF/JA仕様書の公開に合わせて,JAHPFホームページを一般公開する。
      • ベンチマークのソースコードの一般公開については,別途検討する。

    4. 外部発表について
      • HUG'98(HPF User Group, 6月,ポルトガル)は,坂上氏(+妹尾氏+α)で参加の方向。ベンチマーク5本の結果を報告したい(関係者の許可があれば)。
      • HPF+ Workshop (4/23, アムステルダム)に,妹尾氏が参加。HPF/JA仕様を発表予定。(ベンチマーク結果も許可があれば)
      • 京大セミナー (3/3)報告。妹尾氏,太田,岩下氏,坂上氏,高橋氏で講演。聴講者数述べ50人程度。

  7. 事務連絡


以上