PCCC HPCオープンソースソフトウェア普及部会ワークショップ
「高性能クラスタ・プログラミング最前線」

主催 PCクラスタコンソーシアム HPCオープンソースソフトウェア普及部会
日時 2022年4月15日(金)13:30~17:30
開催形式 Zoomによるオンライン会議
参加費 無料(事前登録が必要です)
参加申込締切 2022年4月14日(木)正午 参加申込は締め切りました。

開催趣旨

HPCやデータ処理に高性能クラスタの活用されるなか、従来の並列プログラミングに加えて、各ノードにGPUなどの演算加速デバイスを付加した並列システムが増えています。従来、GPUのプログラミングには通常のプログラムを大きく書き換える必要があるなど、ソフトウエアのコストが問題になっていましたが、いま、標準言語でプログラミングやoneAPI、SYCLなど、様々なソリューションが利用可能になってきました。さらに、科学技術計算中心だったアプリはFortranやCで記述されることがほとんどでしたが、C++やPython等のプログラミング言語が使われることが多くなってきています。
本ワークショップでは、高性能クラスタに必要なプログラミングの最新動向について、取り上げます。

プログラム

13:30-13:40

開会挨拶

佐藤三久(HPC-OSS部会長・理化学研究所)

13:40-14:10

講演1

「No More Porting: Coding for GPUs with Standard C++, Fortran, and Python」

Jeff Larkin, HPC Architect, NVIDIA

講演概要を開く

CUDA C++、CUDA Fortran、OpenACCはGPUプログラミングのアプローチとして大きな成功を収めていますが、追加のAPIなしで、すぐにGPUやマルチコアCPUで動作することができたらよいと思いませんか? ISO C++およびISO Fortranの並列化機能により、開発者はベースラインのコードが並列化され、遭遇するあらゆる並列プラットフォーム上で実行できるようにコードを記述することができます。cuNumericのようなライブラリを使えば、Pythonの開発者はNumPyのような標準的なAPIに書き、完全なデータセンターに拡張することができます。C++、Fortran、Pythonを使用して、GPUやCPUなどで実行可能な並列アプリケーションコードを書くための、標準的な言語による並列コードを書くためのベストプラクティスを学び、何が可能かをご紹介します。
(講演は英語となります)

14:10-14:40

講演2

「インテルoneAPI Base & HPC Toolkitsのご紹介」

野村昴太郎 (インテル株式会社)

講演概要を開く

アクセラレータへのオフロードに対応したLLVMバックエンドの新しいコンパイラや各種ライブラリ、性能解析ツールを含むHPC向けソフトウェアパッケージIntel® oneAPI Base & HPC toolkitsの概要についてご説明いたします。また、C++コード内でデバイス向けコードを記述するためのData Parallel C++ (DPC++) の簡単なサンプルコードもご紹介いたします。

14:40-15:10

講演3

「oneAPIによるGPU+FPGAマルチヘテロ環境プログラミングとアプリケーション実行」

朴 泰祐(筑波大学・計算科学研究センター)

講演概要を開く

近年、FPGAをHPCクラスタに適用しようという試みが行われており,筑波大学・計算科学研究センターではこれにGPUを加えたマルチヘテロ環境の実用化を進めている。大きな問題の一つはプログラミング環境で,GPUとFPGAという全く異なるデバイスのプログラミング、コードの融合,実行環境といった問題を解決する必要がある。我々はIntel oneAPI環境を用いることで、既存のGPUおよびFPGAのコード資産を効率的に活用し、この問題を解決している。本講演ではその概要と実アプリケーション性能評価について述べる。

15:10-15:20 休憩
15:20-15:50

講演4

「neoSYCL: SX-Aurora TSUBASAのための軽量SYCL実装」

滝沢寛之 (東北大学)

講演概要を開く

SX-Aurora TSUBASAは、ベクトルエンジン(VE)と汎用プロセッサ(CPU)から構成されるヘテロ構成のシステムです。普段はVEでアプリケーションを実行しますが、ベクトル化が難しい処理はCPUのほうが高速に実行できるため、VEとCPUの適材適所での使い分けが求められます。東北大学では、両者を使い分けるプログラムの開発のためにneoSYCLというSYCL実装を開発していますので、ご紹介します。

15:50-16:10

講演5

「Fortranのメタプログラミングツール MetaX」

村井 均(理化学研究所R-CCS)

講演概要を開く

本講演では、プログラム生産性の向上を目的とするHPC向けプログラム変換機能の設計および予備的実装を示す。本機能は、Omniコンパイラ基盤に実装されたメタプログラミングフレームワークに基づく。ループ・アンローリング、構造型のデータレイアウト最適化および手続きのインライン展開に関する適用例を用いた評価の結果、本機能により種々の変換を記述することが可能であることを確認できた。

16:10-16:30

講演6

「PGAS並列プログラミング言語XcalableMPの開発進捗・状況」

佐藤三久(理化学研究所R-CCS)

講演概要を開く

XcalableMPの開発の状況について報告する。富岳での性能評価、グローバルタスク並列をサポートするXcalableMP 2.0 および、ライブラリによるインタフェースXMP-APIについて報告する。

16:30-17:30

パネル討論

「C++とGPUプログラミングの現状・期待」

モデレータ: 佐藤三久(理化学研究所)
パネリスト:
  • 朴泰祐(筑波大学計算科学研究センター)
  • 滝沢寛之(東北大学)
  • 村井 均(理化学研究所)
  • 野村昴太郎(インテル株式会社)
  • 古家 真之介(エヌビディア合同会社)
17:30

閉会