センター報告
スーパーコンピュータ・システムSX5/128M8の
フェアシェア・スケージューラによる運用
東田 学(サイバーメディアセンター 応用情報システム研究部門)
manabu@cmc.
大阪大学サイバーメディアセンターでは、2001年1月5日からスーパーコンピュータ・システムSX-5/128M8の運用を開始した。本システムは、NEC SX-5/16Af (160GFLOPS, 主記憶128GB) 8ノードから構成され、ピーク演算性能は1,280GFLOPSである。各ノードを複数の超高速ネットワーク (64Gbpsの専用ノード間接続装置IXS、800MbpsのHiPPIおよび1GbpsのGigabit Ethernet) により相互接続したクラスタ型のマルチノード・システムである。
本センターでは、これまでにシングルノード・システムとしてSX-2N (1986-1991)、SX-3/14R (1991-1996、ピーク演算性能 6.4GFLOPS) を運用し、マルチノード・システムとしては2ノード・システムであるSX-4/64M2 (1996-2001、ピーク演算性能 128GFLOPS) を運用してきた。これらの歴代システムと比較しても、また他センターにて共同利用に供せられるスーパーコンピュータ・システムと比較しても、これまでに例のない物量の大規模システムである。
このようにシステムが大規模化するに従って、ユーザもシステム管理者もシステムの規模を把握し効率的に利用することが難しくなっている。また、大型計算機センター時代から引き継ぐ運用上の課題として、課金システムの近代化による通年を通した閑散期・繁忙期といった波のない効率的利用の促進が挙げられる。
導入システムの稼働率を高め、公平なリソース配分を行うという、システム管理およびユーザ利用の両面から直面する課題に取り組むため、本システム導入に際して新たな試みを行うこととなった。フェアシェア定額制の導入である。
本稿では、フェアシェア定額制という枠組みを実現するにあたって新たに導入したシステム管理手法について解説するとともに、この一年の運用状況を報告する。
1.フェアシェア定額制の実現に際して
 |
