JPH09146900A - 並列分散処理システム - Google Patents

並列分散処理システム

Info

Publication number
JPH09146900A
JPH09146900A JP31017395A JP31017395A JPH09146900A JP H09146900 A JPH09146900 A JP H09146900A JP 31017395 A JP31017395 A JP 31017395A JP 31017395 A JP31017395 A JP 31017395A JP H09146900 A JPH09146900 A JP H09146900A
Authority
JP
Japan
Prior art keywords
code
library
processor
virtual
native code
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.)
Granted
Application number
JP31017395A
Other languages
English (en)
Other versions
JP3628782B2 (ja
Inventor
Hideki Yamanaka
英樹 山中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31017395A priority Critical patent/JP3628782B2/ja
Publication of JPH09146900A publication Critical patent/JPH09146900A/ja
Application granted granted Critical
Publication of JP3628782B2 publication Critical patent/JP3628782B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】複数のプロセッサが協調して処理を進める並列
分散処理システムに関し,エキスパート・ユーザに限ら
ず,一般の計算機ユーザに対しても容易で高性能な並列
処理を可能とする環境を提供することを目的とする。 【解決手段】プログラム12を,各プロセッサに依存しな
い仮想コードと各プロセッサに特有のネイティブ・コー
ドとに分離し,仮想コードの実行中にネイティブ・コー
ドの呼び出しを検出したとき,または仮想コードを他の
プロセッサから受信したときに,動的リンク手段14によ
り,ネイティブ・コード・ライブラリ15を動的にリンク
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,複数のプロセッサ
が協調して処理を進める並列分散処理システムに関す
る。
【0002】現在の並列分散処理の環境は,それ自身の
複雑さおよび並列処理のためのプログラミングの困難さ
から一部の専門家の独占物となってしまっているが,単
一のCPUによる処理のボトルネックが顕在化している
現在,一般の計算機ユーザにも容易で高性能な並列処理
を可能とする環境の提供が急務となっている。
【0003】
【発明が解決しようとする課題】複数のプロセッサが協
調して処理を進める並列処理分散システム,特に,LA
N,WAN環境でヘテロジーニァスな複数のプロセッサ
を1クラスタとして協調させながら一つのタスクを並列
分散処理させるようなシステム環境が考えられている。
このような並列処理環境を一般ユーザに提供する際に問
題となるのは,簡易性と習得のし易さとであるが,これ
は性能との間にトレードオフの関係を生ずる。
【0004】従来の技術水準では,性能のために簡易性
をかなりの程度犠牲にするか,または簡易性のために大
幅な性能の低下を甘受せざるを得ない。性能に関し,プ
ロセッサ間のデータ転送の遅延とスループットが問題に
なるが,これは,本質的にはデータ転送の遅延の問題に
還元できる。並列度の高い計算では,転送するデータの
単位が小さく,転送量に関係のない転送回数だけに依存
する遅延が主だからである。転送回数に依存する遅延を
全体として減らすためには,転送するデータをある程度
バッファに蓄積しておいて,まとめて一度に転送する必
要があるが,このバッファの大きさをどの程度にすると
最適であるのかは,因子が複雑に絡み合っているため,
事実上実験してみないことには分からない。
【0005】また,プログラムを並列実行するために
は,それを並列実行の単位に分割しなければならない。
しかし,より小さな単位に分割すればそれだけ多くのC
PUが利用可能になる代わりに,実行の単位が小さくな
ることによる同期のオーバヘッド,コンテキスト・スイ
ッチの増加によるオーバヘッド,データの遅延,データ
転送量の増加,メモリのフラグメンテーションによるペ
ージングの増加等を招くことになり,ここでもまた,ト
レードオフを生じる。
【0006】エンドユーザに対しても並列処理によるプ
ログラムの高速化,大規模化のメリットを享受できるよ
うにすることが望まれているが,現状では,ある程度の
性能を得るためには,エンドユーザでもエキスパート・
ユーザの持つ並列処理の煩雑なノウハウを獲得してプロ
グラムのチューニングをしなければならないという矛盾
に直面する。
【0007】これらの解決の手段として,従来,並列処
理のための高級言語,例えば,手続き型として,Occ
am(A.Burns, PROGRAMMING IN occam 2, Addison-Wes
ley,1988), HPF(High Performance Fortran Foru
m, High Performance FortranLanguage Specification,
1994),関数型として,CLEAN(R.Plasmeijer and
M.van Eekelen, Functional Programming and Paralle
l Graph Rewriting, Addison-Wesley,1993),論理型と
して,PARLOG(T.Conlon, Programmingin PARLO
G, Addison-Wesley,1989)のような高級言語が開発され
ている。
【0008】また,高レベルのライブラリ・インタフェ
ースとして,例えばPVM(A.Geist,A.Beguelin,J.Don
garra,W.Jiang,R.Manchek and V.Sunderam, PVM:Parall
el Virtual Machine - A Users' Guide and Tutorial f
or Networked Parallel Computing -, MIT press,1994
),MPI(Message Passing Interface Forum, MPI:
A Message-Passing Interface Standard, May 5,199
4)が開発されている。
【0009】しかし,高級言語では十分な性能がでない
か,性能を出すためにはエキスパート並みのノウハウが
必要であり,また,高レベルのライブラリは,未だにエ
ンドユーザが使えるようなレベルに達していない。
【0010】他の中間的な解決手段として,比較的低レ
ベルの手続き型の逐次言語と並列処理のための命令言語
を組み合わせる方法(I.Foster, R.Olson and S.Tueck
e, Productive Parallel Programming, Scientific Pro
gramming, Vol.1,pp.51-66, 1992; L.A.Crowl and T.J.
LeBlanc, Parallel Programming with Control Abstrac
tion, ACM Transactions on Programming Languages an
d Systems, Vol.16,No.3,pp.524-576, 1994)が提案さ
れている。
【0011】これらの方法は,全ての面にわたってエン
ドユーザであるのではなく,逐次処理のエキスパートで
あるが並列処理に関しては比較的エンドユーザに近い人
を対象として,低レベルの逐次言語のチューニングと並
列処理のチューニングとを分離し,並列処理のインタフ
ェース部分だけに簡易で画一化されたチューニング・ス
タイルを導入するものである。
【0012】本発明が対象とするシステムは,後者の考
え方にもとづくものであるが,並列処理インタフェース
部分のさらなる画一化とエキスパート・ユーザのための
汎用性とを推進し,逐次処理部分とのインタフェースに
柔軟性を持たせるために,全体を手続き型言語の意味論
で統一することを図っている。
【0013】例えば,ネットワーク上のワークステーシ
ョン群あるいは専用のマルチCPUの並列計算機上で並
列処理プログラムを開発する場合,通常,ワークステー
ションを1台だけ使って,あるいは1台のワークステー
ション上に構築された並列計算機のシミュレータを使っ
て,プログラムを開発するところから始める。また,多
くの場合,過去に開発されたプログラムのためのルーテ
ィンがライブラリ化されているので,利用可能なライブ
ラリが既に存在すれば,それを再利用するところからプ
ログラムの開発を始める。
【0014】このようにしてプログラムの開発が進み,
実際にプログラムを実行して全体のデバッグをする段階
において,従来は,新たに開発したルーティンの部分に
既存のライブラリをリンクしてできるバイナリのコード
を,実行時に全てのワークステーション,あるいは全て
のCPUに毎回転送することを繰り返していた。この方
法では,デバッグを必要としないライブラリの部分まで
デバッグの度に毎回転送することになり,プログラム開
発の効率を下げてしまうという問題があった。また,実
際にプログラムを実行して運用する段階においても,同
様にライブラリの部分を毎回転送するので,プログラム
の起動に掛かる時間が長くなってしまう要因となってい
た。
【0015】特に,ネットワーク上のワークステーショ
ン群を使って処理を行う場合,異なったタイプのワーク
ステーションを使用したいという要求もある。この場
合,一つのアプローチとしては,例えば前述したPV
M,MPI等の並列処理のメッセージ・パッシング・イ
ンタフェースを使って機能単位で逐次処理の部分プログ
ラムを作り,その間を通信によって結び付けて並列処理
させる方法がある。この方法では,各プログラムのネィ
テイブ・コードはワークステーションのタイプごとに違
っていても構わない。しかし,ワークステーションのタ
イプごとに,プログラムをコンパイルしてネイティブ・
コードを作成しなければならず,作業が煩雑になるとい
う欠点がある。
【0016】他のアプローチとしては,仮想コードを設
定して,そのインタプリタを各々のワークステーション
に配して並列処理させる方法がある。この方法は1種類
のコードしか使用しないので,コンパイルその他の作業
が単純であるという利点があるが,仮想コードの実行時
におけるインタプリートにかかるオーバヘッドが大きい
という欠点がある。
【0017】この欠点を克服する方法として,仮想コー
ドからネィティブ・コードを呼び出すインタフェースを
設けて,ネイティブ・コードの部分の実行によってイン
タプリートのオーバヘッドを低減させる方法がある。し
かし,この方法はインタプリタに予め標準的なネイティ
ブ・コード・ライブラリをリンクさせておくものであ
り,ユーザの作成した一般のネイティブ・コードをリン
クして使用できるわけではない。
【0018】本発明は上記問題点の解決を図り,エンド
ユーザが容易に並列分散計算を記述できる環境を提供す
るとともに,仮想コードからの柔軟なネイティブ・コー
ドの利用を可能にすることにより高性能なプログラム実
行環境を実現することを目的としている。
【0019】
【課題を解決するための手段】図1は,本発明の並列分
散処理システムの原理説明図である。図1において,プ
ロセッサ10,10’は,それぞれ仮想コード実行手段
11,11’,ライブラリ・テーブル13,13’,動
的リンク手段14,14’,ネイティブ・コード・ライ
ブラリ15,15’,スケジューラ16,16’を備え
る。プロセッサ10,10’上で動作するプログラム1
2,12’は,各プロセッサ10,10’に共通の書式
(構文)で記述された仮想コードと,各プロセッサ1
0,10’に特有の命令コード群で記述されたネイティ
ブ・コードとからなる。
【0020】本発明では,ネットワーク20上で複数の
プロセッサ10,10’が協調して一つの計算を進める
ようなユーザのプログラムを,各プロセッサ10,1
0’に共通の書式で記述された仮想コードと,各プロセ
ッサ10,10’に特有の命令コード群で記述されたネ
イティブ・コードからなるネイティブ・コード・ライブ
ラリ15,15’とに分離し,仮想コードの実行に必要
なネイティブ・コード・ライブラリ15,15’は,各
プロセッサ10,10’において動的リンク手段14,
14’により仮想コードに動的にリンクする。ネイティ
ブ・コード・ライブラリ15,15’は,それぞれロー
カルなファイルシステムに保存される。
【0021】仮想コード実行手段11,11’は,それ
ぞれプログラム12,12’の仮想コードを解釈し実行
する手段である。仮想コードの実行中に,まだプログラ
ム12,12’中にマッピングされていないネイティブ
・コードの呼び出しを検出すると,そのネイティブ・コ
ード・ライブラリ15,15’を動的リンク手段14,
14’によってマッピングし,仮想コード実行手段1
1,11’中のネイティブ・コード・インタフェースに
よってネイティブ・コードを実行する。
【0022】ライブラリ・テーブル13,13’は,動
的リンク手段14,14’がネイティブ・コード・ライ
ブラリ15,15’のマッピングを行って動的にリンク
する場合に,対象とするネイティブ・コード・ライブラ
リ15,15’の格納場所情報を得るためのテーブルで
ある。
【0023】スケジューラ16,16’は,プログラム
12,12’を実行する単位であるプロセス(またはス
レッド)に対してCPU実行権を与える制御を行う手段
であり,他のプロセッサと通信を行いながら仮想コード
実行手段11,11’を制御する。また,負荷分散等の
ために,プロセス(またはスレッド)を他のプロセッサ
との間で送受するマイグレート(移動)の機能を持つ。
【0024】例えば,プロセッサ10のスケジューラ1
6がプロセス(またはスレッド)を他のプロセッサ1
0’にマイグレートする場合には,スケジューラ16
は,仮想コードの部分と動的リンクに必要な情報,例え
ばライブラリ・テーブル13を送り,ネイティブ・コー
ドの部分は送らない。マイグレート先のプロセッサ1
0’では,受け取った仮想コードを仮想コード実行手段
11’により先頭の実行開始点または実行中断点から実
行し,仮想コードの実行においてネイティブ・コードの
呼び出しを検出すると,動的リンク手段14’によりプ
ログラム12’にネイティブ・コード・ライブラリ1
5’をマッピングして実行を進める。
【0025】仮想コード実行手段11,11’による仮
想コードの実行においてネイティブ・コードの呼び出し
を検出したときに,ネイティブ・コード・ライブラリ1
5,15’を動的にリンクする代わりに,スケジューラ
16,16’間でプロセス(またはスレッド)のマイグ
レートを行い,スケジューラ16,16’が他のプロセ
ッサから仮想コードと動的リンクに必要な情報を受け取
ったときに,最初にまとめて一度にネイティブ・コード
・ライブラリ15,15’を動的にリンクするようにし
てもよい。
【0026】
【発明の実施の形態】本発明に係る並列分散処理システ
ムでは,並列化が容易で高性能な実行環境を提供するた
めに,例えばネットワーク化されたヘテロジーニァスな
クラスタ上で,実行中の任意のプロセスを適度にマイグ
レート(移動)させながら全体の処理を進めることを可
能にすることと,ネットワーク上のプロセス間を高速な
ストリーム通信で結び付けることを実現する。
【0027】すなわち,あるプロセスが通信の応答を待
っている時間にCPUを他のプロセスの処理に割り当て
ることで,CPUの利用効率を上げると共に,他のプロ
セスの実行による通信をも時間的にオーバラップさせて
全体として平均した場合の通信のレイテンシを低下させ
ることを可能とするシステムの提供を実現する。
【0028】本発明の実施の一形態として,ネットワー
ク上のタイプの違う複数のワークステーションで並列計
算用のインタプリタを起動し,その間に仮想コードと動
的(ダイナミック)リンクに必要な情報を送り,ネイテ
ィブ・コードのライブラリを使って並列計算させる場合
を説明する。
【0029】マスタプロセッサ,スレーブプロセッサに
対応するものを,特定のシステムでのプロセスとして実
現し,その内部で複数の仮想コード・インタプリタをス
ケジューリングしながら実行するようにし,このプロセ
スにより,ワークステーション間で入出力データ,仮想
コード,ライブラリ・テーブル,インタプリタの制御情
報,その他を通信する。
【0030】(1)要求駆動方式 図2は,本発明の実施の一形態である要求駆動方式によ
る実現例を示す図である。図2において,プロセッサ3
0は,ダイナミック・リンカ32およびネイティブ・コ
ード・インタフェース33を持つインタプリタ31,仮
想コードで記述されたプログラム34,動的リンクの情
報を格納し,ルックアップするためのライブラリ・テー
ブル35,ローカル・ファイルシステムに格納されたネ
イティブ・コード・ライブラリ36,他のプロセッサと
通信を行いながらインタプリタ31を制御するスケジュ
ーラ37を備える。インタプリタ31は,図1に示す仮
想コード実行手段11および動的リンク手段14に対応
する。プロセッサ30’の構成も同様である。
【0031】ここで,プロセッサ30からプロセッサ3
0’へプロセスを移動させる事象が発生したとする。こ
の事象は,ユーザの明示的な移動指示によるものでも,
負荷分散制御によりスケジューラ37が自律的に生じさ
せるものでもよい。プロセッサ30のスケジューラ37
は,プログラム34中の仮想コードとライブラリ・テー
ブル35をプロセッサ30’へ転送する。プロセッサ3
0’のスケジューラ37’は,プロセッサ30から上記
の情報を受け取り,プログラム34’,ライブラリ・テ
ーブル35’としてメモリ上に設定する。
【0032】ここで,ネイティブ・コードの呼出命令
は,呼び出す関数名を「func」とすると,「lib
_call ”func”」である。関数名funcの
関数を含むライブラリを格納するファイル名を,ここで
は「/opt/X11/lib/libX11.so」
とする。
【0033】インタプリタ31’は,プログラム34’
の仮想コードを実行し,ネイティブ・コードの呼出命令
「lib_call ”func”」を検出し,呼び出
す関数名funcを取り出す。これが,後で説明するハ
ッシュ・テーブルに登録されていれば,それを使って直
接ネイティブ・コード・インタフェース33’で関数名
funcの関数を実行する。ハッシュ・テーブルに登録
されていない場合には,ダイナミック・リンカ32’を
起動し,ライブラリ・テーブル35’に登録してあるラ
イブラリ名から,「/opt/X11/lib/lib
X11.so」のローカル・ファイル中の対応するネイ
ティブ・コード・ライブラリ36’の中身をアクセス
し,関数名のハッシュ・テーブルを構築し,これをライ
ブラリ・テーブル35’のライブラリ名と結合する。
【0034】関数名funcの関数が見つかるまでライ
ブラリのハッシュ・テーブルの構築を続け,funcが
見つかったときには,funcを含むライブラリをプロ
グラム34’中のネイティブ・コードの記憶領域にマッ
ピングし,そのライブラリが利用しているその他の標準
ライブラリとリンク・エディットし,ハッシュ・テーブ
ルに各関数のエントリ・ポイントを登録し,そのライブ
ラリの各関数を実行可能な状態にする。
【0035】最後にネイティブ・コード・インタフェー
ス33’を使って,funcに対応するライブラリ関数
のエントリ・ポイントを検索し,その関数を実行する。
図3は,図2の構成例による要求駆動方式の処理フロー
チャートである。
【0036】図2に示すプロセッサ30がマスタCP
U,プロセッサ30’がスレーブCPUであったとす
る。プロセッサ30’が,最初何も処理するプロセス
(スレッド)がない状況であったところに,図3のステ
ップS11において,マスタのプロセッサ30からプロ
セス(スレッド)のマイグレートがあると,処理を開始
する。
【0037】まず,ステップS12では,仮想コードと
ライブラリ・テーブルをマスタのプロセッサ30から受
信する。ステップS13では,インタプリタ31’によ
り,受け取った仮想コードを実行する。実行の結果,ス
テップS14によりネイティブ・コード・ライブラリ呼
び出し命令を検出した場合には,ステップS15の処理
へ進み,実行終了を指示するexit命令を検出した場
合には処理を中止する。その他の命令である場合には,
ネイティブ・コード・ライブラリ呼び出し命令またはe
xit命令のいずれかを検出するまで,ステップS13
〜S14を繰り返す。
【0038】ステップS15では,インタプリタ31’
は,該当するネイティブ・コード・ライブラリ36’が
マッピングされているかどうかを,関数名のハッシュ・
テーブルをもとに判定する。ネイティブ・コード・ライ
ブラリ36’がマッピングされていなければ,ステップ
S16の処理を行い,ネイティブ・コード・ライブラリ
36’がマッピングされていれば,ステップS17の処
理へ進む。
【0039】ステップS16では,ライブラリ・テーブ
ル35’からマッピングするネイティブ・コード・ライ
ブラリ36’のファイル名を得て,ダイナミック・リン
カ32’により,そのネイティブ・コード・ライブラリ
36’をマッピングし,リンク・エディットを行う。
【0040】その後,ステップS17では,インタプリ
タ31’のネイティブ・コード・インタフェース33’
に制御を渡してネイティブ・コードを実行する。ネイテ
ィブ・コードの実行が終了したならば,ステップS13
へ戻り,同様に仮想コードの実行を続ける。
【0041】(2)前処理方式 図4は,本発明の実施の一形態である前処理方式による
実現例を示す図である。図4に示す実現例は,図2に示
す実現例とほぼ同じ構成であるが,ダイナミック・リン
カ54,54’がインタプリタ51,51’内ではな
く,スケジューラ53,53’の内部にある点が相違す
る。
【0042】マスタのプロセッサ50から仮想コードと
ライブラリ・テーブルを転送し,スレーブのプロセッサ
50’が受信するところまでは前述の要求駆動方式と同
様である。しかし,この方式では,スレーブのプロセッ
サ50’がマスタのプロセッサ50から仮想コードとラ
イブラリ・テーブルとを受信した後,インタプリタ5
1’を起動する前に,受信したライブラリ・テーブル5
6’の全てのライブラリについて関数名のハッシュ・テ
ーブルをあらかじめ作り,ライブラリをプログラム5
5’のネイティブ・コードの記憶領域にマッピングし,
標準ライブラリなどとともにリンク・エディットし,ハ
ッシュ・テーブルにライブラリ関数のエントリ・ポイン
トを登録する処理を最初にまとめて行う。
【0043】インタプリタ51’は,プログラム55’
の仮想コードを実行し,ネイティブ・コードの呼び出し
命令「lib_call ”func”」を検出する
と,直接ネイティブ・コード・インタフェース52’を
起動して,ネイティブ・コードで作成された関数fun
cを実行する。
【0044】図5は,図4に示す構成例による前処理方
式の処理フローチャートである。図4に示すスレーブの
プロセッサ50’が,最初何も処理するプロセス(スレ
ッド)がない状況であったところに,図5のステップS
21において,マスタのプロセッサ50からプロセス
(スレッド)のマイグレートがあると,処理を開始す
る。ステップS22では,プロセッサ50’は,仮想コ
ードとライブラリ・テーブルをマスタのプロセッサ50
から受信する。
【0045】次に,ステップS23では,スケジューラ
53’内のダイナミック・リンカ54’により,受信し
たライブラリ・テーブル56’に登録された全てのネイ
ティブ・コード・ライブラリ57’をマッピングし,リ
ンク・エディットを行う。
【0046】ステップS24では,インタプリタ51’
により仮想コードを実行する。実行の結果,ステップS
25により,ネイティブ・コード・ライブラリ呼び出し
命令を検出した場合には,ステップS26の処理へ進
み,実行終了を指示するexit命令を検出した場合に
は処理を中止する。その他の命令である場合には,ネイ
ティブ・コード・ライブラリ呼び出し命令またはexi
t命令のいずれかを検出するまで,ステップS24〜S
25を繰り返す。
【0047】ステップS26では,インタプリタ51’
のネイティブ・コード・インタフェース52’に処理を
渡してネイティブ・コードを実行する。ネイティブ・コ
ードの実行が終了したならば,ステップS24へ戻り,
同様に仮想コードの実行を続ける。
【0048】入力データなどに依存して実行時に様々な
ライブラリが使用され,ライブラリの登録数が多い割に
は実行時に使用されるライブラリの数が少ない場合に
は,図2に示す要求駆動方式のほうが有利である。
【0049】一方,実行時に登録されたほとんどのライ
ブラリがプロセッサに使用される場合には,図4に示す
前処理方式のほうが,個々のネイティブ・コード呼び出
し命令でライブラリが既にマッピングされているかどう
かをチェックする必要がないので有利である。
【0050】
【発明の効果】本発明によれば,中間コードとしての仮
想コードと,各プロセッサに特有のネイティブ・コード
とを分離し,仮想コードの実行時または仮想コードの受
信時に,ネイティブ・コードを動的にリンクする仕組み
を設けることにより,ヘテロジーニァスな複数のプロセ
ッサ間においても,並列処理の処理速度の高速性を保持
し,かつ,エンドユーザの使用にも適した平易な並列分
散処理システムの提供が可能となる。
【0051】例えば,ネットワーク上のワークステーシ
ョン群あるいは専用のマルチCPUの並列計算機上で並
列処理プログラムを開発する場合,システムの標準ライ
ブラリ,他で既に開発を終えたユーザ作成のライブラ
リ,デバッグが終了したユーザ作成のライブラリ等を更
新する必要がない。
【0052】また,各プロセッサに特有のネイティブ・
コードをマスタのプロセッサから毎回実行の度に,ある
いは実行に先立って転送する必要がないので,デバッグ
その他の開発作業が軽減され,開発が迅速になる。ま
た,開発が終了し,実際にプログラムを起動して使用す
るときにも,プログラムの起動時間が短縮されるという
効果を奏する。
【0053】さらに,プログラムを変更する場合,仮想
コードの部分のみの変更によりプログラム全体としての
変更を柔軟に吸収し,ネイティブ・コード・ライブラリ
を利用することで性能を引き出すことが可能となるた
め,チューニングや保守が容易になるという効果を奏す
る。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施の一形態である要求駆動方式によ
る実現例を示す図である。
【図3】要求駆動方式による処理フローチャートであ
る。
【図4】本発明の実施の一形態である前処理方式による
実現例を示す図である。
【図5】前処理方式による処理フローチャートである。
【符号の説明】
10,10’ プロセッサ 11,11’ 仮想コード実行手段 12,12’ プログラム 13,13’ ライブラリ・テーブル 14,14’ 動的リンク手段 15,15’ ネイティブ・コード・ライブラリ 16,16’ スケジューラ 20 ネットワーク

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサが協調して処理を進め
    る並列分散処理システムにおいて,前記プロセッサは,
    各プロセッサに特有の命令コード群で記述されたネイテ
    ィブ・コードのライブラリと,各プロセッサに共通の書
    式で記述されたプログラムである仮想コードを解釈し実
    行する仮想コード実行手段と,仮想コードの実行におい
    てネイティブ・コードの呼び出しを検出したときに,前
    記ネイティブ・コードのライブラリを動的にリンクする
    動的リンク手段と,他のプロセッサに仮想コードを実行
    させる場合に,実行させる仮想コードまたはその仮想コ
    ードと動的リンクに必要な情報とを他のプロセッサに送
    信する手段とを備えることを特徴とする並列分散処理シ
    ステム。
  2. 【請求項2】 複数のプロセッサが協調して処理を進め
    る並列分散処理システムにおいて,前記プロセッサは,
    各プロセッサに特有の命令コード群で記述されたネイテ
    ィブ・コードのライブラリと,各プロセッサに共通の書
    式で記述されたプログラムである仮想コードを解釈し実
    行する仮想コード実行手段と,他のプロセッサに仮想コ
    ードを実行させる場合に,実行させる仮想コードまたは
    その仮想コードと動的リンクに必要な情報とを他のプロ
    セッサに送信する手段と,他のプロセッサから仮想コー
    ドを受信し,その仮想コードを実行する場合に,前記ネ
    イティブ・コードのライブラリを一括して動的にリンク
    する動的リンク手段とを備えたことを特徴とする並列分
    散処理システム。
JP31017395A 1995-11-29 1995-11-29 並列分散処理システム Expired - Fee Related JP3628782B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31017395A JP3628782B2 (ja) 1995-11-29 1995-11-29 並列分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31017395A JP3628782B2 (ja) 1995-11-29 1995-11-29 並列分散処理システム

Publications (2)

Publication Number Publication Date
JPH09146900A true JPH09146900A (ja) 1997-06-06
JP3628782B2 JP3628782B2 (ja) 2005-03-16

Family

ID=18002058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31017395A Expired - Fee Related JP3628782B2 (ja) 1995-11-29 1995-11-29 並列分散処理システム

Country Status (1)

Country Link
JP (1) JP3628782B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769121B1 (en) 1999-01-22 2004-07-27 Nec Corporation Program execution device and process migrating method thereof and storage medium which stores process migration control program
CN103365724A (zh) * 2012-04-02 2013-10-23 国际商业机器公司 用于检测可本地化的本机方法的方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769121B1 (en) 1999-01-22 2004-07-27 Nec Corporation Program execution device and process migrating method thereof and storage medium which stores process migration control program
CN103365724A (zh) * 2012-04-02 2013-10-23 国际商业机器公司 用于检测可本地化的本机方法的方法和系统
CN103365724B (zh) * 2012-04-02 2016-08-24 国际商业机器公司 用于检测可本地化的本机方法的方法和系统

Also Published As

Publication number Publication date
JP3628782B2 (ja) 2005-03-16

Similar Documents

Publication Publication Date Title
CA2061117C (en) Apparatus and method for distributed program stack
US5136717A (en) Realtime systolic, multiple-instruction, single-data parallel computer system
JP2893071B2 (ja) マルチ・スレッド対応ディジタル・データ・プロセッサ用スレッド・プライベート・メモリ
JP3084282B2 (ja) 同時に処理されうる2以上の命令を含むストリームを並列処理するための方法
US5506999A (en) Event driven blackboard processing system that provides dynamic load balancing and shared data between knowledge source processors
US9110692B2 (en) Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
JPH06266683A (ja) 並列処理装置
JPH02188833A (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
US6351749B1 (en) Multi-threading, multi-tasking architecture for a relational database management system
JP2590045B2 (ja) 分散処理制御方法及び分散処理システム
Nikhil A multithreaded implementation of Id using P-RISC graphs
Baalbergen Design and implementation of parallel make
CN114327479A (zh) 用于大数据的数据处理方法和数据处理装置
JPH06131181A (ja) 階層並列処理型中央処理装置
JPH09146900A (ja) 並列分散処理システム
JPH09146904A (ja) アドレス空間共有システム
CN110119275A (zh) 一种分布式内存列式数据库编译执行器架构
WO2022166480A1 (zh) 任务调度方法、装置及系统
KR100294876B1 (ko) 동적재구성이가능한운영체제및운영체제의동적재구성방법
KR950014163B1 (ko) 분산 프로그램을 스택하기 위한 방법 및 장치
CN116541018B (zh) 一种分布式模型编译系统、方法、装置、介质及设备
Armstrong et al. Dynamic task migration from SPMD to SIMD virtual machines
CN114489579B (zh) 一种无感知大数据计算中间件的实现方法
JP3239963B2 (ja) マルチ・プロセッサ計算機システム
Li et al. swTVM: Towards Optimized Tensor Code Generation for Deep Learning on Sunway Many-Core Processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Effective date: 20040330

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041207

A61 First payment of annual fees (during grant procedure)

Effective date: 20041209

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071217

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081217

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20091217

LAPS Cancellation because of no payment of annual fees