研究概要

Xevolver framework

近年のHPCシステムは複雑化と多様化が進んでいます。 システムが複雑化するということは、アプリケーションに対してシステム特有の性能最適化をしないと性能がでないということです。 一方、システムが多様化するということは、そのようなシステム特有の性能最適化をさまざまなシステムに対して 行わなければならないということです。これらの結果として、HPCアプリケーションの維持や進化に要するコストが増大します。

この問題を解決するために、アプリケーションコードとシステム特有の最適化を明確に切り分けて管理するための プログラミングフレームワークとしてXevolverを研究開発しています。また、特に複合型のHPCシステムアーキテクチャを想定し、 OpenCLアプリケーションを対象として、システムの多様性を隠ぺいするための実行時環境も研究開発しています。

HPC refactoring

既存のHPCアプリケーションは、 対象システムで性能を発揮できるようにコードが適宜修正(性能最適化)されていきます。しかし、あるシステムでの性能が高くなるように修正した結果として、ほかのシステムでの性能が低下してしまう恐れがあります。 すなわち、特定のシステムを想定してHPCアプリケーションを直接的に性能最適化することは、ほかのシステムや将来のシステムで実行する際に期待通りの性能が出ない原因となりえます。 そこで、既存のHPCアプリケーションからシステム特有の性能最適化を切り離すようにコードを再構成(リファクタリング)する作業を HPCリファクタリングと呼び、その方法論や支援ツールを研究開発してます。

数値計算ライブラリによる超並列複合システムの階層的抽象化

超並列複合システムではメモリおよび計算資源が深く階層化されるため、 アプリケーション開発者に対してハードウェア構成を抽象化することが必要になります。 そこで,数値計算ライブラリにより超並列複合システムの階層的抽象化を行うための手法について研究開発を行っています。 具体的には、複数のプラットホーム(GPUクラスタ、MICクラスタ、CPUクラスタ)上における数値計算ライブラリを開発することで、 アプリケーション開発者から見た場合、異なるシステムでも同一のインターフェースで性能可搬性を実現する手法について検討を行っています。 また、さまざまなデータ構造に対応することで、高性能を保ちつつ柔軟な利用方法をサポートします。 さらに、ライブラリ自身の性能可搬性を実現するために、アーキテクチャが似ているプラットホーム間において、 パラメータの自動チューニングや実装の切り替えを行うことで性能可搬性を実現する手法について研究開発を行っています。