JPH09153150A - 並列処理方法 - Google Patents

並列処理方法

Info

Publication number
JPH09153150A
JPH09153150A JP31413095A JP31413095A JPH09153150A JP H09153150 A JPH09153150 A JP H09153150A JP 31413095 A JP31413095 A JP 31413095A JP 31413095 A JP31413095 A JP 31413095A JP H09153150 A JPH09153150 A JP H09153150A
Authority
JP
Japan
Prior art keywords
processing
processors
radiation
processor
graphic
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
JP31413095A
Other languages
English (en)
Inventor
Tooru Sakaihara
徹 酒井原
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 JP31413095A priority Critical patent/JPH09153150A/ja
Publication of JPH09153150A publication Critical patent/JPH09153150A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】本発明は、従来共有メモリの競合により、一定
数以上のプロセッサで並列にラジオシティ処理を実行し
ても性能が向上しない問題を、共有メモリを持たないメ
ッセージパッシング型の並列計算機を用いることにより
解決する。 【解決手段】複数のプロセッサの各々が自己の担当する
処理の進捗状況を一定間隔で1つのプロセッサに送り、
この1つのプロセッサが、プロセッサ間での負荷の移動
を指示し、該指示されたプロセッサが負荷移動する。こ
れにより、メッセージパッシング型計算機を用いて、ラ
ジオシティ法による並列表示処理を、プロセッサ数を増
加させても負荷の不均衡を起こすことなく効率良く実行
可能となる

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、表示物体間の光の
相互反射を考慮した三次元図形の表示法、すなわちラジ
オシティ法に関し、特に共有メモリを持たないメッセー
ジパッシング型の並列計算機を前提として高速な表示を
実現する並列処理方法に関する。
【0002】
【従来の技術】建築設計の計算機支援の1つとして、室
内の設計時の意匠上の確認等のため、間接照明、すなわ
ち、光源からの直接光に基づく照明の他に、表示物体相
互の光の反射に基づく照明による室内各部の明るさを計
算して表示するラジオシティ法が用いられる。ラジオシ
ティ法には幾つかの計算方法が考案されているが、計算
時間が比較的短く、かつ、計算で必要とされる記憶容量
が少なくてすむ漸近洗練化法(progressive refinement)
が一般的に用いられている。
【0003】漸近洗練化法は、表示物体を構成する各図
形の照度を計算するため、放射処理を繰り返して物理学
的に正しい値に収束させようとするものである。ここ
で、放射処理とは、表示図形の1つ、すなわち放射元図
形が、他の、すなわち放射先の図形を照らすことによる
放射先図形の照度の増加量を計算する処理である。放射
エネルギの高い図形から順番に放射元として、照度が収
束するまで、この放射処理を繰り返す。
【0004】ここで、放射元および放射先となる図形に
ついて説明する。三次元図形表示においては、表示物体
は通常、多角形、すなわちポリゴンの集合として定義さ
れる。ラジオシティにおいては、取り扱う多角形内部の
明るさは、多角形内で均一であるとして処理を行う。こ
のため、ポリゴンを分割して光の放射元となる多角形、
すなわち、パッチを得る。さらにこのパッチを分割し
て、光を受ける計算の単位となるもの、すなわち、エレ
メントを得る。光を他の図形に放射する処理において、
均一の明るさと考えられる多角形がパッチであり、ある
パッチから放射された光を受け取る処理において、均一
の明るさと考えられる多角形がエレメントである。この
パッチとエレメントを処理の対象とする。
【0005】エレメントの方が他の図形の影により明る
さが不均一になる可能性が高いので、エレメントはパッ
チよりも細かい単位としている。他の図形の影の境界に
あたるエレメントは内部の明るさが極端に異なってしま
う。この問題を解決するため、影の境界にあたるエレメ
ントを細かく分割して、新たなエレメントとする。この
処理を適応分割処理と呼んでいる。
【0006】図1に以上の手順1を示す。ステップ10
1にて、ポリゴンをパッチおよびエレメントに分割し、
ステップ102にて、最大の放射エネルギを持つパッチ
を放射元として選択し、ステップ103で各エレメント
への放射処理を実行する。ステップ104で全エレメン
トへの放射処理が終了したかを判定し、未終了の場合、
ステップ103の放射処理を繰り返す。ステップ105
では、各エレメントの照度、すなわち、単位面積当たり
のエネルギであるラジオシティ値が収束したかを判定
し、未収束の場合は、ステップ102へ戻り新たなパッ
チを放射元として、放射処理を繰り返す。収束した場合
には、得られた照度でエレメントを表示する(ステップ
106)。
【0007】ここで、ステップ102で最大の放射エネ
ルギを有するパッチを選択するとしたが、正確には、未
だ放射処理を行っていない最大の放射エネルギをもつパ
ッチ、すなわち、未放射エネルギが最大のパッチを選択
する。当該パッチの未放射エネルギは放射処理を行う
と、’0’になる。なお、漸近洗練化法の詳細について
は、マイケル.F.コーエン他著、”ア プログレッシ
ブ リファイアメントアプローチ ツ ファースト ラ
ジオシティ イメージ ジネレーション”、コンピュー
タグラフィックス、第22巻4号1988年8月(Mich
ael F. Cohen et al., "A Progressive Refinement Ap
proach to Fast Radiosity Image Generation," Compu
ter Graphics Vol.22, No.4, August 1988)を参照さ
れたい。
【0008】しかし、漸近洗練化法においては放射処理
に時間がかかる問題があり、従来より、並列処理により
高速化する試みが行われている。ジャスウィンダ.P.
シン他著、”パラレル ビジュアライゼーション アル
ゴリズム: パフォーマンスアンド アーキテクチャル
インプリメンテーションズ”、コンピュータ 第27
巻7号 1994年7月(Jaswinder Pal Singh et a
l., "Parallel Visualization Algorithms: Performanc
e and Architectual Implications," IEEE Computer Vo
l.27 No.7 July 1994 )に論じられているように、エ
レメントを複数のプロセッサに割り当て、放射処理を並
列に実行する方法、すなわち、図1のステップ103、
104のループを、複数のプロセッサに展開して処理す
る方法が考案されている。
【0009】この並列化の方法を図14に示す。共有メ
モリ上で各プロセッサに対してエレメントを割り振り、
各プロセッサには、同一の放射元パッチからの放射処理
を実行させる。ここで、他のエレメントの影の境界にあ
たるエレメントは前記適応分割により分割される。この
並列化の方法での問題点は、プロセッサ間の負荷の不均
衡の問題である。すなわち、最初にエレメントを均等に
プロセッサへ配分しても、プロセッサ間で前記適応分割
の発生頻度にバラツキが生ずるために、処理中に、各プ
ロセッサの担当するエレメント数に偏差が生じてしま
う。
【0010】この問題を次のような方法により解決して
いる。すなわち、プロセッサ毎に共有メモリ上にそのプ
ロセッサが放射処理を担当するエレメントのキュー(図
では、エレメントを楕円で囲んで示している)を作る。
各プロセッサは自分のキューのエレメントを処理する。
自分のキューを終了したプロセッサは他のプロセッサの
キューから未処理のエレメントを横取りして処理を行
い、負荷の不均衡が発生するのを防止する。
【0011】
【発明が解決しようとする課題】しかし、上記の方式で
はハードウェア構成として共有メモリを前提にするた
め、プロセッサの数が増加すると、共有メモリにアクセ
スが集中して、性能の伸びが得られなくなる問題があ
る。
【0012】なお、ラジオシティ法を用いた画像生成方
法が特開平7−93580号公報に開示されているが、
複数のプロセッサによる放射処理の実行については言及
されていない。
【0013】このように、上記ラジオシティ法の並列処
理においては、プロセッサ数を一定数以上に増加させて
も、共有メモリのアクセス競合により、性能が向上しな
い問題があった。
【0014】本発明の目的は、多数のプロセッサにおい
ても効率的なラジオシティの並列処理を実現することに
ある。
【0015】
【課題を解決するための手段】本発明による並列処理方
法は、三次元図形の幾何学的情報、その光学的な特性、
および光源の情報から、複数の図形の相互間での光の授
受量の計算に基づいて各図形の照度を求め、各図形を求
めた照度で表示することにより陰影感のある画像を得る
際に、前記光の授受量の計算として、まず、光を放射す
る側の図形あるいは光源を表わす図形を定め、残りの図
形を光が放射される側として、光の授受、すなわち放射
処理を行い、前記放射側図形を放射エネルギの高い順に
選択して、各図形の照度が収束するまで繰り返し前記放
射処理を実行する三次元図形表示のための漸近洗練化ラ
ジオシティ表示における並列処理方法であって、共有メ
モリを具備しない、メッセージパッシング型の並列計算
機上で、前記並列計算機を構成する複数のプロセッサに
対して、図形を割り当てて分散配置し、図形間での光の
授受を計算するために必要となる図形間での障害物の有
無の判定を行うために、全ての表示物体を、光の授受を
行う図形よりも簡易でデータ量が少ない図形データで表
現して前記複数のプロセッサに一律に配置し、1つある
いは複数のプロセッサにより、最大の放射エネルギを有
する図形を放射元図形として選択して前記複数のプロセ
ッサに選択した放射元図形情報を送り、前記複数のプロ
セッサが、放射元図形を用いて、割り当てられた受光側
図形への放射処理を実行し、この一連の放射元図形の選
択処理および放射処理を、図形各部の照度が収束するま
で繰り返すことを特徴とする。
【0016】この並列処理方法において、前記プロセッ
サ間で負荷が不均衡になった場合は、各プロセッサの担
当の図形群の一部をプロセッサ間でメッセージ通信によ
り移動し、負荷を均衡化する。
【0017】この際、前記プロセッサ間での負荷の不均
衡の検出は、少なくとも1台のプロセッサに対して、残
りプロセッサが自己の進捗状況をメッセージ通信を用い
て報告し、前記少なくとも1台のプロセッサが、他のプ
ロセッサ間の処理の進捗の偏差をみて行うことが望まし
い。
【0018】前記最大の放射エネルギを有する図形を放
射元図形として選択する処理は、例えば、前記放射処理
を実行するプロセッサが1つの放射元図形からの放射処
理を終了したら、自プロセッサの分担図形の内で最大の
放射エネルギを有する図形を1つのプロセッサにメッセ
ージ通信を用いて返し、この1つのプロセッサが全体で
の最大放射エネルギを有する図形を検索してこれを次の
放射元図形とする。
【0019】本発明による並列処理方法は、他の検知に
よれば、メッセージパッシング型の計算機において、本
来の処理を実行する複数のプロセッサ(すなわち処理プ
ロセッサ)とこれらを管理するプロセッサ(すなわち管
理プロセッサ)とを設け、各処理プロセッサは、一定の
間隔で、処理の進捗状況を、管理プロセッサに報告し、
管理プロセッサは、複数の処理プロセッサの負荷を監視
し、処理プロセッサ間で負荷の不均衡が発生していると
判定される場合は、処理プロセッサ間で、処理対象の一
部を移動するように対象の処理プロセッサに指示し、該
対象の処理プロセッサは、管理プロセッサの指示に従
い、処理プロセッサ間で、処理対象の一部の移動を行う
ようにしたものである。
【0020】このように、本発明では、並列計算機とし
て、プロセッサ間通信として共有メモリによらず、メッ
セージパッシングによる並列計算機を用いる。これによ
り、共有メモリの競合を回避する。
【0021】より具体的には、漸近洗練化法で最も負荷
の重いパッチからエレメントへの光の放射処理を、図1
5に示したようにエレメントをノード、すなわち、同並
列計算機を構成するプロセッサに分配して、各々に放射
処理を担当させる。ここで、適応分割による負荷の不均
衡はノード間でエレメントをメッセージ通信を用いて融
通しあうことより均衡化する。また、負荷の不均衡の検
出は、1つのプロセッサに、一定の間隔で進捗状況をメ
ッセージ通信を用いて報告し、このプロセッサが進捗の
バラツキを見て行う。
【0022】このような並列処理は、図15に示したよ
うな構成で実行される。すなわち、メッセージパッシン
グ型の並列計算機を構成する複数のノードのうち、1つ
をマスタノードとし、残りをスレーブノードとする。こ
こで、図の楕円は各ノード(プロセッサと主メモリを含
む)を示している。マスタノードはスレーブノードの管
理を行う。スレーブノードは放射処理を実行する。
【0023】この構成において、マスタノードは、全体
のエレメントおよびパッチの情報を管理し、スレーブノ
ードに対して、担当のエレメントのデータをその親とな
るパッチのデータともに送る。また、放射処理にて必要
となる放射元パッチと放射先エレメントの間に障害とな
る図形があるか否かの判定処理に必要となる全ポリゴン
データを一律に送る。
【0024】マスタノードは、未放射エネルギが最大の
パッチを選択し、これを放射元として、前記所定のデー
タを全スレーブノードに送る。
【0025】各スレーブノードは、担当のエレメントに
対して放射処理を実行し、一定数のエレメントを処理す
る毎に、マスタプロセッサに対して進捗状況を報告す
る。
【0026】マスタノードは、この報告に基づき、自身
の保持するスレーブノード管理テーブルに各スレーブノ
ードの負荷状況を維持管理する。また、このテーブルに
より負荷の不均衡の度合を判断して、不均衡が著しい場
合には、当該スレーブノードに対して、未処理エレメン
トの移動を指示する。
【0027】スレーブノードの間では、マスタノードの
指示に従って、負荷の重いスレーブノードから軽いノー
ドへ未処理エレメントデータを送る。
【0028】スレーブノードが放射処理を終了したら、
担当のエレメントの親のパッチで、未放射エネルギが最
大のものの幾何情報(頂点座標)および未放射エネルギ
をマスタノードに送る。
【0029】マスタノードは、受け取った未放射エネル
ギの値が一定以下か否かに応じて収束状況を判定し、収
束と判定される場合は、その旨をスレーブノードに知ら
せる(図示せず)。
【0030】スレーブノードは、放射処理結果のパッチ
およびエレメントデータをマスタノードに返送する。
【0031】これにより、マスタノードに全体のエレメ
ントの照度が得られ、処理を終了する。得られた照度で
エレメントを表示すればよい。
【0032】未収束の場合は、マスタノードは、全体で
最大の未放射エネルギを持つパッチを選び、このパッチ
を次の放射元として、以上の処理を繰り返す。
【0033】このようにして、メッセージパッシング型
の並列計算機により、プロセッサ間の負荷の不均衡を抑
止しながら、並列に漸近洗練化法によるラジオシティ表
示が行える。
【0034】
【発明の実施の形態】以下、本発明の実施の形態を図2
から図13を用いて説明する。
【0035】まず、図5に、本発明を実現する超並列計
算機の概略構成を示す。本超並列計算機は複数のノード
(この例では8ノード)およびこれらの間に設けられた
通信路から構成され、各ノードは近隣同志通進路で結ば
れている。各ノードは、プロセッサ、メモリおよび通信
制御部を含み、他のプロセッサと独立して処理を実行で
きる。また、遠隔のノードであっても、幾つかのノード
を経由することにより、相互に通信可能である。
【0036】次に、本実施の形態で用いる各種のテーブ
ルについて説明し、その後、これらのテーブルを用いて
どのような処理が行われるかを説明する。
【0037】図6はスレーブノード管理テーブル600
の構成を示す。このテーブルは、マスタノードのみに存
在し、スレーブノード毎の担当パッチおよびエレメント
の情報、ノード状態、および未処理エレメント数を記憶
する。
【0038】図7に、図6のスレーブノード管理テーブ
ル600の1項目であるノード状態を表わす状態フラグ
700を示す。この状態フラグは3ビットからなり、そ
のビット0は放射処理を完了したか否かを、ビット1は
放射完了指示中か否かを、ビット2は負荷移動指示中か
否かを、それぞれ示している。
【0039】図8は、各スレーブノードが保持するポリ
ゴンテーブル800の構成を示す。このポリゴンテーブ
ル800は、表示対象の全ポリゴンの情報を記憶する。
全ポリゴン数、ポリゴン毎の頂点の座標(ここでは、全
て四角形と仮定し、4つの頂点座標からなる)およびこ
れが含まれる分割空間を示すリストポインタをもつ。ポ
リゴンテーブル800に格納されている順にポリゴン番
号が付与され、この番号により、ポリゴンを特定しポリ
ゴンテーブル800内のデータをアクセスできる。
【0040】ここで、分割空間とは、空間分割法により
分割された空間を示し、本実施の形態では座標(L,
M,N)で表される。これは、与えられた線分と交差す
るポリゴンが存在するか否かの判定を高速化するための
もので、全図形が定義されている空間、通常は直方体
を、均等な領域、通常は直方体、すなわち、分割空間に
分割し、各々のポリゴンが含まれる分割空間を求めて記
憶しておく。交差ポリゴンの存在判定処理においては、
線分が通過する分割空間に含まれるポリゴンのみとの交
差判定を行えば良く、交差判定を行うポリゴン数を大幅
に削減することができる。
【0041】図9に、各スレーブノードに保持される空
間分割管理テーブル900とポリゴンデータとの関係を
示す。各分割空間に含まれるポリゴンがリストでリンク
される。これにより該分割空間に含まれる複数のポリゴ
ンを順次辿ることができる。
【0042】図10に、パッチおよびエレメントを記憶
するパッチ/エレメントエントリ1000を示す。これ
は、次に説明するパッチ/エレメントページの1構成要
素となるものである。このエントリ1000には、親の
ポリゴン、すなわち、パッチ/エレメント分割の元にな
ったポリゴンを示すポリゴン番号1001、パッチ/エ
レメントの頂点の座標(ここでは四角形に限定)100
2〜1005、このパッチあるいはエレメントの属性識
別子1006、ラジオシティ値1007、未放射エネル
ギ1008、および下位エレメント、すなわち、パッチ
から分割されたエレメントあるいは適応分割により分割
されたエレメントへのポインタ1009を記憶する。
【0043】ここで、属性識別子1006とは、この値
により、属性の実体値を記憶する属性テーブル(図示せ
ず)を検索することにより、該パッチあるいはエレメン
トの光の反射係数を得ることができるものである。未放
射エネルギ1008の初期値は、自己発光しているもの
のみ’0’以外の値を有し、他は’0’を有する。但
し、自己発光しないものでも、放射処理により、その未
放射エネルギは増加し、放射元から伝達されたエネルギ
の合算された値を有する。
【0044】パッチ/エレメントエントリ1000を一
定数まで格納可能なパッチ/エレメントページ1100
を図11に示す。このページには、ページに含まれるパ
ッチ/エレメントの数1101、次のページ/エレメン
トページへのポインタ1102、下位エレメントを含む
ページへのポインタ1103、総管理エレメント数11
04、およびパッチ/エレメントそのもののデータであ
るパッチ/エレメントエントリ1000を含む。
【0045】ここで、総管理エレメント数1104と
は、このページにおいて管理されている放射処理対象と
なるエレメント数であり、下位のページが記憶している
ものも含むものである。パッチ/エレメントページ11
00の集合が図15のパッチ/エレメントテーブルに相
当する。
【0046】図12に各パッチ/エレメントページの相
互の関係を示す。パッチページおよびエレメントページ
は、先に述べた次ページへのポインタ(横方向のポイン
タ)と、下位のページ、すなわち、適応分割により分割
されて生まれたエレメントを含むページへのポインタ
(縦方向のポインタ)により連結されている。すなわ
ち、担当するパッチページが、先頭パッチページポイン
タから順次横方向ポインタで結ばれ、このパッチページ
の下位のエレメントページが縦方向ポインタでつなが
る。これらのポインタを辿ることにより、放射処理対象
のエレメントデータを得ることができる。
【0047】また、適応分割が発生した場合は、下位ペ
ージに空きがある場合は、ここにパッチ/エレメントエ
ントリを作成し、ない場合は、空きのページ/エレメン
トページを確保してパッチ/エレメントエントリを作成
する。このように、固定長のページにより実現すること
により、ページの確保、解放を容易にし、適応分割によ
る動的なデータ構造の変化に対応できる。
【0048】ここで、エレメントが下位のエレメントを
持つか否かは、パッチ/エレメントエントリの下位エレ
メントポインタに有効な値が入っているか否かにより判
定する。
【0049】なお、これらのページは、スレーブノード
毎に担当のパッチ/エレメントのデータのみを保持して
いる。
【0050】ここで、エレメントの移動においては、上
位のパッチページから、連結される全ページ(パッチ以
下、下位方向の全ページ)を移動する。下位のページは
唯1つの上位ページをもち、パッチページ以下のページ
は、他パッチページの下位ページとなることはなく、互
いに分離されていることに注意されたい。
【0051】次に、以上の各種テーブルの説明に基づ
き、マスタノードおよびスレーブノードの具体的な処理
手順を説明する。
【0052】図2にマスタノードの処理手順2、図4に
スレーブノードの処理手順4を示す。ここでマスタノー
ドおよびスレーブノードの選択方法および該当プログラ
ムのロードの手順については、直接本発明に関連なく、
メッセージパッシング型の並列計算機では容易に実現で
きるので説明を省略する。
【0053】マスタノードでは、ステップ201にて、
前述したように空間分割法により線分と交差するポリゴ
ンが存在するか否かの判定を高速化するために、ポリゴ
ンを分割空間管理テーブル900の分割空間に登録す
る。これは、全図形が定義されている空間、通常は直方
体を、均等な領域、通常は直方体、すなわち、分割空間
に分割し、各々のポリゴンが含まれる分割空間を求めて
記憶しておくことにより、当該線分が通過する分割空間
に含まれるポリゴンのみとの交差判定処理を行えば良い
ようにするためのものである。この分割空間管理テーブ
ル900とともに、ポリゴンテーブル800を全スレー
ブノードに送る。
【0054】ステップ202にて、ポリゴンをパッチお
よびエレメントに分割する。ステップ203にて最も大
きい未放射エネルギを有するパッチを探し、これを放射
元パッチとする。ステップ204にて、各スレーブノー
ドに対して、担当のパッチおよびエレメントデータ(図
11に示すデータ)を転送する。ステップ205にて、
放射元パッチデータを全スレーブノードに対してブロー
ドキャスト、すなわち、一斉転送する。ステップ206
にて、スレーブノードの進捗の管理、次の放射元パッチ
の選択などの処理を行う。その詳細については、後に図
3により説明する。ステップ207にて最大の未放射エ
ネルギ量から、収束しているか否かを判定する。すなわ
ち、未放射エネルギが高い場合は、このエネルギによ
り、各エレメントの照度が増加する度合が高く、収束が
進んでいないことを示し、低い場合は、収束していると
言える。
【0055】ステップ208で各ノードから割り当てエ
レメントおよびパッチのデータを受け取る。ステップ2
09にて、受け取ったエレメントデータを、表示用のワ
ークステーション等に送り、そこで表示する。
【0056】次に、図4によりスレーブノード処理手順
を説明する。
【0057】ステップ401にてポリゴンデータを、空
間分割の情報とともに受け取り、図8に示したポリゴン
テーブル800および図9に示した空間分割管理テーブ
ル900に格納する。
【0058】ステップ402にて割り当てパッチおよび
エレメントデータを受け取り、図11に示したパッチ/
エレメントページ1100を確保してこの中のパッチ/
エレメントエントリ1000に格納する。また、図12
に示したように、パッチページおよびエレメントページ
をリンクする。
【0059】ステップ403にて放射元パッチデータを
受け取る。
【0060】ステップ404にて放射元パッチが無効で
あるか否かを判定する。後述するように、もし、無効な
らば、収束して放射処理を完了したことを示しており、
ステップ422に進み、担当パッチ/エレメントデータ
をマスタノードに返送する。無効でなければ、ステップ
405へ進む。
【0061】ステップ405にて放射処理を行う。この
処理は、放射元パッチと放射先エレメントと全ポリゴン
のデータがあれば実行可能で、空間分割の情報があれば
より高速に処理が可能となる。また、図12に示したテ
ーブル構造に基づき、適応分割により、下位のエレメン
トが生成されても対応可能である。この処理は一般に知
られた処理であり、詳細な処理内容についての説明は省
略する。
【0062】ステップ406にて、進捗状況報告を行う
べきか否かを判定する。ここでは、一定数のエレメント
を処理する毎に報告を行うものとする。報告を行うべき
と判定された場合、ステップ407にて、進捗報告、す
なわち未処理のエレメント数をマスタノードに報告す
る。
【0063】ステップ408にて、マスタノードあるい
はスレーブノードから何らかの指示、メッセージが着い
ているかを判定する。指示がない場合はステップ414
に進み、ある場合にはステップ409へ進む。
【0064】ステップ409にて、指示の内容を判定
し、指示に応じた処理に分岐する。その指示が「負荷引
受指示」の場合は、ステップ410にて、負荷の引き受
け、すなわち、パッチ/エレメントデータを受け取る。
続くステップ411にて、負荷の引き受けを終了したこ
とをマスタノードに報告し、ステップ414へ進む。
【0065】ステップ409で判定されたメッセージの
指示が「負荷引渡指示」の場合、ステップ412にて、
負荷の引渡しを行う、すなわち、指示されたスレーブノ
ードに対して、その旨を連絡し、指定量のパッチ/エレ
メントデータを転送する。この際、図12のパッチ頁の
ポインタで結合されている順に処理が行われるので、ポ
インタの最後尾から、指定量のデータが探索される。パ
ッチページ単位に移動を行うので、指定量に達しない場
合もありうる。移動の際には、パッチの下のエレメント
も、ポインタの関係を維持したまま移動が行われる。続
くステップ413にて、負荷の引渡しを終了したことを
マスタノードに報告し、ステップ414へ進む。
【0066】ステップ414では、担当のエレメントの
放射処理を終了したか否かを判定し、未終了の場合は、
ステップ405に戻り、それ以降の処理を繰り返す。終
了の場合はステップ415へ進む。ステップ415に
て、放射処理が終了したことをマスタノードに報告す
る。
【0067】その後、ステップ416にてマスタノード
あるいはスレーブノードからの指示を待つ。
【0068】ステップ417では、到着した指示を判定
して、該当する処理に分岐する。
【0069】その指示が「負荷引受指示」の場合は、ス
テップ418にて、負荷の引き受け処理を行い、ステッ
プ419にて負荷引き受け終了をマスタノードに報告す
る。その後、ステップ405に戻り、以降の処理を繰り
返す。
【0070】「放射完了指示」の場合は、ステップ42
0にて、マスタノードに放射完了報告とノード内で最大
の未放射エネルギを有するパッチデータを返す。
【0071】「負荷引渡指示」の場合は、ステップ42
1にて、マスタノードに対して負荷の引渡しの終了報
告、および負荷の引受け先のノ−ドに代わって引受けの
終了報告を行い、ステップ416に戻る。先に終了報告
をしているのに「負荷引渡指示」を受ける場合があるの
は、マスタノードが終了報告を受け取る前に負荷の引渡
指示を出してしまう場合があるからである。
【0072】なお、終了報告は当面のパッチの処理が終
了したことを報告し放射処理を完了してよいかどうかの
伺いをたてるものであり、新たに負荷が移動してくる可
能性がある。この場合には最大未放射エネルギに関する
情報は返送しない。これに対し、完了報告は、1回の放
射処理(1つの放射元パッチから全担当エレメントへの
放射処理)が終了したことを報告するものであり、ノー
ド内で最大の未放射エネルギを有するパッチデータを返
送する。
【0073】図3に、図2のステップ206のスレーブ
ノードの管理および放射元パッチの選択処理の詳細処理
フロー3を示す。
【0074】ステップ301にてスレーブからのメッセ
ージが送られているか否かをを判定する。メッセージが
あれば、ステップ302にて、そのメッセージの種類を
判定し、該当する処理ルートに進む。
【0075】メッセージの種類が「進捗状況報告」の場
合は、ステップ303で、スレーブノードから送られて
きた未処理エレメント数を取り込み、図6に示したスレ
ーブノード管理テーブル600の該当ノードのエントリ
を更新する。ここで、、図7に示したノード状態フラグ
700は’000’、すなわち放射処理中となってい
る。ステップ304にて、負荷移動、すなわち、エレメ
ントの移動が必要かどうかを判定する。
【0076】この判定は図16に示す負荷移動要否判定
の処理手順16により行う。すなわち、ステップ160
1にて、ノード管理テーブル600内の、ノード状態の
全てのフラグが’0’のものをサーチし、この中で、未
処理エレメント数が最大のノードを見つける。ステップ
1602にて、前ステップと同様に未処理エレメント数
が最小のものを見つける。ステップ1603にて最大エ
レメント数と最小エレメント数との比が所定値以上か判
定する。所定値未満の場合は、ステップ1607にて
「負荷移動不要」を返す。ステップ1604にて、最
大、最小の未処理エレメント数が均等になるような移動
エレメント数を計算する。
【0077】ステップ1605にて移動エレメント数が
所定値以上か判定する。これは、移動負荷の処理時間が
負荷移動のオーバーヘッドより短い場合、負荷移動が逆
効果になるため、この場合には負荷移動不要を返すため
である。
【0078】ステップ1606にて「負荷移動要」をリ
ターンコードとして返す。ステップ1607では、負荷
移動不要をリタンコードとして返す。
【0079】以上の判定で、負荷移動が必要な場合は、
図3のステップ305に進む。
【0080】ステップ305では、負荷移動元のノード
に、負荷移動指示、すなわち、移動エレメント数および
移動先ノードを送る。
【0081】これらの処理を終了したら、ステップ30
1に戻り、別のメッセージの処理を行う。
【0082】スレーブノードからのメッセージが「終了
報告」の場合、ステップ306からステップ308まで
は、進捗報告の場合と同一の処理を行う。続くステップ
309にて、自分、すなわち、報告元が負荷の引き受け
先か否かを判定し、もしも引き受け先ならば、ステップ
301に戻る。負荷引き受け先でない場合は、報告元
に、放射処理を完了するよう指示するメッセージを送
り、ノード状態の完了指示中フラグを立てる(ビット1
を’1’にする)。その後、ステップ301に戻る。
【0083】「負荷移動完了報告」の場合は、ステップ
311にて、当該スレーブノードの担当パッチおよびエ
レメントの情報を更新する。次いで、ステップ312に
て、ノード管理テーブル600の該負荷移動指示中のフ
ラグをクリアする(ビット2を’0’にする)。その
後、ステップ301に戻る。
【0084】スレーブノードからのメッセージが「完了
報告」の場合は、ステップ313にて、管理テーブル6
00の当該スレーブノードに関する進捗情報を更新す
る。すなわち、ノード管理テーブル600の当該ノード
の放射処理中フラグを立てる(ビット0を、放射処理完
了を示す’1’にする)。続くステップ314にて、当
該ノードにて最大未放射エネルギを有するパッチの情報
を受け取り、もしも、マスタで管理している最大未放射
エネルギ値よりも大き場合はこれをを更新し、常に最大
のものが記録されるようにする。ステップ315にて、
ノード管理テーブル600を参照して、全スレーブが放
射処理を完了したかを判定し、完了の場合は処理を終了
する。そうでない場合は、ステップ301に戻る。
【0085】最後に、図13に、本実施の形態で用いた
ノード間のメッセージを整理して示す。図中、「M」は
マスタノード、「S」はスレーブノードを示し、矢印
は、メッセージの転送方向を示す。
【0086】メッセージ種別のNo.1は、ポリゴン/空
間分割管理情報転送、すなわち、ポリゴンデータと空間
分割管理データをマスタノードから一斉に全スレーブノ
ードに送るものである。
【0087】No.2は、担当パッチ/エレメント転送、
すなわち、担当のパッチ/エレメントをマスタノードか
らスレーブノードに送るものである。
【0088】No.3は、放射元パッチ情報、すなわち、
放射元のパッチのデータをマスタノードから一斉に全ス
レーブノードに送るものである。このメッセージにより
無効な放射元パッチデータを送ることにより、放射処理
を終えることを指示することができる。
【0089】No.4は、進捗報告、すなわち、未処理エ
レメント数をスレーブノードからマスタノードに送るも
のである。
【0090】No.5は、放射終了報告、すなわち、担当
のエレメントへの放射処理を終了したスレーブノードが
その旨をマスタノードに報告するものである。
【0091】No.6は、放射完了指示、すなわち、マス
タノードが、No.5の報告をしているスレーブノードに
放射処理を完了することを指示するものである。
【0092】No.7は、放射完了報告、すなわち、マス
タノードから、No.6のメッセージを受けたスレーブノ
ードが、放射処理の完了および、自ノード内の最大未放
射エネルギを持つパッチのデータをマスタノードに返す
ものである。
【0093】No.8は、負荷引渡指示、すなわち、マス
タノードから、負荷を引き渡すスレーブノードに対し
て、負荷引渡しを指示するものである。
【0094】No.9は、負荷引受指示、すなわち、負荷
を引き渡すスレーブノードから、負荷を引受るスレーブ
ノードに対して、負荷引受を指示するものである。この
メッセージには、移動パッチ/エレメントページも含
む。
【0095】No.10は、処理結果返送指示、すなわ
ち、各スレーブの放射処理を完了した担当パッチ/エレ
メントデータをマスタノードに返送することを、マスタ
ーノードからスレーブノードに指示するものである。
【0096】No.11は、担当パッチ/エレメントの処
理結果転送、すなわち、各スレーブの放射処理を完了し
た担当パッチ/エレメントデータを、スレーブノードか
らマスタノードに返送するものである。
【0097】以上の説明により、負荷の均衡化された、
並列放射処理が実現できることが分かるであろう。
【0098】
【発明の効果】本発明により、共有メモリを持たない並
列計算機において、ラジオシティ法による並列表示処理
を、プロセッサ数を増加させても負荷の不均衡を起こす
ことなく効率良く実行可能となる。さらに、放射処理で
必要となる全図形データは粗いデータで持つ(すなわ
ち、ポリゴンの情報で持ち、これを分割したパッチやエ
レメントの情報としては持たない)ことにより、各プロ
セッサにて必要されるメモリ容量が少なくてすむ。
【図面の簡単な説明】
【図1】シリアル処理による漸近洗練化ラジオシティ処
理手順を示すフローチャートである。
【図2】本発明の実施の形態における並列ラジオシティ
法でのマスタノードの処理手順を示すフローチャートで
ある。
【図3】本発明の実施の形態における並列ラジオシティ
法でのマスタノードのスレーブ管理および放射元パッチ
選択処理手順を示すフローチャートである。
【図4】本発明の実施の形態における並列ラジオシティ
法でのスレーブノードの処理手順を示すフローチャート
である。
【図5】本発明の実施の形態におけるメッシージパッシ
ング型並列計算機の概略構成を示すブロック図である。
【図6】本発明の実施の形態におけるスレーブノード管
理テーブルの説明図である。
【図7】本発明の実施の形態におけるスレーブノード状
態フラグの説明図である。
【図8】本発明の実施の形態におけるポリゴンテーブル
の説明図である。
【図9】本発明の実施の形態における空間分割管理テー
ブルの説明図である。
【図10】本発明の実施の形態におけるパッチ/エレメ
ントエントリの説明図である。
【図11】本発明の実施の形態におけるパッチ/エレメ
ントページの説明図である。
【図12】本発明の実施の形態における割当パッチ/エ
レメントページの関係を示す説明図である。
【図13】本発明の実施の形態におけるノード間メッセ
ージ一覧を示す説明図である。
【図14】従来のラジオシティの並列処理法を示す説明
図である。
【図15】本発明のラジオシティの並列処理法を示す説
明図である。
【図16】本発明の実施の形態における負荷移動要否判
定の処理手順を示すフローチャートである。
【符号の説明】
1…シリアル処理による漸近洗練化ラジオシティ処理手
順 2…本発明の実施の形態における並列ラジオシティ法で
のマスタノードの処理手順 3…本発明の実施の形態における並列ラジオシティ法で
のマスタノードのスレーブ管理および放射元パッチ選択
処理手順 4…本発明の実施の形態における並列ラジオシティ法で
のスレーブノードの処理手順 5…本発明の実施の形態におけるメッシージパッシング
型並列計算機

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】三次元図形の幾何学的情報、その光学的な
    特性、および光源の情報から、複数の図形の相互間での
    光の授受量の計算に基づいて各図形の照度を求め、各図
    形を求めた照度で表示することにより陰影感のある画像
    を得る際に、前記光の授受量の計算として、まず、光を
    放射する側の図形あるいは光源を表わす図形を定め、残
    りの図形を光が放射される側として、光の授受、すなわ
    ち放射処理を行い、前記放射側図形を放射エネルギの高
    い順に選択して、各図形の照度が収束するまで繰り返し
    前記放射処理を実行する三次元図形表示のための漸近洗
    練化ラジオシティ表示における並列処理方法であって、 共有メモリを具備しない、メッセージパッシング型の並
    列計算機上で、 前記並列計算機を構成する複数のプロセッサに対して、
    図形を割り当てて分散配置し、 図形間での光の授受を計算するために必要となる図形間
    での障害物の有無の判定を行うために、全ての表示物体
    を、光の授受を行う図形よりも簡易でデータ量が少ない
    図形データで表現して前記複数のプロセッサに一律に配
    置し、 1つあるいは複数のプロセッサにより、最大の放射エネ
    ルギを有する図形を放射元図形として選択して前記複数
    のプロセッサに選択した放射元図形情報を送り、 前記複数のプロセッサが、放射元図形を用いて、割り当
    てられた受光側図形への放射処理を実行し、 この一連の放射元図形の選択処理および放射処理を、図
    形各部の照度が収束するまで繰り返す並列処理方法。
  2. 【請求項2】前記プロセッサ間で負荷が不均衡になった
    場合は、各プロセッサの担当の図形群の一部をプロセッ
    サ間でメッセージ通信により移動し、負荷を均衡化する
    ことを特徴とする請求項1記載の並列処理方法。
  3. 【請求項3】前記プロセッサ間での負荷の不均衡の検出
    は、少なくとも1台のプロセッサに対して、残りプロセ
    ッサが自己の進捗状況をメッセージ通信を用いて報告
    し、前記少なくとも1台のプロセッサが、他のプロセッ
    サ間の処理の進捗の偏差をみて行うことを特徴とする請
    求項2記載の並列処理方法。
  4. 【請求項4】前記最大の放射エネルギを有する図形を放
    射元図形として選択する処理は、前記放射処理を実行す
    るプロセッサが1つの放射元図形からの放射処理を終了
    したら、自プロセッサの分担図形の内で最大の放射エネ
    ルギを有する図形を1つのプロセッサにメッセージ通信
    を用いて返し、この1つのプロセッサが全体での最大放
    射エネルギを有する図形を検索してこれを次の放射元図
    形とすることにより行う請求項1、2または3記載の並
    列処理方法。
  5. 【請求項5】メッセージパッシング型の計算機におい
    て、本来の処理を実行する複数のプロセッサ(すなわち
    処理プロセッサ)とこれらを管理するプロセッサ(すな
    わち管理プロセッサ)とを設け、 各処理プロセッサは、一定の間隔で、処理の進捗状況
    を、管理プロセッサに報告し、 管理プロセッサは、複数の処理プロセッサの負荷を監視
    し、処理プロセッサ間で負荷の不均衡が発生していると
    判定される場合は、処理プロセッサ間で、処理対象の一
    部を移動するように対象の処理プロセッサに指示し、 該対象の処理プロセッサは、管理プロセッサの指示に従
    い、処理プロセッサ間で、処理対象の一部の移動を行う
    並列処理方法。
