JP2000268004A - 分散計算機環境におけるオブジェクトの最適分散配置方法 - Google Patents

分散計算機環境におけるオブジェクトの最適分散配置方法

Info

Publication number
JP2000268004A
JP2000268004A JP11073108A JP7310899A JP2000268004A JP 2000268004 A JP2000268004 A JP 2000268004A JP 11073108 A JP11073108 A JP 11073108A JP 7310899 A JP7310899 A JP 7310899A JP 2000268004 A JP2000268004 A JP 2000268004A
Authority
JP
Japan
Prior art keywords
objects
computer
computers
communication
distributed
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
JP11073108A
Other languages
English (en)
Inventor
Tsuneyuki Imaki
常之 今木
Nobutoshi Sagawa
暢俊 佐川
Shigekazu Inohara
茂和 猪原
Furederiko Mashieru
フレデリコ マシエル
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11073108A priority Critical patent/JP2000268004A/ja
Publication of JP2000268004A publication Critical patent/JP2000268004A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 分散計算機環境における通信コストを考慮し
たオブジェクト負荷分散の実現 【解決手段】 分散計算機間の接続関係121、および
オブジェクト間の依存関係122の情報、および、各計
算機上で稼働するオブジェクトの処理デーモン110〜
114が返す計算負荷の情報を基に、分散配置デーモン
211が、クライアント115からリクエストを受けた
オブジェクトを、最適な計算機に配置する。 【効果】 分散計算機間の通信速度を考慮して、オブジ
ェクトの分散配置を最適化することにより、通信コスト
を削減できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する利用分野】本発明は、通信網によって接
続された複数の分散計算機上で実行される、複数の処理
およびそこで使用されるデータの分散配置方法に係わ
り、特に処理間の通信コストの削減と処理負荷の分散に
好適な、データとその処理手続き(以下、メソッド)の
集合からなるオブジェクトの分散配置方法に関する。
【0002】
【従来の技術】近年、計算機ネットワークの発展に伴
い、分散して接続されている分散計算機を、一つの巨大
な計算機環境として有効利用しようとする動きが強まっ
ている。特に、プログラミングの一手法であるオブジェ
クト指向の概念を、分散計算機環境に持ち込んだ、分散
オブジェクトの技術が注目を集めている。
【0003】オブジェクトとは、データとそれを操作す
るために定義された手続き(以下、メソッド)の集合を
単位とする、データ構造である。基本的に、あるオブジ
ェクトに属するデータは、該オブジェクトに属するメソ
ッドによってしか操作できない。つまり、オブジェクト
の概念を導入することで、データの利用者に対し、デー
タに対する正しい操作のみ許すことを可能とする。ま
た、データ利用者の立場からも、データに対する所定の
処理がメソッドとして定義されていれば、利用者が自ら
該処理を行わなくても、該メソッドを呼び出すだけで、
該処理を実現できる、という利点がある。
【0004】上記オブジェクトの概念を分散計算機環境
に適用し、データ利用者側のプロセス(以下、クライア
ントプロセスまたはクライアント)が、該プロセスが稼
動している計算機とは別の計算機(以下、リモートの計
算機)上に存在しているオブジェクト(以下、サーバオ
ブジェクト)を、該サーバオブジェクトに属するメソッ
ドによって操作することを可能にするのが、分散オブジ
ェクトの技術である。分散オブジェクトの技術を導入す
ることで、上記オブジェクト指向の概念を受け継ぎ、サ
ーバオブジェクトに対するクライアントプロセスからの
不正なアクセスの防止、およびクライアントプロセス自
身の処理を必要としないサーバオブジェクトに属するデ
ータの操作等、を実現できる。特に、後者は、クライア
ントプロセスが、リモートの計算機上に存在するデータ
を、直接ダウンロードすることなく操作できることを意
味する。
【0005】分散オブジェクト技術では、クライアント
プロセスから、リモートの計算機に存在するオブジェク
トのメソッドを呼び出すことを、クライアントがオブジ
ェクトに対してリクエストを発行する、と言う。サーバ
オブジェクトが、クライアントプロセスからのリクエス
トに応じて、自身のデータを基に処理を行い、その結果
をクライアントに返す、というモデルである。分散計算
機上に存在する各オブジェクトは、自身以外のオブジェ
クトに対して、状況に応じてクライアントプロセスある
いはサーバオブジェクトとして機能し、互いにリクエス
トとそれに対する処理結果を送受することで、協調して
動作する。
【0006】分散オブジェクトを実現する基盤技術は、
一般にORB(Object Request Bro
ker)と呼ばれる。特に、ORBの標準アーキテクチ
ャとしてCORBA(Common Object R
equest Broker Architectur
e)が知られている。
【0007】CORBAでは、BOA(Basic O
bject Adaptor)と呼ばれるプロセス(一
種のオブジェクト)が、各計算機に対して存在し、クラ
イアントから該計算機上に存在するサーバオブジェクト
に対するリクエストを受け取った際に、該BOAが該サ
ーバオブジェクトを活性化する(Robert Orf
aliとDan Harkey著の文献「Client
/Server Programming with
Java and CORBA」 JohnWiley
& Sons,Inc. 1997に記載…以下、文
献1という)。活性化とは、該リクエストに対して、該
リクエストを処理するためのプロセスを割り当てること
を指す。
【0008】
【発明が解決しようとする課題】分散されたオブジェク
トが同時並行的に稼働するためには、各オブジェクトが
それぞれ異なる計算機上に存在する必要がある。異なる
計算機上に存在する少なくとも2個のオブジェクトが互
いにリクエストを交換する場合、計算機間の通信を利用
することになる。一方、通信を利用するとリクエストの
応答に大きなオーバヘッドが掛かる。ここで、オブジェ
クトを同時並行的に処理するための各計算機への負荷の
分散と、分散させることでオブジェクト間に発生する通
信オーバヘッドとの、トレードオフが発生することにな
る。
【0009】さらに、分散計算機環境においては、通信
コストは計算機間毎に異なるのが普通である。例えば、
同一LAN内に存在する計算機同士の通信は、LAN外
に存在する計算機との通信よりも速い。また、並列計算
機内部の計算機同士は、高速通信H/Wによる、より高
速な通信が可能であり、さらにメモリを共有する計算機
同士ならば、通信を必要としない。
【0010】そこで、オブジェクトを各計算機に分散配
置する際に、頻繁に通信を行う複数のオブジェクトは、
なるべく低いコストで通信が可能な計算機上、あるいは
同一の計算機上に配置し、並行に動作することが可能な
オブジェクトは、なるべく異なる計算機上に配置するこ
とで、全体の処理コストの最適化を実現することが重要
である。
【0011】ところで、オブジェクトの設計者が、この
様な最適化を意識しつつオブジェクトの設計を行うの
は、大きな負担となる。例えば、同時並行的に稼働する
ことが可能であるサーバオブジェクトを、計算機環境に
応じて、別の計算機に配置するか、同一の計算機に配置
するかを切り替える処理、あるいは、オブジェクトを配
置する計算機をラウンドロビンに選択する処理などを、
オブジェクト自身に組み込む必要がある。さらに、計算
負荷や通信コストの情報を、オブジェクト自身が何らか
の方法で獲得する必要がある。また、ある特定の計算機
環境における最適性を意識して設計すると、オブジェク
トの可搬性が失われる。
【0012】以上を鑑み、上記通信コストを考慮したオ
ブジェクト分散配置最適化の実現と、それを意識せずに
設計されたオブジェクトに対しても、上記最適化を実現
することが、本発明が解決しようとする課題である。
【0013】
【課題を解決するための手段】以下の各手段によって、
課題を解決する。
【0014】(1)CORBAにおいてオブジェクトの
起動を司るBOA、あるいは、他のORBにおける、そ
れに類する機能を持つプロセス(以下、オブジェクトア
ダプタ)に、オブジェクト分散配置の最適化機能を導入
し、オブジェクトの起動時に、最適な計算機を選択して
オブジェクトを配置する。以下、該機能を有するオブジ
ェクトアダプタを、分散配置デーモンと呼ぶ。
【0015】該分散配置デーモンは、複数の計算機(以
下、管理下計算機)とその上に配置する複数のオブジェ
クト(以下、管理下オブジェクト)を管理する。該管理
下オブジェクトは、該管理下計算機の全てにおいて実行
が可能であるとする。該分散配置デーモンは、クライア
ントから、該管理下オブジェクトのうち何れかに対する
リクエストを受け取ると、該計算機上で既に起動されて
いるオブジェクトの配置と、該管理下オブジェクト間の
データ通信量の情報(以下、オブジェクト間依存関
係)、および該管理下計算機間の通信コスト情報(以
下、計算機間接続関係)を基に、該管理下計算機の負荷
に応じて、オブジェクトを起動する計算機を、該管理下
計算機の中から選択し、該オブジェクトを配置する。
【0016】あるいは、該分散配置デーモンは、該オブ
ジェクト間依存関係および、計算機間接続関係の情報か
ら、クライアントからのリクエストを受け取る前に、ど
の計算機にどのオブジェクトを配置するかを決定してお
く。この場合は、該管理下計算機の全てが、該管理下オ
ブジェクトの全てを実行可能である必要はない。
【0017】(2)(1)記載の分散配置最適化は、オ
ブジェクト間依存関係および、計算機間接続関係の定義
が行われていないと、実現できない。一方、計算機間接
続関係などは、該計算機環境の利用者が事前に知ること
ができる情報である。また、オブジェクト間依存関係
も、該オブジェクトの設計者であれば、予想することが
できる。そこで、これらの情報を利用者自身が定義し、
ファイルの形式にして、分散配置デーモンに登録するこ
とを可能とする。これらファイルを、以下、オブジェク
ト間依存関係定義ファイル、および、計算機間接続関係
定義ファイルと呼ぶ。
【0018】(3)オブジェクト間依存関係、および、
計算機間接続関係の情報を基に、オブジェクトの配置を
決定するアルゴリズムを、利用者自身がプログラムとし
て記述し、分散配置デーモンに組込むことを可能とす
る。該プログラムを、以下、分散ポリシプラグインと呼
ぶ。該分散ポリシプラグイン、およびオブジェクト間依
存関係定義ファイルを、利用者が決定可能とすること
で、分散配置の最適化を、利用者自身が設計することが
可能となる。このことは、利用者が、オブジェクト自体
の設計時に意識しなかった分散配置の最適化を、この段
階で、改めて設計することが可能となることを意味す
る。
【0019】(4)利用者が、分散配置デーモンに登録
した、オブジェクト間依存関係定義ファイル、および、
計算機間接続関係定義ファイルの情報が、実測値とそぐ
わない場合には、実測値を基に、該ファイルの情報を、
自動的に修正することを分散配置デーモンに通知する処
理を導入する。但し、該ファイルは、分散配置の最適化
を利用者自身が決定するために利用できるファイルであ
り、書き換えを利用者が望まない場合は、そのように指
定することも可能とする。
【0020】(5)オブジェクト間依存関係定義ファイ
ル上で、利用者が並列に稼働可能なメソッドの集合を一
つのグループとして指定することを可能とする。この場
合には、分散配置デーモンは、該メソッドが属するオブ
ジェクト同士を、なるべく異なる計算機上に配置するこ
ととする。また、オブジェクト間依存関係定義ファイル
上で、該メソッドの集合に対して、新たにメソッド(以
下、疑似メソッド)を定義して、割り当てることを可能
とする。分散配置デーモンは、クライアントから、該疑
似メソッドの呼び出しを受けると、該疑似メソッドに対
して利用者が割り当てた全てのメソッドを同時に呼び出
す。
【0021】
【発明の実施の形態】以下、本発明の実施の一形態を、
図面を参照しながら説明する。なお簡単のために、本明
細書中では以下に述べる発明の実施の形態を単に「本実
施例」と呼ぶことにする。
【0022】図1と図2を用いて、本実施例の概略を説
明する。
【0023】まず、図2を参照して、本実施例が利用さ
れることを想定する、分散計算機環境の概略を説明す
る。広域通信網201、および該通信網に繋がれたロー
カルエリアネットワーク(以下、LAN)202、20
3、204からなる通信網によって、計算機205〜2
07、210および並列計算機208、209が接続さ
れている。並列計算機209と計算機207の間は、専
用線で接続されている。このような計算機環境上では、
通信コストは計算機間毎に大きく異なる。例えば、同一
のLAN202上の計算機205―206間の通信は、
広域通信網201を介する、計算機205あるいは計算
機206と計算機207との間の通信よりも速く、並列
計算機208内部の各計算機間の通信は、さらに高速で
ある。本実施例では、上記のごとく計算機間で通信コス
トが異なる分散計算機環境において、分散配置デーモン
211がクライアント210からのリクエストを処理す
るオブジェクトの配置位置を最適化することで、該分散
計算機環境の効率的な利用を可能とする。
【0024】次に、図1を参照し、本実施例における分
散配置デーモン211の動作の概要を説明する。
【0025】分散配置デーモン211は、該分散計算機
環境の何れかの計算機上で動作するプロセスであるとす
る。分散配置デーモンは、該分散計算機環境上に存在す
る各計算機(以下、管理下計算機)206、207およ
び並列計算機208内部の各計算機101、102、1
03それぞれの上で1つ存在する、クライアントのリク
エストを処理するプロセス(以下、処理デーモン)11
0〜114と通信接続されている。処理デーモン110
〜114は、分散配置デーモン211に対して、自身が
稼働する計算機の負荷情報を通知する。
【0026】処理デーモン110〜114は、それぞ
れ、ORBライブラリ104〜108とリンクされてい
る。また、計算機210上のクライアントプロセス11
5もORBライブラリ109とリンクされている。
【0027】分散配置デーモン211は、クライアント
115から、分散配置デーモン211の管理下計算機上
で実行することが可能であるオブジェクト(以下、管理
下オブジェクト)に対するリクエストを受け取ると、該
オブジェクトが未配置である場合には、該管理下計算機
間の通信コストの情報(以下、計算機間接続関係)12
1、と、該管理下オブジェクト間の通信量の情報(以
下、オブジェクト間依存関係)122、ならびに、処理
デーモン110〜114より通知される各管理下計算機
206、207、101〜103の負荷情報を参照し
て、該オブジェクトを配置する計算機を該管理下計算機
の中から選択する。該選択の方法の一例は、図3、図4
を用いて詳細に説明する。分散配置デーモン211は、
該選択した計算機上の処理デーモンに対してクライアン
ト115から受け取ったリクエストの処理を要求する。
該過程を経て、処理デーモン内にオブジェクト(例:1
16〜120)が配置される。一方、分散配置デーモン
は、クライアントとリンクされているORBライブラリ
109に対して、該オブジェクトを配置した計算機を通
知する。ORBライブラリ109は、該通知された計算
機上のORBライブラリと直接通信接続し、こうしてク
ライアントからオブジェクトを利用できるようになる。
【0028】次に、図3と図4を参照して、分散配置デ
ーモンによるオブジェクト配置最適化手順の詳細を、例
を用いて説明する。
【0029】図3の表300は、オブジェクト間依存関
係を表す。本例ではオブジェクトとしてA〜Fが存在す
る。各オブジェクト間の依存関係は、数値(以下、依存
係数)として表現される。依存係数が大きい程、オブジ
ェクト間の接続関係が強いことを示す。依存係数は、例
えば、単位処理あたりのオブジェクト間のリクエスト発
行数などを基に決定する。
【0030】図4の表400は、計算機間接続関係を表
す。本例では、計算機として205、206、207、
101、102、103、404、405が存在する。
各計算機間の接続関係は、数値(以下、接続係数)とし
て表現される。接続係数が大きい程、通信コストが低い
ことを示す。接続係数は、例えば、計算機間の通信スル
ープットなどを基に決定する。
【0031】図3、図4の例において、オブジェクト
A,B,Cが、それぞれ、計算機207,101,10
2に配置されているときに、新たにオブジェクトDを配
置する場合の、計算機の決定手順を示す。ここで、オブ
ジェクトCとオブジェクトDは、お互い独立に実行でき
るメソッドを含むので、オブジェクトDの配置位置は、
オブジェクトCとは別となるように最適化されるものと
する。
【0032】まず、表300より、オブジェクトDは、
オブジェクトCに対して最も依存関係が高いので、表4
00の行401、402、403を順に調べて、計算機
102が最も適していると判断する。しかし、計算機1
02にはオブジェクトCが配置されているので、別の計
算機の候補を探すことになる。オブジェクトCとの接続
性の高さから、次に候補となるのが、計算機101ある
いは103である。このうち、オブジェクトBとの接続
性の高さから、計算機101がより適していると判断す
る。しかし、計算機の負荷は、計算機103の方が低
い。よって最終的には、計算機103を選択する。
【0033】次に、図5、図6を用いて、図3、図4の
情報を利用者自身が定義するための、ファイルの記述例
を説明する。
【0034】図5のファイル500は、オブジェクト間
の依存関係を定義している。行501は、以下の定義が
オブジェクトAに関することを、行505は、それが該
行で終わることを、それぞれ宣言している。行502
は、オブジェクトAが、オブジェクトBのメソッド“f
unc0”を、どの程度の頻度で呼び出すかを定義して
いる。行503、行504も同様である。同様に、行5
07〜512、および、行514〜518は、それぞ
れ、オブジェクトB、および、オブジェクトCが、それ
それどの程度の頻度で他のオブジェクトのメソッドを呼
ぶかを定義している。
【0035】行511は、オブジェクトBとオブジェク
トEが無関係であることを定義している。これは、該オ
ブジェクトを配置する計算機を決める時は、他方のオブ
ジェクトの配置位置とは無関係に、最適化することを許
している。また、行517は、オブジェクトCとオブジ
ェクトFを、強制的に同じ計算機に配置することを定義
している。また、行520〜523は、オブジェクトC
のメソッド“func2”と、オブジェクトDのメソッ
ド“func1”は、並列に実行することが可能である
ことを定義している。これは、オブジェクトCとオブジ
ェクトDを、なるべく別の計算機に配置することを要請
している。
【0036】図6のファイル600は、計算機間の接続
関係を定義している。行601は、以下の定義がネット
ワークnet202に関することを、行604は、それ
が該行で終わることを、それぞれ宣言している。また、
行601は、ネットワークnet202内の計算機が、
接続係数“10”で通信することが可能であることを定
義している。行602は、ネットワークnet202
に、計算機205が含まれることを定義している。行6
03も同様である。同様に、行606〜610、行61
2〜行615、および、行617〜行620は、それぞ
れ、ネットワークnet208、ネットワークnet2
03、および、ネットワークnet201に含まれる計
算機と、その接続係数を定義している。
【0037】行614は、ネットワークnet203
に、計算機ではなくネットワークnet208が含まれ
ていることを定義している。この場合は、ネットワーク
net208に含まれる計算機101〜103のそれぞ
れが、行613で定義されている計算機207と、行6
12で定義されている接続係数“10”で通信すること
が可能であることを定義している。
【0038】同様に、行617〜行620では、ネット
ワークnet202に含まれる、各計算機205,20
6が、ネットワークnet203に含まれる、各計算機
207,101,102,103と、接続係数“1”で
通信することが可能であることを定義している。
【0039】図3〜図6の説明中の、依存係数、およ
び、接続係数は、利用者が任意に定義した値を用いて構
わない。また、前記最適化手順は一例である。本実施例
では、最適化手順を定義したプログラム(以下、分散配
置ポリシプラグイン)を利用者自身が分散配置デーモン
211に組み込むことが可能である。これを実現するた
めに、上記定義ファイルで定義されたデータを読み込む
ためのライブラリ、および、分散配置デーモンに対し
て、オブジェクトを配置する計算機を指定するインタフ
ェースを、分散配置ポリシプラグインのために用意す
る。これにより、計算機間接続関係、および、オブジェ
クト間接続関係も、該分散配置ポリシプラグインが読み
込める形であれば、如何ようにも定義することができ
る。例えば、計算機間接続関係で、通信のレイテンシと
スループットの概念を定義し、該分散配置ポリシプラグ
インで、該概念を利用する最適化を定義することも可能
である。
【0040】また、利用者が定義したオブジェクト間依
存関係、および、計算機間接続関係を、計測値と比較
し、修正することも可能である。次に、図7を参照し
て、オブジェクト間依存関係、および、計算機間接続関
係を計測し、修正する方法を説明する。
【0041】各処理デーモン110〜114には、オブ
ジェクト間の通信発生頻度を計測するための処理701
〜705(以下、頻度計測ライブラリ)、および、通信
速度を計測するための処理706〜710(以下、速度
計測ライブラリ)を、それぞれリンクする。オブジェク
トは他のオブジェクトに対するリクエストを全て、一
旦、該頻度計測ライブラリに対して発行する。該頻度計
測ライブラリは、リクエストが発行される頻度を記録
し、ORBに対して実際のリクエストを発行する。OR
Bは、他の計算機上のORBとの通信命令を全て、一
旦、該速度計測ライブラリに対して発行する。該速度計
測ライブラリは、該通信命令を発行し、その処理の速度
(単位時間あたりの通信データ量など)を記録する。該
頻度および速度の記録は、各処理デーモンが定期的に、
分散配置デーモン211に通知する。分散配置デーモン
は、各処理デーモンからの該通知と、オブジェクト間依
存関係および計算機間接続関係定義ファイルを比較し、
値が大きく異なる場合はファイルを書き換える。
【0042】次に、図8、図9を参照して、オブジェク
ト間依存関係定義ファイル内で、オブジェクト間の並列
性を指定する方法、および、並列実行の処理手順を説明
する。
【0043】まず、クライアントプログラムに図9のブ
ロック900に示す記述があるとする。行902,90
3で発行されている2つのメソッドは、オブジェクト間
依存関係定義ファイル500内で、並列に実行可能であ
ると定義されている。しかし、記述900の書き方で
は、行902の処理が終わった後に、行903の処理が
行われるので、該2つのメソッドは、同時には処理され
ないことになる。そこで、本実施例では、オブジェクト
間依存関係定義ファイルを拡張し、以下に説明する記述
方法を導入する。
【0044】記述500’は、オブジェクト間依存関係
定義ファイル500の行520〜523を抜き出してい
る。このうち行520を行520’に書き直している。
該行では、行521〜522で定義している、並行動作
可能なメソッド群に対して、“ParaObj”という
グループ名を定義している。一方、記述900を記述9
00’のように書き換える。記述900では空行であっ
た、行901、および、904に、行901’、およ
び、行904’の記述を追加する。行901’は、オブ
ジェクト間依存関係定義ファイルで定義されている、
“ParaObj”というグループ名が名付けられた、
並行動作可能として定義されているメソッド群の実行
を、一時的に遅らせることを要求する。よって、本例で
は、行902,903のメソッドは、該行では、実際に
は実行されない。該遅らされたメソッドは、行904’
によって、一斉に実行される。
【0045】次に、図8を参照して、上記並行処理時の
動作を説明する。クライアント115には、上記並列実
行を実現するための処理1006(以下、並行処理ライ
ブラリ)をリンクする。 また、各処理デーモン11
0〜114それぞれにも、並行処理ライブラリ1001
〜1005をリンクする。クライアント115から、図
9の行901’が発行されると、並行処理ライブラリ1
006は、分散配置デーモン211に問い合わせ(10
07)、オブジェクト間依存関係定義ファイルから、
“ParaObj”というグループ名が名付けられた、
並行動作可能として定義されているメソッド群を探し出
して、並行処理ライブラリ1006内の表1009に登
録する(1008)。以降、クライアントプロセス11
5から、表1009に登録したメソッドが発行された場
合は、引数のみを並行処理ライブラリ1006内に格納
(1011)して、直ぐにクライアントプロセス115
に処理を戻す。該格納されたメソッドは、クライアント
115から図9の行904’が発行されたときに、各オ
ブジェクトが配置された計算機に、ORBを介して一斉
に発行する。また、このとき、同一の計算機上に配置さ
れているオブジェクトに対する、複数のリクエストは、
まとめて1つのリクエストとして発行する。該リクエス
トを、該オブジェクトが配置されている計算機上の処理
デーモンが、ORBを介して受け取ると、該処理デーモ
ンにリンクされている並行処理ライブラリが、該リクエ
ストを再び分解して、複数のリクエストとして処理す
る。
【0046】本発明の好適な適用先として、通信性能が
高くない広域計算機通信網における複数オブジェクトの
協調処理が挙げられる。このような計算機通信網におい
て、オブジェクト間の通信コストを考慮せずに、オブジ
ェクトの分散配置を行うと、通信ボトルネックにより全
体の処理性能が低下するのが一般的である。このため、
従来、該計算機通信網においてオブジェクトを自動的に
分散配置する場合、オブジェクト間通信の発生頻度が非
常に低い、あるいは一切発生しないオブジェクトしか対
象にしていなかった。これに対し、本発明の方法によれ
ば、該計算機網における通信ボトルネックを回避するた
めのコントロールを、自動分散配置処理に組み込むこと
ができるため、オブジェクト間通信の発生頻度がある程
度高い場合にも、全体の処理性能の低下を招かずに、自
動分散配置を適用することが可能となる。
【0047】
【発明の効果】本発明によれば、以下の効果がある。
【0048】(1)分散計算機環境における、分散オブ
ジェクトの実行環境について、計算機間の通信速度を考
慮して、オブジェクトの分散配置を最適化することによ
り、通信コストを削減できる。
【0049】(2)オブジェクト間の依存関係、計算機
間の接続関係を、利用者自身が定義できる。
【0050】(3)文散配置最適化のアルゴリズムを、
利用者自身が定義できる。(2)と合わせて、オブジェ
クト自体の設計時に意識しなかった分散配置の最適化を
設計することが可能となる。
【0051】(4)(2)記載のオブジェクト間依存関
係、計算機間接続関係の情報が、実測値とそぐわない場
合は、自動的に修正することも可能である。
【0052】(5)利用者が並列に稼働可能なメソッド
の集合を一つのグループとして指定し、並列動作させる
ことができる。
【図面の簡単な説明】
【図1】本発明の実施例の全体構成図。
【図2】本発明の実施例の適用環境を説明するための
図。
【図3】オブジェクト間依存関係情報の例を示すための
図。
【図4】計算機間接続関係情報の例、および分散配置最
適化手順を示すための図。
【図5】オブジェクト間依存関係情報の定義方法を示す
ための図。
【図6】計算機間接続関係情報の定義方法を示すための
図。
【図7】オブジェクト間依存関係、計算機間接続関係計
測処理の動作を説明するための図。
【図8】オブジェクトの並列処理の動作を説明するため
の図。
【図9】オブジェクトの並列処理の指定方法を示すため
の図。
【符号の説明】
101〜103,206,207,210...計算
機,104〜109...ORB,110〜11
4...処理デーモン,115...クライアントプロ
セス,211...分散配置デーモン,121...計
算機間接続関係,122...オブジェクト間依存関
係,300...オブジェクト間依存関係定義ファイ
ル,400...計算機間接続関係定義ファイル,70
1〜705...頻度計測ライブラリ,706〜71
0...速度計測ライブラリ,1001〜1006並行
処理ライブラリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 猪原 茂和 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 マシエル フレデリコ 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B045 GG02

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データとその処理手続きを定義したメソッ
    ドの集合からなる処理単位であるオブジェクトが、通信
    ネットワークで接続された複数の計算機上に、複数分散
    して存在し、該オブジェクト同士が、該通信ネットワー
    クを通して互いのメソッドを呼び出し、該通信ネットワ
    ークを通して各オブジェクトの処理結果を受授すること
    で、該オブジェクト同士が協調して処理を行なう分散計
    算機環境におけるオブジェクトの最適分散配置方法であ
    って、(1)計算機間の通信速度と資源の共有状況及
    び、オブジェクト間の通信量にもとずき、通信コストを
    最小化するように、オブジェクトを計算機間に配分する
    処理と、(2)各計算機に配分されたオブジェクト処理
    負荷が均等化するように、オブジェクトを各計算機に配
    分する処理と、(3)上記(1)及び(2)における配
    分が通信コストと処理負荷が所定の基準を満足するよう
    に配分結果を調整する処理と、を有する分散計算機環境
    におけるオブジェクト最適分散配置方法。第1の計算機
    上で実行されている第1のアプリケーションプログラム
    が発行した複数の送信命令により指定される複数の送信
    データのそれぞれを、第2の計算機上で実行されている
    第2のアプリケーションプログラムが発行した複数の受
    信命令に応答して、第2の計算機上に設けられたエミュ
    レーションライブラリの制御下でメッセージパッシング
    型の通信で受信し、 上記複数の送信データの連なりからなるひと繋がりのデ
    ータの内、上記複数の受信命令により指定されるサイズ
    部分に区分して得られる部分をそれぞれの受信命令が指
    定す。
  2. 【請求項2】データとその処理手続きを定義したメソッ
    ドの集合からなる処理単位であるオブジェクトが、通信
    ネットワークで接続された複数の計算機上に、複数分散
    して存在し、該オブジェクト同士が、該通信ネットワー
    クを通して互いのメソッドを呼び出し、該通信ネットワ
    ークを通して各オブジェクトの処理結果を受授すること
    で、該オブジェクト同士が協調して処理を行なう分散計
    算機環境におけるオブジェクトの最適分散配置方法であ
    って、(1)計算機間の通信速度と資源の共有状況を利
    用者が定義した計算機間接続関係定義ファイル及び、オ
    ブジェクト間の通信量を測定するか又は利用者が予め設
    定することにより定義したオブジェクト間依存関係定義
    ファイルにもとずき、通信コストを最小化するように、
    オブジェクトを計算機間に配分する処理と、(2)各計
    算機に配分されたオブジェクト処理負荷が均等化するよ
    うに、オブジェクトを各計算機に配分する処理と、
    (3)上記(1)及び(2)における配分が通信コスト
    と処理負荷が所定の基準を満足するように配分結果を調
    整する処理と、を有する分散計算機環境におけるオブジ
    ェクト最適分散配置方法。
  3. 【請求項3】データとその処理手続きを定義したメソッ
    ドの集合からなる処理単位であるオブジェクトが、通信
    ネットワークで接続された複数の計算機上に、複数分散
    して存在し、該オブジェクト同士が、該通信ネットワー
    クを通して互いのメソッドを呼び出し、該通信ネットワ
    ークを通して各オブジェクトの処理結果を受授すること
    で、該オブジェクト同士が協調して処理を行なう分散計
    算機環境におけるオブジェクトの最適分散配置方法が、
    (1)算機間の通信速度と資源の共有状況及び、オブジ
    ェクト間の通信量にもとずき、通信コストを最小化する
    ように、オブジェクトを計算機間に配分する処理と、
    (2)各計算機に配分されたオブジェクト処理負荷が均
    等化するように、オブジェクトを各計算機に配分する処
    理と、(3)上記(1)及び(2)における配分が通信
    コストと処理負荷が所定の基準を満足するように配分結
    果を調整する処理と、を有し、上記(1)〜(3)のう
    ち、少なくとも(1)と(2)をコンピュータプログラ
    ムの形で記述したファイル、又は該ファイルをコンパイ
    ルした実行形式ファイルを記録した記録媒体。、
  4. 【請求項4】データとその処理手続きを定義したメソッ
    ドの集合からなる処理単位であるオブジェクトが、通信
    ネットワークで接続された複数の計算機上に、複数分散
    して存在し、該オブジェクト同士が、該通信ネットワー
    クを通して互いのメソッドを呼び出し、該通信ネットワ
    ークを通して各オブジェクトの処理結果を受授すること
    で、該オブジェクト同士が協調して処理を行なう分散計
    算機環境におけるオブジェクトの最適分散配置方法であ
    って、(1)上記メソッドの集合から、複数の計算機上
    で並行に実行できるメソッド群を探索する処理と、
    (2)計算機間の通信速度と資源の共有状況及び、オブ
    ジェクト間の通信量にもとずき、通信コストを最小化す
    るように、並行に実行できるメソッド群を含むオブジェ
    クトを複数の計算機間に配分する処理と、(3)各計算
    機に配分されたオブジェクト処理負荷が均等化するよう
    に、並行に実行できるメソッド群を含むオブジェクトを
    複数の計算機間に配分する処理と、(4)上記(1)及
    び(2)における配分が通信コストと処理負荷が所定の
    基準を満足するように配分結果を調整する処理と、を有
    する分散計算機環境におけるオブジェクト最適分散配置
    方法。
  5. 【請求項5】データとその処理手続きを定義したメソッ
    ドの集合からなる処理単位であるオブジェクトが、通信
    ネットワークで接続された複数の計算機上に、複数分散
    して存在し、該オブジェクト同士が、該通信ネットワー
    クを通して互いのメソッドを呼び出し、該通信ネットワ
    ークを通して各オブジェクトの処理結果を受授すること
    で、該オブジェクト同士が協調して処理を行なう分散計
    算機環境におけるオブジェクトの最適分散配置方法であ
    って、(1)上記メソッドの集合から、複数の計算機上
    で並行に実行できるメソッド群を探索する処理と、
    (2)計算機間の通信速度と資源の共有状況を利用者が
    定義した計算機間接続関係定義ファイル及び、オブジェ
    クト間の通信量を測定するか又は利用者が予め設定する
    ことにより定義したオブジェクト間依存関係定義ファイ
    ルにもとずき、通信コストを最小化するように、並行に
    実行できるメソッド群を含むオブジェクトを複数の計算
    機間に配分する処理と、(3)各計算機に配分されたオ
    ブジェクト処理負荷が均等化するように、並行に実行で
    きるメソッド群を含むオブジェクトを複数の計算機間に
    配分する処理と、(4)上記(1)及び(2)における
    配分が通信コストと処理負荷が所定の基準を満足するよ
    うに配分結果を調整する処理と、を有する分散計算機環
    境におけるオブジェクト最適分散配置方法。
  6. 【請求項6】上記(1)の探索する処理は、上記オブジ
    ェクト間依存関係定義ファイルで、上記並行に実行でき
    るメソッドの集合に対して、新たに定義したメソッド
    (擬似メソッドという)を割り当て、該擬似メソッドを
    呼び出すことで、該並行に実行できるメソッドの集合に
    含まれるメソッド群を呼び出すことを指定する処理を有
    する、請求項5項記載の分散計算機環境におけるオブジ
    ェクト最適分散配置方法。
  7. 【請求項7】上記(1)の探索する処理は、上記オブジ
    ェクト間依存関係定義ファイルで、上記並行に実行でき
    るメソッドの集合に対して、定義され、割り当てられ
    た、上記擬似メソッドが呼び出される場合、該並行に実
    行できるメソッドの集合に含まれるメソッド群を並行に
    処理することを、該メソッド群を有するオブジェクトが
    割り当てられている各計算機に対して命令するプロセ
    ス、及び該命令を受け取り、該メソッドを実行するプロ
    セスを、該計算機毎に持たせる処理を有する、請求項6
    項記載の分散計算機環境におけるオブジェクト最適分散
    方法。
  8. 【請求項8】請求項1〜3、5〜7いずれか1項記載の
    方法を広域計算機通信網などに分散配置された計算機上
    で実行するためのコンピュータプログラムを記録した記
    録媒体。
