世界のスーパーコンピュータとそれを動かす人々


4月 3, 2025

ハイパフォーマンスコンピューティングのベンチマークを簡単に

HPCwire Japan

Doug Eadline  オリジナル記事「A Short Sit on the HPC Benchpark

ほとんどのHPCユーザは、新しいハードウェアをテストしたり、既存のハードウェアを比較したりするためのベンチマークセットを持っている。新しいプラットフォームで作業を行うには、多くの場合、ベンチマークファイルやMakefileを手作業で微調整する必要があり、これは骨の折れる作業で、多くの時間を要する。

 
   

ローレンス・リバモア国立研究所(LLNL)のプロジェクトであるBenchparkは、この状況を変え、HPCベンチマークをより簡単にしようというものである。Benchparkは、オルガ・ピアース氏、アレック・スコット氏、グレッグ・ベッカー氏、リヤズ・ハク氏、ネイサン・ハンフォード氏によって開発された。

ウェブサイトによると、BenchparkはHPCベンチマークの再現可能な仕様を共有するオープンな共同リポジトリである。Benchparkは、再現可能な作業仕様を共有するメカニズムを提供することで、ベンチマークに関するサイト間の共同作業を可能にする。

  • システム仕様(ベンチマークや実験に依存しない)
      -ハードウェア情報
      -システムソフトウェア環境情報(利用可能なコンパイラ、MPI)
      -スケジューラおよびランチャー
  • ベンチマーク仕様(システムや実験に依存しない)
      -ソースリポジトリおよびバージョン
      -ビルド構成(Spackを使用)
      -実行構成(Rambleを使用)
  • 実験仕様(システム仕様における特定のベンチマーク実験)
      -特定のシステム上でのベンチマークのプログラミングモデル(OpenMP、CUDA、ROCmなど)
      -研究における個々の実行のパラメータ

特殊化リストは、多くのベンチマーク要件の独自性を捉えている。例えば、パフォーマンスを測定するために、ユーザは特定のベンチマークに対して異なるコンパイラやMPIオプションをテストすることが多い。このプロセスは、異なる組み合わせに特有の多くの依存関係があるため、面倒になる可能性がある。

Benchparkは、構成を指定するために以下のオープンソースプロジェクトを使用している。

  • Spack:ベンチマークと依存関係の構築
  • Ramble:実行構成

概要

入門セクションはわかりやすい。gitクローニングと環境設定を済ませたら、Benchparkのルートディレクトリに含まれるrequirements.txtファイルを使用して、Pythonの依存関係をインストールできる。

すべてがセットアップされると、Benchparkシステムでサポートされているベンチマークとシステムを照会することができる。コマンド benchpark list を実行すると、サポートされているベンチマークとシステムが報告される。ベンチマークのリストはかなり多い(つまり、若いプロジェクトではもっと少ないと予想していた)。リストには、各ベンチマークに必要なソフトウェア環境(cuda、openmp、mpi、rocmなど)も含まれている。例えば、

  1. amg2023/cuda
  2. amg2023/openmp
  3. amg2023/rocm
  4. branson/openmp
  5. genesis/openmp
  6. gromacs/cuda
  7. gromacs/openmp
  8. gromacs/rocm
  9. hpcc/mpi-only
  10. hpcg/openmp
  11. hpl/openmp
  12. ior/mpi-only
  13. kripke/cuda
  14. kripke/openmp
  15. kripke/rocm
  16. laghos/mpi-only
  17. lammps/openmp
  18. lammps/rocm
  19. md-test/mpi-only
  20. osu-micro-benchmarks/mpi-only
  21. phloem/mpi-only
  22. quicksilver/openmp
  23. qws/openmp
  24. raja-perf/cuda
  25. raja-perf/mpi-only
  26. raja-perf/openmp
  27. raja-perf/rocm
  28. remhos/mpi-only
  29. salmon/openmp
  30. saxpy/cuda
  31. saxpy/openmp
  32. saxpy/rocm
  33. stream/openmp

システムサポートも非常に広範囲にわたる。

  1. CSC-LUMI-HPECray-zen3-MI250X-Slingshot
  2. CSCS-Daint-HPECray-haswell-P100-Infiniband
  3. CSCS-Eiger-HPECray-zen2-Slingshot
  4. JSC-JUWELS-Booster-rome-A100-Infiniband
  5. LLNL-Dane-DELL-sapphirerapids-OmniPath
  6. LLNL-Magma-Penguin-icelake-OmniPath
  7. LLNL-Pascal-Penguin-broadwell-P100-OmniPath
  8. LLNL-Ruby-icelake-OmniPath
  9. LLNL-Sierra-IBM-power9-V100-Infiniband
  10. LLNL-Tioga-HPECray-zen3-MI250X-Slingshot
  11. RCCS-Fugaku-Fujitsu-A64FX-TofuD
  12. TAMU-Grace-Dell-cascadelake-Infiniband
  13. nosite-AWS_PCluster_Hpc6a-zen3-EFA
  14. nosite-AWS_PCluster_Hpc7a-zen4-EFA
  15. nosite-HPECray-zen3-MI250X-Slingshot
  16. nosite-x86_64
  17. test-extra-batch-opts

ベンチマークの設定は、Benchparkで実験を設定することで行う。各実験には、ベンチマーク、システム、ベンチマーク設定を指定できる。

Benchparkシステムは、以下のワークフロー図をサポートするように設計されており、既存の構成を実行できるか、またはBenchparkファイルを追加または編集する必要があるかを判断するのに役立つ。既存のシステムで実行しており、ベンチマークと実験がすでに設定されている場合は、Benchparkの実行に直接進むことができる。

Benchparkワークフロープロセス、クリックで拡大。出典:Benchpark

 

Benchparkはオープンソースプロジェクトである。質問、ディスカッション、新しいベンチマーク、システム、実験の提案、既存の仕様に対する更新や改善は歓迎される。

BenchparkはApache 2.0 w/ LLVM Exceptionライセンスでリリースされており、GitHubで入手できる。