1- # BenchKit: 継続ベンチマーク実行基盤
1+ # BenchKit: CX基盤を支える継続性能工学基盤
22
3- BenchKit は、複数のアプリケーションを多拠点環境で継続的にベンチマーク実行し、その結果を収集・公開するための CI パイプラインフレームワークです。
3+ BenchKit は、CX基盤を構成する中核ソフトウェアであり、継続的ベンチマーク、継続的推定、継続的フィードバックを実用的に回すための基盤ソフトウェア兼ポータルです。
4+ 下層では shell-first の実行基盤として ` build.sh ` / ` run.sh ` を中心に扱い、上層ではポータルとして結果、推定、使用量、将来の申請や AI 連携への接続点を提供します。
45
56** 📋 新しいアプリケーションの追加方法** : [ add-app.md] ( docs/guides/add-app.md ) を参照してください。
67** 🏢 新しい拠点の追加方法** : [ add-site.md] ( docs/guides/add-site.md ) を参照してください。
@@ -13,8 +14,10 @@ BenchKit は、複数のアプリケーションを多拠点環境で継続的
1314
1415- 複数のコード(10〜50程度)を複数の拠点・システム(10〜30程度)で継続ベンチマーク実行
1516- ビルドと実行の分離・統合に対応(クロスコンパイルやJacamar-CI利用)
16- - サイト依存の環境条件への対応
17- - ベンチマーク結果の保存・可視化・性能推定
17+ - 拠点接続を通じた site 依存の環境条件への対応
18+ - ベンチマーク結果・推定結果・使用量の保存と可視化
19+ - 最上位アプリケーションのソース出自情報の追跡
20+ - 軽量推定と詳細推定の両方を受け入れられる推定基盤の提供
1821- ** BenchParkフレームワークとの統合** (Spack/Rambleベースのベンチマーク管理)
1922
2023---
@@ -106,7 +109,7 @@ benchkit/
106109
107110---
108111
109- ## 結果サーバ
112+ ## 結果ポータル
110113
111114### 概要
112115Flask ベースの Web アプリケーションで、ベンチマーク結果の受信・保存・表示を行います。
@@ -231,11 +234,12 @@ python -m pytest tests/ -v
231234- 推定対象システム(MiyabiG等)の場合、性能推定パイプラインをトリガー
232235
233236### 4. 性能推定パイプライン
234- ベンチマーク結果から他システムでの性能を推定します 。詳細は [ estimation.md] ( docs/guides/estimation.md ) を参照。
237+ ベンチマーク結果から本番規模性能、スケーリング挙動、将来システムでの性能を推定します 。詳細は [ estimation.md] ( docs/guides/estimation.md ) と [ ESTIMATION_SPEC.md ] ( docs/cx/ESTIMATION_SPEC .md) を参照。
235238
236239- 推定対象システム: ` ESTIMATE_SYSTEMS ` (job_functions.sh で定義、例: MiyabiG, RC_GH200)
237240- ` estimate.sh ` がアプリ固有の推定ロジックを実装(` programs/<code>/estimate.sh ` )
238241- ` estimate_common.sh ` が共通関数(API呼び出し、JSON出力等)を提供
242+ - 簡易推定と詳細推定の双方を将来的に受け入れられる設計を前提とする
239243- UUID指定による再推定もサポート(` estimate_uuid ` 変数でトリガー)
240244
241245### 5. BenchPark統合パイプライン
@@ -398,7 +402,8 @@ curl -X POST --fail \
398402` build.sh ` と` run.sh ` はシステム名を引数として受け取り、システム別の環境設定(モジュール、MPI設定等)に対応可能。
399403
400404## 動作要件
401- - POSIX環境(` bash ` , ` awk ` , ` cut ` 等の標準コマンド)
402- - ` yq ` , ` jq ` 等のシステム依存ツールは使用しない設計
405+ - shell 実行環境(` bash ` , ` awk ` , ` cut ` , ` sed ` などの標準コマンド)
406+ - 結果正規化・推定・転送系では ` jq ` と ` curl ` を使用
407+ - ` yq ` は前提としない設計
403408- 結果サーバ: Python 3, Flask, Gunicorn, Redis(本番), pyotp, qrcode[ pil]
404409- テスト: pytest, hypothesis, fakeredis
0 commit comments