JP11073108A 1999-03-18 1999-03-18 分散計算機環境におけるオブジェクトの最適分散配置方法 Pending JP2000268004A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11073108A JP2000268004A (ja) 1999-03-18 1999-03-18 分散計算機環境におけるオブジェクトの最適分散配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11073108A JP2000268004A (ja) 1999-03-18 1999-03-18 分散計算機環境におけるオブジェクトの最適分散配置方法

Publications (1)

Publication Number Publication Date
JP2000268004A true JP2000268004A (ja) 2000-09-29

Family

ID=13508775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11073108A Pending JP2000268004A (ja) 1999-03-18 1999-03-18 分散計算機環境におけるオブジェクトの最適分散配置方法

Country Status (1)

Country Link
JP (1) JP2000268004A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505850A (ja) * 2001-10-15 2005-02-24 ヤコブ リンメル リミティッド オブジェクト分散
JP2013161169A (ja) * 2012-02-02 2013-08-19 Mitsubishi Electric Corp 情報処理装置および情報処理方法およびプログラム
US9148355B2 (en) 2012-09-21 2015-09-29 Kabushiki Kaisha Toshiba System management device, network system, system management method, and program
US10397315B2 (en) 2016-05-26 2019-08-27 Fujitsu Limited Information processing apparatus and load distribution control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505850A (ja) * 2001-10-15 2005-02-24 ヤコブ リンメル リミティッド オブジェクト分散
JP2013161169A (ja) * 2012-02-02 2013-08-19 Mitsubishi Electric Corp 情報処理装置および情報処理方法およびプログラム
US9148355B2 (en) 2012-09-21 2015-09-29 Kabushiki Kaisha Toshiba System management device, network system, system management method, and program
US10397315B2 (en) 2016-05-26 2019-08-27 Fujitsu Limited Information processing apparatus and load distribution control method

