English Page

SSS-CORE の概要と特徴

[ホーム | 特徴 | 論文 | 性能 | デモ | スタッフ | 用語]

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

LAN 内にあるワークステーションを自由に選んで クラスタを構成することが可能であり、 分散計算環境と同様に 1 台のマシンのみを停止させることや、新たにマシンを 起動してクラスタに加えることが任意の時点で行えます。 クラスタ内のマシンの 1 台が突然故障により停止した場合でも、その影響が 他のマシンに及ぶことはありません。

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

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

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

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

通信機構: MBCF

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


OS カーネル: Micro Core

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


情報開示機構: IDM

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


分散共有メモリ: UDSM/ADSM

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


最適化コンパイラ: RCOP

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

RCOP の研究開発の一部は新情報処理開発機構 (略称 RWCP)にサポートされています。


その他の主な機能

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


SSS-CORE ホームページ
お問い合わせは <info@ssscore.org> まで
(c) 1998-2000 SSS-CORE Project Team.