世界のスーパーコンピュータとそれを動かす人々


11月 2, 2015

エクサスケールのためのスケーラブルOSの要件

HPCwire Japan

Robert W. Wisniewski, Chief Software Architect for Extreme Scale Computing, Intel

過去数十年にわたって、二つの主要な傾向がスーパーコンピュータ向けのシステムソフトウェアをかなり複雑にするように動いてきた。ひとつは、ハードウェアがより複雑になったことだ。大規模なノード間並列処理(100,000ノード以上のノード)、ますます大きくなるノード内並列処理(100スレッド以上)、幅の広いベクトルユニット、アクセラレータ、コプロセッサ、などなどが、システムソフトウェアにこの新しいハードウェアから性能を引き出すためにより大きな役割を演じることを要求してきた。ふたつ目は、アプリケーションが変わったことだ。歴史的に、エクトリームスケールなハイパフォーマンス・コンピューティング(HPC)アプリケーションは、単独の実行ファイルで、バルク同期して空間的に静的に分割され、そしてシステムサービスの必要性は最小限であったのだ。

以下は要約です。詳細は原文を参照してください。http://www.hpcwire.com/2015/10/05/defining-scalable-os-requirements-for-exascale-and-beyond/

コミュニティがエクサスケールに向かうにつれて、包括的なシステムサービスを提供する上で、演算ノードのオペレーティングシステムはグローバルオペレーティングシステムと呼ばれる制御システムに統合されている。この記事では演算ノード上のオペレーティングシステムの課題と必要性についてフォーカスする。

図1はHPCシステムにおいて典型的な「左から右」へのモデルで、制御システムとノードローカルOSだ。ここれではどのようにこれらのトレンドが要件ひいてはHPC演算ノードOSを変化させていくのか、そしてこれらの課題がどのようにエクサスケール・コンピューティングに遭遇していくのかを述べていく。

20151005-F1-Wisniewski-Figure1_9.29.15

バックグラウンド:
OSは他にも課題に対処しなければならない。ソフトウェア・コミュニティではエクサスケールを達成するために、革命的もしくは進化的なアプローチが議論されており、どちらも重要であるが、本当の課題は如何に既存の計算パラダイムを統合しサポートするかだ。

歴史的には2つの設計手法が使われている。ひとつはFull-Weight Kernel(FWK)、通常はLinuxから開始し、機能を削ぎ落とすことで多くのコアと大規模なクラスタでスケールするようになる。もうひとつはLight-Weight Kernel(LWK)から開始し、馴染みのなるAPIを提供する機能を追加する方法で、典型的なLinuxだ。

要件:
古いニーズと新しいニーズがあり、古いニーズは相互に関係し、低ノイズ、高性能、ケーパビリティ・コンピューティングのためのスケーラビリティ、重要なハードウェアへのユーザスペースアクアエスの許可などを満たさなければならない。新しいニーズは、非同期の取り扱い、ローカル・グローなるな電源制御、信頼性などを含み、ソフトウェアスレッドのオーバーコミットを提供し、ランタイムと効率的に相互作用しなければならない。

エクサスケールOSカーネルの重要な要件は俊敏性であり、新しいハードウェアをサポートするために迅速に効率的に変更する能力であり、目標とされる機能をHPCライブラリ、ランタイム、アプリケーションに提供することである。例えば、10年ほど前に、大規模ページがBlue GeneのLWKであるCNKに6ヶ月で組み込まれた。しかし、Linuxでの大規模ページのサポートはもっと長く、現在でも進行中だ。必要なのは、既存のインタフェース(進化的)をサポートする機能を保持しながら、新しいハードウェア(革命的)の目標とされる効率的な利用を迅速かつ標的化方式(俊敏性)で提供することだ。

アプローチ:
LWKに機能を追加したり、FWKから削ぎ落としたりする古典的なアプローチにはさらに弱点がある。

次の3つのクラスのアプローチが弱点を克服するために浮上している。

  1. 最初はLinuxをベースとコンテナーとして利用することを継続し、異なるアプリケーション(多くの場合、今天的なHPCおよび新興のもの、例えば解析や可視化)を許可しながら複数のアプリケーション間の干渉を制限し、古典的なHPCアプリケーションの効果を最小化するようにしながらノードのリソースを共有することだ。コンテナーはLinux内で仮想環境を提供し、隔離されたOSインスタンスの外観を提供する。コンテナーアプローチの課題はLinuxが水面下に残っており、Linux自体が持つ根本的な課題が残っていることだ。
  2. 2番目のアプローチは仮想化だ。LWKもしくはLinuxカーネル上の仮想化されたプラットフォームは高性能もしくはもっと汎用のOSの機能を提供することができる。この隔離のアプローチは、アプリケーションによるLWKとFWKの同時使用における問題を露呈するが、下記のアプローチを組み合わせできるかもしれない。
  3. 3番目は複数のカーネルをノード上で同時に動かすことだ。これは過去数年間における強烈に研究されている領域であり、McKernel、FusedOS、Nix、Tesselation、Popcorn Linux、mOSなどはこの道を辿っている。mOSの場合、多数のコア上ではLWKを動作させてハイパフォーマンスを達成し、1台もしくは少数のコアでLinuxを動かしてLinuxの互換性を提供している。アプリケーションから見ると、LWKの性能を達成するがLinuxのように見えている。

図2は完全に一般化されたmOSアーキテクチャを示している。標準HPC Linuxが1コアで動作しており、残りのコアではLWKが動いている。

20151005-F1-Wisniewski.-Figure2_9.29.15

結論:
同時に進化的で革命的であるために、OSは古典的な要件と新しいHPC要件を満たさなければならない。複数のグループがこれらのニーズに対して確約する方向は、ノード内で同時に複数のオペレーティング・システム・カーネルを動かすことだ。