Amber を研究の基礎として安心してご活用いただけるように、豊富な機能を盛り込んでコンパイルし、Amber規定の動作テストと速度検証を行って問題ないことを確認した上で、その報告書も同梱して納品しております。
セットアップ可能なAmberの概要
2024年3月25日時点で最新の、弊社検証済みでセットアップ可能なAmberは、弊社で出荷するRHEL / AlmaLinux 8.7搭載計算機向けにインテルoneAPI Base & HPC Toolkit(以下、oneAPI)およびGCCでビルドを行った、Amber22 CPU版およびGPU版です。
組み込み済みのソフトウェア/機能
Amberのビルド時に、利用可能な関連機能を可能な限り多く盛り込むようにするべく、次のソフトウェアを組み込み済みです。
ソフトウェア名称 |
概要 |
バージョン |
Amber |
Amber本体 |
22 patch 5 |
AmberTools |
単体およびAmberと組み合わせ可能ないくつかのパッケージ |
23 patch 5 |
テスト項目とテスト結果
弊社では、AmberおよびAmberToolsの公式テスト結果に対する弊社の合否判定基準を独自に設けております。一つは、下記の各テストの結果で「file comparisons failed」の個数が一定個数以下に収まっていることです(具体的な個数は後述のバイナリ仕様書に記載しています)。これは、経験上0個にすることが極めて困難であるという知見があるため(*)で、出力数値がずれる可能性を出来る限り小さくするという観点で設けております。もう一つは「tests experienced errors」が0個であることです。この出力は動作中に異常終了したことを示すものですので、動作安定性の観点から0である必要があります。
(*) Amber22+AmberTools22の組み合わせですが、Amber公式サイトのCPUテスト結果・GPUテスト結果を見ても「file comparisons failed」の数が0になっていないものが多数あります。
- CPU Serialテスト(make test.serial)
- 上記の弊社合否判定基準をパスすることを確認しました。
- CPU Parallelテスト(make test.parallel)
- 2並列において上記の弊社合否判定基準をパスすることを確認しました。
- oneAPIビルドでは4並列以上、GCCビルドでは8並列以上において、「file comparisons failed」の個数が弊社基準を超えました。しかし、テスト結果を詳細に確認した結果、次のように問題ないものが見られました。それらを差し引くと、いずれも弊社合否判定基準をパスすることを確認しました。
- 一部のテストにおいて、テスト結果の比較に使われているリファレンス値が、Amberソースコード内のパラメータが2023年5月にAmberメーリングリストで議論される前の古い値のまま計算した際の結果であったと確認できました。変更されたパラメータ以外には計算結果に差異が見られないため、問題ないと判断しました。
- 一部のテストにおいて、出力されるファイルの表示位置がずれているだけであることを確認しました。それ以外の変化が無いため、問題ないと判断しました。
- 一部のテストにおいて、リファレンス値がAmber20時の古いインプットで計算した結果であるために発生していることを確認しました。インプット以外の、計算の結果に変化が無いことを確認できたので、問題ないと判断しました。
- 一部のテストにおいて、その出力結果が、Amberメーリングリスト上で開発者から問題ないという返答が出ているものと同一であることを確認できたので、問題ないと判断しました。
- 一部のテストにおいて、ログファイルにignoredと出力されているので、問題ないと判断しました。
- 一部のテストにおいて、リファレンスとの差異として、開発環境・実行環境の差が出ているだけで、それ以外は一致していることを確認できたので、問題ないと判断しました。
- GPU Serialテスト(make test.cuda.serial)
- 上記の弊社合否判定基準をパスすることを確認しました。
- GPU Parallelテスト(make test.cuda.parallel)
- 2並列において上記の弊社合否判定基準をパスすることを確認しました。
- 速度検証
- Amber公式のベンチマークインプットを用いて速度検証を行いました。計算結果の性能値(ns/day)について過去のAmber ( Amber22+AmberTools22)との比較を行い、性能値と、並列数を増やしたときの速度向上率について問題が無いことを確認しました。
詳細につきましては、納品物に同梱いたしますバイナリ仕様書(後述)をご参照ください。
ビルド時に発覚した問題とそれに対する試行錯誤・対処
下記2件の問題を察知し、出荷前に対処を完了しました。
- GPU版のビルドエラー【対処済】
【問題概要】 oneAPIを用いて通常のGPU版のビルドを行うと、内部で参照されるQUICKのリンクエラーが発生しました。
【影響度:大】 GPU版バイナリを作成できません。
【原因究明】 コンパイラオプションを性能優先から保守的に変更してみましたが解決しませんでした。またコンパイラのバージョンとCUDAのバージョンを変えてみましたが解決しませんでした。Amberメーリングリストによると、このエラーはインテルコンパイラを用いてGPU版をビルドする際に起こるバグであること、および、他のコンパイラでビルドをおこなうかQUICK機能を無効にすることで対応できると記載されていました。そこでコンパイラをGCCに変更したところエラーなくビルド出来ることを確認しました。
【対処策】 GCCで調製したバイナリを納品いたします。
- GCCビルドバイナリの速度の遅さ【対処済】
【問題概要】 Amber公式のベンチマークインプットを用いて速度検証を行った結果、GCCでビルドしたCPU版バイナリの計算速度が、oneAPIでビルドしたCPU版バイナリよりも遅いと判明しました。
【影響度:小】 AmberのGPU版をご利用の場合、多くの計算をGPU版で実行する可能性が高いと予想されますが、GPU版で対応していない計算も一部あるため、そういった場合にCPU版バイナリが使われる可能性があります。
【原因究明】 GCCビルドバイナリについて、コンパイラオプションの変更を中心として、計算精度を保持したまま速度向上ができないか調査を行いました。しかし、残念ながらパフォーマンスの改善が難しい事が判明しました。このことから、oneAPIからGCCへのコンパイラの変更が主原因であり、解消は難しいと判断しました。
【対処策】 GCCで調製したバイナリとともに、oneAPIで調製したCPU版バイナリも同梱し、選択的にご利用いただけるように致しました。
バイナリ仕様書をいつでも参照いただけます
上記バイナリには、開発に用いた機材のバージョン、動作検証環境のスペック、テスト内容とテスト結果の詳細、既知の不具合(もしあれば)を記載したバイナリ仕様書(PDF)を /opt/hpcs/app_doc 以下に同梱しています。それは、Amberを「研究装置」として見たときの、言わば、「装置の品質検査報告書」です。弊社でビルドしたAmberがご研究の基礎として安心してご活用いただけることを裏付ける資料となります。バイナリの検査内容について気になった際には、いつでもご参照ください。
バイナリ仕様書の表紙