LINPACKベンチマークは 、システムの浮動小数点 演算能力を測定するものです。ジャック・ドンガラ によって導入されたこのベンチマークは、コンピュータが密なn × n の線形方程式系 Ax = bを解く速度を測定します。これは 工学分野 でよく行われるタスクです。
これらのベンチマーク の最新バージョンは、世界で最も強力なスーパーコンピュータをランク付けするTOP500 リストを作成するために使用されます。 [ 1 ]
目的は、実際の問題を解決する際にコンピュータがどのくらいの速さで動作するかを近似することです。これは単純化されたものであり、単一の計算タスクがコンピュータシステムの全体的なパフォーマンスを反映することはできないためです。それでも、LINPACKベンチマークのパフォーマンスは、メーカーが提供するピークパフォーマンスに対する適切な補正を提供できます。ピークパフォーマンスとは、コンピュータが達成できる理論上の最大パフォーマンスであり、マシンの周波数(1秒あたりのサイクル数)に、1サイクルあたりに実行できる演算数を掛けたものとして計算されます。実際のパフォーマンスは常にピークパフォーマンスよりも低くなります。[ 2 ] コンピュータのパフォーマンスは 、相互に関連する多くの変数に依存する複雑な問題です。LINPACKベンチマークで測定されるパフォーマンスは、コンピュータが1秒あたりに実行できる64ビット浮動小数点 演算(一般的には加算と乗算)の数で構成され、FLOPS としても知られています。ただし、実際のアプリケーションを実行する際のコンピュータのパフォーマンスは、適切なLINPACKベンチマークを実行して達成する最大パフォーマンスよりもはるかに低い可能性があります。[ 3 ]
これらのベンチマークの名前は、1980年代に広く使われていたFortranの 代数サブルーチン集であるLINPACK パッケージに由来しており、当初はLINPACKベンチマークと密接に関連していました。LINPACKパッケージはその後、他のライブラリに置き換えられました。
歴史 LINPACKベンチマークレポートは、1979年にLINPACK ユーザーマニュアルの付録として初めて掲載されました。 [ 4 ]
LINPACKは、23種類の異なるコンピュータが100サイズの行列問題を解いた際に得られたパフォーマンス結果を外挿することで、ユーザーがLINPACKパッケージを使用して問題を解決するのに必要な時間を推定できるように設計されました。
このマトリックスサイズは、当時のメモリとCPUの制限により選択されました。
−1から1までの10,000個の浮動小数点エントリがランダムに生成され、一般的な密行列を埋めます。 次に、タイミング測定には部分ピボット付きLU分解が使用されます。 長年にわたり、300次や1000次の行列など、さまざまな問題サイズや制約を持つ追加バージョンがリリースされ、ハードウェアアーキテクチャが行列-ベクトル演算や行列-行列演算を実装し始めたことで、新たな最適化の機会が生まれました。[ 5 ]
並列処理は、1980年代後半にLINPACK並列ベンチマークにも導入されました。[ 2 ]
1991年、LINPACKは[ 6 ] 任意のサイズの問題を解決できるように改良され、高性能コンピュータ (HPC)が漸近的な性能に近づくことが可能になった。
その2年後、このベンチマークは最初のTOP500 リストのパフォーマンスを測定するために使用された。
ベンチマーク
リンパック100 LINPACK 100は、1979年にLINPACKユーザーマニュアルとともに公開されたオリジナルのベンチマークと非常によく似ています。[ 7 ] 解は、部分ピボット 付きガウス消去法によって得られます。 2 / 3 n 3 + 2 n 2 {\displaystyle 2/3\,n^{3}+2n^{2}} 浮動小数点演算では、n = 100 は問題を定義する密行列A の次数です。その小さなサイズとソフトウェアの柔軟性の欠如により、ほとんどの最新のコンピュータはパフォーマンスの限界に達することができません。しかし、コンパイラの最適化 を使用して数値的に負荷の高いユーザー記述コードのパフォーマンスを予測するには、依然として役立ちます。[ 2 ]
リンパック1000 LINPACK 1000 は、より大きな問題サイズに加えて、1000 次行列を提供するため、マシンの限界に近いパフォーマンスを提供できます。アルゴリズムの変更は可能です。唯一の制約は、相対精度を下げてはならず、演算回数は常に考慮されるということです。2 / 3 n 3 + 2 n 2 、 {\displaystyle 2/3\,n^{3}+2n^{2},} n = 1000 の場合。 [ 2 ]
HPLinpack 以前のベンチマークは並列コンピュータのテストには適していないため、[ 8 ] いわゆるLinpackの高度並列コンピューティング ベンチマーク、またはHPLinpackベンチマークが導入されました。HPLinpackでは、マシンのパフォーマンス結果を最適化するために必要なだけ問題のサイズnを大きくすることができます。 2 / 3 n 3 + 2 n 2 {\displaystyle 2/3\,n^{3}+2n^{2}} は、使用するアルゴリズムとは無関係に、操作回数として扱われます。Strassenアルゴリズム は実際の実行速度を歪めるため、使用は許可されていません。[ 9 ] 精度は、次の式を満たす必要があります。
‖ A x − b ‖ ∞ ( ‖ A ‖ ∞ ‖ x ‖ ∞ + ‖ b ‖ ∞ ) n ϵ ≤ O ( 1 ) 、 {\displaystyle {\frac {\|Ax-b\|_{\infty }}{{\big (}\|A\|_{\infty }\|x\|_{\infty }+\|b\|_{\infty }{\big )}n\epsilon }}\leq O(1),} どこ
ϵ {\displaystyle \epsilon } 機械の精度は、n は問題のサイズです。[ 10 ] ‖ ⋅ ‖ ∞ {\displaystyle \|\cdot \|_{\infty }} は行列ノルム (最大行和[ 11 ] )であり、O ( 1 ) {\displaystyle O(1)} ビッグオー記法 に対応します。各コンピュータシステムについて、以下の量が報告されます。[ 2 ]
R max – マシン上で実行された最大規模の問題に対する性能(GFLOPS)。Nmax – マシン上で実行できる最大 の 問題のサイズ。N 1/2 – Rの 最大 実行速度の半分が達成されるサイズ。R ピーク – マシンの理論上の最大性能(GFLOPS)。これらの結果は、世界で最も強力なコンピュータのランキングであるTOP500リストを年2回作成するために使用されます。 [ 1 ] TOP500は 、これらの値を倍精度浮動小数点形式 (FP64)で測定します。R max / R peakの 比率は、並列効率またはHPL効率と呼ばれます。[ 12 ] 通信オーバーヘッドのため、システムのノード数が多いほど、通常は効率が低くなります。たとえば、1990年代のCray Y-MPは 約90%のHPL効率を達成し、[ 13 ] Frontierは 2023年に約70%を達成しました。[ 14 ]
LINPACKベンチマーク実装 前のセクションでは、ベンチマークの基本ルールについて説明しました。プログラムの実際の実装は異なる場合があり、 Fortran [ 15 ] 、C [ 16 ] 、またはJava [ 17 ] でいくつかの例が利用可能です。
HPL HPLは、元々はガイドラインとしてC言語で書かれたHPLinpackの移植可能な実装ですが、現在ではTOP500リストのデータを提供するために広く使用されています。ただし、他のテクノロジーやパッケージも使用できます。HPLはn次の線形方程式系を生成し、部分行ピボット付きLU分解を使用してそれを解きます。実行するには、 MPI の実装とBLAS またはVSIPLの いずれかがインストールされている必要があります。[ 18 ]
大まかに言うと、このアルゴリズムには次のような特徴があります。[ 19 ] [ 20 ]
2Dブロックにおける周期的なデータ分布 様々な先読み深度を用いた右回り型LU分解 再帰的パネル分解 6種類のパネル放送 方式 帯域幅を削減するスワップブロードキャストアルゴリズム 深さ1の先読みによる後方代入
批判 LINPACKベンチマークが成功した理由は、HPLinpackのスケーラビリティ[ 21 ] 、単一の数値を生成するため結果の比較が容易であること、および関連する広範な履歴データベース[ 22 ] にあると言われています。 しかし、リリース後まもなく、LINPACKベンチマークは、「そのマシン専用にコードを丹念に最適化するごく少数のプログラマーを除いて、一般的には達成不可能な」パフォーマンスレベルを提供しているとして批判されました[ 23 ]。 これは、密な線形システムの解像度のみをテストするためであり、これは科学計算で通常実行されるすべての操作を代表するものではありません[ 24 ] 。LINPACKベンチマークの主な推進力であるジャック・ドンガラ 氏は、ベンチマークは「ピーク」CPU速度とCPU数のみを強調しており、ローカル帯域幅とネットワークに十分な負荷がかかっていないと述べています[ 25 ] 。
国立スーパーコンピューティング応用センター 所長のトム・ダニング・ジュニア氏は 、 LINPACKベンチマークについて次のように述べています。「LINPACKベンチマークは興味深い現象の一つです。 その存在を知っている人のほとんどは、その有用性を嘲笑するでしょう。彼らはその限界を理解していますが、長年にわたって私たちが皆信じてきた唯一の数値であるため、認知度が高いのです。」[ 26 ]
Dongarra 氏によると、「TOP500 の主催者は、ベンチマーク レポートの範囲を拡大することを積極的に検討している」とのことです。これは、「特定のシステムに対してより多くのパフォーマンス特性とシグネチャを含めることが重要だから」です。[ 27 ] TOP500 のベンチマークを拡張するために検討されている可能性の 1 つは、HPC Challenge Benchmark スイートです。[ 28 ] ペタスケール コンピュータ の出現により、1 秒あたりの通過エッジ数 が、 LINPACK で測定される FLOPS の補完的なメトリックとして登場し始めました。そのようなメトリックのもう 1 つは、Dongarra 氏が提案したHPCG ベンチマーク です。[ 29 ]
実行時間の問題 ジャック・ドンガラ 氏によると、HPLinpackで良好なパフォーマンス結果を得るために必要な実行時間は増加すると予想されている。2010年に開催された会議で、彼は「数年後」には実行時間が2.5日になると予想していると述べた。[ 30 ]
参考文献 1 2 「Linpackベンチマーク、TOP500スーパーコンピューティングサイト」 。 2015年2月10日 取得 。 1 2 3 4 5 Dongarra, Jack J.; Luszczek, Piotr; Petitet, Antoine (2003)、 「 LINPACKベンチマーク:過去、現在、未来」 ( PDF) 、 『 Concurrency and Computation: Practice and Experience』 、 15 ( 9 ) 、 John Wiley & Sons, Ltd.:803–820、doi:10.1002/cpe.728、S2CID 1900724 。↑ ジャック・ドンガラへのインタビュー(サンダー・オルソンによる )、 2016年3月4日に オリジナル からアーカイブ 、 2012年1月13日に取得 。↑ ドンガラ、JJ;モーラー、CB;バンチ、JR;スチュワート、GW (1979)、 LINPACK: ユーザー ガイド 、 サイアム 、 ISBN 9780898711721 。↑ Dongarra, Jack (1988), "The LINPACK Benchmark: An explanation", Supercomputing (PDF) , Lecture Notes in Computer Science, vol. 297, Springer Berlin/Heidelberg, pp. 456–474 , doi : 10.1007/3-540-18991-2_27 , ISBN 978-3-540-18991-6 。↑ 高性能Linpackベンチマーク (PDF) 、テネシー大学イノベーティブ・コンピューティング・ラボラトリー、2010年、 2015年2月10日 取得 。↑ JJ Dongarra、JR Bunch、CB Moler、GW Stewart、「LINPACK ユーザーガイド」、1979 年。 ↑ Bailey, DH; Barszcz, E.; Barton, JT; Browning, DS; Carter, RL; Dagum, L.; Fatoohi, RA; Frederickson, PO; Lasinski, TA; Schreiber, RS; Simon, HD; Venkatakrishnan, V.; Weeratunga, SK (1991). "NAS並列ベンチマーク ― 要約と予備結果". Proceedings of the 1991 ACM/IEEE conference on Supercomputing – Supercomputing '91 . pp. 158–165 . doi : 10.1145/125826.125925 . ISBN 0897914597 . S2CID 18046345 . ↑ 「HPLベンチマークやTop500実行で行列の乗算を行う際に、Strassenの方法を使用できますか?」 . LINPACK FAQ . 2015年2月10日 取得 . ↑ 「解はどの程度の精度で適合する必要があるか?」 . LINPACK FAQ . 2015年2月10日 取得. ↑ "LINPACK dlange" . 2024-03-09 に取得。 ↑ 「理論上のピーク性能 R ピーク 」 。Uni.lu 高性能コンピューティング (HPC) チュートリアル 。2023-11-15 に 取得 。 ↑ "Y-MP C916/12256" . TOP500 . 1995-12-01 . 2023-11-15 に取得. ↑ "Frontier – HPE Cray EX235a、AMD Optimized 3rd Generation EPYC 64C 2GHz、AMD Instinct MI250X、Slingshot-11" . TOP500 . 2023-11-12 . 2023-11-15 に取得 . ↑ 「Fortran の Linpack ベンチマーク プログラム」 。2015 年 2 月 10 日 に取得。 ↑ 「C言語によるLinpackベンチマークプログラム」 。 2015年2月10日 取得 。 ↑ 「Java の Linpack ベンチマーク プログラム」 。2015 年 2 月 10 日 に取得。 ↑ 「HPL – 分散メモリコンピュータ向け高性能Linpackベンチマークのポータブル実装」 。The Netlib 。 2015年2月10日 取得 。 ↑ 「 HPL アルゴリズム」 。Netlib 。 ↑ 「HPLの概要」 。 革新的コンピューティング研究所 。 2015年2月10日 取得。 ↑ 「スーパーコンピューティングの伝説、ジャック・ドンガラへのインタビュー」 。2002年5月24日。 ↑ Haigh, Thomas (2004). "An interview with Jack J. Dongarra" (PDF) 。LINPACK は、そこに膨大な量の歴史的なデータベースがあり、実行が比較的容易で、理解も比較的容易であり、ある意味でプログラミングの最良の部分と最悪の部分を捉えているため、人々がよく引用するベンチマークです。 ↑ ハモンド、スティーブン(1995) 「マコフロップスを超えて:MPPを実運用環境に導入する」 、 国立大気研究センター技術ノート 、 413 、Ucar/Ncar:844 KB、 Bibcode : 1995NCART.413...... 、 doi : 10.5065/D6J67DW7 。↑ Gahvari, Hormozd; Hoemmen, Mark; Demmel, James; Yelick, Katherine (2006)、「5分でスパース行列ベクトル乗算のベンチマーク」、 SPECベンチマークワークショップ (PDF) 。↑ Dongarra, Jack J. (2007)、「HPC Challenge Benchmark: Top500でLinpackに取って代わる候補か?」、 SPEC Benchmark Workshop (PDF) 。↑ Christopher Mims (2010-11-08). 「中国の新しいスーパーコンピューターが技術的に世界最速である理由」 . 2011-09-22 閲覧 。 ↑ Meuer, Martin (2002-05-24). "スーパーコンピューティングの伝説ジャック・ドンガラへのインタビュー" . 2022-12-01 に取得. ↑ Luszczek, Piotr; Dongarra, Jack J.; Koester, David; Rabenseifner, Rolf; Lucas, Bob; Kepner, Jeremy; Mccalpin, John; Bailey, David; Takahashi, Daisuke (2005), Introduction to the HPC Challenge Benchmark Suite (PDF) 。↑ Hemsoth, Nicole (2014年6月26日). 「新しいHPCベンチマークが有望な結果をもたらす」 . HPCWire . 2022年12月1日 取得。 ↑ Dongarra, Jack J. (2010). LINPACKベンチマーク(マルチコアおよびGPUベースのアクセラレータにおける時間制限付き) (PDF) . 国際スーパーコンピューティング会議。
外部リンク LINPACKトップ500 Intel最適化LINPACKベンチマーク