SSS-PC の概要と特徴

[ ホーム | 特徴 | 論文 | 性能 | デモ | 一覧表 | 用語 | ダウンロード | NRFS ]

SSS-PC は IBM-PC互換機および Sun MicroSystems社の Ultra60 または Ultra2 またはそれらの互換機で動作する次世代オペレーティングシステムです。SSS-PC は 汎用スケーラブルオペレーティングシステム SSS-CORE の研究開発成果を基に設計・実装されています。

SSS-PC は UNIX や Linux Windows NT のように 1 台のPCまたはワークステーション上で複数の仕 事を同時に実行するマルチタスク環境を 提供します。 さらに、複数台の PC や ワークステーションが LAN によって結合されている場合には、 従来のイ ンターネットやイントラネットの分散処理環境に加えて、マシン群を あたか も 1 台の高性能汎用並列計算機と見なせる環境を提供します。 この場合に、 専用並列計算機に見られる特殊なメモリコントローラや特殊な 通信用ハード ウェア等を一切必要としません。 この環境の上では、1 台のワークステーションにおけるマルチタスク環境と 同様に、複数の並列アプリケーションを同時に実行させることが可能です。

SSS-PC には実行中の アプリケーションプログラムを他のマシンに移送して実行する、マイグレーショ ン機能が組み込まれています。並列アプリケーションの1プロセスのマイグレー ションも可能です。 SSS-PC は LAN 内にあるPCやワークステーションを自由に選んで クラスタを構成することが可能ですが、マイグ レーション機能を組み合わせると、分散計算環境と同様に 1 台のマシンのみ を停止させることや、新たにマシンを起動してクラスタに加えることが任意の 時点で行えます。 この時にマイグレーションして他のノードに移ったアプリ ケーションは何の影響もなく継続実行されます。 クラスタ内のマシンの 1 台が突然故障により停止した場 合でも、その影響が 他のマシンに及ぶことはありません。

SSS-PC Ver. 1.0 は ネットワークブートによって起動されるため、必要に応じて既存の オペレーティングシステムと切り替えて使用することも可能です。

以下に、SSS-PC の技術的な主な特徴について 記述します。

下の図は SSS-PC の機能構成を表したものです。 図をクリックする (リンクをたどる)と大きなサイズの図が見られます。

[conceptual structure of SSS-PC (17KB)]



通信機構: MBCF

従来のオペレーティングシステムにおいて効率の良い並列処理を妨げる 最大の要因は、マシンを跨る通信や同期(仕事を処理する歩調を合わせること)の コストが非常に大きいことです。 ソフトウェアメモリベース通信(MBCF: Memory-Based Communication Facilities)は LAN に最も使われている イーサネット インタフェースを使ったユーザレベル高速通信同期機構です。 MBCF のプロトコルは数十バイトから数百バイト(中粒度)の大きさのデータを 対象とした遠隔メモリ操作 を基本にしており、 しっかりとしたメモリ保護と通信保証を行っています。 このプロトコルは、最近のマイクロプロセッサの先進的なメモリ管理機構と 協調することによって、従来一般に使われている通信プロトコルである TCP/IP に比べて高機能かつ圧倒的に 低コストで実現できます。 従来のオペレーティングシステムの TCP/IP 通信がプロセッサに掛ける オーバヘッドコストに比べて、MBCF は二桁小さいコストしか掛けないことが 実測されています。 また、通信の遅れ(レイテンシ)は ファースト イーサネットにおいて一桁小さくなります。 MBCF は TCP/IP 等の他のプロトコルとイーサネット上で共存可能です。 SSS-PC には、TCP/IP, IPsec 等の標準プロトコルも実装されており、 他のオペレーティングシステムと通信/暗号通信が可能です。


マイグレーション機能(移送機能)

実行中のプログラムを途中で他のマシンに移送して実行を継続させるマイグレーション機能(移送機能)を実装した。協調しながら動く並列プログラムもマシン間を移送することが可能である。完全な分散制御を行っているので、本機能により、アプリケーションを停止させずに、任意のマシンを停止させてシステム・メンテナンス作業を行うことや、マシン追加によりシステムの能力を動的に増強することが可能である。


自由市場原理(FMM)に基づく負荷分散方式の採用

マシン間の負荷分散方式には自律分散方式の一つである自由市場原理に基づくスケジューリング方式を考案し実装している。開示されたシステムの資源使用状況を基に各アプリケーションは自己申告自己責任で自分の都合がよいノードで実行を進める。ただし、システムの資源を浪費するプログラムにはペナルティを課す機構を導入し無法状態になることを防止している。


情報開示機構: IDM

SSS-PC は汎用システムですので、使用している ユーザ数や動いているアプリケーションによって、システムの負荷状況や 資源の利用状況がダイナミックに変化します。 これらは実行前に予測できる物ではありません。 しかし、運悪く負荷が重い ノードで 起動されたプログラムでも、負荷の軽いノードに移って実行を進めれば、 処理を早く終了させることができます。 では、このように実行時に状況判断を 行って効率を向上させる実行時最適化機能を、システム提供の高性能ランタイム ライブラリと最適化コンパイラによって、実現します。 ただし、この状況判断のための情報収集コストが高くついたのでは、状況判断を 気軽に行えなくなります。 このために情報開示機構(IDM: Information Disclosure Mechanism)を 提供しています。 カーネルが管理している資源割り当て情報や資源使用状況といった情報を 格納しているメモリ領域がユーザ空間に読み出し専用でマップされており、 低コストで参照することができます。 しかも、情報開示機構には自分のノードの情報のみではなく、他ノードの 情報も適宜交換され開示されています。 この情報をメモリ参照して、今後の負荷分散戦略や実行タイミングの検討判断を ユーザアプリケーション自らが行います。