Similar Documents

Publication Publication Date Title
US6289424B1 (en) Method, system and computer program product for managing memory in a non-uniform memory access system
JP7083901B2 (ja) ダークローンチ実現方法、装置、計算ノード及びシステム
US10447806B1 (en) Workload scheduling across heterogeneous resource environments
US8595742B2 (en) Executing a distributed java application on a plurality of compute nodes in accordance with a just-in-time compilation history
US9086924B2 (en) Executing a distributed java application on a plurality of compute nodes
US9996401B2 (en) Task processing method and virtual machine
US6247041B1 (en) Multiprocessor computer system with user specifiable process placement
US7958184B2 (en) Network virtualization in a multi-node system with multiple networks
RU2530345C2 (ru) Экземпляры планировщика в процессе
WO2017067016A1 (en) Extension of resource constraints for service-defined containers
US20070024898A1 (en) System and method for executing job step, and computer product
US8775622B2 (en) Computer-based cluster management system and method
JPH0954754A (ja) 疎結合並列処理環境における顧客情報制御システム及び方法
CN105786603B (zh) 一种基于分布式的高并发业务处理系统及方法
US8127273B2 (en) Node selection for executing a Java application among a plurality of nodes
JP2005534116A (ja) 複数の消費者をもつコンピュータシステムで資源を動的に割当てて管理する方法
US20090125611A1 (en) Sharing loaded java classes among a plurality of nodes
JPH11296313A (ja) 記憶サブシステム
JP2005056077A (ja) データベース制御方法
JPH06290056A (ja) 異なるコンピュータ上でのソフトウェアの実行を最適化するための方法および装置
US11561843B2 (en) Automated performance tuning using workload profiling in a distributed computing environment
CN112039963B (zh) 一种处理器的绑定方法、装置、计算机设备和存储介质
US7908377B2 (en) Computer system and data sharing method
JPH0944461A (ja) 疎結合並列処理環境においてapiスタート及びキャンセルトランザクション機能を有する顧客情報制御システム及び方法
JP2000268004A (ja) 分散計算機環境におけるオブジェクトの最適分散配置方法