Simple Science

最先端の科学をわかりやすく解説

# 物理学# 高エネルギー物理学 - 実験# 分散・並列・クラスターコンピューティング

新しいハードウェアに合わせた高エネルギー物理学ソフトウェアの適応

科学者たちは、現代のハードウェアに合うようにHEPソフトウェアのポータビリティ解決策に注力してる。

― 1 分で読む


HEPソフトウェアが新しいHEPソフトウェアが新しいハードウェアと出会うリティソリューションは超重要だよ。高エネルギー物理学ソフトウェアのポータビ
目次

高エネルギー物理学(HEP)は、宇宙を構成する基本粒子を理解することを目的にしてる。科学者たちは巨額のデータを生成する実験を行い、結果を分析したりシミュレートするために複雑なコンピュータコードが必要なんだ。これまでの数年で、HEPは伝統的なコンピュータシステム(x86 CPUアーキテクチャ)で主に動作する何百万行ものコードを構築してきた。でも、コンピューティング環境は変わってきてる。新しいハードウェア、例えばグラフィックスプロセッシングユニット(GPU)など、より強力な計算リソースが増えてきてるんだ。

この変化はHEPにとって大きな課題をもたらす。科学者たちは、既存のコードをこれらの新しいシステムで実行できるように適応させることを考えなきゃならなくなった。何百万行ものコードを異なるハードウェア用に書き直すプロセスはリソースが限られてるし、ソフトウェアの保守も続ける必要があるので非現実的なんだ。科学者たちは、すべてを書き直さずに異なるハードウェアで同じコードを実行できる解決策を探してる。

ポータビリティの課題

HEP実験で集められるデータの量が増えるにつれて、コンピューティングパワーへの要求も増えてくる。次世代の実験、例えば深地下ニュートリノ実験(DUNE)や大型ハドロン衝突型加速器(LHC)のアップグレードは、さらに速くて効率的な処理が必要なんだ。従来、HEPはクラスターコンピュータ、グリッドサイト、高性能コンピューティング(HPC)センターの混合を使用してきたが、ほとんどがCPUに依存してる。

でも、特定のタスクにはGPUの方が良いパフォーマンスを提供できるため、これらのシステムにGPUを組み込む傾向が高まってきてる。問題は、GPU向けのプログラミングがCPU向けのプログラミングとはかなり異なるので、既存のHEPのコードの多くが大幅な変更なしにはうまく動作しないってこと。

新しいハードウェアアーキテクチャを対象にしたさまざまなプログラミング言語やツールが開発されてきた。例えばNVIDIAのGPU用のCUDA、AMDのGPU用のHIP、IntelのGPU用のSYCLなどがある。でも、これらのアプローチはそれぞれ特定のハードウェアに依存しているため、状況が複雑化してる。

HEPコミュニティの科学者たちは、異なるハードウェアプラットフォームでコードが実行できるように、各々のバージョンを書き分ける必要がない方法を探してる。目標は、使用されるハードウェアに関係なく効率的に動作する単一のコードベースを作ることなんだ。

ポータビリティ解決策

この問題に対処するために、HEPコンピュータ卓越センター内のチームは、異なるアーキテクチャ間でポータビリティを提供することを約束するいくつかのプログラミングモデルを調査してる。Kokkos、SYCLOpenMP、std::execution::parallel、alpakaなどのツールをテストしてきた。これらのツールは、科学者が一度コードを書いて、異なるハードウェアプラットフォームで実行できるようにすることを目的としてる。

Kokkos

Kokkosは、開発者が最小限の変更で複数のハードウェアタイプで実行できるコードを書くことを可能にするプログラミングモデルだ。C++をベースにしていて、ユーザーはアルゴリズムを一度書けば、多くの異なるコンピューティングプラットフォーム(CPUやGPUを含む)で実行できるようになってる。Kokkosは、並列計算とメモリ管理のさまざまな方法を提供し、異なるシステム間での作業を容易にしてる。

SYCL

