著者
一場 利幸 津金 佳祐 新井 正樹 田原 司睦
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2019-HPC-168, no.17, pp.1-5, 2019-02-26

近年,HPC 用途の ARM プロセッサが開発されており,注目が集まっている.そのため,AArch64 をターゲットとしたコンパイラの最適化機能の重要性が増している.しかし,コンパイラ基盤 LLVM の AArch64 向け最適化は,GCC に比べて不十分であることが報告されている.具体的な例の 1 つとして,LLVM は,GCC に比べて多くのスピルコードを挿入する.LLVM が生成したコードを分析すると,空いているレジスタがあるにも関わらず,スピルコードが挿入される場合があった.本研究では,LLVM で挿入される不要なスピルコードについて述べ,それらを削減する方法を提案する.これは,従来通りに LLVM のレジスタ割付けを行った後に,その結果を変更してスピルコードを削減する方法である.2 パターンの不要なスピルコードに対して,提案方法を NPB に適用した結果,パターン 1 については平均 1.25%,パターン 2 については平均 2.87% のスピルコードを削減できた.
著者
津金 佳祐 中尾 昌広 李 珍泌 村井 均 佐藤 三久
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2016-HPC-155, no.29, pp.1-8, 2016-08-01

近年,高性能計算分野においてチップ内に多くのコアを搭載するメニーコアプロセッサを用いた大規模並列システムが登場している.そのようなシステムにおける並列化手法の一つとしてタスク並列が注目されており,本稿では,分散メモリ環境上での動的なタスク並列処理をより簡易な記述で実装可能とすべく PGAS 言語 XcalableMP(XMP) の拡張を行う.記述として tasklet 指示文を提案し,ノード内/外におけるタスク間の依存関係の記述による細粒度な同期や,通信と計算のオーバラップによる性能向上を目指す.タスク生成や制御は Argonne National Laboratory(ANL) により開発が進められている軽量スレッドライブラリである Argobots を用いる.現在は,実装対象である Omni XMP Compiler のランタイムのみの実装であるため,コード変換は手動で行う.提案手法の予備評価としてブロックコレスキー分解のコードを対象とし,性能・生産性の評価を行った.比較対象は,MPI+OpenMP による実装と INRIA によって開発が進められている StarPU による実装である.StarPU 実装との比較では一部優位な点が見られたが,MPI+OpenMP 実装との比較では最大で約 15%の性能低下が見られた.生産性の比較では,指示文による記述を採用したことによりベースコードから少ない変更で実装可能なことから,tasklet 指示文による記述の生産性の高さを示した.