# 強スケーリングと弱スケーリング
Navigation: [[../index|index]] | [[../overview|overview]]
## 定義
並列アプリケーションをノード数(プロセッサ数)を増やして動かすときの、問題サイズの取り方による 2 つの極限である。
- **弱スケーリング**: ノード数が増えても、ノードあたりの局所データ量(局所体積)をおおむね一定に保つ。問題全体はノード数に比例して大きくなる。
- **強スケーリング**: 問題全体の大きさを固定し、ノード数を増やすほど各ノードの局所体積を小さくする。
実際のアプリケーションはこの 2 つの極限の中間に位置する。Blue Gene/L の設計者は、国立研究所のアプリケーションは弱スケーリング側に、商用の HPC アプリケーションは強スケーリング側に寄ると述べる。(Source: [[@2005__IBM JRD__Overview of the Blue Gene/L system architecture]])
## 拡張性を制限する要因
同論文の表 1 は、両スケーリングで拡張性を制限し得る要因を次のように整理する。
- 共通: [[アムダールの法則]](逐次部分)、負荷不均衡、大域通信、メモリフットプリント、ファイル I/O。
- 強スケーリングに固有: 表面対体積比の通信支配、小メッセージ。
- 弱スケーリングに固有: 問題分割の限界。
強スケーリングでは局所体積が縮むため、計算量は体積に比例し通信量は表面に比例することから、通信対計算の比が上がる。全対全型の通信では、ノード数を 2 倍にすると各ノードが送るメッセージ数は 2 倍、各メッセージの大きさは 1/4 になり、総量はほぼ変わらない。このため小メッセージと大域通信への対処が拡張性の鍵になる。(Source: [[@2005__IBM JRD__Overview of the Blue Gene/L system architecture]])
## 未解決の問い
- 調査した限りの表 1 は 2005 年時点の HPC アプリケーションの調査に基づく。GPU 上の大規模モデル学習など、近年のワークロードでどちらの限界が支配的かは本ページの範囲では未確認である。
## 未編纂の観察
- [弱スケーリングの速度向上指標] 弱スケーリング側の速度向上は、並列機上の時間を 1 に固定し並列部分を N 倍に拡大する拡大速度向上 N + (1 - N)×s で測られる。この指標を提示したのが Gustafson である。(Source: [[@1988__CACM__Reevaluating Amdahl's law]])
## 関連
- 概念: [[アムダールの法則]] / [[スーパーコンピュータ]] / [[相互結合網]] / [[グスタフソンの法則]]
- ソース: [[@2005__IBM JRD__Overview of the Blue Gene/L system architecture]] / [[@1988__CACM__Reevaluating Amdahl's law]]
## 出典
- [[@2005__IBM JRD__Overview of the Blue Gene/L system architecture]](表 1 と「Limits to scalability」節)