SYCLは、異種ハードウェア向けのプログラミングを容易にする別のオプションだ。C++を使うことができる抽象化層を提供し、異なるハードウェアタイプ向けのコードを書くプロセスを簡素化してる。SYCLはホスト(メインコンピュータ)とオフロードデバイス(GPUなど)間のデータ転送を管理でき、プログラミングプロセスをスムーズにする助けになる。これにより、大きな変更なしに異なるハードウェアで実行できるコードを書くことができる。

OpenMP

OpenMPは並列タスクのプログラミングに広く使われているAPIで、特に共有メモリシステム向けだ。GPUのサポートを拡張し、NVIDIA、AMD、Intelデバイスにタスクをオフロードできるようにしている。OpenMPはプログラマがコードを並列実行用に最適化できるように指示を提供してる。

std::execution::parallel

これはC++17で導入された機能で、アルゴリズムの同時実行を可能にする。タスクを並列で実行するための異なる実行ポリシーを定義していて、スレッドかベクトル化を使用して実行できる。GPUプログラミングの完全な置き換えではないけど、既存のC++コードベースに並列実行を組み込む方法を提供する。

alpaka

Alpakaは、さまざまなハードウェアプラットフォームで実行できるコードを書くことを可能にする別のポータブルプログラミングモデルだ。並列タスクとメモリを管理するための抽象化を提供しているが、KokkosやSYCLと比べて一般的に低レベルのAPIと見なされてる。つまり、より多くの制御を提供する一方で、コードがより複雑で管理が難しくなる可能性があるってこと。

ポータビリティ解決策のテスト

HEPに最適な解決策を見つけるために、科学者たちは主要なHEP実験からの実際のアプリケーションを使ってさまざまな研究を行ってる。これらの研究は、さまざまなハードウェアプラットフォームでの異なるプログラミングモデルのパフォーマンスを評価することを目的としてる。研究は、いくつかの重要な領域に焦点を当ててる:

  1. パフォーマンス指標:科学者たちは、各解決策がデータを処理する速さを測ってる。これには、さまざまなタスクのスループット、メモリ使用量、全体の効率が含まれる。

  2. ポーティングの課題:科学者たちは、各ポータビリティレイヤーに既存のコードを適応させる際に直面した困難を文書化してる。これには、必要なコードの変更の範囲や、CPUからGPUへの移行が簡単かどうかが含まれる。

  3. API評価:各プログラミングモデルの使いやすさを評価することで、異なるアーキテクチャ間でコードを実装し維持するのがどれほど簡単か、または難しいかを理解する助けになる。

  4. ビルドシステム統合:これらのポータビリティ解決策を既存の開発環境に統合するのがどれほど簡単かも、重要な考慮事項だ。

代表的なアプリケーション

これらのプログラミングモデルをテストするために、研究者たちは有名なHEP実験からいくつかの代表的なアプリケーションを選んでる。

Patatrack

Patatrackは、CMSピクセル再構築ソフトウェアのスタンドアロンバージョンだ。ピクセル検出器からのデータを処理して、イベント情報を生成するために必要なさまざまな計算タスクを実行する。最初はCUDAを使って構築されたけど、比較のためにKokkosやSYCLなどの他のポータビリティレイヤーに移植された。

Wire-Cell Toolkit

Wire-Cell Toolkitは、液体アルゴン時間投影室からのデータをシミュレートおよび処理するために設計されたC++ソフトウェアパッケージだ。DUNEのような実験で使用されている。このツールキットは、複雑な信号の分析を簡素化することを目的にしていて、異なるポータビリティレイヤー間でパフォーマンスを評価する重要な分野となっている。

FastCaloSim

FastCaloSimはLHCのATLAS実験のために開発されたシミュレーションツールだ。粒子が検出器とどのように相互作用するかをモデル化し、分析のためのデータを生成する。FastCaloSimは、従来のCPUと現代のGPUの両方でどのようにパフォーマンスを発揮できるかを評価するために、さまざまなプログラミングモデル間で同様のテストを受けてきた。

パフォーマンス評価

