[目次] [1ページ目に戻る] [次ページ] [質疑応答]


(2/7)
2.SSP通信基盤SCE

 SCEは、分散並列システム上に構築された各種ツール、アプリケーション、あるいは利用者プログラム(これらを総じてサービスと称する)間の通信を支援することによる容易な組み合わせを支援する通信基盤である。PPDE及びPPExeを構成する各支援ツールはクライアントーサーバモデルに基づき実装され、SCEの提供する通信機能を用いて利用者の支援、あるいはツール間の連携を実現する。

 各支援ツールは、WSを始めとしてPCなどの各種プラットフォームでの実現が容易で,かつネットワーク上のアプリケーションやシステム構築に向いているJava言語を用いて開発した。 各ツールのGUI群はJava Appletで構築されており、クライアント計算機上で動作する。GUI Appletはネットワーク上に存在するGUI管理サービス上で一括管理されており、動的に利用者の手元の計算機に送付される。

 ツール本体はサーバ側計算機上で動作し、アダプタと呼ばれるインタフェースを介してGUIアプレットあるいは他のツールとの通信を行なう。アダプタは通信の実現のほか、異なる計算機上に存在するツール本体のインタフェースの違いを吸収し、共通化する。

 このような構成とすることにより、

 Java Appletにより利用者の所有する計算機のハードウェア、OSの違いを吸収し、WS, PC等種々の計算機からSSPを利用可能

 ツールGUIはネットワークを介して動的に利用者の計算機に送付されるため、利用者はSSPで提供されている種々のツールの中から目的に応じて必要な時に必要なツールのみを組み込んで利用可能

 アダプタにより分散並列システムを構成する種々の計算機上に存在するツールのインタフェースを共通化できるため、統一的なツール操作感が提供可能

 GUIが一括管理されているため、GUIの保守、管理が容易

という特徴を実現している。

 利用者は目的に応じて種々の計算機上のサービスを利用するため、利用者の生成したファイル資源はネットワーク上に散在することになる。それらはネットワークファイル管理サービスにより統一的に管理される。また、利用者のツール利用情報や設定もGUI管理システムによって管理されるため、どの端末からも同様の環境のもとでサービスを受けることができる。

 SCEが支援する通信形態には、クライアント−サーバ間の連携処理を支援する遠隔関数呼び出し型通信と、異なる並列計算機間の並列連携処理を支援するメッセージパッシング型通信の2種類がある。

2.1 遠隔関数呼び出し型通信Starpc

 SCEの遠隔関数呼び出し型通信はStarpcと呼ばれる通信ライブラリによって実現されている。Java Appletによる通信はセキュリティ上の制限からクライアントとGUI管理サーバ(所謂WWWサーバ)間以外で直接行なう事はできない。したがって、必ずGUI管理サーバ上に存在するルータを介して間接的に行われる。Starpcは、この間接的な通信を隠蔽し、クライアントと各サービス間の直接通信にみせる機能を実現している。
またStarpcはアルゴンヌ研究所において開発されたNexus通信ライブラリ[6]を利用して構築されている。Nexus通信ライブラリは、ネットワーク上で用いられる多様な通信プロトコルへの対応を考慮して開発された通信ライブラリで、共通インターフェース上からTCP/IP,AAL,MPL等種々の通信プロトコルを動的に切り替えて利用することが可能である。Nexus通信ライブラリを用いることにより、 Starpcも多様な通信プロトコルに対応することが可能となっている。

2.2 メッセージパッシング型通信Stampi

 SCEのメッセージパッシング型通信はStampi[9]と呼ばれる通信ライブラリによって実現されている(図2にStampiのソフトウェアアーキテクチャを示す)。 Stampiは、分散並列処理を実現するために以下の4つの特徴を有している。

(1) 動的な並列実行プロセスの生成

 一般的に、並列実行プロセスの生成手法には静的手法、動的手法の2種類がある。静的手法とはプログラム実行開始時にすべてのプロセスを生成する手法である。一方、動的手法とは状況に応じてプロセスを生成する手法である。Stampiでは、柔軟な分散並列処理の実現を目的として、状況に応じてプロセス生成が可能な動的手法を採用している。

(2) プロセス間直接通信、 間接通信方式の採用

 各種計算機ベンダより提供されている並列計算機には、外部通信デバイスを持つプロセッサが限られているため、一部のプロセッサからのみ外部と通信可能なネットワーク接続特性を持つものが存在する。このような制約を持つ並列計算機上の任意のプロセスから外部へ(または外部からそのプロセスへ)の通信を可能とするため、外部通信デバイスを有するプロセッサ上にメッセージルータを設置し、メッセージを間接的に送受信する間接通信方式を採用している。
 また、メッセージルータのメッセージ中継によって増加する通信レイテンシを軽減するため、対象となる並列計算機のネットワーク接続特性に合わせたメッセージルータ設置を可能とした。例えば、 2台の並列計算機の通信で双方共に外部通信可能な場合は直接通信とし、,片方のみ外部通信が可能な場合は外部通信が不可能な並列計算機側にメッセージルータを設置する間接通信に、双方が外部通信不可能な場合は両者にメッセージルータを設置する間接通信とする。


図2 Stampiソフトウェアアーキテクチャ

(3) 並列計算機内、並列計算機間通信で用いられるプロトコルの切り替え

 並列計算機間の通信を実現するためには、それらで共通して利用可能な通信プロトコル(例えばTCP/IP,UDP/IP等)を用いる必要がある。並列計算機内通信に対してもこれら共通通信プロトコルは利用可能である。但し、並列計算機内の通信に対して共通通信プロトコルを利用した場合、 個々の並列計算機専用通信プロトコルを利用した場合と比較して一般に通信性能が低い。
 したがって、並列計算機内通信に対しては専用通信プロトコルを、並列計算機間通信に対しては共通通信プロトコル(TCP/IP)を利用し、それらを自動的に切り換える機能を設け効率的な通信を実現した。

(4) MPI2ライブラリインターフェイスの採用

 現在並列計算のために広範に利用されているMPI[7]は各並列計算機ベンダからその並列計算機専用通信プロトコルを利用して高速通信性能を実現したものが提供されている。(3)で述べた並列計算機内通信に対し、専用プロトコルを利用した高性能通信を個々の並列計算機に対応して実現するのではなく、このベンダ提供ライブラリをStampi内部で利用すれば、移植性と高速通信性能を共に満たすことができる。ただし、 MPIは(1)で採用した動的プロセス割付けのためのインタフェースを提供していないという問題点が存在するため、StampiではMPIに動的プロセス生成等の拡張を行ったMPI-2[8]をライブラリインタフェースとして採用している。


[目次] [1ページ目に戻る] [次ページ] [質疑応答]