米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 三菱重工業株式会社

発明の名称 動的負荷分散を行うシミュレーションシステム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−316754(P2003−316754A)
公開日 平成15年11月7日(2003.11.7)
出願番号 特願2002−126704(P2002−126704)
出願日 平成14年4月26日(2002.4.26)
代理人 【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳 (外1名)
【テーマコード(参考)】
5B045
5B098
【Fターム(参考)】
5B045 GG04 GG15 JJ06 KK05 
5B098 AA10 GA01 GC08 GC10 GD02 GD14
発明者 前田 浩幸
要約 課題
オブジェクトの処理を担当する各処理装置の負荷を均衡させる均衡させる。

解決手段
シミュレーションシステム10の計算機1〜3の記憶部11〜13には,シミュレーション対象の系に登場する複数のオブジェクトに対応するオブジェクトプログラムが記憶されている。オブジェクト処理部21〜23はそれぞれ,複数のオブジェクトのうち,自己に割り当てられたオブジェクトに対応するオブジェクトプログラムを実行する。負荷監視部31〜33は,それぞれオブジェクト処理部21〜23の負荷(処理に要する時間)を計測し,計測した負荷を計算機3の負荷監視部53に送信する。負荷監視部53は,負荷の相対的に小さい計算機に,負荷の相対的に大きい計算機が担当していたオブジェクトの処理を割り当てることにより,動的な負荷分散を行う。
特許請求の範囲
【請求項1】 複数の物体を有する系のシミュレーションを実行する複数の処理装置と,該複数の処理装置によるシミュレーションの進行を管理する管理装置とを有するシミュレーションシステムであって,前記複数の処理装置のそれぞれは,複数のプログラムからなるプログラム群であって,各プログラムが前記複数の物体のそれぞれに対応して,対応した物体のシミュレーションを実行する,プログラム群を記憶する記憶手段と,前記記憶手段に記憶されたプログラム群のうち,自己に割り当てられた1または2以上の物体に対応するプログラムを実行する処理手段と,自己の処理の負荷を監視し,該負荷を前記管理装置に送信する監視手段と,を有し,前記管理装置は,前記各処理装置の前記監視手段により送信された負荷に基づいて,相対的に負荷の大きな処理装置に割り当てられた物体を相対的に負荷の小さな処理装置に割り当てるように,各処理装置が処理する物体の割り当てを変更する負荷調整手段を有する,シミュレーションシステム。
【請求項2】 請求項1において,前記各処理装置の前記監視手段は,前記処理手段が前記割り当てられた1または2以上の物体に対応するプログラムの実行が終了すると,該実行されたプログラムの各処理時間を処理の負荷として前記管理装置に送信し,前記管理装置の前記負荷調整手段は,前記複数の処理装置のすべてから前記処理時間を受信すると,終了通知を前記複数の処理装置のすべてに送信し,前記各処理装置の前記監視手段は,前記割り当てられた物体に対応するプログラムの処理の終了から前記終了通知を受信するまでの待ち時間を前記管理装置に送信し,前記管理装置の前記負荷調整手段は,前記待ち時間と,前記各処理装置の前記監視手段から送信されたプログラムの各処理時間とに基づいて,各処理装置が処理する物体の割り当てを変更する,シミュレーションシステム。
【請求項3】 請求項2において,前記負荷調整手段は,前記待ち時間の最大のものから前記各処理時間を減算し,減算結果が該処理時間より大きいものの1つに対応する物体を,待ち時間が最大の処理装置に割り当てる,シミュレーションシステム。
【請求項4】 請求項2において,前記負荷調整手段は,前記待ち時間の最大のものから前記各処理時間を減算し,減算結果が該処理時間より大きいものの中で,前記減算結果の最大のものに対応する物体を,待ち時間が最大の処理装置に割り当てる,シミュレーションシステム。
【請求項5】 請求項1から4のいずれか1項において,前記複数の処理装置のそれぞれは,前記管理装置の指令に基づいて,前記処理手段が前記プログラムを実行するのに必要となるデータを他の処理装置との間で送受信する送受信手段をさらに有し,前記管理装置の負荷調整手段は,前記データの送受信を前記送受信手段に指令し,データを受信した処理装置に該データに対応する物体を割り当て,データを送信した処理装置に該データに対応する物体の割り当てを解除する,シミュレーションシステム。
【請求項6】 請求項1から5のいずれか1項において,前記複数の処理装置の1つが前記管理装置に兼用される,シミュレーションシステム。
【請求項7】 複数の物体を有する系のシミュレーションを実行する複数の処理装置と,該複数の処理装置によるシミュレーションの進行を管理する管理装置とを有するシミュレーションシステムにおける負荷分散方法であって,前記複数の処理装置のそれぞれは,複数のプログラムからなるプログラム群であって,各プログラムが前記複数の物体のそれぞれに対応して,対応した物体のシミュレーションを実行する,プログラム群を自己の記憶手段にあらかじめ記憶し,前記プログラム群のうち,自己に割り当てられた1または2以上の物体に対応するプログラムを実行し,自己の処理の負荷を監視し,該負荷を前記管理装置に送信し,前記管理装置は,前記各処理装置から送信された各処理装置の処理の負荷に基づいて,各処理装置の負荷が均衡するように,各処理装置が処理する物体の割り当てを変更する,負荷分散方法。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は,シミュレーションシステムに関し,特に,複数の物体を有する系のシミュレーションを実行する複数の処理装置と,該複数の処理装置によるシミュレーションの進行を管理する管理装置とを有し,該複数の処理装置に動的な負荷分散を行うシミュレーションシステムに関する。また,本発明は,シミュレーションシステムにおける負荷分散方法に関する。
【0002】
【従来の技術】多数の物体(オブジェクト:object)を有する系のシミュレーションを行うシミュレーションシステムは,一般に,シミュレーションの処理を高速に行うために,複数の計算機を有する。複数の計算機は,シミュレーションに登場するオブジェクトの一部分ずつを受け持ち,分割(分担)して処理(計算)を行う。この場合に,各オブジェクトを処理する計算機は固定されており,処理の進行を管理するマスタ役の計算機が1台存在する。
【0003】一般的にオブジェクトの個数は,計算機の数より多い。そのため,1台の計算機が複数のオブジェクトを処理することになる。各計算機はシミュレーションの時間を同期させながら処理を行っていく必要があるため,各計算機の処理負荷がバランスするように,オブジェクトの配分を行う必要がある。
【0004】図5は,従来のシミュレーションシステムの構成例を示すブロック図である。図5に示すシミュレーションシステムは,一例として3台の計算機100,200,および300を有し,これらの計算機は,通信ネットワーク400で相互に接続されている。
【0005】このシミュレーションシステムは,シミュレーションに登場する5つのオブジェクトa〜eを処理し,計算機100はオブジェクトaおよびbを担当し,計算機200はオブジェクトcおよびdを担当し,計算機300はオブジェクトeを担当する。また,この例では,計算負荷の1番少ない計算機300が処理の進行を管理するマスタ役も同時に行っている。
【0006】図6は,計算機100,200,および300のそれぞれのオブジェクトの処理に要する時間(負荷)を示すタイムチャートである。第1フレームにおけるオブジェクトa〜eのそれぞれの処理時間をTa1〜Te1で示し,第2フレームにおけるオブジェクトa〜eのそれぞれの処理時間をTa2〜Te2で示している。
【0007】各オブジェクトの計算量(処理量)は時間的に変化するため,計算の終了に要する時間が変化する。第1フレームおよび第2フレームとも,計算機100の処理時間が長いが,第2フレームでは,オブジェクトbの処理時間Tb2が第1フレームにおける処理時間Tb1よりも長くなってなり,また,オブジェクトdの処理時間Td2が第1フレームにおける処理時間Td1よりも長くなっている。その結果,計算機300は,第1フレームおよび第2フレームとも,他の計算機の処理終了を待たされることとなり,その待ち時間は,第2フレームの方が第1フレームよりも長くなっている。
【0008】オブジェクトの処理量(計算量)の時間的変化は一般に予測することが難しく,各計算機の総待ち時間を最も少なくし,高速にシミュレーション計算を行う最適なオブジェクトの計算機への配分をあらかじめ決めるのは困難である。
【0009】
【発明が解決しようとする課題】本発明は,このような状況に鑑みなされたものであり,その目的は,オブジェクトの処理を担当する処理装置(たとえば計算機)をシミュレーション実行時に動的に変更することにより,各処理装置の負荷を均衡させることにある。
【0010】また,本発明の目的は,負荷を均衡させることにより,シミュレーションシステム全体の処理時間を短縮することにある。
【0011】
【課題を解決するための手段】前記目的を達成するために,本発明によるシミュレーションシステムは,複数の物体を有する系のシミュレーションを実行する複数の処理装置と,該複数の処理装置によるシミュレーションの進行を管理する管理装置とを有するシミュレーションシステムであって,前記複数の処理装置のそれぞれは,複数のプログラムからなるプログラム群であって,各プログラムが前記複数の物体のそれぞれに対応して,対応した物体のシミュレーションを実行する,プログラム群を記憶する記憶手段と,前記記憶手段に記憶されたプログラム群のうち,自己に割り当てられた1または2以上の物体に対応するプログラムを実行する処理手段と,自己の処理の負荷を監視し,該負荷を前記管理装置に送信する監視手段と,を有し,前記管理装置は,前記各処理装置の前記監視手段により送信された負荷に基づいて,相対的に負荷の大きな処理装置に割り当てられた物体を相対的に負荷の小さな処理装置に割り当てるように,各処理装置が処理する物体の割り当てを変更する負荷調整手段を有する。
【0012】また,本発明による負荷分散方法は,複数の物体を有する系のシミュレーションを実行する複数の処理装置と,該複数の処理装置によるシミュレーションの進行を管理する管理装置とを有するシミュレーションシステムにおける負荷分散方法であって,前記複数の処理装置のそれぞれは,複数のプログラムからなるプログラム群であって,各プログラムが前記複数の物体のそれぞれに対応して,対応した物体のシミュレーションを実行する,プログラム群を自己の記憶手段にあらかじめ記憶し,前記プログラム群のうち,自己に割り当てられた1または2以上の物体に対応するプログラムを実行し,自己の処理の負荷を監視し,該負荷を前記管理装置に送信し,前記管理装置は,前記各処理装置から送信された各処理装置の処理の負荷に基づいて,各処理装置の負荷が均衡するように,各処理装置が処理する物体の割り当てを変更するものである。
【0013】本発明によると,各処理装置から送信された負荷に基づいて,相対的に負荷の大きな処理装置に割り当てられた物体が,相対的に負荷の小さな処理装置に動的に割り当てられる。これにより,各処理装置の負荷が均衡するように,負荷分散が動的に行われる。その結果,シミュレーションシステム全体の処理時間も短縮することができる。
【0014】本発明の一実施の形態によると,前記各処理装置の前記監視手段は,前記処理手段が前記割り当てられた1または2以上の物体に対応するプログラムの実行が終了すると,該実行されたプログラムの各処理時間を処理の負荷として前記管理装置に送信し,前記管理装置の前記負荷調整手段は,前記複数の処理装置のすべてから前記処理時間を受信すると,終了通知を前記複数の処理装置のすべてに送信し,前記各処理装置の前記監視手段は,前記割り当てられた物体に対応するプログラムの処理の終了から前記終了通知を受信するまでの待ち時間を前記管理装置に送信し,前記管理装置の前記負荷調整手段は,前記待ち時間と,前記各処理装置の前記監視手段から送信されたプログラムの各処理時間とに基づいて,各処理装置が処理する物体の割り当てを変更する。
【0015】好ましくは,前記負荷調整手段は,前記待ち時間の最大のものから前記各処理時間を減算し,減算結果が該処理時間より大きいものの1つに対応する物体を,待ち時間が最大の処理装置に割り当てる。また,減算結果が該処理時間より大きいものの1つは,その中で減算結果が最大のものであることがさらに好ましい。
【0016】さらに好ましくは,前記複数の処理装置のそれぞれは,前記管理装置の指令に基づいて,前記処理手段が前記プログラムを実行するのに必要となるデータを他の処理装置との間で送受信する送受信手段をさらに有し,前記管理装置の負荷調整手段は,前記データの送受信を前記送受信手段に指令し,データを受信した処理装置に該データに対応する物体を割り当て,データを送信した処理装置に該データに対応する物体の割り当てを解除する。これにより,プログラムを移動サルことなく,データの移動のみで,動的な負荷分散を行うことができる。
【0017】
【発明の実施の形態】図1は,本発明の一実施の形態によるシミュレーションシステム10の構成を示すブロック図である。このシミュレーションシステム10は,複数の物体を有する系のシミュレーション(たとえば防空シミュレーション,フライトシミュレーション等)を実行する。
【0018】シミュレーションシステム10は,複数の処理装置としての計算機を有し,本実施の形態では一例として3つの計算機1〜3を有する。これらの計算機1〜3は,通信ネットワーク4に接続され,通信ネットワーク4を介して相互に通信可能に構成されている。通信ネットワーク4は,たとえばCSMA/CD方式等による共通バスにより構成することもできるし,リングネットワークにより構成することもできる。
【0019】計算機1は,記憶部11,オブジェクト処理部21,負荷監視部31,およびオブジェクトデータ移動部41を有する。計算機2は,記憶部12,オブジェクト処理部22,負荷監視部32,およびオブジェクトデータ移動部42を有する。計算機3は,記憶部13,オブジェクト処理部23,負荷監視部33,オブジェクトデータ移動部43,および負荷調整部53を有する。計算機1〜3のそれぞれの構成要素は,各計算機内部の内部バス(内部信号線)に接続され,相互に通信可能に構成されている。
【0020】このように,計算機1および2は,同じ構成を有するのに対し,計算機3は,計算機1および2の構成要素に加えて,負荷調整部53を有する点で計算機1および2と異なる。計算機3は,負荷調整部53により,自己ならびに計算機1および2の全体の処理の進行を管理するマスタ計算機(管理装置)の役割を果たす。一方,計算機1および2は,マスタ計算機3の負荷調整部53による負荷分散に基づいて処理が割り当てられ,割り当てられた処理を実行するスレーブ計算機(処理装置)の役割を果たす。また,計算機3は,自己の負荷調整部53により処理が割り当てられるスレーブ計算機としても機能する。
【0021】記憶部11〜13には,シミュレーションに登場する複数の航空機,センサ等の物体(オブジェクト:object)の処理内容または動作内容を記述したプログラムがあらかじめ記憶されている。本実施の形態では,1つのオブジェクトに1つのプログラム(以下「オブジェクトプログラム」という。)が対応している。
【0022】また,記憶部11〜13のそれぞれには,シミュレーションに登場するすべてのオブジェクトに対応するオブジェクトプログラムからなるプログラム群が記憶されている。このように,各記憶部が全オブジェクトプログラムをあらかじめ記憶しておくことにより,処理中に動的な負荷分散が行われても,オブジェクトプログラムそのものをスレーブ計算機間で通信する必要がなく,通信コストおよび通信に要する処理時間が削減される。
【0023】オブジェクト処理部21〜23は,記憶部11〜13のそれぞれに記憶されたオブジェクトプログラムPa〜Peを実行することにより,オブジェクトa〜eの処理(計算)を実行する。
【0024】オブジェクトプログラムは,そのオブジェクトプログラムの実行に必要な状態データ(以下「オブジェクトデータ」という。)が与えられることにより実行可能となる。このオブジェクトデータは,たとえばオブジェクトプログラムが飛行機というオブジェクトに対応するものである場合に,その飛行機の位置や飛行方向,飛行速度等の状態を表すデータである。
【0025】このシミュレーションシステム10の処理開始時において,各計算機には,初期値として,一部のオブジェクトプログラムに対応するオブジェクトデータが与えられ,各計算機のオブジェクト処理部21〜23は,与えられたオブジェクトデータに基づいて,そのオブジェクトデータに対応するオブジェクトプログラムを実行する。
【0026】オブジェクト処理部21〜23が,与えられたオブジェクトデータに基づいてオブジェクトプログラムを実行すると,実行結果として,同じオブジェクトプログラムまたは他のオブジェクトプログラムの実行に必要なオブジェクトデータを生成する。
【0027】負荷監視部31〜33は,オブジェクト処理部21〜23によりそれぞれ実行されたオブジェクトプログラムの処理負荷を監視する。処理負荷として,本実施の形態では,一例として,オブジェクトプログラムの処理に要した時間を使用するものとする。
【0028】オブジェクトデータ移動部41〜43は,負荷調整部53の指令により,オブジェクトデータを他の計算機のオブジェクトデータ移動部との間で送受信する。後に詳述するように,オブジェクトデータを受信したスレーブ計算機は,該受信したオブジェクトデータに基づいて,そのオブジェクトデータに対応するオブジェクトプログラムを実行する。このようにして,シミュレーションの実行中に動的な負荷分散が行われる。
【0029】負荷調整部53は,各計算機の負荷を測定し,計算機間の負荷バランスが崩れた場合に,オブジェクトデータ移動部41〜43を使用して,オブジェクトデータの移動を行い,各計算機間の負荷を均等にする。
【0030】なお,図示は省略するが,シミュレーションシステム10には表示装置および入力装置が設けられる。そして,シミュレーション結果は表示装置に表示され,シミュレーションシステムに対する所定の入力データは入力装置を介して入力される。
【0031】図2および図3は,計算機1〜3のそれぞれのシミュレーション実行時の処理の流れを示すフローチャートであり,図3は図2の続きの処理を示している。これらの図は,複数の計算機をマスタ計算機とスレーブ計算機とに分けて図示しているが,マスタ計算機は図1の計算機3に対応し,スレーブ計算機は計算機1〜3のそれぞれに対応する。図4は,計算機1〜3のそれぞれのオブジェクトプログラムの実行に要する時間(負荷)を示すタイムチャートである。
【0032】以下では,一例として,スレーブ計算機の各記憶部11〜13に,5つのオブジェクトa〜eにそれぞれ対応するオブジェクトプログラムPa〜Peが記憶されているものとする。また,オブジェクトデータの初期値として,スレーブ計算機1にはオブジェクトプログラムPaおよびPbのオブジェクトデータが与えられ,スレーブ計算機2にはオブジェクトプログラムPcおよびPdのオブジェクトデータが与えられ,スレーブ計算機3にはオブジェクトプログラムPeのオブジェクトデータが与えられているものとする。これらの負荷データは,図示しない入力装置から入力することもでき,また,負荷調整部53が通信ネットワーク4または内部バスを介して,オブジェクト処理部21〜23に与えることもできる。
【0033】スレーブ計算機のオブジェクト処理部2i(iは1〜3のいずれかの整数,以下同様)は,初期値として与えられたオブジェクトデータに基づいてオブジェクトプログラムを実行する(S21)。上記例では,計算機1のオブジェクト処理部21はオブジェクトプログラムPaおよびPbを,計算機2のオブジェクト処理部12はオブジェクトプログラムPcおよびPdを,計算機3のオブジェクト処理部13はオブジェクトプログラムPeを,それぞれ実行する。実行開始の指令は,負荷調整部53から与えられてもよい。
【0034】複数のオブジェクトプログラムについてのオブジェクトデータが与えられた場合には,これら複数のオブジェクトプログラムが同時並行して実行可能ならば,いずれか一方が選択されて先に実行され,その後,他方が実行されることとなる。一方,これら複数のオブジェクトプログラムが順序性を有する場合には,この順序性に従って実行されることとなる。たとえば,上記例では,計算機1のオブジェクト処理部11は,オブジェクトプログラムPaおよびPbが同時並行して実行可能である場合には,いずれか一方を先に実行し,その後,他方を実行し,順序性を有する場合には,この順序に従って実行することとなる。計算機2においても同様である。
【0035】本実施の形態では,一例として,計算機1のオブジェクト処理部21は,オブジェクトプログラムPaを先に実行し,その後オブジェクトプログラムPbを実行するものとする。また,計算機2のオブジェクト処理部22は,オブジェクトプログラムPbを先に実行し,その後,オブジェクトプログラムPcを実行するものとする。
【0036】続いて,スレーブ計算機の負荷監視部3iは,オブジェクトプログラムの実行が1つ終了するごとに,そのオブジェクトプログラムの実行に要した時間を計算する(S22)。
【0037】これらステップS21およびS22の処理は,初期値として与えられたオブジェクトデータにより実行可能となったオブジェクトプログラムの実行が終了するまで繰り返される(S23)。
【0038】これにより,計算機1では,オブジェクトプログラムPaおよびPbが実行され,オブジェクトプログラムPaの処理時間Ta1およびオブジェクトプログラムPbの処理時間Tb1が求められる。計算機2では,オブジェクトプログラムPcおよびPdが実行され,オブジェクトプログラムPcの処理時間Tc1およびオブジェクトプログラムPdの処理時間Td1が求められる。計算機3では,オブジェクトプログラムPeが実行され,オブジェクトプログラムPeの処理時間Te1が求められる。
【0039】与えられたオブジェクトデータの初期値に対する処理が終了すると,オブジェクト処理部2iは,これにより,次のオブジェクトデータを生成するが,次のオブジェクトデータに対する処理は,負荷調整部53から指令があるまで,待ち状態となる。
【0040】続いて,負荷監視部3iは,処理終了通知および処理時間をマスタ計算機の負荷調整部53に送信する(S24)。負荷監視部31および32は,通信ネットワーク4を介して処理終了通知および処理時間を送信し,負荷監視部33は,同じ計算機3内に負荷調整部53が存在するので,内部バスを介して処理終了通知および処理時間を送信することとなる。
【0041】負荷調整部53は,すべてのスレーブ計算機から処理終了通知および処理時間を受信すると(S1でYES),処理時間を記憶するとともに,第1フレームのフレーム終了通知をすべてのスレーブ計算機の負荷監視部31〜33に送信する(S2)。
【0042】ここで,「フレーム」とは,各計算機に与えたオブジェクトデータに対する各計算機の処理開始から処理終了までの処理区間という。
【0043】負荷監視部3iは,第1フレームのフレーム終了通知を受信すると(S25でYES),オブジェクト処理部2iのプログラム終了からフレーム終了通知の受信までの待ち時間を計算し,この待ち時間を負荷調整部53に送信する(S26)。この待ち時間は,処理終了通知および処理時間の送信後(S24),フレーム終了通知の受信までの時間として求められる。
【0044】図4に示すように,第1フレームの時間をTf1,計算機1の待ち時間D11(=0),計算機2の待ち時間D21,計算機3の待ち時間D31とすると,D11=Tf1−(Ta1+Tb1)=0,D21=Tf1−(Tc1+Td1),D31=Tf1−Te1となる。なお,図4に示すように,Ta1+Tb1>Tc1+Td1>Te1の関係にあるものとし,したがって,D31>D21>D11の関係にあるものとする。
【0045】負荷調整部53は,すべてのスレーブ計算機から待ち時間D11〜D13を受信すると(S3でYES),これら待ち時間D11〜D13を比較し,その中から最大の待ち時間DMAX(ここではD13)を有するスレーブ計算機(計算機Mとする。)を決定する(S4)。上記例では,計算機Mは計算機3となる。
【0046】スレーブ計算機Mが負荷の最も小さな計算機である。したがって,負荷調整部53は,この最小負荷のスレーブ計算機Mにどのオブジェクトプログラムの処理を実行させると,シミュレーションシステム10全体の処理時間が短くなるかを判断する。
【0047】すなわち,まず,負荷調整部53は,最小の待ち時間のスレーブ計算機(計算機Nとする。)において第1フレームで実行された全オブジェクトプログラムの処理時間(処理時間TN1〜TNnとする。)を読み出す。上記例では,計算機Nはスレーブ計算機1となり,読み出される処理時間はTa1およびTb1である。
【0048】続いて,負荷調整部53は,読み出した処理時間のうち,DMAX−TNj>TNj(jは1〜nまでの整数)となる処理時間TNjに対応するオブジェクト(オブジェクトの識別子)を,スレーブ計算機Mに処理させるオブジェクトプログラムの候補として登録する(S6〜S9)。
【0049】図3に移って,ステップS6で登録されたオブジェクトが複数存在する場合,すなわちDMAX−TNj>TNjとなる処理時間TNjが複数存在する場合には(S10でYES),負荷調整部53は,その中から1つのオブジェクト,好ましくは最大の処理時間を有するオブジェクトを選択する(S11)。最大の処理時間を有するオブジェクトが複数存在する場合には,その中からいずれか1つが選択される。登録されたオブジェクトが1つの場合には,そのオブジェクトが選択される。上記例では,オブジェクトaが選択される。
【0050】続いて,負荷調整部53は,ステップS11で選択されたオブジェクトaに対応するオブジェクトプログラムPaの処理結果のオブジェクトデータをスレーブ計算機Mに送信するように,スレーブ計算機Nのオブジェクトデータ移動部に指令する(S12)。また,負荷調整部53は,オブジェクトaに対応するオブジェクトプログラムPaの処理結果のオブジェクトデータを受信するように,スレーブ計算機Mのオブジェクトデータ移動部に指令する(S13)。
【0051】上記例は,スレーブ計算機1のオブジェクトデータ移動部41には,オブジェクトプログラムPaのオブジェクトデータの送信指令が負荷調整部53から与えられ,スレーブ計算機3のオブジェクトデータ移動部43には,オブジェクトプログラムPaのオブジェクトデータの受信指令が負荷調整部53から与えられる。これにより,オブジェクトデータ移動部41は,オブジェクトプログラムPaのオブジェクトデータを計算機3に送信し,オブジェクトデータ移動部43は,送信された状態データを受信し,受信した状態データをオブジェクト処理部23に与える。
【0052】スレーブ計算機1は,オブジェクトプログラムPaのオブジェクトデータの送信により,次のフレーム(第2フレーム)では,オブジェクトプログラムPaを除いたオブジェクトプログラム,すなわちオブジェクトプログラムPbのみを実行する。スレーブ計算機3は,これまで実行したオブジェクトプログラムPeに加えて,受信したオブジェクトデータに対応するオブジェクトプログラムPaを実行する。このようにして,シミュレーション実行中に動的な負荷分散が実行される。
【0053】続いて,負荷調整部53は,次のフレーム(第2フレーム)の処理開始指令をすべてのスレーブ計算機に与える(S13)。
【0054】これにより,スレーブ計算機1は,オブジェクトプログラムPaを除いたオブジェクトプログラムPbを実行し,スレーブ計算機2は,第1フレームと同様にオブジェクトプログラムPcおよびPdを実行し,スレーブ計算機3は,オブジェクトプログラムPaおよびPeを実行する。
【0055】その結果,図4に示すように,第2フレームの処理時間Tf2は,第1フレームの処理時間Tf1よりも短くなり,シミュレーションシステム10全体の処理時間が短縮される。
【0056】このような処理が,各フレームごとに実行され,シミュレーションが実行されて行く。
【0057】このように,本実施の形態によると,各スレーブ計算機の負荷が均衡するように,各スレーブ計算機が担当するオブジェクトが動的に変更され,動的な負荷分散が実行される。その結果,シミュレーション処理に要する時間も短縮される。
【0058】また,本実施の形態によると,シミュレーションシステムを構成するすべての計算機にすべての種類のオブジェクトプログラムがあらかじめ記憶されているので,オブジェクトの計算途中のオブジェクトデータを異なる計算機に移動させるだけで,オブジェクトの計算を行う計算機を変更することが可能になる。その結果,通信コストが軽減され,これによっても,シミュレーションの処理時間を短縮することができる。
【0059】なお,本実施の形態は一例であって,本発明の技術的範囲を限定するものではない。たとえば,負荷調整部53は,計算機3に設けられているが,計算機1または2に設けることもできる。また,処理の進行を管理するマスタ役専用の計算機4が計算機1〜3以外に設けられ,この計算機4に負荷調整部53を設けることもできる。
【0060】
【発明の効果】本発明によると,各処理装置から送信された負荷に基づいて,相対的に負荷の大きな処理装置に割り当てられた物体が,相対的に負荷の小さな処理装置に動的に割り当てられる。これにより,各処理装置の負荷が均衡するように,負荷分散が動的に行われる。その結果,シミュレーションシステム全体の処理時間も短縮することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013