LINUX・UNIXプログラムとのソースコード互換開発環境

既存アプリケーション等のソフトウェア資産を活用するために、互換C言語ライブラリを開発し、ソースコードレベルで既存UNIX系OSとの互換性を保っている。


分散共有メモリ: UDSM/ADSM

SSS-PC は MBCF により ユーザにシステム全体に跨る共有メモリ空間を仮想的に提供しています。 しかし、共有メモリベースの並列アプリケーションには単に 遠隔ノードのメモリ操作ができるだけでは 効率良く実行することができません。 そこで、頻繁に使用する遠隔ノードのメモリ内容を自分のノードに キャッシュする(データのコピーを手元に 作って管理する)機構が必要となります。 キャッシュ機能を含む分散共有メモリは通常専用ハードウェア機構として 高価な並列計算機にのみ搭載されています。 オペレーティングシステムのカーネル部分が分散共有メモリ機能を実現する システムもありますが、実現オーバヘッドが大きくて実用レベルに達していません。 これに対して、SSS-PC では第三のアプローチとして 最適化コンパイラによって分散共有メモリ機能を効率良く実現する方法を 採用しています。 この方式(UDSM: User-level Distributed Shared Memory)では、キャッシュ用の ハードウェア機構をエミュレーションするコードをプログラムに挿入して、 さらにその挿入されたコードを解析して通信量と通信回数を徹底的に削減します。 ユーザプログラマは通常の共有メモリとしてプログラムを記述します。 ユーザが書いたプログラムにキャッシュエミュレーションコードを単純に 挿入しただけでは、通信やキャッシュ管理の単位がプロセッサのメモリ アクセスの細かい単位(細粒度)となってしまいます。 このレベルの細粒度通信では、通常通信プロトコルの百分の一のコストである MBCF を使用しても、ソフトウェアによるコストが膨大になってしまいます。 このため、最適化コンパイラ によって、プログラムの 意味が変わらない範囲で、不要な通信やキャッシュ管理コードを削除し、 一回にまとめられる通信や管理コードは一回にまとめ、連続した領域への メモリ操作は中粒度のメモリ操作に置き換えます。 ADSM (Asymmetric Distributed Shared Memory)は UDSM と従来の OS カーネルによる 分散共有メモリ実現技術を融合した方式です。 ADSM では遠隔メモリのキャッシュ読み出しミスだけはメモリ管理機構で 検出して、共有メモリへの書き込みはキャッシュエミュレーションコードの 挿入と通信処理およびキャッシュ管理処理の最適化によって高性能化を 達成します。


最適化コンパイラ: RCOP

上述の UDSM/ADSM 方式の分散共有メモリをユーザに 提供する SSS-PC の最適化コンパイラが RCOP (Remote Communication OPtimizer)です。 RCOP は共有メモリ並列プログラムを取り扱い、その入力プログラムは共有 メモリ並列プログラム記述用のマクロライブラリで拡張された C 言語で 書かれています。 RCOP は共有メモリ並列プログラムを解析し、ADSM または UDSM 用の キャッシュ 管理コードを含んだ C 言語 プログラムに変換します。 出力された C 言語プログラムは、C コンパイラ(gcc 2.7.2)でコンパイルされ、 MBCF 通信を行う UDSM/ADSM 用ランタイムライブラリと リンクされて、最終的な実行コードが生成されます。 RCOP の最適化と低コスト MBCF 通信により、従来は ワークステーションクラスタ ではスピード アップが難しかった多くの共有メモリ並列プログラムの高速化が可能に なりました。


OS カーネル: Micro Core

SSS-PC が提供する並列計算環境の ノードである各ワークステーションには、 SSS-MC (Micro Core)と呼ばれる資源管理と資源保護を行うプログラムが 常駐しています。 SSS-MC は、いわゆる「コンパクトな OS カーネル(核)」ですが、従来より 提案されているマイクロカーネルとは異なり、コンパクトさの追求やカーネル インタフェースの統一よりも処理性能を重視して開発されています。 そのために、SSS-MC/SSS-PC は「共有メモリビュー」を 全面的に採用して、可能な限りオペレーティングシステム提供の機能を メモリ操作としてユーザに提供します。 メモリとしてユーザが扱うことができる機能は、プロセッサのメモリ管理機構を 活用することによって、保護と仮想化をオーバヘッドなしに実現することが できるため、汎用性の高い機能を低コストで実現することができます。 MBCF はまさに通信と同期の機能をメモリ操作として ユーザに提供するものです。


その他の主な機能

SSS-PC Ver. 1.0 は汎用オペレーティング システムとして開発されていますので、上記に掲げた特徴以外に様々な 機能と特徴を持っています。 その一部を以下に列挙します。


SSS-PC ホームページ
お問い合わせは <info@ssspc.org> まで
(c) 2003 SSS-PC Project Team.