| 図-1:動作検証用Webページ |
今回導入したSX-5用のOSであるSUPER-UXには、ERS (Enhanced Resource Scheduler)
と呼ばれる資源管理機能が提供されている。ERSは、階層型フェアシェア・スケジューラによるユーザおよびジョブ管理機能とともに、マルチノード・システムにおけるジョブの自動負荷分散機能を提供する。フェアシェア定額制は、これらの機能を元にして実現し運用している。各々の機能については、次節以降で詳述する。
これらの機能は、本システムの導入時においてマルチノード・システムでの運用実績がなく、本センターでの適用が初めてであった。そのため、本センターにて動作検証システムを構築し、ベンダーとともに初期動作不良の洗い出しを行った。それと同時に、Webページ (http://sxusers.center.osaka-u.ac.jp/sxusers/rrd/、図-1) を整備し、ユーザへ運用情報を適時提供しつつ、運用においても適切なパラメータ・チューニングを行うための判断材料とした。
当該ページでは、ノード毎およびシステム全体のバッチキューの処理状況、プロセッサの処理状況、システムの負荷状況、ディスクの利用状況などを時系列グラフによって追跡表示することができる。これらの時系列グラフのタイム・スケールは、より適切な判断材料を提供するため日毎 (daily)、週毎 (weekly)、月毎 (monthly) 年毎 (yearly) に調整できるようになっている。
以下では、この動作検証システムによって得られた運用データを提示しながら、この一年の運用状況を検証する。
2.課金システムとジョブ管理
本センターでは、ジョブ投入・管理システムとして、一貫してNQSによるバッチ処理型のサービスを提供している。ユーザは、プログラム実行に際して、NQSバッチキューにジョブを投入する。NQSバッチキューは、システムの混雑具合やユーザの利用優先度に応じて、投入されたジョブを実行し、ジョブの実行が長期化する場合は、適宜ホールド (一時停止) やリスタート (再開) を繰り返すことにより、短期的な利用の公平性を確保していた。また、ユーザの利用時間は積算され、申告利用額に達するとリソース・オーバとして利用制限がかかることで、長期的な利用の公平性を確保していた。
このように、バッチキューとそれに付随する従量課金制度によって利用の公平性は暗黙的に維持されてきたが、研究室単位でのワークステーションの導入や、さらに研究者個人単位でのパソコンの導入によって、従量課金体系に束縛された計算機資源の利用は敬遠されるようになり、大型計算機センターの利用離れとして顕著な傾向を示すようになった。本センターを含め全国共同利用センターでは、従量課金制度に加えて定額課金制度を試行したが、本質的には上述した従量課金と利用限度額に基づく制度であり、利用離れに対する根本的な解決策とはならなかった。
本センターが新システムから導入したフェアシェア定額制は、ユーザ・グループに対するシェア率という概念を導入することによりシステムリソースの柔軟な割り当てを実現し、これまでの従量課金のために用いてきた利用時間を、その積算に際して半減期換算することによって利用奨励を行うという枠組みからなる全く新しい制度である。
フェアシェア定額制では、ユーザは、階層構造を有するグループに属し、グループにあらかじめ割り当てられたシェア率に近づくようにリソース・スケジューリングが行われる。このシェア率は、定額申請の額に応じて割り当てをおこなっている。ユーザは、ジョブ投入時にシステムのリソースが空いていれば、できる限り多くのリソースを使ってジョブ実行を行うことができる。すなわち、他のグループのユーザが利用していないときは、その分のリソースも使うことができる。ユーザの利用実績は積算され、他のグループのユーザが利用を始めた際は、シェア率とその時点での利用実績に応じてジョブ実行の優先度の調整が行われ、相対的に優先度が下がっていく。ただし、利用実績は設定期間ごとに半減するので、時間が経過するにつれ徐々に優先度が上がり、ジョブの実行が再開される。
公平にシェア率を達成するためのシステムのチューニング要素としては、投入されたジョブの実行優先度を決める以下の項目がある。
- 利用実績の半減期
- ジョブクラス毎の利用実績の積算計数
- ジョブ実行の多重度
- ジョブのホールド・リスタートの間隔
これらのパラメータは、動作検証システムで表示されるグラフを元に適宜調整を行っている。
2.1 平成13年度のシェア率の推移
図-2、図-3は、平成13年度のプロセッサ利用時間とメモリ利用量のユーザ・グループ毎のシェアの推移をグラフ化したものである。これらの図が示すように、閑散期 (4月から9月) には、一部のグループの利用が相対的に活発化しシェアが上がり、繁忙期 (10月から3月) には、ほとんどのグループからの利用が活発となるため、あらかじめ設定したシェア率が達成されるようにジョブ管理が行われている。
平成13年度の運用においては、利用実績の半減期は、2001年1月から3月までが2日、4月から11月上旬までが2週間、それ以降の繁忙期は4週間とした。この設定では、通年で見たときに利用実績による優先度への影響が残っていることはないが、よりシェア率に応じた公平性を実現するため、利用に障害とならない範囲での半年程度の長期的な積算も加味することを検討している。
また、プロセッサ資源を多く要求するグループと、メモリ資源を多く要求するグループに傾向が分かれていることも、このグラフの対比で明らかになった。メモリ資源を多く要求するグループは、システムのリソース解放待ちとなることが多く、ジョブ実行際して不利を被っている。この対策として、半減期やホールド・リスタート期間の調整などのシステム・チューニングを試み、ユーザからの不満を出来る限り解消したが、未だ根本的な解決には至っていない。現状ではプロセッサ資源の利用に関してのみ利用実績として積算し、ジョブの実行優先度算定の根拠としているが、メモリ資源を多く要求する大規模ジョブのスループットが上がるような利用促進の優先権を与えるなど、より積極的な資源管理を行うことを計画している。

2.2 平成13年度のユーザ毎の利用実績の推移
図-4は、ユーザ毎の利用実績の推移をグラフ化したものであり、図-5はそれに付随する情報を監視するためのWebページである (一般には非公開で運用最適化の資料とのみしている)。グラフの縦軸は対数目盛である。ユーザの利用が継続してあれば、利用実績が積算される様子がわかる。半減換算は随時行われるので、利用実績は半減期に応じた上限を持つ。システム全体の利用実績 (グラフの白い領域) も上限があり、安定した運用が行われている限り上限に近い値を保っている。また、ユーザの利用が終わると直線を描いて利用実績が下がっていく様子も随時確認できる。
また、グラフ下の表では、上位ユーザの利用をより詳細に分析できるようにしている。この表が示すように、上位10ユーザが、システム全体の7割から8割以上のリソースを使っており、上位20ユーザで、9割以上のリソースが使われている。ただし、上位ユーザは固定されているわけではなく、入れ替わり立ち替わりである。半減期設定は短くすると大口利用者に有利となり、長くすると大口利用者に対するフェアシェアのメリットが薄れる。なるべく多くの利用者に公平であるような期間を設定するよう、これらのグラフを参照しながらパラメータ・チューニングを試行している。

3.マルチノード間の負荷分散
近年、グリッド・コンピューティングの実現が叫ばれているが、多ノードから構成されるクラスタ型システムの効率的な利用もその課題の一つである。今回導入したシステムは、ノード毎の性能は (論理ピーク演算性能 160GFLOPS, 主記憶容量 128GB) は、今なお世界最大級であるが、大規模ゆえに全体としてリソースは8ノードに分散されている。これを8つの個別システムとしてではなく、統合されたシステムとして提供することが重要であり、特に各ノードに効率よくジョブを割り当てる負荷バランス調整の枠組みが不可欠である。これまでは、LSF (Load Sharing Facility) などによって負荷分散の枠組みを提供してきたが、今回導入したシステムにおいては、ERS によって負荷分散機能を実現し、この一年でその有用性を実証した。
例えば16並列のジョブクラス p16 は、#0から#3および#5の5ノードでジョブ実行が行われる。投入されたジョブは、5ノードに対してラウンドロビン・スケジューリングによって順々に投入されるが、投入ジョブの性質によってノード毎の負荷にインバランスが生じ、例えば、あるノードのジョブの実行時間が短く、他のノードより早期にジョブ実行が終了したが、その段階でキューにジョブがないような場合は、アイドルするノードが生じる。
ERSでは、このような場合に、ノード間での負荷バランスが均一化するように適宜、自動的にジョブマイグレーション (ジョブの実行をいったん停止し、実行状態を保存した上で他ノードに転送し、他ノードにてジョブ実行を再開する機能) を行うことができる。導入当初は、システムの不具合がいくつも発覚したが、動作検証システムを導入し監視することでマルチノードにおける不具合の発生を一目瞭然で捕らまえることができた。また、ジョブクラス構成の最適化も適宜行った。
3.1 平成13年度のノード稼働状況の推移
平成13年度のシステム全体のプロセッサの稼働状況を図-6に、ノード毎のプロセッサの稼働状況を図-7に示す。これらのグラフは、システムの稼働状況を表示するsarコマンドの出力をグラフ化したもので、usr (ユーザがプロセッサを利用した割合)、sys (システムがプロセッサを利用した割合)、wio (I/O処理によって浪費した割合)、wmem (メモリ待ちによって浪費した割合) を積み上げたものであり、それ以外の余白はプロセッサがアイドルしていることを示す。グラフ下の数値は、上記稼働率の一日平均の通年での最大、平均、最小を記している。なお、停電や保守、また動作検証システムの障害によりデータが採取できない期間はこれらの値の算出から除外されている。また、節電のため、ノード#0、#1、#2は適宜停止している。
まず、システム全体として、ユーザがプロセッサを利用した割合は76.25%であり、ノード毎の値も若干ばらつきはあるが75%前後である。この値は、一見小さいように感じられるかもしれないが、本センターのシステムはギャング・スケジューリングにより並列プロセスの同期を行っており、この同期待ちのオーバヘッドがプロセッサのアイドル状態として計上されることがその要因である。ギャング・スケジューラの管理下では、このようにシステムとしての運用効率は低下するが、ユーザのターン・アラウンド・タイムは向上するため、後者を優先させている。
次節で報告するように、多くのジョブは16並列プロセスとして投入されており、75%というユーザの利用率から逆算するとそれらの並列実行率は98%となる。これは、1時間かかる演算処理のうち、並列化できずに逐次処理となる区間が72秒ということである。典型的なプログラムでは初期化部やデータの同期操作、I/O処理部は並列化できないため、逐次処理区間を減らすことはできても無くすことはできない。次々節で報告するベクトル化率 (99%以上) とともに、これは通年の平均値であるから、各ユーザのプログラムが非常に優秀なチューニングで実行されていると言える。なお、並列実行率98%のプログラムを32プロセッサで処理すると稼働率は61.7%、64プロセッサで並列処理すると稼働率は44.2%、128プロセッサで処理すると稼働率は28.2%まで低下する。
さらに、ノード毎の推移を見ると、一日平均プロセッサ利用率の最高は99.6%を記録しており、これは並列実行率で99.97%に相当する。このような高効率の並列プログラムでも、1,024プロセッサで処理すると稼働率は76.5%に過ぎない。これらの値を見れば、高並列システムの利用が以下に難しいか明らかであり、本センターのシステムの利用の容易さが改めて示されていると言えよう。
今後の課題は、このような高い効率を維持したまま、32並列や64並列の大規模ジョブの実行を支援していくことにある。年度末よりレーザー核融合研究センターの協力のもと、大規模ジョブのための効率的運用体制を模索している。

3.2 平成13年度のジョブの投入状況の推移
図-8に平成13年度のジョブクラス毎のジョブの投入状況を示す。導入当初は8並列のジョブクラスへの投入が多かったが、現在ではシングル・プロセッサのp1ジョブと16並列のp16ジョブがほとんどとなっている。通年平均して、p1 は約30ジョブ、p16は約20ジョブを常に多重実行している状況である。これまでのような繁忙期、閑散期によるジョブ投入量の偏りが見られなくなり、フェアシェア定額制導入の効果がここに現れている。
前節末に触れたように、32並列や64並列のジョブクラスmpi32/mpi64も常時設けており、より大規模なジョブを遂行できるようプログラムのチューニングを進めている。

3.3. 平成13年度の演算効率の推移
本システムは、Linpackベンチマークにてベクトル型スーパーコンピュータとしては初めて1TFLOPSを超える実効性能 (1,192GFLOPS) を達成し、2001年11月付けの ``TOP500 Supercomputer List'' (http://www.top500.org/) でも依然として12位にランク付けされている。また、IDCが2001年11月13日付けで発表したレポート ``Supercomputer Performance Rankings Based on New Standard Test: The IDC Balanced Rating'' では、より広範なベンチマーク試験に基づくランク付けを行っているが、PSCのTerascale、ASCI Whiteに継ぐ第三位の能力を有するスーパーコンピュータ・システムとして高く評価されている。
このように科学技術計算の性能は何GFLOPSという尺度で比較されるが、実際のユーザプログラムを実行してみると、このような論理性能が出ることはありえない。様々な要因で演算器を理論通りにスケジューリングができないからであるが、主な要因はメモリから演算器へのデータ転送能力の制限にある。SXはベクトル型コンピュータであり、このデータ転送能力が桁違いに大きく、実際の運用における高効率を支えている。
平成13年度上半期のシステム全体の演算処理状況を図-9に、ノード毎の処理状況を図-10に示す。最も効率の良いノードで、一日平均の最大値が98GFLOPSを記録している。論理ピーク性能が160GFLOPSなので、60%強の効率である。また、通年で平均しても40GFLOPS強であり、論理ピーク性能に対して25%強の効率である。実際のユーザプログラムの運用で20%を越える効率は、本センターはもちろん、他センターでもこれまでに例がないとのことである。
ベクトル・オペレーション率は、ノード毎にばらつきはあるが、85%から95%であり、前節に示した並列化率とともに非常に優秀な値である。なお、ベクトル・オペレーション率には、浮動小数点演算以外のメモリ操作オペレーションなども含まれるので、ベクトル・オペレーション率が高くともFLOPS値が高くなるとは限らない。
また、平均ベクトル長は250から300強である。最長は512なのでチューニングの余地はありそうだが、傾向を分析するに、ベクトル長を長くしたからといって必ずしもGFLOPS値が大きくなると短絡するわけでもないようで、チューニングにおける課題の一つとなっている。

4. おわりに
新システム運用と同時に、全く新しいフェアシェア定額制度を導入したが、大きな混乱なく導入直後から早期に利用を立ち上げることができた。ユーザ各位のご理解に深く感謝したい。また、この制度の導入によって、大きな課題であった通年を通しての需要の平均化にも貢献したことを改めて記しておきたい。
フェアシェア定額制によって一年間運用した結果、本文で指摘したようないくつかの問題点も明らかになった。特に、システム全体の半分以上のリソースを使うような大規模ジョブをいかに円滑に遂行するか、またその際に他のジョブのターン・アラウンド・タイムの増大をいかに最小限度に止めるか、この点が次年度の運用課題である。
最後に、新システムは大規模ゆえに消費電力が大きく、運営費用は従来システムと比べて1.5倍を越えている。フェアシェア定額制によるユーザの使い勝手の向上をご理解頂き、本センターの運営に更なるご協力を頂くようお願いしたい。