JPH06502941A - 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム - Google Patents

異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム

Info

Publication number
JPH06502941A
JPH06502941A JP3514453A JP51445391A JPH06502941A JP H06502941 A JPH06502941 A JP H06502941A JP 3514453 A JP3514453 A JP 3514453A JP 51445391 A JP51445391 A JP 51445391A JP H06502941 A JPH06502941 A JP H06502941A
Authority
JP
Japan
Prior art keywords
computer
target
computers
program
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3514453A
Other languages
English (en)
Inventor
シ,ユアン
Original Assignee
テンプル ユニヴァーシティ―オブ ザ コモンウエルス システム オブ ハイヤー エデュケーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンプル ユニヴァーシティ―オブ ザ コモンウエルス システム オブ ハイヤー エデュケーション filed Critical テンプル ユニヴァーシティ―オブ ザ コモンウエルス システム オブ ハイヤー エデュケーション
Publication of JPH06502941A publication Critical patent/JPH06502941A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム 技術分野 本発明は、種々の言語、通信プロトコル、およびオペレーティングシステムを有 するコンピュータのセットの間で高レベル仮想コンピュータ(HLV(:)を作 成するシステムに関する。
背景技術 別々のコンピュータを幾つか同時に含むプログラムをオペレータが実行しようと することは、コンピュータアプリケーションでは普通である。並行処理アプリケ ーションでは、幾つかのコンピュータを同時に使用するのを必須とすることがで きる。並行処理アプリケーションでは、全体的な速度を速くするため、単一のア プリケーション内で多数の計算を行う労力が幾つかのコンビエータに分割される 。あるいはまた、法人ユーザはその会社の種々の部門、例えば、人事部門、経理 部門、生産部門等であって、それぞれ異なるコンピュータシステムを用いること ができる部門で、幾つかの異なるコンビ二一夕が自由になる。それらの部門でも 、それぞれ、異なるコンピュータシステムを用いることができる。法人ユーザは データおよびサブプログラムの場所に関係なく、あるプログラムを実行しようと することができる。例えば、単一のコンピュータがその結果を間に合うように配 布することができないときに、計算を手伝わせる遊休状態のコンピュータが多数 あると便利である。
しかし、オペレータが使用しようとする種々のコンピュータのプロトコルおよび /またはオペレーティングシステムが異なる場合には、重大な問題が生じる。
今日、NUIX、 VMSまたはVMのような任意の数のオペレーティングシス テムが多くの人に用いられている。同様に、TCP/IP、 DECNET、  SNAまたはO3Iのような任意の数のプロセッサ間通信プロトコルがよ(用い られている。明らかに、オペレーティングシステムAおよびプロトコルBを有す るコンピュータは、オペレーティングシステムCおよびプロトコルDを有する別 のコンピュータと、データおよびコンビエータ能力を容易に共有することができ なくなることになる。
本発明は、特に、大規模のアプリケーションに対して、異種コンピュータシステ ム間の調整を容易にする。本発明に係るシステムによれば、ホストステーション を操作するユーザは、異種コンピュータのネットワークから高レベルの仮想コン ピュータ、すなわちHLVCを作成することができる。第1図は種々のオペレー ティングシステムの異なるコンピュータのネットワークをどの様に組み合わせて 種々のHLVCを形成することができるかを示す線図である。第1図に示す9つ のコンピュータは、共通のネットワークバスにより物理的に接続されている。種 々のマルチプロセッサアプリケーションはネットワーク上にコンピュータのサブ セットか、あるいは全てのコンピュータの使用を必要とすることができる。その システムの種々のコンピュータの間でデータまたは命令の流れを開始することに より、種々のHLVCを作成することができる。例えば、第1図のHLVClは 点線で囲んだ3つのコンピュータによりなる。他方、HLVC2は破線で囲んだ コンピュータを含むことができる。HLVC3は2点鎖線で囲んだコンピュータ を含むことができる。1社VCは特定のアプリケーションに対して、コンピュー タのあるセットの間での対話、データおよび/または命令の流れにより規定され る。
HL V Cの種々のコンビ二一夕の物理的な接続に加えて、異なるプログラム モジニールまたは「ソフトウェアチップ」は、種々のコンピュータで具現化でき るが、HLVC内で調整されるのが本質的である。従って、HLVCの特徴は、 ハードウェアの種別が異なるばかりでなく、種々の場所に分散させることができ るソフトウェアが協力することにある。
第2図はHLVC内の異なるソフトウェアの対話をシンボリックに示す。各ソフ トウェアチップ(「モジュール」または「サブプログラム」としても知られてい る)は、データ入力に応答して出力を生成する肝■Cの特定の種別のコンビエー タに適するプログラム命令のセットとして考えられる。出力と入力の相互接続は データバスによる。また、HLVCでは、1つのソフトウェアチップからの出力 は、第2図に示すように、別のソフトウェアチップの入力になることもできる。
ソフトウェアチップの実行場所はSIMD(single 1nstructi on multiple data)を形成することができる。 SIMDを5 AG(scatter and gather)、MIMD(multiple  1nstruction multiple data)、種々の細分化のパ イプラインされた並列コンポーネントということもある。 HLVCのオペレー ションを分散異種コンピュータに基づき、効率的に分散アプリケーションシステ ムを構成する手段として理解すべきである。
本発明は、開発、合成を容易にし、異種コンピュータシステムを用いて大規模ア プリケーションの自動実行制御を容易にする。本発明によれば、オペレータはホ ストコンピュータに、ネットワーク上のどのコンピュータをどのタスクに用いる が、あるいは、コンピュータの間で負荷を配分させるように選定することを規定 した汎用命令をシステムに単に入力する。ホストコンピュータ汎用命令はシステ ムのどのコンピュータをどのタスクに用いるべきかを規定する。システムの各ソ フトウェアチップは、ホストプロセスからの命令により呼び出されるショートプ ログラムのセットを含む。ショートプログラムは異なるコンピュータに必要な修 正を加え、データまたは命令をコンピュータからコンピュータに転送させる。シ ステムそれ自体は、オペレータではなく、動的サービスプログラム、すなわち「 デーモン」をランタイムに生成するか、あるいは開始させて、異なる言語および オペレーティングシステムを調整する「仕事(choresNを行う。このアプ ローチは、1つのアプリケーションの間に必要とされるが、種々のコンピュータ 内でコード生成が行われるので、予め規定された所要の特性を指定することによ り、任意の計算または通信装置に対して、効率的なデーモンを生成する。
本発明の他の実施例では、計算集中機能またはプログラムは高レベルインタフェ ースを介してシステムにインプリメントされる。)ILVcシステムのユーザが 計算集中プログラムをバフオームさせるのにしいられる努力は、この高レベルイ ンタフェースにより最小限に抑久られる。
本発明に係るシステムは実際的な方法でその目的を達成する。というのは、自動 コード生成オーバヘッドは通常アルゴリズムの汎用化に伴うものであるが、最小 限に抑えられ、しかも、プロセス間通信要求の規模とともに線形に太き(なるか らである。リアルタイムアプリケーションの場合のように、異種計算環境での効 率が重要である場合、そのシステムは最良のプログラム区分およびプロセス割振 り方法を見つけ出すツールとして供することができる。一度、準最適が見つけ出 されると、低レベルでマシーンに依存するコードを用いてデーモンをインプリメ ントすることにより、自動的に生成されるかあるいは開始されたデーモンの能率 をさらに上げることができる。
発明の開示 本発明に係るシステムは、複数のターゲットコンピュータの間の通信を可能にす る。ターゲットコンピュータはそれぞれ少なくとも1つの通信チャネルと、その 通信チャネルを介してアクセス可能な記憶空間と、その記憶空間内に言語注入ラ イブラリを含む。
言語注入は、それぞれ、プログラマと、より低レベルのプロセッサ間通信制御コ マンドとの間のインタフェースである。言語注入は、それぞれ、ターゲットコン ピュータ内のサブルーチンであって、ランタイムに供給されたプロセス間通信パ ターンに従って、通信チャネルを介してデータまたは命令を転送するサブルーチ ンである。ターゲットコンピュータは動作の点から見ると少なくとも1つのホス トコンピュータに接続されている。そのホストコンピュータは計算環境指定を処 理する手段を含む。その計算環境指定は、データを受け取るターゲットコンピュ ータの少なくともサブセットを活動状態にする命令と、ホストコンピュータから の命令とのセットである。ホストコンピュータはアプリケーションプログラムを 処理する手段をさらに含む。そのアプリケーションプログラムはターゲットコン ピュータのサブセットのうちの少な(とも1つのサブセットにより実行可能なサ ブプログラムを含み、しかも、ターゲットコンピュータへの言語注入の1つを活 動状態にする少な(とも1つのプロセッサ間制御コマンドを含む。また、ホスト コンピュータはサブプログラムを適正なターゲットコンピュータに転送してコン パイルおよび実行する手段を含む。
FRACTAL表示プログラムのような、計算集中プログラムに関係する実施例 では、そのプログラムを開始する高レベルインタフェースがユーザに提供される 。本発明によれば、複数異種コンピュータに対して予め定めた制御を行うことに より、計算集中プログラムの実行時間が短縮される。そのコンピュータはSIM D (SAG)MIMDおよびバイブラインのような公知の並行処理技法を行う 。
図面の簡単な説明 本発明を説明するため、本発明において好ましい形式を図面に示す。本発明は、 記載された構成およびものに限定されないことは当然である。
第1図は仮想コンピュータのオペレーションを示す一般的な線図である。
第2図は仮想コンピュータ内ソフトウェアチップの相互接続を一般的に示す線図 である。
第3図は本発明の主な要素を示すブロック図である。
第4図はC3Lコンパイラの機能を示すフローチャートである。
第5図は分散プロセス制御装置の機能を示すフローチャートである。
第6図は2つのターゲットコンピュータの間での本発明に係る対話を示すブロッ ク図である。
第7図はリモートコマンドインク/ブリタデ−センの機能を示すフローチャート である。
第8図はボートID管理デーモンの機能を示すフローチャートである。
第9図は順次ファイルデーモンの機能を示すフローチャートである。
第1O図はメイルボックスデーモンの機能を示すフローチャートである。
第11図はタプル空間デーモンの機能を示すフローチャートである。
第12図はアプリケーション例を示す簡略化したフローチャートである。
第13図は本発明を用いて、階層化プログラミングの機能を示す線図である。
第14図は本発明の第2の実施例に関する)ILVcコンポーネント相互接続を 示す線図である。
第15図はNodecapモニタデーモン(NODECAPD)の機能を示す線 図である。
第16図は第2の実施例のコンフイギュレータ (C3LCompiler)の 機能を示す線図である。
第17図は第2の実施例のC3Lコンパイラにより生成されたX、 Prcdフ ァイルのパラメータの幾つかを示す図である。
第18図は第2の実施例の高レベル仮想コンピュータのコンポーネントを示す線 図である。
第19図は分散機能(入力、出力、および計算)をユーザプログラムに注入する プロセスを示す線図である。
第20図は分散機能ライブラリのサブコンポーネントと2つのランタイムシナリ オ例を示す線図である。
第21図は3つの基本的な分散並列処理技法、すなわち、SIMD(SAG)、  MIMDおよびパイプライン処理をそれぞれ示す第21a図、第21b図およ び第21c図よりなる線図である。
第22図は第2の実施例のリモートコマンドインタプリタデーモン(RCID) の機能を示す略図である。
第23図は第2の実施例の分散プロセス制御装置(DPC)の機能を示す略図で ある。
発明を実施するための最良の形態 二股ユ皇lI 第3図は本発明に係る異なる要素とシステムの異種コンピュータとの間の関係を 示す線図である。まず、システム機能の一般的な概観を第3図を参照して記載す る。次に、システムの個々の要素を詳細に説明する。
本発明に係るシステムは、4つの要素を備えている。すなわち、(a)構成指定 言語(ConfLgulation 5pecification Langu age; C3L)コンパイラ、すなわち、第1および第2の実施例にそれぞれ 対して第4図および第16図を参照して記載した「コンフイギュレータJ 、  (b)第1および第2の実施例に対してそれぞれ第5図および第23図を参照し て記載した分散プロセス制御装置(Distributed Process  Con5troller; DPC)、(c)第1および第2の実施例にそれぞ れ対応する第6図および第19図を参照して記載した言語注入ライブラリ(La nguage Injection Library; LIL) 、 (d) 第1および第2の実施例に関係する第7図ないし第11図、第15図、および第 22図を参照して記載したランタイムサポートデーモンライブラリを備えている 。
第3図は本発明の要素の間の一般的な関係を示す。
第3図は仮想ボックス1oによりホストコンピュータを示す。ホストコンピュー タにより、オペレータは、一実施例では、マルチプロセッサアプリケーションに 対する命令を入力することができる。他の実施例では、より充分に記載するが、 アプリケーションコンソールが提供され、オペレータがそのプログラムの名前を 単に入力するだけで、マルチプロセッサアプリケージ目ンの実行をコマンドする ことができる。ホストコンピュータ10は共通バス16を介して任意の数のネッ トワークコンピュータ(WSl、WS2.、、、、WSk)に接続されている( 以下、「ネットワーク」とは物理的に互いに接続されたコンピュータをいうこと にする。特定のアプリケーションで用いられるネットワーク上のコンピュータの サブセットを「システム」ということにする)。本発明に係るシステムはネット ワーク上の種々のコンピュータで具現化されたソフトウェアにより規定される。
オペレーション上、ネットワークに接続されている特定のコンピュータがホスト コンピュータ、ターゲットコンピュータ、マスクコンピュータ、ワーカコンピュ ータのうちのいずれであるかは、マルチプロセッサアプリケーションの性質に依 存する。
本発明の一実施例の要素であって、ホストコンピュータ内の要素を、第3図の仮 想ボックス内に示す。任意のコンピュータネットワーク内には、2つ以上のホス トコンピュータを有することができる。事実、ネットワークがそのように構成さ れると、ネットワーク上のコンピュータは全てホストコンピュータとして機能す ることができる。コンフィギュレータ12はシステム全体とオペレータの間のイ ンタフェースとして動作する。コンフィギュレータ12はオペレータからの2つ の入力に対してコンパイラとして動作する。2つの入力とは、コンフィギユレー ション指定言語(CSL)での指定と、ネットワーク能力であり、計算環境指定 言語(CESL)指定としても知られている。CESL指定とは、ネットワーク 全体の全てのハードウェアとシステムソフトウェアの能力と特性を規定すること である。
CESL指定は一般的に事前にプログラムされてシステムに入れられており、利 用可能な言語、オペレーティングシステム、およびネットワーク上の各コンピュ ータに対するプロトコルについての情報を含む。この情報は、後述するが、言語 注入ライブラリと対話する。
第4図は本発明の一実施例に対するコンフィギュレータ12のCSLコンパイラ の機能を示すフローチャートである。他の実施例の構成は第16図に示す。C3 L指定とネットワーク指定は、第4図に示すように、ユーザにより入力される。
ネットワーク指定に関して、コンフィギュレータはネットワークグラフを作成す る。
ネットワークグラフはネットワーク上で物理的に利用可能な全てのコンピュータ のリストであり、オペレーティングシステム、プログラミング言語、および通信 プロトコルについての情報を含む。また、 C3L指定はアプリケーションプロ グラムの種々のサブプログラムの相互依存性についての情報を含む。例えば、別 のサブプログラムが開始される前に、最初のサブプログラムを完了する必要があ るかも知れない。CSLコンパイラはシーケンスと依存性を分析し、C3L指定 に矛盾がないことを確認する。CSLコンパイラの別の機能は、SIMI)ワー カ、すなわち、「スレーブ」を、 C3L指定により明らかに必須とされない制 御処理装置CPUに生成する。「スレーブ」はアプリケ−シロンプログラム内の サブプログラムであって、実行するために特定のコンピュータ上に明らかに割り 当てられないサブプログラムである。これらのサブプログラムが「タプル空間」 (後述する)を介してデータにアクセスする場合、これらのプログラムをネット ワーク上の任意の場所であって、適正なコンパイラを有する場所でランさせるこ とができる。よって、アプリケーションの「スレーブ」プログラムを、ネットワ ーク上のコンパイル可能な任意の場所に置くことができる。しかも、CSLコン パイラは「スレーブ」プログラムを空きのあるところであればどこにでも置くこ とになる。
汎用コンピュータは1つのオペレーティングシステムのみを有するのが普通であ るが、1つのコンピュータが多種類のプロトコルに適応するのも普通である。
C3Lコンパイラの他の機能は特定のネットワークコンピュータ上で利用可能な プロトコルのうちのどのプロトコルが特定の目的のためにより効率的かを計算す る機能である。
最後に、C3Lコンパイラはコードを生成し、そのコードを分散プロセス制御装 置(DPC)に送信する。一実施例に係るDPCのフローチャートを第5図に示 す。
他方、他の実施例に係るDPCのフローチャートを第23図に示す。記載した第 5図に示すDPC14に対するアプリケーション優先順位を生成し、その生成さ れた優先順位に基づき、ソフトウェアチップ(サブプログラム)の種々の相互依 存性が指定される。メインアプリケーションプログラムの一部であるサブプログ ラムは、ターゲットコンピュータに送信され、そのターゲットコンピュータにて 、サブプログラムの実行が(静的システムにおいて)必須とされるか、あるいは (動的システムにおいて)選択される。同様に、コンピュータ間で命令を転送す るためのプロセス間通信(Interprocess Communicati on; IPC)パターンがアプリケーションプログラムの実行中にターゲット コンピユータに送信される。このことは後述する。第1の実施例では、アプリケ ーション優先順位、ソフトウェアチップ(モジュールまたはサブプログラムとも いう)、およびIPCパターンが全てプログラム「シェルj内に送出され、プロ グラムシェルは当業者に良く知られた方法によりDPC14およびターゲットコ ンピュータにロードされる。第2の実施例では、プログラムシェルはDPCから 各RCIDに転送され、RCIDにより実行される。新しい実施例では、サブプ ログラムシェルを依存性情報ファイルと組み合わせる。よって、アプリケーショ ンが完了したとき、クリアリングプロセスを簡単にする。
アプリケージジンが開始される時点で、命令はコンフィギュレータによりオペレ ートされ、DPCを活動状態にする。DPCはコンフィギュレータからIPCパ ターンと、各ソフトウェアチップに対する制御スクリプトを受信する。特定のア プリケーションの命令により、あるソフトウェアチップを他のソフトウェアチッ プの前にランさせなければならない場合、シーケンスまたは依存性がまたDPC により制御される。
ユーザが動的プロセス割振りの使用を選定した場合、DPCは特定の目的のため 速度または適合性のようなものによりネットワーク上に個々のコンピュータを配 列することを含む。その結果、効率を最大にするため、DPCはネットワーク上 の幾つかの可能なコンピュータから選択することができる。ネットワーク上に個 々のコンピュータをこのようにプログラムにより配列することはCESL指定に 基づいている。勿論、あるサブプログラムをある位置で実行すべきであることを 慎重に選択することができる。例えば、アプリケーションの最終結果を表示する ためのサブプログラムは、ユーザのホスト位置で実行させるのが典型的である。
第5図は分散処理制御装置(DPC)のオペレーションを示す一実施例のフロー チャートである。特定モジュール(ソフトウェアチップ)の実行位置がユーザに より指定されない場合は、そのサブプログラムは「動的」と考えられ、ネットワ ーク上のコンピュータの内部配列に基づき、DPCはネットワークコンピュータ の最も効率的な組み合わせを選択することになる。
特定の実行位置が「動的」でない場合、DPCはユーザ命令にのみに応答し、要 求されたネットワークコンピュータに、リモートコマンドインタプリタデーモン (RCID)によりアドレシングする。この詳細は第7図を参照して後述する。
一度、DPCと所要のターゲットコンピュータとが接続されると、モジエールの IPCパターンとシェルをターゲットコンビエータにロードすることができる。
商業的に利用可能なネットワークファイルシステム(Network File  System; NFS)が存在すると、モジュールの実行可能ボディIPC パターンとシェルをターゲットコンピュータにロードする必要性をな(すことが できる。CESL指定はこの情報なりPCに与え、よって、DPCを指示してオ ペレートする。
多数のサブプログラムおよびモジエールを有する単一のアプリケーションプログ ラム実行中に、特定のモジュールを幾度とな(ランするのが普通である。従って 、フローチャートのr+note?Jボックスにより示すように、そのグラフが 「動的」であるか否かに関わらず、DPCはプロセスを特定のターゲットコンピ ュータに送信した後、プロセスを再び送信しなければならないか否かを照会する 。さらに、DPCは対話式サーバシェルを生成するか、あるいは照会シェルを生 成する。照会シェルはアプリケーションプログラムのプロセスをモニタするもの である。アプリケージぢンプログラムの特定のモジュールが完了すると、ネット ワークメツセージ割り込みがDPCに送信される。DPCはこの割り込みを受信 すると、システムのために生成されていたグラフを更新し、モジュールが当該ア プリケーションのために終了したことを示す。最後に、全てのモジュールが要求 された回数だけランされると、DPCを終了する。
ホストコンピュータ10内のDPC14はバス16によりネットワーク上のター ゲットコンピュータWSI、WS2゜、 、 、 、 WSkに接続される。ホ ストコンピュータからの命令をターゲットコンピュータに転送する手段は、次の セクションで説明する。
i主車j 第6図は単一のマルチプロセッサオペレーションを行う本質的なハードウェア要 素を示す略図である。このマルチプロセッサオペレーションは第1図ないし第1 3図に示す第1の実施例に適用可能である。計算集中プログラムに適用可能な他 の実施例は第14図ないし第23図を参照して記載する。第1図ないし第13図 に適用可能な前者の例の場合、そのプログラムの目的はメツセージr hell o Jを第1のワークステーションコンピュータWSIから第2のワークステー ションコンピュータWS2に転送することにある。
第6図に示すホストコンピュータ10は、第3図にわずかに異なる形式で示した ホストコンピュータと同一である。再び、ホストコンピュータ10をネットワー ク上の第2のコンピュータか、あるいはそのネットワーク上にそのように適合さ れた任意のコンピュータに具現化することができる。従って、ホストコンピュー タIOを第6図の個々の要素として示すが、ホストコンピュータIOはWSIま たはWS2のうちのいずれかのコンピュータ内に同様に具現化することができる 。
本発明の詳細な説明するため、コンピュータWSIはVMSオペレーティングシ ステム、DECNETプロトコル、およびFORTRANコンパイラを含むもの と仮定する。他方、WSZはNUIXオペレーティングシステム、TCP/IP プロトコルおよびPASCALコンパイラを含むものと仮定する。特定の種別の オペレーティングシステム、プロトコル、コンパイラは、本発明に必要ではない が、異種システムにおける本発明の詳細な説明するため、この例では示しである 。この例のプログラムの目的は、WSIのショートプログラムでメツセージ(r  hello Jという語)を開始し、そして、そのメツセージなWSlのボー トに出力することにある。WS2では、WS2のプログラムがそのメツセージを 読み取り、例えば、そのメツセージをモニタ上に表示する。全体的なマルチプロ セッサオペレーションは才へレータによりホストコンピュータを介して開始され る。
オペレータはCESL指定およびIPCパターンなCSL定を介してホストコン ピュータ10に入力する。CESL指定は、種々のコンビニーりがネットワーク と物理的に接続されるとき、事前にプログラムされホストコンビエータにいれら れるのが典型的である。一般的には、オペレータは各アプリケーションが開始さ れる時点で、CESLに悩まされる必要はない。IPCパターンはまずCSL  (第1の実施例)か、あるいはプロセスグラフ(第2の実施例)で指定される。
そのパターンは、プロセス位置が決定されるまでは、完全に規定されない。実際 のプログラム、すなわち、WSl用にFORTRANで書いた”writeJe llo”プログラムと、WSZ用にPASCALで書いた一read−hell o”プログラムが、第19図を参照して記載されるプロセスを用いてコンパイル される。例えば、後者の例では、IPCパターン(任意の特定のフォーマットで も良い)は、WSIの”read−hello”プログラムと、WSlの”re adJel lo”プログラムをネットワーク上に位置指定する命令を含む。
各ターゲットコンピュータ内には、ある本質的な要素が存在する。すなわち、W SIおよびWS2のウェルノウンボートに近接しているのが[デーモンJ 20 である。後述するが、デーモン20は、ネットワーク上のターゲットコンピュー タがホストコンピュータからのシグナルを待つショートモニタリングプログラム である。各ターゲットコンピュータのデーモンに近接しているのが記憶空間22 である。ここで用いられているように、各コンピュータの「記憶空間」は、デー タまたは命令を記憶する任意の手段に対して広い意味で用いられている。記憶空 間22内には言語注入ライブラリ(LIL)24が存在する。lll24は、後 述するが、ホストコンピュータからの命令により活動状態にされるサブルーチン のライブラリである。また、各ターゲットコンピュータ内には、慣例的なコンパ イラおよびオペレーティングシステムが存在する。慣例的なコンパイラおよびオ ペレーティングシステムは、第4図に示すWSIの場合には、FORTRANコ ンパイラおよびVMSオペレーティングシステムである。PASCALコンパイ ラおよびNUIXオペレーティングシステムはコンピュータWS2に存在する。
また、そのコンピュータ内で具現化されているのは、両コンビ二−タ上のシステ ムソフトウェアにより用いられる入−出力プロトコルである。
コンフィギュレータ12のIPCパターンは、第3図に示すDPC4に渡され、 第6図に示すコンピュータWSIおよびWSZ内のデーモン20を活動状態にす る。そのデーモン20はリモートコマンドインタプリタデーモン(Remote  Command Interpreter Daea+on; RCID)で あり、(RCIDの正確なオペレーションは第7図を参照して後程説明する)  、R]Dは事実上コンピュータWSIおよびWS2を活動状態にし、各コンピュ ータを初期設定し、プログラムがその記憶装置22にロードされることを期待す る。各コンピュータWS1およびWS2のRCID(デーモン)は、ホストコン ピュータからの命令で分岐するショートモニタリングプログラムである。
WSIおよびWS2のデーモンが分岐された後、ホストコンピュータはWSlお よびWS2に、それぞれ、アプリケーションに対する実行プログラム、この場合 には、第6図に示すように、WSIに対する”write−hello”プログ ラムと、lll32に対する”read−hello”プログラムを送信する。
WSIに対する”write−hello−プログラムは、FORTRANで書 いてホストコンビエータに入力される。
そのプログラムをWSI自体の内でコンパイルすることができる。このプログラ ムは語”hello”のストリング変数を生成し、その変数”hello”を出 力ボートに出力する命令を含む。この例では、WSIはVMSオペレーティング システムを有するので、VMSオペレーシティーングシステムに対する「固有」 通信プロトコルがDECNETであることを指摘すべきである。DECNETは 入力および出力ボートに対して「名前抽象」を必要とする。すなわち、DE(N ETでは、出力ボートは名前で識別され、任意の所定時点に用いられる特定の物 理ボートは特定の時点で用いられるボート数により、変化することになる。しか し、宣言された出力ボートに名前抽象を用いて名前がのみが与えられる。その名 前は、データが結局渡される物理ボートが何であれ、宣言された目的に結合され る。従って、この場合、プログラムは出力ボートに名前、例えば、WS2に対す る出力に対して“temporary“を表す“t+np″を付けなければなら ない。
ホストコンピュータlOからコンピュータWS2に送信されたプログラムは、” readJello”プログラムであって、WSIの出力ボート”tmp”から のストリング変数“hello“を取る機能を有するプログラムである。この例 では、WS2はLINIXオペレーティングシステムを有する。uNtx芽ペレ ーティングシステムの固有プロトコルはTCP/IPであり、「名前」抽象に対 して「ボート」抽象をVMSで用いる。「ボート」抽象を用いて、プログるが、 プログラムの間に与えられた一時的な名前に感知可能でない。
ボート抽象に関して、ユーザはyellow page”として知られるものを 用いて、正確に番号が付けられたボートを得なければならない。正確に番号が付 けられたボートにはある出力が送信されか、あるいは、このボートにある入力が 期待される。この”yellow page”技法はNUIXプログラミングで は周知である。また、DECNETまたはTCP/IPのいずれかをシステム全 体で用いることができることに注意すべきである。
この例では、メツセージはコンビエータWSIで書かれ、WS2に送信され、プ ログラムは1つのコンピュータで開始され、第2のコンピュータは第1のコンピ ュータに応動する。従って、WS2はWSIからのデータ入力待ちしなければな らない位置にある。このデータ入力待ちを効果的にするため、”readJel lo”プログラムは、メイルボックスおよび同等の記憶空間のセットアツプ(設 定)と、データがボートからメイルボックスに入力されたときにメイルボックス の内容を読む命令を含まなければならない。よって、メツセージ”hello” がボートを介してWS2に入れられ、ついで、メイルボックス(30として示め す)に入れられる。メイルボックスでは、メツセージがWS2のプログラムによ り読まれるまで、メツセージは待機する。また、メイルボックスはデーモンの形 式である。メイルボックスは、データ入力時点で、分岐するモニタリングループ である。メイルボックスは1つのタイプのデータ構造であり、本発明で可能な構 造である。より複雑なアプリケーションに対する他のタイプのデータ構造は次に 説明する。
WSIはVMSオペレーティングシステムを用い、この例のWS2はUNIXオ ペレーティングシステムを用いるので、共通の通信プロトコルを指定して、シス テムのどコカテ、VMS(WSI)(7)名前抽象とUNIX(WS2) (7 )ボート抽象とを、一致させなければならない。システムはボート番号と名前の 間の変換に注意する。特に、TCP/IPが選択された場合、WS2のプログラ ムは適正なボート番号をWSIのプログラムに与え、メイルボックスデーモン( 宣言されたボートに関するバッファ空間を除く)を生成する。WS2の”rea d−hel lo”プログラムはそのボートから直接には読まれいない。しかし 、ストリング変数がそのボートを介してWS2のメイルボックスに挿入されると 、そのボートに関連するメイルボックスの内容から読まれる。
ボート抽象と名前抽象とを一致させる他に、多数の必要なサブルーチンは、オペ レータによりコンピュータに入力されたメインプログラムを「アンダニース(u nderneath) Jで実行する。本発明の利点は、システムそれ自体(ソ フトウェアの意味で)の編成が、次のような種類のものという点にある。すなわ ち、複数異種コンピュータ(この場合は、2つのコンピュータ)を調整する「仕 事(chores)が、オペレータの命令により活動状態にされる「言語注入」 のライブラリにより自動的に行われるというようなものである。オペレータは「 言語注入」の詳細を普通法して見ない。例えば、ボート抽象は本発明内のサブプ ログラムにより汎用IPC命令に応答して自動的に一致されるかもしれない。本 例のようなプログラムをオペレータからの最小命令により実行することができる のは、システムのIPCパターンによるこれらの言語注入またはサブルーチンの 活動化である。特定のアプリケーションに対して、ネットワーク上の必要なコン ピュータを活動状態にするため、ユーザは、一般的にステートされるC3Lを、 1つまたは非常に小さい数のプログラム行に入力する。例えば、全体がシステム 幅のアプリケーションが”talk”と名前がつけられた場合、IPCパターン の典型的なフレージングは次のようになる。すなわち、configulati on:talk;M:write(exec−1oc=wsl)−−−e F: msg−一−eM:read(exec−1oc=ws2)ここで、”exec joc”は「実行位置」に対する可能なCSL命令である。プログラムのこの1 行は、”write”と名前が付けられたプログラムであって、WSIで実行さ れるべきプログラムと、WS2で実行されるべきプログラム”read”とを期 待することをシステムに報告し、しかも、WSIからWS2にデータが流れるこ とをシステムに報告する。
この命令がホストコンピュータ10のコンフィギュレータによりコンパイルされ ると、多数のサブルーチンが活動状態にされることになる。そのコンフィギエレ ータは本質的にはプログラムであり、ユーザから簡潔な命令を受け取り、応答し て、ディレクティブを生成し、効率的にオペレートするユーティリティをランタ イムでガイドする。
仮想コンピュータプログラミングの以前に知られている方法より勝る、本発明の ある利点を、指摘すべきである。これまで、より大きな実行プログラム内のサブ プログラムがネットワーク上の特定のコンピュータ上で実行されようとする場合 、そのサブプログラム自体は、ボート抽象または名前抽象のような、プロセッサ 間通信を調整するのに必要な多くの行のプラグラムを含まなければならないこと になるかもしれない。プログラマは、プログラム全体をランする前に、種々のコ ンピュータの異なるボートを前もって調整しなければならないかもしれない。こ のような調整には時間が浪費され、その後のプログラムの変更を制限する。例え ば、1つのサブプログラムの実行位置がtJNIX−FORTRANワークステ ーションからVMS−FORTRANワークステーションに変更することのみが 決定された場合、サブプログラム自体の数多(の行を変更させ、ボートを識別す る異なる方法に適応するようにしなければならないかも知れない。したがって、 従来例を用いた場合、実行位置が唯一変化した場合でも、実行プログラムを実質 的に変更する必要がある。
他方、本発明では、各サブプログラムは実行位置とは無関係である。特定サブプ ログラムの実行位置を変更するために、ユーザはC3L指定のみを変更する必要 がある。システムはIPCパターンを自動的に生成し、システム内の種々のコン ピュータを調整する。 IPCパターンは言語注入ライブラリ(LIL)内の種 々のサブルーチンを調整する。このことは後程詳細に説明する。
デーモン デーモンはショートモニタリングプログラムであり、ネットワーク上のコンピュ ータの予約されたボートで連続的にランしている。一実施例では、関連するデー モンを第7図な、いし第11図に示す。他の実施例では、関連するデーモンを第 15図および第22図に示すとともに、第8図ないし第11図に示す。一般的に は、正規の状態では、命令がネットワークから受信されるまでの永続ループとし てランする。入力される命令により、そのループが分岐される。したがって、デ ーモンにより、ネットワーク上の任意のコンピュータを、特定のアプリケーショ ンに対して、ホストコンピュータにより”call 1nto action” することができる。
デーモンには、永久および動的デーモンの2つがある。永久デーモンはネットワ ーク上の全てのコンピュータで、ホストコンピュータからの命令を期待しながら 、連続的にランする。動的デーモンは特定のアプリケーションに付随する個々の コンピュータ内で生成されるか、あるいは「生成(spawn) Jされる。
第1の実施例では、3つの永久デーモンが存在する。すなわち、リモートコマン ドインタプリタデーモン(Remote Command Interpret er Daemon; TCID) (第7図)、ボート識別子管理デーモン  (Port IdentifierManagement Daemon; P IMD)(第5図)、順次ファイルデーモン(Sequential File  Daemon; 5EQD) (第9図)のような外部ファイルに対するデー モンである。以下に説明する第2の実施例は、第8図および第9図に示すデーモ ンを共有する。第7図はRCIDのフローチャートを示す。RCIDの簡単な例 は簡単に上述した。RCIDの機能は、当業者に周知の方法により、ホストコン ピュータからのシグナルを「ウエルノウンボート」で受信するのに利用される機 能である。そのデーモンに対するホストコンピュータからの割り込みはそのシグ ナルをこのウェルノウンボートを介して送信することになる。シグナルがネット ワーク上のコンピュータの1つのRCIDにホストコンピュータから送信される と、プロセスが開始される。生成サブプロセスのキーステップは、入力シグナル を、そのコンピュータのオペレーティングシステムフォーマットに変換すること である。デーモンプログラムは、デーモンプログラムがホストコンピュータから のシグナルにより割り込まれたとき、デーモンプログラムはこれらのプロセスの 内の1つ以上のプロセスに分岐する。ホストコンピュータのオペレーティングシ ステムが例えばボート抽象によりオペレートすると、そのデーモンはローカルオ ペレーティングシステム内でプロセスを開始する。ローカルオペレーティングシ ステムにより、オペレーティングシステム内のボートに対して名前が生成される ことになる。ホストコンピュータから入力されるプログラムは、そのボートを介 して入力することができる。
同様に、名前抽象を用いて、そのデーモンはプロセスを開始する。そのプロセス により、特定のボートが予め定義されたボート名を有する入力プログラムに対し て準備される。その永続ループが割り込まれたときに続(ことができる他のプロ セスは、負荷計算と、報告、例えば、ボートに入力したプログラムの結果として 、どの(らいの空間が用いられかをホストコンピュータに報告する報告を含む。
別の可能な命令を「終了」命令とすることができる。異なるサブプロセスを、ロ ーカルデーモンの永続ループに割り込むホストコンピュータからのシグナルによ り、デーモンにより開始することができる。また、ネットワークコンピュータは 、UNIXを用いて、RCIDにより活動状態にされる「ゾンビ削除」命令を要 求することができる。
「ゾンビ削除」命令は、特定のアプリケーションの結果としてローカルコンピュ ータにエンタしたデータまたはプラグラム行を削除する。当業者には周知のこと であるが、UNIXオペレーティングシステムに関して、「ゾンビ」は最早必要 とされないプログラムであるが、記憶装置に留っている。
第8図のボート識別子管理デーモン(PIMD)は、−意のボート番号をユーザ 定義オブジェクトにバインドするサービスを提供する。第8図はPIMDの簡単 なフローチャートを示す。再び、ループが「ウエルノウンボート」に確立され、 ホストコンピュータからの割り込みを待つ。ホストコンピュータがそのループに 割り込む場合のシグナルにより、特定のボートに対してユーザに与えた名前(u ser−given name)をPIMDを用いて宣言し、登録するか、その 名前を削除するか、あるいは内部データ構造をリセットする。このデーモンはU NIXのようなオペレーティングシステムでのみ必要とされ、そのオペレーティ ングシステムにてボート抽象が用いられる。
第9図は順次ファイルデーモン(SEQD)に対するフローチャートを示す。そ の順次ファイルは当業者に周知の外部ファイルにアクセスするための多くのフオ ームのうちの1つである。共通に用いられる他の外部ファイルシステムは、索引 順次アクセスメカニズム(Index 5equential Access  Mechanism; ISAM) 、相対または”HASH”ファイル、およ びデータベースまたは知識ベースファイルを含む。これらの外部ファイルを全て 配布するのは基本的に同様の方式により行われる。
順次ファイルをここでは詳細に説明しているが、外部ファイルの他のフオームを 本発明に適用するのは当業者にとって明らかなことかもしれない。順次ファイル は個人ファイルのようなアプリケーションに対して有用である。順次ファイルに 関して、そのファイルがスキャンされ、その結果、ファイル全体のレコードが全 て読まれる。ファイル全体の処理が望まれない場合、既に挙げた他の外部ファイ ルシステムは、所要のレコードをファイルにより速く位置指定するより複雑な手 段を用いるかもしれない。
第9図に示す順次ファイルデーモンは、ターゲットコンピュータのウェルノウン ボートに存在し、全てのリモートコンピュータにより、このコンピュータ上の順 次ファイルにアクセスすることを可能にする。ループはウエルノウンボートでセ ットアツプされる。そのループは要求入力時点で分岐する。要求は所要ファイル の名前と、アクセスされたファイル上で行われる4つのオペレーション(OPE N、 CLOSE、 READ、 WRITE)のうちの1つのオペレーション と、要求しているコンピュータについての情報とを含むかもしれない。
また、第9図に示す順次ファイルデーモンは「索引」システムを含み、その索引 システムは順次ファイルアプリケーションに共通であるが、本発明には必要では ない。「索引」システムに関して、そのファイルからのデータに対する10個の 要求ごとに、特定のソフトウェア構成により処理される。一度、特定のリモート ソフトウェアチップがそのファイルからのデータを要求すると、その要求に索引 番号が与えられ、同一ソフトウェアチップからのその後の要求がそのファイル内 のソフトウェア構成により処理される。異なるファイルにアクセスする11個以 上の要求があった場合には、順次ファイルデーモンは、次に最も大きい索引番号 により参照される別のソフトウェア構成を生成する。例えば、要求1−10には 索引番号”1“が与えられ、要求11−20には索引番号”2“が与え、・・・ られることになる。このシステムは当業者には周知のシステムである。順次ファ イルデーモンを、ユーザの好みにより、永久または動的デーモンとしてインプリ メントすることができる。他方、RCIDおよびPIMDは強制永久デーモンで ある。
永久デーモンは、全て、ボート抽象が用いられている、UNIXのようなオペレ ーティングシステムで「ウエルノウンボート」が用いられるか、あるいは、名前 抽象が用いられるVMSのようなシステムのRCID、 PIMDおよび5EQ Dのような「総称的な名前」が用いられることを指摘すべきである。
動的デーモンは特定のアプリケーションに付随して生成されるデーモンである。
メイルボックス、外部ファイル、またはタプル空間のようなIPCデータオブジ ェクトは、READ、 WRITE、 PUT、 GETまたはEXIT(7)  J:つな、全て定義された意味論オペレーションがインプリメントされるエン ティティである。これは、動的デーモンの設計およびインプリメントを簡単にす るばかりでなく、全体的な効率を向上させる。
動的デーモンはそれぞれアプリケーションの名前を付けたエンティティに一致す るので、これらの名前を用いてネットワークオブジェクト名を導き出す。ボート 抽象が用いられるオペレーティングシステムでは、ネットワークオブジェクト名 がC3Lコンパイラにより導き出される。本発明の両実施例では、2つのタイプ の動的デーモンが存在する。すなわち、タプル空間デーモン(第11図のTSD )およびメイルボックスデーモン(第10図のMBXD)か、あるいはユーザが 望む場合は、5EQDである。これらのデーモンはIPCデータオブジェクトの 使用に付随して生成される。これらは以下−に詳細に説明する。
rPCデータオブジェクト プロセス間通信(IPC)データオブジェクトはユーザアプリケーションのサブ プログラムどうしが通信するソフトウェアメカニズムである。普通の使用には3 つのタイプのIPCデータオブジェクトがある。すなわち、メイルボックス、タ プル空間、および順次ファイルである。順次ファイルは、上述したが、5EQD デーモンによりインプリメントされる。これらの異なる種別のIPCデータオブ ジェクトは種々の特定のタスクに対して用いられる。
メイルボックスデータオブジェクトはデータが第1のコンピュータから第2のコ ンピュータに送信される編成であり、その情報を第2のコンビエー夕が実行可能 になるまで、その情報は第2のコンピュータに一時的に保持される。
第10図はメイルボックスデーモン(MBXD)のフローチャートを示す、 M BXDはRCIDにより生成され、MBXDがPIMDから得られた特定のボー ト、または(名前抽象が用いられる場合)ネットワーク名に割り当てられる。
そして、14BXDはアプリケーション特定ボートでループをセットアツプし、 ”reacjmail”、 ”put−man”または”close−mail ”のような要求を待つ。MBXはローカルメイルボックス(すなわち、ローカル コンビエータの記憶装置内に特定の空間を取ってお()を作成し、そして、特定 のボートを介して来るメツセージをそのメイルボックスに中継する。そのメイル ボックスではローカルコンピュータ上のサブプログラムによりそのメツセージが 読まれる。“close−man”要求に応答して、そのデーモンはEOF(e nd−of−file)メツセージをローカルメイルボックスに送信し、ローカ ルメイルボックスの名前のパインディングをその特定のボートから削除する。そ の結果、アプリケーション内で、その特定のボートおよびローカルメイルボック スの名前を再び用いることができる。
MBXDを用いて粗MIND(multiple instructionmu ltiple data)コンポーネントとバイブラインを構成することができ る。MIMDおよびバイブライン機能は第2の実施例にてさらに説明する。複数 送信元がある場合、複数MBXDを適合させて、単一のローカルメイルボックス にマルチプレックスすることができる。
他の重要な種別のIPCデータオブジェクトであって、それ自体の特定のデーモ ンを有するIPCデータオブジェクトは「タプル空間」であり、IPCデータオ ブジェクトは「タプル空間」とタプル空間デーモン(TSD)を関連させている (第11図)。タプル空間の概念は並行処理アプリケーションにとって非常に重 要なことである。すなわち、アプリケーション内の非常に大きなプログラムを作 成する労力は、時間を短縮するため、幾つかのコンピュータに自動的に割り振ら れる。タプル空間の利点は、もともと、編成により自動的に負荷平衡を行うこと ができることである。つまり、ネットワークのタプル空間コンピュータに関して は、最も速くタスクを完了することができるコンピュータに、するべきより多く のタスクが自動的に与えられる。
タプル空間の一般的な原理は当業者に周知である(例えば、Ge1ernter 、”Getting the Job Done″鉦印。
November、198g、 P、301を参照)。基本的には、タプル空間 は「タプル」の「バッグ」として最も良くみなされている。これらのタプルは、 より大きいアプリケーションの分割可能な計算部分を表す。異種システムでは、 ネットワーク上の幾つかのコンピュータは、他のコンピュータより速く稼働する ことができる。タプル空間に関して、システム上のすべてのコンピュータはタプ ル空間から1つのタプルを掴まえ、計算を行うだけである。そして、計算結果を 、するべき別のタプルを掴まえる前に、当該タプル空間に戻す。重要な点は、現 在のタスクが完了するや否や、システム上の各コンビエータが別のタスクを単に 掴まえることができ、タプルサイズが適正にされた場合、異種コンピュータの負 荷を平衡する点である。順次システムとは対照的である。順次システムでは、ネ ットワークコンビエータが効率的に”5tand i口1ine”し、1つの特 別に長いタスクがより短く、より簡単なタスクの完了を遅らせる(hold u p)ことができる。
タプル空間には、本実施例では、3つの重要なオペレーション、すなわち、”p ut”、”get“および”read“が存在する。特定のタスクがシステム上 のコンピュータのうちの1つにより完了されたとき、その特定のタスクを、単に 、通常のデータの量としてタプル空間に戻すことができる。その特定のタスクを その後のタスクでアクセスし、読み取ることができる。”put”はデータをタ プル空間に置くことである。”get”はデータをタプル空間から取り除くこと である。”read”(RD)では、コンピュータはタプル空間のタプルを単に 見るだけで、タプル空間からタプルを取り除かない。その結果、タプル空間のタ プルを、システム上の別のコンピュータにより読み取ることができる。
第11図はタプル空間デーモン(TSD)のフローチャートを示す。MBXDに 関して、タプル空間に対する命令またはデータの入出力のためのボートは、PI MD (第8図)により生成され、名前が付けられる。第10図のTSDに、1 つのアプリケーション特定ボートが関連付けられることになる。put、 ge tおよびreadのタプル空間コマンドに加えて、TSDはアプリケーション特 定ボートを介する。penおよびcloseに感知可能である。
第12図は本発明の第1の実施例に対する簡単化されたフローチャートであり、 メイルボックスおよびタプル空間を共に含むアプリケーションを示す。そのプロ グラムの目的はディメンシジンがNxNの2つのマトリックスを乗算することで ある。そのマトリックス内の各値は、第1のマトリックスの行と第2のマトリッ クスの列の内積をとる必要がある。この例では、種々の内積演算は幾つかの「ワ ーカ」コンピュータに割り振られる。この例では、乗算されるマトリックスは2 つのメイルボックスMbx AとMbx Bに位置指定される。2のマトリック スに対する値は、ある期間に亘って、これらのメイルボックスに少量づつ入力さ れる。
アプリケーションプログラムがランされるとき、そのメイルボックスからのデー タは初期化指定子プログラムに送信される。初期化指定子プログラムはタプル空 間tslにアクセスする。一度、データがタプル空間tslに存在すると、種々 のワーカコンピュータは個々の行および列にアクセスし、内積演算を行う。ワー カコンピュータは1つの演算を完了すると、直ちに、その演算結果をタプル空間 に送信し、別の行および列を取って別の演算を行うことになる。ワーカコンピュ ータは種々の速度でオペレートすることができるので、マトリックスが完全に乗 算される時点まで、ワーカコンピュータの中には他のワーカコンピュータより多 くのオペレーションを行うものも多分あるであろう。しかし、この多様性はタプ ル空間の特徴である。乗算が完了すると、その結果はタプル空間から、最終的な 答えをメイルボックス(Mbx) Cに預けるコレクタプログラムに送信される 。
第12図のフローチャートの下に、この演算に対する典型的なC3L指定を示す 。その指定の第1行には”Matrix−multiply”という名前が演算 全体に与えられる。次のラインはファイル(Fで示す)およびモジュール(Mで 示す)を編成する。従って、ファイルAおよびBはメイルボックスとして編成さ れ、ファイルTSIタプル空間として編成され、Cは別のメイルボックスとして 編成される。
「初期化指定子」および「コレクタ」プログラムは、アプリケーションプログラ ム内でモジュールとして編成されている。編成されたファイルとモジエールの間 の矢印は、アプリケーションプログラムをランしている間のデータの流れを示す 。次のラインはタプル空間tsLに対するワーカコンピュータの関係を編成する 。従って、ライン”F:TS1υM:Workerl U F:TSl”は、デ ータがタプル空間TSIから”workerl”と呼ばれるプログラムに移動し 、そして、タプル空間TSIに戻ることを示す。種々のワーカプログラムは、異 なるコンピュータで具現化されるかもしれないし、されないかもしれない。実際 は、オペレータはワーカプログラムがどこで物理的に実行しているかに多分関心 を示さないであろう。”worker”プログラムは、ワーカプログラムが全て タプル空間にアクセスするが、ワーカプログラムの物理的位置がCSLで指定さ れないと、そのプログラムをCSLコンパイラにより位置指定するために、”5 lave“プログラムになることを指摘すべきである。第12図のCSL指定の 下には、代表的なCESL指定が存在する。種々のラインは、利用可能な言語、 オペレーティングシステム、および通信プロトコルに関する典型的な指定を示す 。
曾伍′ ライブラリ HLVCの本質的な属性は、データとプログラム命令を種々のコンピュータの間 に転送することである。本発明では、データとプログラム命令をこのように転送 することは、メイルボックス、タプル空間、または順次ファイルを用いて、IP Cデータオブジェクトにより行われる。これらのメカニズムを、動的デーモンを 用いてインプリメントすることができる。動的デーモンとアプリケーションプロ グラムとの間のこのような対話は、「言語注入」の形式で存在する。ネットワー ク上の各コンピュータ内で言語注入を収集したものは、第6図に関して既に説明 した「言語注入ライブラリ(LIL) Jとなる。第2の実施例のLILは第1 6図および第17図を参照して後程説明する。
言語注入はそれぞれソフトウェアサブルーチンであり、特定のIPCデータオブ ジェクト上の特定のIPCオペレーションに対応する。このような言語注入はそ れぞれ特定のコンピュータによりランされているアプリケーションプログラムの コマンドにより呼び出され、アクリ3ンが行われる。言語注入ライブラリのソー スコードを、任意のオペレーティングシステムで、しかも、任意のプロトコルに 関して、コンパイル可能にするとともに、ラン可能にすべきである。すなわち、 プログラマの観点から観ると、言語注入ライブラリのサブルーチンを活動状態に するIPCコマンドは、言語が何であれ、また、どのプロトコルまたはオペレー ティングシステムに対してアプリケーションプログラムが意図されいるかに関わ らず、同一である。しかしながら、各言語注入に対するオブジェクトコードフオ ームは、ターゲットコンピュータのプロトコルおよびオペレーティングシステム により、変化することになる。
各コンピュータ内では、言語注入はその特定のコンピュータ内でラン可能なフオ ームで書かれている。言語注入ライブラリのソースコードがアプリケージジンプ ログラムに含まれると、そのプログラムは「リンクコされると言われる。第19 図を参照して記載する。
入力および出力LIL機能の集合はネットワーク透過プログラミングのために、 アプリケーションプログラムまたはサブプログラム(モジュール)により用いら れる。LILがプログラムされ、複数オペレーティングシステムおよび通信プロ トコル上でコンパイル可能にされる。これは、ブリプロセッサステートメントを 用いることにより行われる。例えば、LILがCでインプリメントされ、Dig ital VMSオペレーティングシステムのもとで、Cコンパイラのみにより コードセグメントが読み取られる場合、このセグメントをブリプロセッサ記号、 例えば、VMSにより制御しなければならない。明らかに、最も普及しているオ ペレーティングシステムを、制御記号を必要としないデフオールドとすることが できる。TCP/IP、 DECNET、 SNAおよびO3Iのような、種々 の通信プロトコルを全て同様にして取り扱うべきである。
種々のオペレーティングシステムをLIL内に含むことは、LILのコンパイル サイズに寄与することになり、他方、多数の通信プロトコルを含むことは、ラン タイムオーバヘッドに寄与することになる。過度のランクイムオーバヘッドを避 けるため、管理スキーマはわずかに3つの通信プロトコルによりオペレートされ る。この数値はネットワーク上のアクセス可能な全てのコンピュータのうちの単 一コンピュータによりサポートされる最大通信プロトコルの数に一致する。
通常のプログラミング言語マクロとは異なり、LILルーチンはランタイム供給 IPCパターンファイルにそのオペレーションの基礎を置く。このIPCファイ ルは、ランタイムで、基礎プログラム(または、モジュール)の物理(現実の) 通信パターンを書き取る。そのランタイムは第19図の下部を参照して後程説明 する。
第1の実施例に対して、LILの機能は全て所定のデータオブジェクト(ユーザ 定義名前として識別される)に対しであるタスクを行う。第2の実施例に対して 、後程第14図ないし第23図を参照して説明するが、高レベルインタフェース により、オペレータまたはユーザの必要なステップを軽減させ、並行プログラミ ングタスク、特に、計算集中機能に関連するタスクを行う。第1の実施例に対す るデータオブジェクトは全て許容可能な意味論オペレーションの集合であると仮 定する。例えば、タプル空間オブジェクトは”open/close−、−pu t”、get″、および+read+オペレーションを有することができ、他方 、メイルボックスオブジェクトは”open/close”、 ”read−お よび−write−オペレーションであると仮定する。
典型的な入力/出力機能の主なる特徴は、次のようなものである。その記述には シンタックス、すなわち、全ての機能に対して”returnjype fun ction−name(parameters) ”を用いる。−return −type+は、シグナルがユーザに戻されるか否かにより、”void”また は”integer”のうちのいずれかとして与えられる。これらの特徴を幾つ かの指定された関数を参照してさらに説明する。
a)void cnfJnit□ これは陰間数であり、イメージの開始時(cnf、、−openの最初の実行) に呼び出され、そのイメージに対する内部データ構造を初期設定する。情報のソ ースはプログラム特定IPCパターンファイルであり、そのフォーマットを次に 示す。
conf = application−system−namedebug  =−1,0−3 wax−d = maximun diamter of the assoc iatednetwork module: Name 1 1ogical、、、name : type In−or−Out phys ical−inf。
comment module: Name 2 module: Name n この情報に、グローバル変数として、他のLILの他の機能によりアクセス可能 でなければならない。これらのデータ構造に・対する主な目的は、ユーザ定義論 理データとそれらのランタイム位置との間の関係を保持することにある。典型的 なインプリメンテーションは、動的記憶装置または静的アレイのいずれかを用い ることである。
実行イメージの論理名は環境変数、すなわち、CNjMODULEから得られる ことに注意すべきである。
IPCパターンファイルの生成と、CNF−MODULEの定義は、全てコンフ ィギュレータ(静的プロセッサ割振り)またはDPC(動的プロセッサ割振り) に起因している。
b) int cnf−open(user−defined−obfect− name)これは全ての種別のオブジェクトに対する汎用open関数である。
この関数は将来のアクセスに対して所定のデータオブジェクトを準備する。例え ば、オブジェクトが順次ファイルである場合は、この関数はそのファイルをオー ブンし、そのファイルのディスクリブタを記録する。そのオブジェクトがタプル 空間である場合は、その関数は将来必要とされる接続に対して必要なデータ構造 を生成する。
オブジェクトハンドルという整数は、この呼び出しの結果として戻される。この 整数は内部データ構造のエントリを指示し、しかも、この整数を、このオブジェ クトに関するその後の全ての呼び出しで用いるべきである。その関数は、正規の オーブン活動が正常に完了できない場合は、−1を返す。
c) void cnf−close(user−defined−objec t−name)これもまた汎用関数である。この関数は、通信リンクおよび/ま たはオブジェクトに関するファイルディスクリブタな遮断することにより、ユー ザ定義オブジェクトをクローズする。
d) int cnfjread(object−handle、 buffe r、 5ize)この関数は所定のファイルに対して入力オペレーションを行う 。その出力は最大サイズ5ize”を用いて”buffer”に置かれる。実際 のバイト数が完了時に戻される。
そのファイルは基礎プロセスとは異なるコンピュータ上に常駐することができる 。その関数はcnf−openから得られる結果を用いて適正なデーモンと通信 しなければならない。
e)int cnfjwrite(object−handle、 buffe r、 5ize)この関数は”buffer”の”5ize”バイトを、ハンド ルにより指示される実際のランタイム記憶に書き込まれる。書き込まれた実際の バイト数は完了時に戻される。
このファイルもまた(IPCパターンファイルに対応する)異なるホストに位置 指定することができる。
cnf−openから得られるその結果がここで用いられf)int cnfJ seek(object−handle、offset。
direction) この関数は所定のハンドルに対して現行の読み取りポインタを変化させる。リモ ートファイルに対しても同様に考えるべきである。EOFに出会った場合、−1 を戻し、BOFに出会った場合には0を戻し、そうでない場合は1を戻す。
g)int cnf−mread(object−handle、 buffe r、 5ize。
5ync) この関数はハンドルにより指示されたランタイムデバイスからの情報を読み取り 、読み取った情報を”buffer”に置く。”5ync”=0のとき、その読 み取りは非同期で行われ、”5ynC”=0のとき、その読み取りは同期で行わ れる。読み取られた実際のバイト数は完了時に戻される。
この関数は、UNIXシステムV派生に対するメツセージ待行列、BSDベース システムに対するFIFOlまたはVMSシステムに対するメイルボックスのよ うなローカルIPC構造を読み取るべきであることに注意すべきである。
h) int cnf−mwrite(object−handle、buff er、5ize。
5ync) この関数は”buffer”からの”5ize”を所定のオブジェクトに書き込 む。IPCパターンに従って、この書き込みはローカルまたはリモートオペレー ションにすることができる。
受信先がリモートコンビエータ上にあることを、IPCパターンが示す場合は、 この関数はリモート動的デーモンと通信を行い、そのデーモンの機能が(送信元 モジュールの)この機能からの情報を受信先コンピュータ上のローカルIPC構 造に中継することに注意すべきである。そうでない場合は、この関数はローカル IPC構造に直接書き込む。
受信先に書き込まれる実際のバイト数は完了時に戻される。
t) int cnf−tsread(object−handle、 key 。
key−size) ”5ync”・lである場合、このタプル空間読み取り機能は、所用のキーを有 するタプルが到着するのを待ち、その情報を、タプルが存在するとき、”buf fer”に読み込む。そうでない場合は、その関数は読み取りを行い、その制御 は直ちに戻される。読み取られた実際のバイト数は完了時に戻される。
その“key”はタプル探索パターンを含むことに注意すべきである。正規表現 の一致は、要求時に、動的タプル空間デーモンにより行われる。動的デーモンの 位置およびボート数はcnf、−open関数から得られる。2つ以上のタプル 一致”key”がある場合は、任意のタプルが選択されることになる。
j) j、nt cnf−tsget(object−handle、key、 key−size。
buffer、buffer−si、ze、5ync)一致したタプルがそのオ ペレーションの完了時にタプル空間から取り出された場合、この関数はcnfJ sreadと同様にアクションする。2つ以上のタプル一致“key”がある場 合、任意のタプルが選択されることになる。
k) int cnfJsput(object−handle、 key、  key−size。
buffer、 buffer−size)この関数は”buffer”の内容 を有するタプル”key”をタプル空間に挿入する。タプル空間デーモンの位置 はIPCパターンファイル内に見付は出される。タプル空間に書き込まれた実際 のバイト数は完了時に戻される。
4) void cnf−term この関数はまだクローズされていないオブジェクトを全てクローズし、ステータ ス”l”を有する基礎プログラムを終了する。
既に説明したが、ユーザは、分散データベース、知識データベース等のような分 散IPC媒体として用いられる新しいオブジェクト種別を新しいオペレーション で定義することができる。そのオペレーションは上述したものと異なるようにで きるが、インプリメンテーションの精神は、ネットワーク透過プログラミング( または、)ILVcプログラミング)に対して記載されたものと同一にすべきで ある。
最後に、LILを、オブジェクトライブラリフオームでアプリケーションプログ ラマに提供し、実行可能にする前に、必要な関数のみをアプリケーションプログ ラムとリンクすることになる。
大きな異種コンピュータネットワーク上には、多くの通信プロトコルがオペレー トしている。本システムに関して、特定アプリケーションに対して必要な通信プ ロトコルはコンパイル時にはオペレータの関心事ではない。
異なる通信プロトコルを理解するコンピュータは情報を直接交換するはできない 。しかし、コンピュータの中には、多(の通信プロトコルをサポートするものが ある。このようなコンピュータを大規模ネットワーク上の異なるコンピュータの 間で情報を交換するブリッジとして供することができる。
このインプリメンテーションのランクイムオーバヘッドは、1つのオペレーティ ングシステム上で利用可能な異なる通信プロトコルの数に比例する。
同様に、異なる言語のコンパイラを有する異なるコンピュータを、言語注入によ り独立して用いることができる。しかし、実行するため、そのプロセスをLIL とリンクさせなければならない。この解決のオーバヘッドは複数言語インタフェ ースのオーバヘッドと同一である。
階1uい工」11 第13図は階層化した多(の仮想コンピュータを示す略図である。レベル100 .102.104および106は、それぞれ、世界中の任意の場所に任意の数の コンピュータで具現化することができる抽象を示す。レベル100゜102、1 04および106は、上述したソフトウェアチップというタスクを計算する、D evice (DEV) 、 Module (MDL) +またはGroup  (GRP)を備えている。種々のレベルは階層関係にある。すなわち、レベル 100のソフトウェアチップを有する仮想コンピュータは、レベル102のソフ トウェアチップを有する仮想コンピュータより高い汎用性レベルでデータを操作 する。レベル102のソフトウェアチップを有する仮想コンピュータは、レベル 104および106のソフトウェアより高い汎用性レベルでオペレートする。具 体的な例を挙げると、レベル100は、大きい会社に対する財政上および経理上 の全企画の全てのソフトウェアチップを備えることができる。その大きな会社の 一般的な企画には、多くの課や部が存在することができ、その部課はそれぞれ経 理に関する独自のシステム、すなわち、人事、在庫管理、生産等を有する。その 大きな会社を、部門別に分割するだけでなく、同様に地域別に分割することがで きる。すなわ、ニューヨークオフィスおよびフィラデルフィアオフィスは、独自 の在庫管理部門および人事部門を持つことができる。さらに低いレベルでは、あ る場所のある部門内の個々のマネージャは、自分たちの仮想コンビエー夕をオペ レートすることができる。これらのコンピュータは、非常に低位のレベルのデー タファイルに直接アクセスすることができる。コンピュータ階層の非常に低位の レベルの例は、1つの場所の1つの部門内の一人の従業員に関するデータファイ ルか、あるいは、特定の部門により特定の場所で製造された1つの特定のパーツ に対する在庫管理ファイルであろう。「汎用性レベル」とは、より高いレベルの 仮想コンピュータは、多数レベル低位のレベルの製造、人事等の詳細には興味を 示さないが、それより数レベル低位のレベルの製品に関するデータ(または、情 報)には興味を示すことになるということである。
階層HLVC構造の考えとは、そのデータを非集中させ、そのデータを頻繁に使 用するマネージャにそのデータを最も近く近付けるという考えである。数千とい う人々を抱える企業では、本社が、どのような雑役夫も入れた人事ファイルの複 写を持つ必要は多分ないであろう。しかし、汎用性のより高いレベルのコンビエ ー夕は、全ての地理的な場所に対する総人事データか、あるいは特定場所の全部 門についての総情報のような情報に興味を示すのももっともである。
種々の装置が異なる時点で購入され、従って、装置の設計が異なっているのは、 ビジネスのコンピユータ化では普通である。しかし、会社で新しいコンピュータ が購入されると、その度ごとに、データを全て他の部門または場所から新しいコ ンピュータに転送するのはコストが高くなるであろう。2つの会社が合併した場 合、合併した2つの会社全体の大量のデータを組み合せ、1つのオペレーティン グシステムと1つの言語を有する一様なシステムにすることは実際的ではない。
外部ソースからデータを要求することが望ましい場合もある。本発明によれば、 種々のコンピュータそれ自体を変更しないか、あるいは異なるレベルのデータの 不必要な複写で空間を無駄にすることなく、汎用性の種々のレベルの多(のコン ピュータを調整することができる。第13図を参照して、レベル100がある会 社の最高位の管理レベルであり、レベル106が特定場所の人事オフィスにある コンピュータを表し、レベル106の下に示すモジュール1.2および3が、そ の場所の3人の個々の人事ファイルを表す場合を考えてみよう。選択された階層 の構造により、レベル102を、全ての場所に対する人事を表すか、あるいは、 レベル102に関連する地理的な場所にある全ての部門を表すと考えることがで きるであろう。
本発明によれば、レベル100のユーザはモジュール1.2および3の個々のフ ァイルにアクセスすることができ、そのモジュールのデータ(例えば、生命保険 料または所得税)をレベル102の命令により、レベル100でプリントアウト することさえできる。従って、情報をレベル106で検索することができ、レベ ル102で処理し、レベル102で読み出すことができる。よって、完全非集中 仮想コンピュータにすることができる。非集中化の主な特徴は、モジュール1, 2および3の情報をレベル106のユーザにより更新することができる点にある 。レベル106のユーザは従業員と常に接触しているであろう。このような更新 は、より高いレベルのレベル102.104および106を介さな(でも行うこ とができる。
第13図では、種々のレベル100.102.104および106は、それぞれ 、仮想コンピュータを表す。各仮想コンピュータ内に多数のソフトウェアチップ を含む。多くのソフトウェアチップは同一物理コンビ二−タ内で具現できるかも しれないし、具現できないかもしれない。本発明により可能な階層には、幾つか の種別のソフトウェアチップ、モジュール(MDL)グループ(GRP) 、お よび図示しないスレーブプログラムが存在する。レベル100に示す端末のよう な装置(DEV)が存在する。その装置はソフトウェア機能を有さない。ただし 、端末、プリンタ、その他の装置としてアクシジンする。モジュールMDLは独 立にランするソフトウェアプロ・ダラムであり、階層のレベルがレベル100の ような最高位レベルに向かうか否かに関わらず、あるいは、レベル106によう な最低位にあるか否かに関わらず、ある階層の末端が最も下に存在する。グルー プGRPソフトウェアチップはそのモジュールより高い汎用性レベルでオペレー トし、しかも、モジュールからのデータ(仮想線で示す)にアクセスする。各レ ベル内では、種々のソフトウェアチップが、任意の数のインタフェースデータオ ブジェクト110(一般的に示す)により、仮想コンピュータに中継される。
これらデータオブジェクト110は、データを仮想コンピュータ内のソフトウェ アチップに転送することができる手段であって、タプル空間またはメイルボック スのような手段である。インタフェースデータオブジェクト110は、図示した ように、あるレベル内のソフトウェアチップに存在するだけでなく、異なるレベ ルのソフトウェアチップに存在する。本発明に係るシステムによれば、このよう な階層は、異種計算環境において実質上実現することができる。
非集中化に関しては、階層な自動的に構築し、種々のコンピュータを他のコンピ ュータにアクセスさることにより、階層を意図的に変更することができる。高位 レベルのコンピュータは、ネットワーク内の抽象化されたデータのどれにでもア クセスできるコンピュータとして実際には規定され、他方、低位レベルのコンピ ュータはそれより高位レベルのデータにアクセスできないコンピュータとして実 際には規定される。階層的な編成にすると、そのオーバヘッドは、例えば、モノ リシックタプル空間より非常に小さくなる。モノリシックタプル空間では、会社 の情報が全て巨大なプール内で理論上利用できる。多数のコンピュータがデータ の単一のプールをシェアリングする場合、重大な問題が数多く生じる。まず、セ キュリティを提供し、コンピュータの階1を生成するため、タプル空間内のほと んど全ての情報に、セキュリティコードによりアクセスしなければならない。従 って、オーバヘッドが著しく太き(なる。次に、データの中から特定のデータを 見付は出すのに長いスキャン期間が必要になるかもしれないし、意味のある方法 によるデータの編成(例えば、種々の地理的な場所にある部門や、ある地理的な 場所にある全ての部門)は、管理するのが困難になるかもしれない。さらに、タ プル空間の大きなプールにあるデータを必ずコード化し、分類すると、はとんど のコンピュータの物理的な容量を超えてしまうであろう。本発明によれば、多数 のコンピュータにデータをシェアリングすることができるが、一般的にデータが 頻繁に使用されるコンピュータにそのデータは実際には記憶されている。しかし 、より高いレベルのコンピュータはより低いレベルのコンピュータに記憶された データにアクセスすることができる。
第1図ないし第13図に示す本発明の第1の実施例は、種々の言語、通信プロト コル、およびオペレーティングシステムを有することができる異種コンピュータ の集合から高レベルコンピュータ(HLVC)を生成するシステムを提供する。
本発明の第2の実施例は、第14図ないし第23図を参照して記載することがで きる計算集中機能に特に適応する。
本発明の第2の実施例は、第6図に示す実施例と同様の方法で構成されている。
計算集中アプリケーションプログラムを実行するシステムは、第14図ないし第 23図を参照して後程説明するが、ホストコンピュータ10、およびターゲット コンピュータWSI、WS2.、、、、WSkを備え、同様に、後程説明するが 、第14図のアプリケーションコンソールを備えている。
宝 プログラム HLVC 第2の実施例は、主に、アプリケーションプログラムおよびプログラム拡張を、 コンフイギュレータおよび分散プロセス制御装置に付加することにより、ユーザ がプログラム並行化に必要とする努力を大幅に削減する。本発明は、計算集中プ ログラムを適応するのに特に適しているユーザに対する高レベルのインタフェー スを提供する。本発明の第2の実施例は、これらの計算集中プログラムに適用さ れた周知の並行処理(PAR)技法を拡張する手段を提供する。複数異種コンピ ュータは、既に説明したが、対話に協力し、これら計算集中プログラムの実行時 間を短縮する。本発明に係るPARプロセスは上述した3つの種別の分散並列を 含む。3つの種別の分散並列は、後程説明するが、第21図に示すSIMD(S AG)、MIMDおよびパイプラインである。これらの並行(PAR)処理オペ レーションを容易にし、かつユーザの必要な努力を軽減する手段を第14図に示 す。
第14図のブロック図は第3図に示す第1の実施例のブロック図とは次の点で異 なる。すなわち、第3図に示すブロックC3LおよびCESLを、第14図では 、それぞれ、アプリケーションコンソール206からの制御ライン202および 204として示した点である。さらに、アプリケーションコンソール206はA ctivating UserSystemとして示したコンソールライン20 8を有する。
第14図は種々の要素を示し、さらに詳しくは関連する図に示す。種々の要素の なかには、対応する文字記号により示した種々のコンポーネントを備えているも のもある。全ての要素を第1表に示す。
(以下余白) 第1表 要素 ノーメンフレチャ 関係図 206 アプリケーションコンソール 18210 分散アプリケーション構成  18210A コンフイ可ユレータ(clsコンパイラ)16210B No de、Cap 15 210CX、Prcd 17 212 プロセス生成 18 212A 言語注入ライブラリ(LIL) 19212B 分散機能ライブラリ (DFL) 20214 ユーザプログラム 19 214A 通常のコンパイラライブラリ214B 4也の1−ザブログラム 216 ユーザプロセス 19 218 分散アプリケーション実行 18218A 分散プロセスIII i卸 装置(DPC) 23218B ランタイムデーモンライブラリ 15.22N odeCa Daemon NodeCap 210Bは第1の実施例のCESL指定からの情報を含むファ イルである。第15図はnodecapデーモン(NODECAPD) 210 Eを示す。N0DECAPD210EはN0DECAPD210Bおよび追加フ ァイル2100(NET CTL、DAT)を備え、追加ファイルziooはN 0DECAPDに複数ネットワーク情報な供給する。
第15図の(MODECAPD) 220Eは、NodeCapファイルの正確 度を維持するデーモンライブラリに付加される。
(NODECAPD) 220Eは周期的にコンピュータ (WSI、、、、。
WSk)をモニタし、N0DECAP 7 yイJt、210Bに入力される。
第15図はファイル210Dおよび210Bからの情報を受信するN0DECA PD210Eにより行われる典型的なタスクを示す。このタスクは周期的に(第 15図の2100に示す)ネットワーク内の識別を検査し、ついで、この同一の 情報を再検査する前に、Delta(2100参照)で指定された期間の間、待 機(スリーブ)する。第22図を参照して説明するが、MODECARDは情報 をリモートコマンドインタラプタデーモン(RCID)と交換し、N0DECA PDとRCIDはホストコンピュータ10とコンピュータWSI、、、、、WS kの間の情報の交換を制御する。ModeCapファイルはC5Lンバイラおよ びDPCのプロセッサ割振りタスクに不可欠のものである。
: プログラム コン7 ギュレータ 第16図のコンフィギエレータは、第16図に示すネットワーク指定が第15図 に示すN(JDECAPから供給されることを除けば、既に説明した第4図のコ ンフィギュレータと同様である。アプリケーションコンソールは、市販のX−w indowのような、ウィンドウベースのインタフェースであるので、グラフィ ックデータ収集プログラムを用いて、CESL指定から正規に得られる情報を記 録することができる。さらに、第4図に示すモジュールシェルおよびIPCパタ ーンは組み合わされ、1つのファイル、すなわち、X、Prcd (第17図参 照)にされる。これは複数アプリケーションの補助ファイルの管理を容易にする 。
プロシージャ ファイル: X、Prcd第17図はアプリケーション優先順位 (P、 PRCD)ファイルのフォーマットを示す。このファイルは2つのグル ープの情報、すなわち、(a)アプリケーションサブプログラムの独立性、(b )タイプ、入力/出力ボート、方向、ランタイム、および物理的接続のような、 個々のサブプログラム情報を含む。
サブプログラム(または、プロセス)はそれぞれPAR(並行処理) 、 MD L(モジュール)、またはGRP(サブシステム)の種別にすることができる。
入力/出力ボート情報は、X、 PrcdがC3Lコンパイラにより生成された とき、未完了にすることができる。これは、ユーザプログラムが開始される前に 、DPCが紛失された情報に充填されることを暗に意味する。
アプリケーションコンソール アプリケーションコンソール(AC) 206は、オペレータに、高レベルのイ ンタフェースを供給する。その高レベルインタフェースは第6図のネットワーク により行われるプログラミングタスクを有する。r高レベル」により、いわゆる マウス装置を動かし、そのボタンを押下するだけで、ユーザはプログラムの実行 をコマンドすることができる。アプリケーションコンソール206は、ネットワ ークにより実行されているアプリケーションプログラムのパフォーマンスを制御 しモニタする統合された手段を提供する。そのアプリケーションコンソールはデ ータエントリ装置、仮想キーボード、およびモニタリング装置仮想ディスプレイ を備えている。アプリケーションコンソール206は、X−Window(MI T)、0pen−Look(Sun Micro System)、およびNe XT window(NeXT computer)のような分散ウィンドウシ ステムにより、最も良(インプリメントされる。アプリケーションコンソール2 06を、第6図のネットワーク内で同時に行われる複数分散アプリケージジンに シェアリングすることができる仮想コンピュータ装置として考えることができる 。
アプリケーションコンソール206は、ユーザと、第18図に示す高レベル仮想 コンピュータのプログラムタスクコンポーネントとの間の統合インタフェースを 提供する。その統合インタフェースは、(1)プロセス生成212 、(21分 分散アプリケーション構成210、(31分散アプリケーション実行218、お よび(4)分散アプリケーションメインテナンス220を備えている。
分散アプリケーションメインテナンス220は、本発明に関係するアプリケーシ ョンプログラムのいわゆるデバッキングを行うことができるソフトウェアルーチ ンとモニタリング手段を備えている。デバッキング手段はアプリケーションプロ グラムを開発する段階で主に用いられる。一般的に、これらの手段はデバッキン グおよびパフォーマンス分析ツールであって、アプリケーションプログラムの選 択されたプログラミングセグメントを静的に見ることができるツールを含む。普 通、デバッキングおよびパフォーマンスモニタリングデータは全てアプリケーシ ョンプログラム実行中に収集され、その後、分析される。分散アプリケーション メインテナンス220タスクにより、SAG、バイブラインおよびMIMD、同 様に、既に説明したソフトウェアチップ叶V、GRPおよびMDLのような並行 プロセス計算を、ユーザにより検討し、分析目的で記録することができる。
また、アプリケーションコンソール206により、ユーザは、第19図を参照し て説明することができる言語注入ライブラリ(LIL)および分散機能ライブラ リ(DFL)機能を利用してプロセス作成212を行うことができる。第19図 はユーザプロセスに組み込まれた分散機能を示す。第19図はプログラムされた ソフトウェア(LILおよび旺L)であって、ユーザプログラムに統合化され、 ネットワークコンピュータ(第6図に示すホストコンピュータlOおよびWSI 、、、、、WSk)上でオペレートされるソフトウェアのコンポーネントを示す 。
この統合化はルーチンに提供され、本発明に関係するアプリケーションソフトウ ェア機能、特に、計算集中プログラムのソフトウェアをオペレートする。
ユーザプログラム さらに、第16図は、ユーザプログラムに、分散機能ライブラリ(DFL)から の情報と、既に説明した言語注入ライブラリ(LIL)からの情報を供給するこ とを示す。LILはオペレーションを(IPC)データオブジェクトに供給し、 そのうちの幾つかをcnf、−openとして第19図に示す。他方、DFLは 、第20図を参照して説明するが、周知のレイトレーシングプログラム、FRA CTAL計算プログラムのような計算集中プログラムに、ルーチンを供給する。
適正なルーチン(後程説明する)を有するユーザプログラム214は、第6図に 示すネットワークのコンピュータ(ホストコンピュータ1oおよびWSI、、、 、、WSk)のそれぞれに含まれる。
マクロ命令の形式のルーチンであってDFLおよびLILのルーチンが、関連す るコンピュータ (10、WSI。
、、、、WSk)内のユーザプログラム214にロードされるか、あるいは置か れた後、ユーザプログラム214はリンカ214Cのコードと組み合わされ、ま た、通常のコンパイラランタイムライブラリ214Aのコードと組み合わされる 。各コンピュータ(lOlWSI、、、、、WSk)のコンパイラは、第6図に 示すネットワークのコンピュータ(10、wsi、、、、、wss+)のオペレ ーティングシステムの第6図を参照して記載した方法で、各オペレーティングシ ステムと協働する。リンク(オブジェクトコード214B、リンカ214および コンパイラ214A)により、各コンピュータ(10、WSI、、、、、WSk l内でオペレートする実行可能ユーザプログラム216が生成され、そのランタ イム関係は第21図に示すリモートコマンド割り込みデーモン(RCID)と、 分散プロセス制御装置(DCP)により決定される。
一般的に、RCIDは(DPCから得られる)初期設定情報をユーザプログラム 216に供給し、その割当られたタスクを実行することができる。他方、その割 当られたタスクが完了した後、ユーザプロセス216は、その最終結果を、第1 9図にTermination (cnfjerm)として示したようなコマン ドの手段によりCDPに供給する。
FRACTALのような計算集中プログラムであって、各コンピュータ(10、 WSI、、、、、WSk)のユーザプロセス216によりランされているプログ ラムを、第20図に示すDFLをさらに参照して説明することができる。
ライブラリ 分散機能ライブラリ(DFL)は、3つのセグメント、すなわち、(1) DF L Table(DFLJB)212B1、(2) DFL Driver(D FL−DR)212B2 、(3) DFL 5ubroutine(DFL− 3OB) 212B3を備えている。セグメント212B2および212B3の 間の対話により、222A(Coords)、222B(Fl)。
222D (F2) 、 222E (F3)および222F(F4)として図 示した分散データ222が生成される。
第20図は次のことを示す。すなわち、セグメントDFLJBはプロセッサ(1 0、WSI、、、、、WSk1割振りのため分散プロセス制御装置(DPC)に より参照される。
DFjDRは実行可能ボディ(第19図)に含まれるユーザプログラムにより参 照される。分散データ222は第23図に示すDPCプログラムと第22図に示 すRCIDプログラムの両プログラムにより生成される。DFL−3UBはDP C(第23図)により用いられ、後はど説明するが、ランクイムワーカを生成す る。
第20図は文字記号A、BおよびNを用いて、DFLJB、 DFL、、−DR ,DFL−3OBおよび分散データ22のプログラムセグメントの間の共通点を 示す。例えば、記号Aを用いて、(i)ボックスAの範囲内の(DFL−TB) 、(ii)ボックスAの範囲内の(DFL−DR)、および(iff)ボックス A内の(DFLJUB)に示すFRACTALプログラムの共通点を示す。記号 Aに付けた添字は分散データ222 (Coords)A士およびA≧に対して 同様に用いられる。
第20図の分散機能ライブラリは、並行処理(PAR)により計算集中プログラ ムをバフオームすることに適応させたものである。PARプロセスは第6図に関 して説明した複数異種コンピュータを用いている。どのコンピュータも互いに協 働して計算集中プログラムの実行時間を短縮する。第6図の各コンピュータ内に 含まれる各ユーザプログラムのインタフェースは、第20図に示す分散機能ライ ブラリのルーチンにより提供される。主に本発明に関係するPARプロセスは、 SIMD(SAG)、MIMD、バイブライン技法であり、コンピュータ関連当 業者には周知のものである。PARtype:SAGにより行われるFRACT ALプログラムの省略したディスクリブジョンを第2表に示す。
(以下余白) 第2表 ライブラリ DFLFRACIALプログラムセグメント DFLJB (A) Name : FRACTAL Par Type: 5AG Data Ba52es: Coords、 IDXRe1ative CPU Powers: wsl:1 w52:1.5 w53:3.6 DFL、、−DR(A) FRACTAL (image、 x、y)−coordsをgrainsに対 してパックする一タプル空間に“Coords”を挿入する−“IDX“からの 結果を待つ 一結果をアセンブルする − Return DFLjUB (A) FRACTAL−Wk ニ ー ”Coords”上で待つ 一タプルを取り出す 一計算する 一結果を”IDX”を挿入する 一タプルがなくなるまでループ 分散データ ー Coords (A + ) −IDX(A、) 一般的に、DFLJBは第6図のホストコンピュータ内に含まれるテーブルまた はファイルであり、第6図のるデータバスのパラメータを挙げる。DFLJBは 主計算ルーチンに対するコンピュータWSI、WS2....、WSkの相対的 な能力を挙げる。DFL−DRは、ホストコンビエータlOとワーキングコンピ ュータ(WSI、、、、、WSk)の間の対話を制御し指示するドライバルーチ ンであって、FRACTALプログラムのような計算集中プログラムを実施する ドライブルーチンを含む。DFLjUBは各ワーカコンピュータ(WSI、、、 、、WSk)内に含まれたサブルーチンであり、各ワーカコンピュータ(WSI 、、、、、WSk)は111sI、WS2.、、、、WSkで実施されティ6  FRAC’TALプログラムの選択された部分を計算し、このような計算のそれ ぞれの中間結果と最終結果をホストコンピュータと交換し、協働して、FRAC TALプログラムの解答を供給する。分散データ222 (Coordsおよび IDX)は、データのブロックとして、ワーキングコンピュータ (WSI、、 、、。
WSklとホストコンピュータlOとの間で交換される。
SAGタイプ並行処理により行われるFRACTALコンピュータのオペレーシ ョンを、第21図を参照してさらに説明することができる。
た肱1皿エコ 第21図は3つの種別の分数並列処理を機能的に示す。3つの種別の分散並列処 理は、(1) SIMD(SAG) 。
(2) MIMD、 (3)バイブラインであり、それぞれ、第21a図、第2 1b図、および第21c図に示す。第21a図は、第2表に一般的に示すFRA CTALプログラムのパフォーマンスに含まれるホストコンビエータ10とワー キングコンピュータ(WSI、、、、、WSk)の間の対話を、仮想線で示す矢 印により機能的に示す。
第21a図は、ホストコンピュータ10がプログラミングセグメント212B1 および212B2を含むことを示す。
このことは第20図で説明した。また、第21a図は、ワーキングコンピュータ (WSI、、、、、WSk)がそれぞれ第20図のプログラミングセグメント2 12B3を含むことを示す。図示したホストコンピュータ10には、発散収束( Scatter and Gather; 5AG)プロセスおよび2つのタプ ル空間TS(1)およびTS(2)が具現されている。機能的には、SAGプロ セスはFRACTALプログラムに関するタプルをTS(1)に置き、(分散) するため、ワーキングコンピュータ(WSI、、、、、WSk)に配送する。ワ ーキングコンピュータはその結果をTS (2)に置き、その結果をSAGプロ セスにより収集する。ホストコンピュータlOおよびワーキングコンピュータ( WSI、、、、、WSk)のタプルのセグメンテーションは、 ”Parall elizin’5catter−And−Gather’ A 1icatio ns UsinHetero eneous Network Worksta tions”に記載されているようにすることができる。これは、1991年3 月に、テキサスのヒユーストンで開かれたProceedingsof the  Fifth Siam Conference on ParallelPr ocessing for 5cientific Computingで、Y uan ShiおよびKostas Blathrasにより開示された。これ を実施例の一部とする。
第20図に示すように、各ワーキングプロセッサWSI。
WS2.、、、、WSkは、受信されたタプルに関係する計算を行った後、個々 の結果がタプル空間TS(1)を介してホストコンピュータ10に転送される。
ホストコンピュータはこのような情報を収集し、FRACTALプログラムの実 行が完了するまで、そのプロセスを続行する。
また、第21b図および第21c図にそれぞれ示す並行プロセスMIMDまたは パイプラインにより、計算集中を機能させることができる。第21b図および第 21c図は、MIMDおよびパイプラインプロセスのオペレーションの原理を一 般的に示す。第21a図、第21b図および第21c図の分散並列処理の全体的 なオペレーションを第14図を参照してさらに説明することができる。
2の の なオペレーション 第14図の下部にはワーキングコンピュータ(WSI。
WS2. 、 、 、 、 WSk)と、同様に、ホストコンピュータ10(仮 想線で示す)がバス16により相互接続されているのを示す。ワーカコンピュー タ(WSI、、、、、WSk)は、それぞれ、第8図を参照して既に説明したボ ートID管理デーモン(Port ID Mangement Daemon;  PIMO)と、第22図のリモートコマンドインタラブドデーモン(Remo teCommand Interupt Daemon; RCID)を含む。
ネットワーク(10、WSI 、 WS2. 、 、 、 、 WSk)が更新 されるごとに、デーモン(PIMDおよびRCID)がホストコンピュータ1o から供給される。PIMDおよびRCIDデーモンは仕事をパフオームして、コ ンピュータ(10,WSI、WS2.、、、、WSk)の間のデータ交換を調整 する。コンピュータ(10、wsl、ws2.、、、、wsk)は、それぞれ、 異なるオペレーティングシステム(051,O32,、、、、,03k)と異な るコンパイラを有することができる。 PIMDおよびRCIDデーモンが、ホ ストコンピュータlOに含まれるランタイムデーモンライブラリ218bから供 給される。本発明の第2の実施例に関係するRCIDデーモンを第22図に示す 。
(以下余白) リモートコマンドインタプリタデーモン第22図のリモートコマンドインタプリ タデーモンは、第15図に示すN0DECAPDからの情報と、第23図に示す 分散プロセス制御装置(opc)からの情報が受信される。DPCは、バス16 から第22図に入り、サブセット(プロセス生成)のプログラムセグメント(( DPC)を待つ)に入るように図示されている。第22図の第2の実施例のRC IDと、第7図の第1の実施例のRCIDとの比較により、第22図が簡略化さ れていることが分かる。
第22図のRCIDはバス16を介してDPCら単一のメツセージを受信する。
そのメツセージにより、RCIDは初期設定および外部制御機能のために用いら れるDPCからの情報に応答し、受信し、第14図のネットワーク内での情報の 交換を指示する。情報を制御し交換する主な手段であって、本発明の第2の実施 例に関係する手段は、第23図に機能的に示した分散プロセス制御装置により決 定される。
第23図はセグメント230,232.、、、.248を備えた分散プロセス制 御装置(DPC)の一般的なフローチャートを示す。そのフローチャートへのエ ントリ(230)は、第17図のアプリケージジン優先順位(X、 prcd) の可用性により確立される。アプリケーション優先順位(X、 prcd)は、 既に説明したが、第16図のコンフィギュレータ(C3Lコンパイラ)により生 成される。DPC(セグメント232)を実行するか、あるいはDPCにX、  prcdを読み取らせるコマンドは、制御シグナル(Activating U serSystem)を生成するアプリケーションコンソール206に起因する 。第23図の分散プロセス制御装置(DPC)は、3つの種別の処理に利用可能 である。その内の1つはPARタイプであり、本発明の第2の実施例に関係する ものである。残り2つは第1の実施例に関して既に説明したGRPおよびMDL である。PARタイプのプログラミング決定強調はセグメント236に示す。他 方、MDLおよびGRPのプロセスタイプの決定強調はセグメント238および 240240にそれぞれ示す。第23図に示すセグメント236,238および 240は、それぞれ、プログラミングセグメント232.234.242を共用 する。
セグメント232は、制御シグナル208に応答して、X、 PRCDプログラ ムを読み取り、当業者にとって周知の方法で、依存性マトリックスを、リンクさ れたプロセス初期設定および制御情報を用いて構成する。セグメント234が完 了すると、第23図のステップパイステツブシ−ケンスがセグメント234に移 行する。
プログラミングセグメント234は、バフオームされるプロセスのタイプ(PA R,GRPおよびMDL)を検査し、ついで、PARタイプに対するセグメント 236. GRPタイプに対するセグメント23g、 MDLタイプに対するセ グメント240に移行する。本発明の第2の実施例は、主に、セグメント236 に示すPARプロセスタイプに関係する。
セグメント236は、(i) SAG(SIMD)処理、(ii)バイブライン 処理、(Lit) MIMD処理に分けられる。
SAG(SIMD)処理は、第20図および第21a図を参照して既に説明した が、セグメント236の上部に示すプログラム強調を有する。SAG(SIMD )並行可能として示されたセグメント236のSAGプロセスは、4つの機能を 果たす。第1の機能(a)は、バフオームされているプログラム(例えば、FR ACTAL)へのワーキングコンピュータ(WSI、、、、、WSk)の割振り を決定する。そのプロセス(SAG)が、そのプロセスに割り振られたプロセッ サ(wsi、、、、、wsk)を有する場合、SAGプロセスはこのようなプロ セッサを用いるが、そうでない場合は、SAGプロセスは、DFLJBに含まれ る情報を探索して決定し、ついで、最も能力のあるプロセッサ(10、WSI、 、、、、WSk )を用いる。この選択されたコンピュータは、SAGプロセス をホストするものである。そして、セグメント236は(b) DFLJBテー ブルから、FRACTALのようなバフオームされているプログラムの関数名を 得、その特定のプログラムに関係するタプル空間の対応する名前を得る。そして 、セグメント236は(c)第11図を参照して既に説明した2つのタプル空間 デーモンを、呼び出しているSAGプロセッサとして供するホストコンピュータ に割り振る。最後に、(c)セグメント236のSAGプログラムは、名前を付 けたプログラム(例えば、FRACTAL)を実行するため、どのワーキングコ ンピュータWSI、、、、、WSkを割り振るかを決定する。(d)が完了する と、SAGプログラムはセグメント242に移行する。
セグメント242は全ての初期設定レコードを第6図に示すネットワーク内の全 てのコンピュータ(10、WSI、、、、、WSk )に供給する。そして、セ グメント242は第20図および第21a図を参照して既に説明した1つ以上の プロセスの実行を開始する。記載しているプロセス(SAG)であって、コンピ ュータ (10、WSI、、、、。
WSk )以外のコンピュータを用いるプロセス(SAG)に対して、セグメン ト242はSAGプロセスを実行するのに割振られた1つ以上のワーキングコン ビエータ(WSI、、、、JSk)にそれぞれ含まれる1つ以上のRCIDに、 実行可能なもの(実行可能なプログラム)を送信する。バフオームされているプ ロセスがホストコンピュータのみにより行われるか、あるいは、ネットワークフ ァイルシステムがある場合は、実行可能なものはRCIDに送信されない。SA Gプロセスに対して、実行可能なものは個々のRCIDに送信され、個々のRC IDは第19図に示すユーザプロセス216を開始する。そして、ユーザプロセ ッサ216は同時に並行処理アプリケーションの一部であって、バフオームされ る部分を実行し、その完了時に、セグメント246内に示されるIPCパターン を備えたリモート終了呼び出しを送信する。そして、この終了呼び出は第23図 に示すセグメント248のエントリ位置に経路指定される。
セグメント248はその終了呼び出しを受信すると、既に説明した順次従属性を 修正し、ステップバイステップ進行をセグメント234に戻し、次のタスクの割 振りを待つ。その上、セグメント23G、、、、、248のステップバイステッ プ進行を、受信されたそれぞれ新しいタスクに応答して繰り返す。
本発明の実施は、計算集中プログラミングに対する並行処理を行う第2の実施例 に提供する。このようなプログラミングの実行はユーザがアプリケーションコン ソール206を介してプログラム名、例えば、FRACTALを入力するだけで 開始される。本発明の実施では、1つのホストコンピュータlOと協同して、6 つのワーキング処理コンピュータ(WSI、、、、、WSk)を用いることによ り、全てのコンピュータの能力が同一であるとした場合、FRACTALのよう な計算集中プログラムの実行に通常かかる実行時間が6倍だけ短縮される。
本発明の第1および第2の実施例は、多くのアプリケーションに対するディジタ ル処理システムとして供することができる。1つのこのようなアプリケーション は、レーダおよびソナーアプリケーションで用いられるプロセッサのようなリア ルタイムシグナルプロセッサである。
リアルタイムシグナルプロセッサ リアルタイムシグナルプロセッサは特殊目的コンピュータである。データが連続 的に流れるため、慣習的には、バイブラインアーキテクチャを用いて計算速度の スピードアップを図っている。全ての種別の並行構成、すなわち、MIMD、  SIMDおよびバイブラインは、主に第14図ないし第23図を参照して説明し たが、これらの並行構成を用いて、より性能の高いシグナルプロセッサを作成す ることができることが現在認識されている。本発明は、スケーラプルでカスタム 化可能なシグナルプロセッサを設計し、インプリメントするシステムおよび方法 を提供する。
このようなシグナルプロセッサに対して、第6図を参照して既に説明したように 複数異種CPUであって、ローカルメモリを有するCPUは、高速バス16を介 して、周辺装置の複数I10ボートに接続されている。そのローカルメモリのサ イズは、少なくとも2つの粗リアルタイムプロセスに充分適合させるべきである 。
第4図および第16図を参照して説明したようなコンフィギュレータ(C3Lコ ンパイラ)を導入し、既に説明したプロセス間通信パターン(IPC)と、リア ルタイム処理の要求に適応した制御データ(X、 Prcd)とを生成すること ができる。ハードリアルタイム要件、すなわち、時間測定は絶対(ハード)値を 供給しなければならないという要件を有するシグナルプロセッサに対して、コン フィギュレータを用いて準最適プログラム区分化とプロセッサ割振りを識別する 。一度、区分および割振りが見つけ出されると、事前に区分されたプロセスは全 てリコードされ、準最適プログラムを形成する。IPCパターンおよび従属性マ トリックスを生成したコンフィギュレータは、ハードコード化され、最適に区分 されたプログラムにされる。ソフト(非絶対)タイム要件を有するシグナルプロ セッサに対して、人件費を軽減するため、リコードブロセスをスキップさせる。
リアルタイムシグナルプロセッサデーモン各プロセッサ装置は、第6図を参照し て説明したようなCPUおよびローカルメモリを含み、第2図および第8図で説 明したような機能であって、RCIDおよびPIMDと同様の機能を提供するこ とができるプログラムを含み、同様に、最小機能スケジュラ(First−In −First−Out)を含む。この場合のRCIDプログラムはリアルタイム プロセスをロードし、そのリアルタイムプロセスをプロセスリストに付加するも のである。この場合のPIMDサーバはCPU ID、割り込みベクトル索引、 アプリケーションボート割振りをグループ化する。最小機能スケジュラ(FIF O)はfCPUごとの)各プロセスに関連するソフト割り込み時に待ち状態にな る。(CPUごとの)各プロセスリストはリアルタイムプロセスの到着によりセ ットされる。スケジュラ(FIFO)はcPUの制御をプロセスリスト上の第1 のプロセスに転送する。それが完了した後、リアルタイムプロセスはその制御を プロセスリスト上の次のプロセスに転送する。その後、プロセスリストが空にな るまで繰り返す。全てのプロセスはその起動からその終了段階までcPU全体を 占有する。リアルタイム処理アプリケーションに対して、各CPU (第6図) 10、WSI、、、、、WSk)は入カシグーJ−ルシーケンスに関連するデー タ処理に供されるのが好ましい。
リアルタイムシグナルプロセッサ プロセス+ opc 分散プロセス制御装置(DPC)は第23図を参照して説明したものと同様であ り、シグナルプロセッサを制御し、第17図で説明したものと同様のX、 Pr cdに従ってサブタスク調整を行う。リアルタイム処理に特に適合するX、 P rcdを配置してDPCの一部を形成するのが好ましい。また、CPUのうちの 1つをDPCをサービスするのに供させるべきである。
リアルタイムシグナルプロセッサタプル六 デーモンタプル空間デーモンは各C PUでオペレートするようにアクションする。タプル空間デーモンは他のCPU からの要求を受信し、そのタプルをそのローカルメモリを介して操作する。各タ プル空間サーバの使用は1つの仮想ベクトルプロセッサが存在することを示す。
1つのCPUを各タプル空間サーバに供させるべきである。供されたタプル空間 CPUの数はリアルタイムプロセッサによりバフオームされているアプリケーシ ョンにより決定される。複数タプル空間CPU(および関連するワーカCPU) を用いて複数のバイブラインされた仮想ベクトルプロセッサを形成することがで きる。
1アルタイムシグナルプロセツサ 舌5′ ライブラリ 第19図を参照して説明したような言語注入ライブラリ(LIL)は、事前にプ ログラムされたコードを、open/put/get/read/closeタ プル空間と、open/read/write/closeリモート通信ボート とに対して含む。そのライブラリをカスタマイゼーションプロセスで用いて、準 最適プロセス区分と、リアルタイムプロセッサのプロセッサ割振りを決定する。
一度、準最適が見つけ出されると、言語注入ルーチンがコードセグメントとして リアルタイムプロセスに物理的に含まれる。
このアプリケーションに対して、第1O図を参照して説明したメイルボックスデ ーモンが、また、言語注入ライブラリ(LIL)の一部、従って、リアルタイム プロセスの一部になるのが好ましい。
リアルタイムシグナル シグナル処理アプリケーションが第1の区分化されたものにより行われ、SIM D、 MINDおよびバイブラインコンポーネントを形成する。この区分化を、 上述した技術的な記事”Parallizing ’5catter−And− Gather’Application Using )leterogene ous NetworkWorkstations”のような方法で行うことが できる。一般的に言うと、SIMDコンポーネントは速度の点で最も良< 、  MIMDコンポーネントは速度の点でがなり良いと判定されている。バイブライ ンは最も好ましくない。SIMDコンポーネントを分散収束(SAG)要素とし て視ることができる。ここで用いられているような”5AGable”は、単一 のサブタスクの繰り返しアプリケーションに転送させることができる計算である 。例えば、2つのマトリックスの乗算を、個々のベクトルの内積が繰り返された アプリケーションに転送させることができる。ベクトル化に対する現行の技法を 、”5AGable”コンポーネントを識別し、最大にするために採用すること ができる。MIMDコンポーネントはシグナル処理アプリケーションのデータフ ロー分析から現れる。プロセッサ割振りは、独立のプロセスを差CPU上でラン させることができることを考慮すべきである。最後に、バイブラインは基礎アー キテクチャの最も普通の順番(最も遅延が小さい)でデータフローをストリーム ラインにすることにより形成される。パイプライン技法の最も良い結果に対して 、同様の時間遅延の段を形成するためにプロセッサ割振りを行うのが好ましい。
本発明の実施例をリアルタイムシグナルプロセッサに用いることができることを 今は認識すべきである。
リアルタイムアプリケーションを、SIMD (SAG) 、 MIMDおよび バイブラインに対して、ここで記載したような並行処理技法により行うことがで きる。
ハードウェアアーキテクチャは単一のストリームラインマルチプロセッサであり 、そのストリームラインマルチプロセッサを多次元にスケールし、そのパフオー ムを最適化することができる。プロセッサ要件は一様であり、1つのシグナルプ ロセッサに対して多数−市販のCPUチップを用いることができる。
本発明は、その発明の本質的な属性から逸脱することな(、他の特定の形式で具 現できる。本発明の範囲は、上述した実施態様よりはむしろ請求の範囲を参照す べきである。
FIG、 1 FIG、 2 FIG、3 FIG、6 FIG、 4 FIG、 9 FIG、lo FIG、II FIG、 12 FIG、 +3 FIG、 16 FIG、 [7 各デOセ入区月し7 φ タイプ: PAR,MDL or GRP・初IJI級文詣1眼 : :タイプ入力/狐力;牧戸里井晩、フメント・ タト帥wj御 FIG、I9 オ目1独立プロセス FIG、 22 国際調査報告 フロントページの続き (81)指定国 EP(AT、BE、CH,DE。
DK、 ES、 FR,GB、 GR,IT、 LU、 NL、 SE)、0A (BF、BJ、CF、CG、CI、CM、GA、 GN、 ML、 MR,SN 、 TD、 TG)、 AU、 BB、 BG、 BR,CA、 C3,FI、  HU、JP、 KP。
KR,LK、 MC,MG、 MN、 MW、 No、 PL、 RO,SD、 SU、US

Claims (21)

    【特許請求の範囲】
  1. 1.複数のターゲットコンピュータに複数のサブプログラムを含むアプリケーシ ョンプログラムを実行するシステムであって、それぞれ、 (a)複数のターゲットコンピュータであって、(i)少なくとも1つの通信チ ャネルと、(ii)該少なくとも1つの通信チャネルを介してアクセス可能な記 憶空間と、 (iii)該記憶空間内の言語注入ライブラリであって、各言語注入は外部プロ セッサ間制御コマンドに応答して前記ターゲットコンピュータにより実行可能で あり、事前に定義されたデータオブジェクトのオペレーションを容易にするサブ ルーチンである言語注入ライブラリと を含心ターゲットコンピュータと、 (b)前記複数のターゲットコンピュータに動作上接続された少なくとも1つの ホストコンピュータであって、 (i)前記ホストコンピュータからのデータおよび命令を受け取るターゲットコ ンピュータの少なくともサブセットを活動状態にする命令のセットである計算環 境指定を処理する手段と、 (ii)前記アプリケーションプログラムを処理する手段であって、前記アプリ ケーションプログラムがターゲットコンピュータのサブセットのうちの少なくと も1つのサブセット上で実行可能な少なくとも1つのサブプログラムを含み、前 記アプリケーションプログラムがターゲットコンピュータ内の少なくとも1つの ライブラリ注入を活動状態にする少なくとも1つのプロセッサ間制御コマンドを さらに含み、前記サブプログラムを変更することなく、互換性のあるコンパイラ を有する任意のターゲットコンピュータ内で、前記サブプログラムをコンパイル することができ、かつ実行することができる手段と、 (iii)前記サブプログラムを前記少なくとも1つのホストコンピュータから 前記少なくとも1つのターゲットコンピュータに転送し、前記ホストコンピュー タからのシグナルに応答して前記ターゲットコンピュータ内でコンパイルし、実 行する手段と を含むホストコンピュータと を備えたことを特徴とするシステム。
  2. 2.メイルボックスメカニズムの1つ以上のターゲットコンピュータ内でオペレ ーションするのに適合した言語注入を有する請求の範囲第1項に記載のシステム 。
  3. 3.外部ファイルにアクセスするメカニズムを前記ターゲットコンピュータ内で オペレーションする言語注入を有する請求の範囲第1項に記載のシステム。
  4. 4.前記ターゲットコンピュータ間で少なくとも1つのタプル空間をオペレーシ ョンする言語注入を有する請求の範囲第1項に記載のシステム。
  5. 5.前記ターゲットコンピュータ間でメイルボックス、外部ファイル、およびタ プル空間をオペレーションする言語注入を有する請求の範囲第1項に記載のシス テム。
  6. 6.前記少なくとも1つのホストコンピュータのソフトウェア特性は、前記複数 のターゲットコンピュータのうちの少なくとも1つのターゲットコンピュータ内 で具現されることを特徴とする請求の範囲第1項に記載のシステム。
  7. 7.各ターゲットコンピュータは前記少なくとも1つの通信チャネルに関連する デーモンを含み、前記デーモンは前記少なくとも1つの通信チャネルを前記ホス トコンピュータからの命令に対してモニタするプログラムであり、また、前記ア プリケーションプログラム内でその後に使用するために、当該システムで他の通 信チャネルを宣言するプログラムであることを特徴とする請求の範囲第1項に記 載のシステム。
  8. 8.前記アプリケーションプログラムはリアルタイム処理に適合することを特徴 とする請求の範囲第1項に記載のシステム。
  9. 9.複数のサブプログラムを有するアプリケーションプログラムを、少なくとも 1つのホストコンピュータと複数のターゲットコンピュータの間で実行する仮想 コンピュータを作成するシステムであって、前記ホストコンピュータ内のコンフ ィギュレータであって、特定のターゲットコンピュータでの個々のサブプログラ ムの所要の実行に関係する命令であるアプリケーションソフトウェア指定をコン パイルするのに適合させたコンフィギュレータと、 各ターゲットコンピュータに関連したデーモン手段であって、前記ターゲットコ ンピュータ外の命令であって、前記ターゲットコンピュータにアクセスする命令 があったとき分岐するようにした少なくとも1つのソフトウェアループを含み、 少なくとも1つのサブプログラムを前記ターゲットコンピュータ内で実行させる ことができるデーモン手段と、 各ターゲットコンピュータに関連する前記デーモン手段を前記アプリケーション ソフトウェア指定に応答して活動状態にする分散プロセス制御装置と、各ターゲ ットコンピュータ内の言語注入ライブラリであって、各言語注入が前記ターゲッ トコンピュータ外の命令に応答して前記ターゲットコンピュータ内で実行可能で あり、前記ターゲットコンピュータ間でのデータの転送を容易にするサブルーチ ンであり、よって、サブプログラムを変更することなく、互換性のあるコンパイ ラを有する任意のターゲットコンピュータ内でサブプログラムをコンパイルしか つ実行することができる言語注入ライブラリと を備えたことを特徴とするシステム。
  10. 10.前記言語注入ライブラリは、アプリケーションプログラムの実行に付随す るデーモンを生成するソフトウェア手段を含み、データを複数のターゲットコン ピュータの間で転送させることを特徴とする請求の範囲第9項に記載のシステム 。
  11. 11.アプリケーションプログラムの実行に付随してデーモンを作成するように した前記ソフトウェア手段は、メイルボックスを作成する手段を含むことを特徴 とする請求の範囲第10項に記載のシステム。
  12. 12.アプリケーションプログラムの実行に付随してデーモンを作成するように した前記ソフトウェア手段は、タプル空間を作成する手段を含むことを特徴とす る請求の範囲第10項に記載のシステム。
  13. 13.前記ターゲットコンピュータのサブセットは名前抽象が必須であり、前記 ターゲットコンピュータの別のサブセットはポート抽象が必須であり、ポート抽 象と名前抽象とを前記ターゲットコンピュータ間で調整する手段をさらに含むこ とを特徴とする請求の範囲第9項に記載のシステム。
  14. 14.前記アプリケーションプログラムはリアルタイム処理に適合することを特 徴とする請求の範囲第9項に記載のシステム。
  15. 15.複数のターゲットコンピュータの間で実行される複数のサブプログラムを 有するアプリケーションプログラムを実行する方法であって、 所要のターゲットコンピュータに関係するプロセッサ間コマンドあって、種々の サブプログラムを実行するためのコマンドを前記アプリケーションプログラムに 入力するステップと、 外部命令があったとき分岐するようにした少なくとも1つのソフトウェアループ を備え、前記ターゲットコンピュータ内でコンパイルおよび実行するために前記 ターゲットコンピュータにサブプログラムをロードすることを許可するデーモン 手段を、前記各ターゲットコンピュータに設けるステップと、 前記ターゲットコンピュータにより実行可能な複数のサブプログラムを備え、前 記サブプログラムを変更することなく、ターゲットコンピュータ間でのデータの 転送を容易にするようにした言語注入ライブラリを、各ターゲットコンピュータ 内に設け、前記サブルーチンをプロセッサ間コマンドに応答して実行するステッ プと を備えたことを特徴とする方法。
  16. 16.前記ホストコンピュータが命令を少なくとも1つのターゲットコンピュー タに送信し、前記ターゲットコンピュータでデーモン手段を活動状態にし、前記 言語注入ライブラリの少なくとも1つのサブルーチンが前記ターゲットコンピュ ータにより実行されるステップをさらに備えたことを特徴とする請求の範囲第1 5項に記載の方法。
  17. 17.少なくとも1つのターゲットコンピュータの言語注入ライブラリの少なく とも1つのサブルーチンを活動状態にすることにより、メイルボックスを作成す るステップをさらに備えたことを特徴とする請求の範囲第16項に記載の方法。
  18. 18.少なくとも1つのターゲットコンピュータの言語注入ライブラリからの少 なくとも1つのサブルーチンにより、タプル空間を作成するステップをさらに備 えたことを特徴とする請求の範囲第14項に記載の方法。
  19. 19.前記アプリケーションプログラムはリアルタイム処理に適合していること を特徴とする請求の範囲第15項に記載の方法。
  20. 20.複数のターゲットコンピュータの間に複数のサブプログラムを含む計算集 中アプリケーションプログラムを実行するシステムであって、 (a)データエントリ装置と、 (b)複数のターゲットコンピュータであって、それぞれ、 (i)少なくとも1つの通信チャネルと、(ii)該少なくとも1つの通信チャ ネルを介してアクセス可能な記憶空間と、 (iii)該記憶空間内の言語注入ライブラリであって、各注入が前記複数のタ ーゲットコンピュータでデータを制御するルーチンとして供する言語注入ライブ ラリと、 (iv)前記記憶空間内の分散機能ライブラリであって、前記言語注入ライブラ リの前記言語注入と協働する分散機能ライブラリであり、前記分散機能ライブラ リは前記システムにより実行される前記アプリケーションプログラムとして供さ れる計算集中プログラムに対するサブルーチンを備え、前記計算集中プログラム および前記協働注入は、ともに、前記データエントリ装置により実行が開始され る分散機能ライブラリと を含むターゲットコンピュータと、 (c)前記複数のターゲットコンピュータに動作上接続される少なくとも1つの コンピュータであって、(i)コンピュータ環境指定を処理する手段であって、 コンピュータ環境指定が前記ホストコンピュータからのデータおよび命令を活動 状態にする命令のセットである手段と、 (ii)前記計算集中アプリケーションプログラムを処理する手段であって、前 記計算集中アプリケーションプログラムがターゲットコンピュータのサブセット の少なくとも1つのサブセット上で実行可能な少なくとも1つのサブプログラム であって、前記計算集中プログラムをその内容を変えることなく、互換性のある コンパイラを有する任意のターゲットコンピュータでコンパイルし実行させるこ とができるサブプログラムである手段と、 (iii)前記計算集中アプリケーションプログラムのサブプログラムを少なく とも1つのホストコンピュータから少なくとも1つのターゲットコンピュータに 転送し、前記データエントリ装置からのコマンドシグナルに応答してターゲット コンピュータでコンパイルし実行する手段と を含むコンピュータと を備えたことを特徴とするシステム。
  21. 21.計算集中アプリケーションプログラムはリアルタイム処理に適合している ことを特徴とする請求の範囲第20項に記載のシステム。
JP3514453A 1990-07-20 1991-07-19 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム Pending JPH06502941A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US55692090A 1990-07-20 1990-07-20
US556,920 1990-07-20
PCT/US1991/005116 WO1992001990A1 (en) 1990-07-20 1991-07-19 System for high-level virtual computer with heterogeneous operating systems

Publications (1)

Publication Number Publication Date
JPH06502941A true JPH06502941A (ja) 1994-03-31

Family

ID=24223355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3514453A Pending JPH06502941A (ja) 1990-07-20 1991-07-19 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム

Country Status (6)

Country Link
US (1) US5381534A (ja)
EP (1) EP0540680A4 (ja)
JP (1) JPH06502941A (ja)
AU (1) AU8449991A (ja)
CA (1) CA2087735A1 (ja)
WO (1) WO1992001990A1 (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845078A (en) * 1992-04-16 1998-12-01 Hitachi, Ltd. Network integrated construction system, method of installing network connection machines, and method of setting network parameters
US5687315A (en) * 1992-04-16 1997-11-11 Hitachi, Ltd. Support system for constructing an integrated network
JPH0628322A (ja) * 1992-07-10 1994-02-04 Canon Inc 情報処理装置
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
JP3370704B2 (ja) * 1992-10-12 2003-01-27 株式会社日立製作所 通信制御方法
JPH06161919A (ja) * 1992-11-25 1994-06-10 Fujitsu Ltd メッセージ制御方式
JPH06301555A (ja) * 1993-02-26 1994-10-28 Internatl Business Mach Corp <Ibm> マイクロカーネル上の複数の共存オペレーティング・システム・パーソナリティ用のシステム
US5848234A (en) * 1993-05-21 1998-12-08 Candle Distributed Solutions, Inc. Object procedure messaging facility
JP2814880B2 (ja) * 1993-06-04 1998-10-27 日本電気株式会社 異なる命令特性を持つ複数のcpuによって構成される計算機システムの制御装置
JP3670303B2 (ja) * 1993-09-01 2005-07-13 富士通株式会社 データ変換方法及びデータ変換装置
US6038586A (en) * 1993-12-30 2000-03-14 Frye; Russell Automated software updating and distribution
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
US5764949A (en) * 1994-09-29 1998-06-09 International Business Machines Corporation Query pass through in a heterogeneous, distributed database environment
US5588150A (en) * 1994-09-29 1996-12-24 International Business Machines Corporation Push down optimization in a distributed, multi-database system
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
US5771381A (en) * 1994-12-13 1998-06-23 Microsoft Corporation Method and system for adding configuration files for a user
US5742829A (en) * 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5751972A (en) * 1995-03-28 1998-05-12 Apple Computer, Inc. System for run-time configuration of network data transfer paths
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5734865A (en) * 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US6584568B1 (en) 1995-07-31 2003-06-24 Pinnacle Technology, Inc. Network provider loop security system and method
US6061795A (en) * 1995-07-31 2000-05-09 Pinnacle Technology Inc. Network desktop management security system and method
US5694537A (en) * 1995-07-31 1997-12-02 Canon Information Systems, Inc. Network device which selects a time service provider
EP0850545A1 (de) * 1995-09-15 1998-07-01 Siemens Aktiengesellschaft Ablaufumgebungssystem für service-applikationen eines kommunikationsnetzes
DE19536649A1 (de) * 1995-09-30 1997-04-03 Sel Alcatel Ag Verfahren zur Kopplung von Datenbearbeitungseinheiten, Verfahren zum Steuern einer Vermittlungsstelle, Datenbearbeitungseinheit, Steuerung und Vermittlungsstelle
US6714945B1 (en) 1995-11-17 2004-03-30 Sabre Inc. System, method, and article of manufacture for propagating transaction processing facility based data and for providing the propagated data to a variety of clients
US6122642A (en) * 1996-01-18 2000-09-19 Sabre Inc. System for propagating, retrieving and using transaction processing facility airline computerized reservation system data on a relational database processing platform
JPH09168009A (ja) * 1995-12-15 1997-06-24 Hitachi Ltd ネットワーク運用情報設定システム
US5797010A (en) * 1995-12-22 1998-08-18 Time Warner Cable Multiple run-time execution environment support in a set-top processor
US6345311B1 (en) * 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
US5774728A (en) * 1995-12-27 1998-06-30 International Business Machines Corporation Method and system for compiling sections of a computer program for multiple execution environments
US5761512A (en) * 1995-12-27 1998-06-02 International Business Machines Corporation Automatic client-server complier
US5734820A (en) * 1996-03-11 1998-03-31 Sterling Commerce, Inc. Security apparatus and method for a data communications system
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US6233704B1 (en) * 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5903873A (en) * 1996-05-31 1999-05-11 American General Life And Accident Insurance Company System for registering insurance transactions and communicating with a home office
US5881227A (en) * 1996-06-17 1999-03-09 International Business Machines Corporation Use of daemons in a partitioned massively parallel processing system environment
US5941943A (en) * 1996-06-17 1999-08-24 International Business Machines Corporation Apparatus and a method for creating isolated sub-environments using host names and aliases
US5854896A (en) * 1996-06-17 1998-12-29 International Business Machines Corporation System for preserving logical partitions of distributed parallel processing system after re-booting by mapping nodes to their respective sub-environments
US5768532A (en) * 1996-06-17 1998-06-16 International Business Machines Corporation Method and distributed database file system for implementing self-describing distributed file objects
US5799149A (en) * 1996-06-17 1998-08-25 International Business Machines Corporation System partitioning for massively parallel processors
US5956728A (en) * 1996-07-17 1999-09-21 Next Software, Inc. Object graph editing context and methods of use
US20040139049A1 (en) * 1996-08-22 2004-07-15 Wgrs Licensing Company, Llc Unified geographic database and method of creating, maintaining and using the same
US5781703A (en) * 1996-09-06 1998-07-14 Candle Distributed Solutions, Inc. Intelligent remote agent for computer performance monitoring
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US5881269A (en) * 1996-09-30 1999-03-09 International Business Machines Corporation Simulation of multiple local area network clients on a single workstation
AT1751U1 (de) * 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US6611878B2 (en) 1996-11-08 2003-08-26 International Business Machines Corporation Method and apparatus for software technology injection for operating systems which assign separate process address spaces
US7926097B2 (en) * 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US20050180095A1 (en) 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US6732141B2 (en) 1996-11-29 2004-05-04 Frampton Erroll Ellis Commercial distributed processing by personal computers over the internet
US7024449B1 (en) * 1996-11-29 2006-04-04 Ellis Iii Frampton E Global network computers
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US7805756B2 (en) * 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7634529B2 (en) 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US7035906B1 (en) 1996-11-29 2006-04-25 Ellis Iii Frampton E Global network computers
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
AU6586898A (en) * 1997-03-21 1998-10-20 University Of Maryland Spawn-join instruction set architecture for providing explicit multithreading
US6065116A (en) * 1997-05-07 2000-05-16 Unisys Corporation Method and apparatus for configuring a distributed application program
US6289388B1 (en) 1997-06-02 2001-09-11 Unisys Corporation System for communicating heterogeneous computers that are coupled through an I/O interconnection subsystem and have distinct network addresses, via a single network interface card
US6473803B1 (en) 1997-06-02 2002-10-29 Unisys Corporation Virtual LAN interface for high-speed communications between heterogeneous computer systems
US6016394A (en) * 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US5911073A (en) * 1997-12-23 1999-06-08 Hewlett-Packard Company Method and apparatus for dynamic process monitoring through an ancillary control code system
US6076174A (en) * 1998-02-19 2000-06-13 United States Of America Scheduling framework for a heterogeneous computer network
US6272593B1 (en) * 1998-04-10 2001-08-07 Microsoft Corporation Dynamic network cache directories
US6148437A (en) * 1998-05-04 2000-11-14 Hewlett-Packard Company System and method for jump-evaluated trace designation
US6164841A (en) * 1998-05-04 2000-12-26 Hewlett-Packard Company Method, apparatus, and product for dynamic software code translation system
US6189141B1 (en) 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
US6233619B1 (en) 1998-07-31 2001-05-15 Unisys Corporation Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems
US7127701B2 (en) * 1998-09-18 2006-10-24 Wylci Fables Computer processing and programming method using autonomous data handlers
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6542994B1 (en) 1999-04-12 2003-04-01 Pinnacle Technologies, Inc. Logon authentication and security system and method
US6550062B2 (en) 1999-04-30 2003-04-15 Dell Usa, Lp System and method for launching generic download processing in a computer build-to-order environment
US6757744B1 (en) 1999-05-12 2004-06-29 Unisys Corporation Distributed transport communications manager with messaging subsystem for high-speed communications between heterogeneous computer systems
US7280995B1 (en) * 1999-08-05 2007-10-09 Oracle International Corporation On-the-fly format conversion
US6732139B1 (en) * 1999-08-16 2004-05-04 International Business Machines Corporation Method to distribute programs using remote java objects
JP5220974B2 (ja) 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
JP4475614B2 (ja) * 2000-04-28 2010-06-09 大正製薬株式会社 並列処理方法におけるジョブの割り当て方法および並列処理方法
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
US7251693B2 (en) * 2001-10-12 2007-07-31 Direct Computer Resources, Inc. System and method for data quality management and control of heterogeneous data sources
US8312117B1 (en) 2001-11-15 2012-11-13 Unisys Corporation Dialog recovery in a distributed computer system
NZ535803A (en) * 2002-03-06 2005-12-23 Sidereus Group User controllable computer presentation of interfaces and information selectively provided via a network
US20030177166A1 (en) * 2002-03-15 2003-09-18 Research Foundation Of The State University Of New York Scalable scheduling in parallel processors
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US7454749B2 (en) * 2002-11-12 2008-11-18 Engineered Intelligence Corporation Scalable parallel processing on shared memory computers
JP4487479B2 (ja) * 2002-11-12 2010-06-23 日本電気株式会社 Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
CA2525578A1 (en) * 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
NL1024464C2 (nl) * 2003-10-06 2005-04-07 J A A A Doggen Beheer B V Werkwijze, ontwerpprogramma en uitvoeringsprogramma voor het samenstellen en uitvoeren van een computerapplicatie, alsmede gegevensdrager voorzien van ontwerpprogramma en gegevensdrager voorzien van uitvoeringsprogramma.
US7421575B2 (en) * 2004-07-16 2008-09-02 Hewlett-Packard Development Company, L.P. Configuring a physical platform in a reconfigurable data center
US20060015866A1 (en) * 2004-07-16 2006-01-19 Ang Boon S System installer for a reconfigurable data center
US20060015589A1 (en) * 2004-07-16 2006-01-19 Ang Boon S Generating a service configuration
US8108878B1 (en) * 2004-12-08 2012-01-31 Cadence Design Systems, Inc. Method and apparatus for detecting indeterminate dependencies in a distributed computing environment
US8806490B1 (en) 2004-12-08 2014-08-12 Cadence Design Systems, Inc. Method and apparatus for managing workflow failures by retrying child and parent elements
US8244854B1 (en) 2004-12-08 2012-08-14 Cadence Design Systems, Inc. Method and system for gathering and propagating statistical information in a distributed computing environment
US7979870B1 (en) 2004-12-08 2011-07-12 Cadence Design Systems, Inc. Method and system for locating objects in a distributed computing environment
US7644058B2 (en) * 2006-04-25 2010-01-05 Eugene Haimov Apparatus and process for conjunctive normal form processing
US20090019258A1 (en) * 2007-07-09 2009-01-15 Shi Justin Y Fault tolerant self-optimizing multi-processor system and method thereof
US20090119441A1 (en) * 2007-11-06 2009-05-07 Hewlett-Packard Development Company, L.P. Heterogeneous Parallel Bus Switch
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US20100318973A1 (en) * 2009-06-10 2010-12-16 Tino Rautiainen Method and apparatus for providing dynamic activation of virtual platform sub-modules
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
US9465717B2 (en) * 2013-03-14 2016-10-11 Riverbed Technology, Inc. Native code profiler framework
US11188352B2 (en) 2015-11-10 2021-11-30 Riverbed Technology, Inc. Advanced injection rule engine
US11892966B2 (en) * 2021-11-10 2024-02-06 Xilinx, Inc. Multi-use chip-to-chip interface

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3643227A (en) * 1969-09-15 1972-02-15 Fairchild Camera Instr Co Job flow and multiprocessor operation control system
US4031512A (en) * 1975-05-29 1977-06-21 Burroughs Corporation Communications network for general purpose data communications in a heterogeneous environment
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
JPS5938870A (ja) * 1982-08-30 1984-03-02 Sharp Corp 電子式計算機
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
US4774655A (en) * 1984-10-24 1988-09-27 Telebase Systems, Inc. System for retrieving information from a plurality of remote databases having at least two different languages
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
IT1184015B (it) * 1985-12-13 1987-10-22 Elsag Sistema multiprocessore a piu livelli gerarchici
US4720782A (en) * 1986-01-13 1988-01-19 Digital Equipment Corporation Console unit for clustered digital data processing system
JPS62165242A (ja) * 1986-01-17 1987-07-21 Toshiba Corp プロセツサ
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4839801A (en) * 1986-11-03 1989-06-13 Saxpy Computer Corporation Architecture for block processing computer system
US4935870A (en) * 1986-12-15 1990-06-19 Keycom Electronic Publishing Apparatus for downloading macro programs and executing a downloaded macro program responding to activation of a single key
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems

Also Published As

Publication number Publication date
CA2087735A1 (en) 1992-01-21
EP0540680A1 (en) 1993-05-12
EP0540680A4 (en) 1993-11-18
AU8449991A (en) 1992-02-18
US5381534A (en) 1995-01-10
WO1992001990A1 (en) 1992-02-06

Similar Documents

Publication Publication Date Title
JPH06502941A (ja) 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム
Ortega-Arjona Patterns for parallel software design
US6256704B1 (en) Task management for data accesses to multiple logical partitions on physical disk drives in computer systems
Shu et al. Chare kernel—a runtime support system for parallel computations
Barbacci et al. Programming at the processor-memory-switch level
Stankovic et al. The spring system: Integrated support for complex real-time systems
Quinn et al. Compiling C* programs for a hypercube multicomputer
Bui et al. Weaver: integrating distributed computing abstractions into scientific workflows using python
L'Ecuyer et al. A process-oriented simulation package based on Modula-2
Feldman et al. System Support for the Stanford Hand-Eye System.
Grimshaw et al. Mentat
Agha et al. An actor-based framework for heterogeneous computing systems
Farrell et al. A concurrent computer architecture and a ring based implementation
Lee et al. Partitioning of massive/real-time programs for parallel processing
Schnekenburger The ALDY load distribution system
Baezner et al. US Army ModSim on Jade's timewarp
Miller et al. A software engineering oriented comparison of simulation languages
Crockett et al. System software for the finite element machine
Smith A directly coupled multiprocessing system
Cho Parallel Implementation of Container using Parallel Virtual Machine
Ulm et al. Virtual Parallelism by Self Simulation of the Multiple Instruction Stream Associative Model
Goebel et al. A multi-microprocessor GKS Workstation
Lopez et al. Software environment for implementing engineering applications on MIMD computers
Mel’nikov et al. High Performance Computer System ‘‘Elektronika SSBIS’’
Wong The enterprise executive