2018年4月 - 2021年3月
指示文とメタプログラミングによる性能可搬性に優れた高性能並列プログラミングモデル
日本学術振興会 科学研究費助成事業 基盤研究(C) 基盤研究(C)
本研究の目的は,1種類のソースコードを様々な計算環境において高い性能で利用可能にすること,すなわち性能可搬性を考慮したプログラミング言語とそれを処理できるコンパイラを開発することである.
昨年度(2018年)は、次の2つのコンポーネントの開発および評価を行った.(1) 既存の指示文ベースの並列言語であるOpenMPを拡張し,複数のアクセラレータを利用できる構文を開発した.この構文を用いることで,ユーザはアクセラレータの構成(種類や数など)が異なる計算環境においても,同じソースコードを用いることができる.(2) HPC向けの高度な最適化(ループ・アンローリングやデータレイアウト変換など)を簡易に記述可能にするため、FortranおよびC言語をターゲットとしたメタプログラミングについて検討を行い,その言語の設計およびコンパイラの実装を行った.
昨年度に行った研究は1つの計算ノードを対象としている。そこで、今年度(2019年)に行った研究は複数の計算ノードを対象とした。HPCアプリケーションによく現れる計算パターンであるステンシル計算に着目し、そのステンシル計算を簡易に並列化できる構文を開発した。さらに、性能可搬性を高めるため、並列ステンシル計算に必要なパラメータ(通信と計算のオーバラップの有無、袖幅、配列の各次元に対する分割数など)を自動決定できる構文を開発した。現在、その構文を用いた並列ステンシルアプリケーションの開発と、コンパイラの開発を並行して進めている。
昨年度(2018年)は、次の2つのコンポーネントの開発および評価を行った.(1) 既存の指示文ベースの並列言語であるOpenMPを拡張し,複数のアクセラレータを利用できる構文を開発した.この構文を用いることで,ユーザはアクセラレータの構成(種類や数など)が異なる計算環境においても,同じソースコードを用いることができる.(2) HPC向けの高度な最適化(ループ・アンローリングやデータレイアウト変換など)を簡易に記述可能にするため、FortranおよびC言語をターゲットとしたメタプログラミングについて検討を行い,その言語の設計およびコンパイラの実装を行った.
昨年度に行った研究は1つの計算ノードを対象としている。そこで、今年度(2019年)に行った研究は複数の計算ノードを対象とした。HPCアプリケーションによく現れる計算パターンであるステンシル計算に着目し、そのステンシル計算を簡易に並列化できる構文を開発した。さらに、性能可搬性を高めるため、並列ステンシル計算に必要なパラメータ(通信と計算のオーバラップの有無、袖幅、配列の各次元に対する分割数など)を自動決定できる構文を開発した。現在、その構文を用いた並列ステンシルアプリケーションの開発と、コンパイラの開発を並行して進めている。
- ID情報
-
- 課題番号 : 18K11331