# OSジッタ ## 定義 OSジッタは、計算プロセス以外のプロセス(システム監視、ファイルシステム、デーモンなど)への切替えが計算を中断し、並列計算のプロセス間で処理時間にゆらぎが生じる現象である。逐次計算では平均値だけが問題になるが、並列計算はプロセス間の同期を繰り返すため、遅れが蓄積して実行時間が大きく延びる。(Source: [[@2011__応用物理__次世代スパコン「京」のコアテクノロジ]] §3.4) ## 集団通信での増幅 - **集団通信では中断が多数のノードへ伝播し、ジッタの影響が増幅される。** 典型的な中断は数十 μs から数 ms だが、集団通信では多数のノードが遅れたノードのデータを待つため、性能低下がより深刻になる。(Source: [[@2012__FUJITSU Sci Tech J__Tofu - Interconnect for the K computer]] §5.4) - 根拠: [[@2011__応用物理__次世代スパコン「京」のコアテクノロジ]] — 並列度が数千を超えると、一般の Linux のノイズでは実行時間の増加が大きくなるとする、Bertsimas-bound を使った上限値の計算(同期間隔 1 ms と 10 ms) ## 対策の 2 系統 - **集団通信をハードウェアで処理すれば、OSジッタの影響を避けられる。** 「京」の TBI は Barrier、Broadcast、Reduce、AllReduce を各ノードのハードウェアで実行し、OS の割り込みを経由しない。(Source: [[@2012__FUJITSU Sci Tech J__Tofu - Interconnect for the K computer]] §5.4) - **OS 側でノイズそのものを減らす対策も併用される。** 「京」の OS は、長いノイズを 50 μs 以下、平均ノイズ率を一般の Linux の 1/10〜1/100 に抑える目標を置き、ノイズ発生源を協調して一斉に動かす協調スケジューリングを高機能バリアで実現する。(Source: [[@2011__応用物理__次世代スパコン「京」のコアテクノロジ]] §3.4) - 留保: 同 source の「京」の曲線は達成値ではなく目標値である ## 未解決の問い - ハードウェア集団通信によるジッタ回避と、OS 側のノイズ低減・協調スケジューリングは、どちらがどの規模まで効くのか。両 source とも定量の比較を持たない。 - TBI が扱えるのはスカラ 1 要素の集団通信であり、それを超える大きさの集団通信は依然ソフトウェアが担うと読める。その場合の OS ジッタの影響は、どの source にも定量がない。 ## 未編纂の観察 ## 関連 - 概念: [[集合通信]] / [[バリア同期]] / [[スーパーコンピュータ]] - エンティティ: [[Tofu Interconnect]] / [[K computer]] ## 出典 - [[@2011__応用物理__次世代スパコン「京」のコアテクノロジ]](3.4 節、図 5) - [[@2012__FUJITSU Sci Tech J__Tofu - Interconnect for the K computer]](5.4 節)