JP31413095A 1995-12-01 1995-12-01 並列処理方法 Pending JPH09153150A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31413095A JPH09153150A (ja) 1995-12-01 1995-12-01 並列処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31413095A JPH09153150A (ja) 1995-12-01 1995-12-01 並列処理方法

Publications (1)

Publication Number Publication Date
JPH09153150A true JPH09153150A (ja) 1997-06-10

Family

ID=18049612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31413095A Pending JPH09153150A (ja) 1995-12-01 1995-12-01 並列処理方法

Country Status (1)

Country Link
JP (1) JPH09153150A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007503059A (ja) * 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007503059A (ja) * 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散

Similar Documents

Publication Publication Date Title
US6954776B1 (en) Enabling intra-partition parallelism for partition-based operations
US7386849B2 (en) Managing parallel execution of work granules according to their affinity
EP1055172B1 (en) Object hashing with incremental changes
US20230121198A1 (en) Method of distributed graph loading for minimal communication and good balance via lazy materialization and directory indirection using indexed tabular representation
US7203747B2 (en) Load balancing system and method in a multiprocessor system
US10363659B2 (en) System and method for load balancing of robots to create more equivalent task loads across task servers
KR20150077423A (ko) 위치 기반 서비스를 위한 데이터세트 구조를 생성하는 방법 및 모바일 디바이스에 위치 기반 서비스를 제공하기 위한 방법 및 시스템
CN106031116A (zh) 一种ns与vnf的关联方法、装置及系统
JP2010134518A (ja) 計算機システムの構成管理方法、計算機システム及び構成管理プログラム
JPH03113563A (ja) マルチプロセッサスケジューリング方法
US10534657B2 (en) Distributed graph processing system that adopts a faster data loading technique that requires low degree of communication
CA2146169C (en) Method and system for dynamically selecting a communications mode
US20230089320A1 (en) Logical node layout method and apparatus, computer device, and storage medium
CN114416277A (zh) 一种基于numa架构的容器部署亲和性配置优化的方法
JPH09153150A (ja) 並列処理方法
CN113329432A (zh) 一种基于多目标优化的边缘服务布置方法和系统
WO2023020213A1 (zh) 任务分配的方法、装置、设备、存储介质及程序产品
CN116629495A (zh) 用于输出信息的方法和装置
CN114490015A (zh) 配置计算模式的方法、装置及计算设备
Yang et al. Resource reservation for graph-structured multimedia services in computing power network
JPH09179834A (ja) 並列システムにおけるプロセスのスケジューリング方法
JP4122379B2 (ja) ラジオシティの並列処理方法及びその装置
EP4351094A1 (en) Method and apparatus for allocating address, method and apparatus for determining node, and storage medium
CN116991590B (zh) 面向深度学习应用的资源解耦合系统、执行方法和设备
JPH03257633A (ja) マルチスレッド環境の計算機システム