パフォーマンス評価は、テストされたさまざまなアプリケーションで各プログラミングモデルがどれほどよく機能するかを比較することを含む。主要なパフォーマンス指標には:

  • スループット:秒あたりに処理されるイベントの数。未来の実験からの期待されるデータ負荷を管理するためには高いスループットが望ましい。
  • メモリ管理:各モデルがデータのストレージとCPUとGPU間の転送をどれほど効率的に処理するか。効率的なメモリ管理は、処理中のボトルネックを減らせるんだ。

評価は、各プログラミングモデルの強みと弱みを明らかにしてる。例えば、Kokkosは特定のアプリケーションで良いパフォーマンスを発揮するかもしれないが、SYCLやOpenMPのような他のモデルは特定のタスクに苦しむことがある。

結論

高エネルギー物理学における異種アーキテクチャへのシフトは、ソフトウェア開発にとって大きな課題をもたらしてる。研究者たちは、既存のコードを新しいタイプのハードウェアで簡単に実行できるようにするために、さまざまなポータビリティ解決策を積極的に探求してる。各プログラミングモデルは独自の利点を持っていて、どれを選ぶかは開発されるアプリケーションの具体的なニーズによるんだ。

今後、HEPコミュニティは、どのプログラミングモデルが自分たちのソフトウェアやハードウェアのニーズに最も適しているかを慎重に考える必要がある。研究が続く中で、新しい技術向けにコードを適応させるプロセスをスムーズにしながら、パフォーマンスを維持または向上させることが期待されてる。これは、宇宙の理解の限界を押し広げる今後の実験の成功にとって重要だ。

オリジナルソース

タイトル: Evaluating Portable Parallelization Strategies for Heterogeneous Architectures in High Energy Physics

概要: High-energy physics (HEP) experiments have developed millions of lines of code over decades that are optimized to run on traditional x86 CPU systems. However, we are seeing a rapidly increasing fraction of floating point computing power in leadership-class computing facilities and traditional data centers coming from new accelerator architectures, such as GPUs. HEP experiments are now faced with the untenable prospect of rewriting millions of lines of x86 CPU code, for the increasingly dominant architectures found in these computational accelerators. This task is made more challenging by the architecture-specific languages and APIs promoted by manufacturers such as NVIDIA, Intel and AMD. Producing multiple, architecture-specific implementations is not a viable scenario, given the available person power and code maintenance issues. The Portable Parallelization Strategies team of the HEP Center for Computational Excellence is investigating the use of Kokkos, SYCL, OpenMP, std::execution::parallel and alpaka as potential portability solutions that promise to execute on multiple architectures from the same source code, using representative use cases from major HEP experiments, including the DUNE experiment of the Long Baseline Neutrino Facility, and the ATLAS and CMS experiments of the Large Hadron Collider. This cross-cutting evaluation of portability solutions using real applications will help inform and guide the HEP community when choosing their software and hardware suites for the next generation of experimental frameworks. We present the outcomes of our studies, including performance metrics, porting challenges, API evaluations, and build system integration.

著者: Mohammad Atif, Meghna Battacharya, Paolo Calafiura, Taylor Childers, Mark Dewing, Zhihua Dong, Oliver Gutsche, Salman Habib, Kyle Knoepfel, Matti Kortelainen, Ka Hei Martin Kwok, Charles Leggett, Meifeng Lin, Vincent Pascuzzi, Alexei Strelchenko, Vakhtang Tsulaia, Brett Viren, Tianle Wang, Beomki Yeo, Haiwang Yu

最終更新: 2023-06-27 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2306.15869

ソースPDF: https://arxiv.org/pdf/2306.15869

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

宇宙論と非銀河天体物理学新しい世界のシミュレーション: 宇宙の構造の研究

研究者たちは、宇宙の大規模な構造やその形成を分析するために、大規模なシミュレーションを使っている。

― 1 分で読む

高エネルギー物理学 - 実験新しいコンピュータプラットフォームに高エネルギー物理学を適応させる

高エネルギー物理学の研究者たちは、さまざまなコンピューティングリソースのためにソフトウェアを最適化してるよ。

― 1 分で読む

類似の記事