高並列言語による演算加速器及び相互結合網の効率的利用に関する研究

 
小田嶋 哲哉

理化学研究所 計算科学研究機構 特別研究員

[背景]GPUクラスタにおけるプログラミングの複雑化
[問題]GPU/CPUワークシェアリング,相互結合網の効率的利用
[貢献]高並列言語による生産性と高性能の両立


 計算科学の分野において,スーパーコンピュータは,複数の計算ノードを高速なネットワークで接続するクラスタシステムが主流である.近年,NVIDIAのGPUやIntelのXeon Phiなどのアクセラレータ(演算加速器)が持つ高い演算性能やメモリバンド幅,電力あたりの性能に注目し,これらを搭載したクラスタシステムが広く利用されている.しかし,アクセラレータは,デバイスメモリというCPUに接続されたメインメモリ(ホストメモリ)とは異なるアドレス空間のメモリを搭載している.そのため,アクセラレータを搭載したクラスタシステムでは,分散メモリ環境向けのプログラムに加えて,アクセラレータを管理(データ転送,カーネル関数など)もユーザが明示的に記述する必要があり,プログラミングのコストが大きい.さらに,システム中の演算器や相互結合網を最大限利用するためには,より複雑なプログラミングが必要となり,アプリケーションの生産性が大きく低下することが問題となっている.

 そこで,本研究は,大規模分散メモリ環境における次世代のプログラミング言語として理化学研究所計算科学研究機構が中心となって開発してるPGAS並列言語XcalableMP(XMP)に着目し,アプリケーションの生産性向上とシステムリソースの効率的利用による性能向上を両立するフレームワークの構築を目的としている.中でも,GPUクラスタにおける演算と通信という2つの問題について取り組んだ.

 GPUクラスタでは,機能分散的な手法が一般的に用いられているため,GPUと並行してCPUの演算リソースを利用することができない.そこで,XMPのアクセラレータ搭載機向けの拡張言語であるXMP-devのバックエンドスケジューラとしてフランスのINRIA Bordeauxで開発されているStarPUを用いることで,GPUとCPUによるワークシェアリングを実現し,従来のGPUだけでは得られない演算性能を達成した.また,新たに適応型負荷分散機能を提供することで,演算性能が異なるGPUとCPUに割り当てる計算量の最適化が容易になり,異なる問題サイズやノード数に対応できることを示した.

 従来,ノードをまたぐGPU間の通信はホストメモリを経由して行われていたが,レイテンシが非常に高い.そこで,GPU間を直接接続することで,低レイテンシ通信を実現する通信機構が開発されている.本研究では,筑波大学が中心となって開発を進めている密結合並列演算加速機構TCA/PEACH2に注目している.TCA/PEACH2は低レイテンシ通信を実現するが,ハードウェアの制限などにより適用範囲が数十ノードまでにとどまる.そこで,コモディティネットワークであるInfiniBandとTCA/PEACH2によるハイブリッド通信を実現する.さらに,現在開発が進められているアクセラレータ向けのPGAS並列言語XcalableACC(XACC)の通信ランタイムとして提案するハイブリッド通信を適用することで,袖領域交換や集団通信など,通信の種類に応じて最適なネットワークの選択をランタイムで行うことが可能である.

 本研究では,これらのプログラミングフレームワークを用いることで,ユーザが直接プログラミングを行うよりも低いプログラミングコストで記述できることを示し,GPUクラスタの演算加速器および相互結合網を効率的に利用でき,高い生産性を達成することを示した.

 
 
  (2016年6月10日受付)
取得年月日:2016年3月
学位種別:博士(工学)
大学:筑波大学



推薦文
:(ハイパフォーマンスコンピューティング研究会)


本論文は,GPUクラスタシステムにおいて,GPU間を直接接続する専用ネットワークとInfiniBandなどの通常のネットワークのハイブリッドなネットワーク構成,およびその上のハイブリッド通信を高効率かつ簡易に行える機構について論じたものである.このような高性能計算システムは,今後の大きな方向性と考えられ,周知するに値する.


著者からの一言


博士後期課程の3年間はあっという間に過ぎ去りました.しかし,密度は非常に高く,これまで以上に苦労をしましたが,非常に充実していました.このような経験は博士課程でしか得られないことだと思います.今後も,これらの経験を活かして研究を続けていきたいと思います.