JPH10334054A - Parallel image generation method and data dividing technique for parallel image generation - Google Patents

Parallel image generation method and data dividing technique for parallel image generation

Info

Publication number
JPH10334054A
JPH10334054A JP9139661A JP13966197A JPH10334054A JP H10334054 A JPH10334054 A JP H10334054A JP 9139661 A JP9139661 A JP 9139661A JP 13966197 A JP13966197 A JP 13966197A JP H10334054 A JPH10334054 A JP H10334054A
Authority
JP
Japan
Prior art keywords
data
division
dividing
parallel
divided
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
JP9139661A
Other languages
Japanese (ja)
Inventor
Yoshio Suzuki
芳生 鈴木
Mikio Nagasawa
幹夫 長澤
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 JP9139661A priority Critical patent/JPH10334054A/en
Publication of JPH10334054A publication Critical patent/JPH10334054A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To evenly divide data of any data distribution when a load is dispersed by dividing the data as a pre-processing for visualization of three-dimensional numerical value data by a volume rendering on a parallel computer. SOLUTION: Data are evenly divided (604) without breaking arrangement on a data space by evenly dividing (602) the data in the arrangement after the order is replaced with the arrangement on the data space by sorting (601) the data for each axis (x, y, z). In addition, the speed of a division processing is increased by performing a parallel processing of the sorting itself or minutely dividing only the center of a screen at the initial stage of division and performing the sorting (603, 605) at the final stage of the division. Consequently, a division pattern is adaptively varied by the data distribution, therefore, all kinds of data like in the case of the data with a characteristic data distribution like simulation, etc., are capable of being managed. In addition, the data are constantly and evenly divided even when the data distribution is varied by change of a viewpoint.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術】並列計算環境においてボリューム
レンダリングにより可視化を行なう際、前処理としてデ
ータ分割によって負荷分散をはかる並列画像生成方法と
そのためのデータ分割方法に関する。
The present invention relates to a parallel image generation method and a data division method for performing load distribution by data division as preprocessing when performing visualization by volume rendering in a parallel computing environment.

【0002】[0002]

【従来の技術】シミュレーションの可視化あるいは医療
における可視化では、3次元データ空間上に存在する高
次元数値データの可視化が必要とされている。このよう
なデータに対しては、等値面よりボリゴンパッチを求め
る従来のサーフエィスレンダリングでは、大量のポリゴ
ンパッチが必要となるためボリュームレンダリングと呼
ばれる手法が用いられる。
2. Description of the Related Art Visualization of simulations or medical visualization requires visualization of high-dimensional numerical data existing in a three-dimensional data space. For such data, in a conventional surface rendering for obtaining a polygon patch from an isosurface, a method called volume rendering is used because a large number of polygon patches are required.

【0003】ボリュームレンダリングは、三次元スカラ
ー場を2次元画像として可視化表現する方法の一つであ
る。プログラム形式としては、三次元格子点上に輝度及
び透明度を与え、その値を画面奥より式(1)により積分
していくことにより画像を生成する。
[0003] Volume rendering is one method of visualizing and expressing a three-dimensional scalar field as a two-dimensional image. As a program format, an image is generated by giving luminance and transparency on a three-dimensional grid point and integrating the values from the back of the screen according to equation (1).

【0004】Ci = α_s c_s + (1 - α_s) Ci-1 …(1) C :画素値 c_s :格子点上の輝度値 α_s:格子点上の不透明度 ボリュームレンダリングは連続媒質中での光の散乱吸収
を近似するものであり、等値面を決定するといった閾値
によるデータ切捨てがなく三次元データを全て利用す
る。従来のサーフエィスレンダリングが表面だけを可視
化するのに対し、ボリュームレンダリングでは現象の内
部をも可視化することが可能である。
[0004] Ci = α_s c_s + (1-α_s) Ci-1 ... (1) C: pixel value c_s: luminance value on a grid point α_s: opacity on a grid point This is an approximation of scattered absorption, and all three-dimensional data is used without data truncation due to a threshold such as determining an isosurface. Whereas conventional surface rendering only visualizes the surface, volume rendering can also visualize the inside of a phenomenon.

【0005】また、ボリュームレンダリングの一つとし
てとらえられる、三次元ベクトル場を可視化するベクト
ルレンダリングも提案されている。
[0005] Further, a vector rendering for visualizing a three-dimensional vector field, which is regarded as one of the volume renderings, has also been proposed.

【0006】ボリュームレンダリングは、正確で高品質
な画像が得られるが、積分計算に多くの時間を要する。
ボリュームレンダリングの高速化は、専用ハードによる
高速化、並列計算による高速化などが行なわれている。
専用ハード化は、大きな効果が得られるが、開発コスト
が大きい、汎用性に欠けるなどの欠点がある。
[0006] Volume rendering can provide accurate and high-quality images, but requires a lot of time for integral calculations.
For speeding up volume rendering, speeding up by dedicated hardware, speeding up by parallel calculation, and the like are performed.
Dedicated hardware can provide a great effect, but has disadvantages such as high development cost and lack of versatility.

【0007】並列計算機を利用する場合、画面を複数の
部分画面に分割し、それぞれを並列に生成する画面分割
による並列化が行なわれている。
When a parallel computer is used, a screen is divided into a plurality of partial screens, and parallelization is performed by screen division in which each is generated in parallel.

【0008】並列処理においては、各並列プロセスの処
理量を均一にすること、すなわち負荷分散が重要であ
る。ボリュームレンダリングでは、高画質な画像を得る
ためには大量のデータが必要である。大規模な数値デー
タを可視化する場合など、一つのプロセッサに全データ
が入らないような状況も生じうるのでデータ分割が必要
となる。また、部分画像を生成する際には、処理量はそ
のプロセッサが担当するデータ量に比例するため、各プ
ロセッサが担当するデータ量が均一になるようにデータ
を分割することにより負荷分散を行なうことができる。
従来法としては、データ空間を均等に分割する方法など
が提案されている。
In parallel processing, it is important to equalize the processing amount of each parallel process, that is, load distribution. In volume rendering, a large amount of data is required to obtain a high-quality image. For example, when visualizing large-scale numerical data, a situation may occur in which all data does not fit in one processor, so data division is required. When generating a partial image, the amount of processing is proportional to the amount of data handled by the processor. Therefore, load distribution should be performed by dividing data so that the amount of data handled by each processor is uniform. Can be.
As a conventional method, a method of equally dividing a data space has been proposed.

【0009】[0009]

【発明が解決しようとする課題】従来方法のように単純
に3次元データ空間を等分割するだけでは、プロセッサ
間で担当するデータ量を均一に分割することができな
い。データ分布によっては特定のプロセッサにデータが
集中したり、またあるプロセッサは全くデータを持たな
いといった状況が生じる可能性がある。また、データ空
間での空間的配置を考慮しないで分割を行なうと、同一
の部分画面に貢献するデータが異なるプロセッサへ割り
当てられ、結果として通信が多発することになる。さら
に、視点変更を行なうと視点から見たデータ分布が変化
するが、分割パタンが一定であるような単純な分割法で
は、データ分布の変化に対応することもできない。
However, simply dividing the three-dimensional data space equally, as in the conventional method, cannot uniformly divide the amount of data handled between processors. Depending on the data distribution, data may be concentrated on a specific processor, or a certain processor may have no data at all. If the division is performed without considering the spatial arrangement in the data space, data contributing to the same partial screen is allocated to different processors, and as a result, communication occurs frequently. Further, when the viewpoint is changed, the data distribution viewed from the viewpoint changes. However, a simple division method in which the division pattern is constant cannot cope with the change in the data distribution.

【0010】従って本発明の目的は、上記従来技術の課
題を解決するためのデータ分割方法とこれを用いた並列
画像生成方法を提供することにある。
Accordingly, an object of the present invention is to provide a data division method and a parallel image generation method using the data division method for solving the above-mentioned problems of the prior art.

【0011】[0011]

【課題を解決するための手段】上記目的を達成するため
本発明では、単純にデータ空間を等分割するのではな
く、可視化対象は画面中心部にあることが多いなど画像
の特徴を利用する、あるいはデータ分布から適応的に分
割パタンを決定することにより、各プロセッサが担当す
るデータ量が均一になるようにデータを分割する。
In order to achieve the above object, in the present invention, instead of simply dividing the data space into equal parts, visualization targets are often used at the center of the screen. Alternatively, data is divided so that the amount of data handled by each processor is uniform by adaptively determining a division pattern from the data distribution.

【0012】[0012]

【発明の実施の形態】最初に本発明の方法を実施する典
型的な環境を図1に示す。本方法は、CPU104とメモリ105
からなるプロセッサエレメント(PE)103を内部高速ネッ
トワーク102で結合した並列計算機101上で実行される。
あるいは、複数のWSをネットワークで結合したWS(PC)ク
ラスターでも実行可能である。実際の計算は並列計算機
101で行なうが、ユーザとの対話処理はネットワーク106
を介して並列計算機に接続された、ディスプレイ108、
キーボード109、マウス110などを有するコンピュータ(W
SあるいはPC)107上で行なう。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A typical environment for implementing the method of the present invention is shown in FIG. This method uses the CPU 104 and the memory 105
Is executed on a parallel computer 101 in which a processor element (PE) 103 composed of
Alternatively, it can be executed by a WS (PC) cluster in which a plurality of WSs are connected by a network. The actual calculation is a parallel computer
The communication with the user is performed by the network 106.
Display 108, connected to the parallel computer via
A computer having a keyboard 109, a mouse 110, and the like (W
(S or PC) 107.

【0013】ユーザはコンピュータ107より可視化パラ
メータ、視点変更パラメータなどを入力する。
The user inputs visualization parameters, viewpoint change parameters, and the like from the computer 107.

【0014】それらのパラメータにより並列計算機101
上で並列画像生成を行ない、結果の画像をコンピュータ
107に転送し、ディスプレイ108上に表示する。
According to these parameters, the parallel computer 101
Parallel image generation on the
Transfer to 107 and display on display 108.

【0015】本方法の基本的な処理手順のフローを図3
に示す。本方法は、1つのホストプロセス301と複数のノ
ードプロセス310により構成される。
FIG. 3 shows a flow of a basic processing procedure of the present method.
Shown in The method includes one host process 301 and a plurality of node processes 310.

【0016】ホストプロセス301は、初期化、表示、あ
るいは対話処理などを行なう。ステップ302でデータの
読み込みなどの初期化を行ない、ステップ303では視点
移動などユーザからのパラメータ変更に対応する処理を
行なう。ステップ304では、データに幾何学変換を及ぼ
すことにより、視点移動の結果をデータに反映させる。
次に、複数のノードプロセスへデータを送信し、各ノー
ドプロセスへ画像生成を指示し、最後に結果の画像(部
分画面)を受信する。すなわち、ステップ305において、
各ノードプロセスが生成した部分画像を再構成し、完全
な画像を生成し、ステップ306において(ネットワーク上
のコンピュータ107に)表示を行なう。
The host process 301 performs initialization, display, or interactive processing. In step 302, initialization such as reading of data is performed, and in step 303, processing corresponding to parameter change from the user such as movement of the viewpoint is performed. In step 304, the result of the viewpoint movement is reflected in the data by applying a geometric transformation to the data.
Next, data is transmitted to a plurality of node processes, an image generation is instructed to each node process, and finally, the resulting image (partial screen) is received. That is, in step 305,
The partial image generated by each node process is reconstructed to generate a complete image, which is displayed at step 306 (on the computer 107 on the network).

【0017】ノードプロセス310は、実際にボリューム
レンダリングを行ない画像を生成する。
The node process 310 actually performs volume rendering to generate an image.

【0018】最初にホストプロセスより、データ、パラ
メータ等を受信する。ステップ311において、データ分
割を行ない自分が担当するデータのみを取り出す。ステ
ップ312において、実際のボリュームレンダリングを行
ない部分画像を生成する。
First, data, parameters, and the like are received from the host process. In step 311, data division is performed to extract only the data for which the user is responsible. In step 312, actual volume rendering is performed to generate a partial image.

【0019】最後に生成した部分画像をホストプロセス
301へ送信する。
The finally generated partial image is stored in a host process.
Send to 301.

【0020】ボリュームレンダリングの処理量は、デー
タ空間上に存在するデータ量に比例する。本方法でのボ
リュームレンダリングの基本的なアルゴリズムを図2に
示す。
The processing volume of volume rendering is proportional to the amount of data existing in the data space. FIG. 2 shows the basic algorithm of volume rendering in this method.

【0021】画面奥(z方向)より、全データについて以
下の処理を行なう。
The following processing is performed on all data from the back of the screen (z direction).

【0022】ステップ202において、各データに対応す
る輝度および透明度を計算する。複数の画素より構成さ
れる部分画面中でデータが寄与する画素を求め、ステッ
プ202で得られた輝度、透明度と式1より画面中の画素を
更新してくことにより画像を生成する。
In step 202, the brightness and the transparency corresponding to each data are calculated. A pixel to which data contributes is obtained in a partial screen composed of a plurality of pixels, and an image is generated by updating the pixel in the screen based on the luminance and transparency obtained in step 202 and Equation 1.

【0023】各ノードプロセスで行なわれるボリューム
レンダリングでは、処理量はノードプロセスが担当する
データ量に比例するため、予めデータ分割を行なってお
き、各ノードプロセスが担当するデータ量を均一にして
おくことにより負荷分散がおこなえる。
In the volume rendering performed by each node process, since the processing amount is proportional to the data amount handled by the node process, data division is performed in advance, and the data amount handled by each node process is made uniform. Can distribute the load.

【0024】また、アプリケーションが巨大化するにつ
れ、可視化すべきデータも膨大になり1つのプロセッサ
のローカルメモリに入りきれないことがおこりうるた
め、大規模な数値データの可視化を行なうためにもデー
タ分割は必要である。
Further, as the size of the application increases, the data to be visualized becomes enormous and may not be able to fit in the local memory of one processor. Therefore, the data division is also performed to visualize a large-scale numerical data. Is necessary.

【0025】以下、本方法で採用したデータ分割のアル
ゴリズムについて詳細を説明する。
Hereinafter, the data division algorithm employed in the present method will be described in detail.

【0026】図4に、いつくかの分割方法の分割イメー
ジを示す。ただし、データ空間402内に可視化すべきデ
ータ403が分布しており、その無限遠方に画面401が存在
するとする。
FIG. 4 shows division images of some division methods. However, it is assumed that data 403 to be visualized is distributed in the data space 402, and the screen 401 exists at infinity.

【0027】画面401を垂直に貫く軸をz軸とし、z軸の
延長線上に視点404が存在するとする。
It is assumed that the axis passing through the screen 401 vertically is the z-axis, and the viewpoint 404 exists on an extension of the z-axis.

【0028】また、画面とデータ空間のx-y平面とは平
行である。
The screen and the xy plane of the data space are parallel.

【0029】図4a に示した分割方法(以下一様分割)
は、各軸(x,y,z)方向にデータ空間を等分割する。
The division method shown in FIG. 4A (hereinafter, uniform division)
Divides the data space equally in each axis (x, y, z) direction.

【0030】データ空間のx-y平面の分割パタンが画面
上での分割パタンとなる。
A division pattern on the xy plane in the data space is a division pattern on the screen.

【0031】各ノードプロセスでは、分割パタンを決定
し、自分が担当する領域に入るデータだけを取り出し、
ボリュームレンダリングを行ない部分画像を生成する。
In each node process, a division pattern is determined, and only data that enters the area in which it is assigned is extracted.
Perform volume rendering to generate a partial image.

【0032】一様分割では、どのようなデータに対して
もデータの分割パタンは一定である。
In the uniform division, the data division pattern is constant for any data.

【0033】図4bに示した分割方法(以下直交分割とす
る)は一様ではなく画面中心部を細かく分割する。例え
ば、y軸について、式(2)に従って領域を分割する。
The division method shown in FIG. 4B (hereinafter referred to as orthogonal division) is not uniform, and divides the center of the screen finely. For example, the region is divided on the y-axis according to equation (2).

【0034】 tan(iπ/(2n_y)-π/4)<= region_y(i) <=tan((i+1)π/(2n_y)-π/4)…(2) 他のx、z軸についても同様の計算で領域を分割する。Tan (iπ / (2n_y) -π / 4) <= region_y (i) <= tan ((i + 1) π / (2n_y) -π / 4) ... (2) Other x and z axes Is divided into regions by the same calculation.

【0035】直交分割では、一般に可視化すべきデータ
は、画面中央部に偏って存在するという性質を利用して
いる。一様分割と同様に、担当領域に存在するデータだ
け取り出し、ボリュームレンダリングを行ない画像を生
成する。ここでは、式(2)を用いて分割を行なったが、
中心部が細かくなるような特徴を持つ別の式を用いても
同様の効果が得られる。ただし、直交分割と同様に、分
割パタンは一定である。
In the orthogonal division, the property that data to be visualized generally exists in a biased manner in the center of the screen is used. As in the case of the uniform division, only data existing in the assigned area is extracted and volume rendering is performed to generate an image. Here, division was performed using equation (2).
The same effect can be obtained by using another equation having a feature that the center becomes fine. However, similarly to the orthogonal division, the division pattern is constant.

【0036】一様分割、直交分割は分割パタンが一定で
あるので、データを変更したりあるいは視点移動により
データ分布が変化に対応できないという問題点がある。
In the uniform division and the orthogonal division, since the division pattern is fixed, there is a problem that the data distribution cannot be changed by changing the data or moving the viewpoint.

【0037】図4cに示す分割方法(以下構造分割)では、
データ分布に応じて適応的に分割パタンを変更すること
が可能である。
In the division method shown in FIG.
It is possible to adaptively change the division pattern according to the data distribution.

【0038】一般にデータ配列中の順序とデータ空間上
での順序は異なる。例えば、データ空間上で近くにある
データがデータ配列上で近くにあるとは限らない。デー
タを均一に分割するだけで良いなら、データ配列を等分
割すればよいが、その場合データ空間上に近くにあるデ
ータが異なるプロセッサへ割り当てられプロセッサ間の
通信が多発することになる。
Generally, the order in the data array is different from the order in the data space. For example, data that is close in the data space is not always close in the data array. If it is sufficient to divide the data evenly, the data array may be equally divided. In this case, data close to the data space is allocated to different processors, and communication between the processors occurs frequently.

【0039】よって、構造分割では、ソーティングを行
なうことにより、データ空間上での配置とデータ配列上
の順序を一致させる。その後に分割を行なうので、デー
タ配列中の順序とデータ空間上での配置関係を壊すこと
なくデータを均一に分割することができ、どのようなデ
ータに対しても、そのデータ分布に応じて適応的に分割
パタンを変更することができる。
Therefore, in the structural division, the arrangement in the data space and the order in the data array are made to match by performing sorting. Subsequent division allows the data to be divided evenly without breaking the order in the data array and the arrangement in the data space, and adapts to any data according to its data distribution. It is possible to change the division pattern.

【0040】図5に分割パタンの生成される過程を示
し、図6に構造分割のフローチャートを示す。
FIG. 5 shows a process of generating the division pattern, and FIG. 6 shows a flowchart of the structure division.

【0041】図5の分割例では各軸(x,y,z)についてそれ
ぞれ3分割する。各ノードプロセスはステップ601におい
て、ある軸について(この例ではx軸)、データをその軸
の値(この例ではxの値)でソーティングを行なう。次に
ステップ602において、データ配列を等分割する。
In the example of division shown in FIG. 5, each axis (x, y, z) is divided into three parts. In step 601, each node process sorts data on a certain axis (x axis in this example) by the value of that axis (x value in this example). Next, in step 602, the data array is equally divided.

【0042】分割されたデータの境界値によりデータ空
間上での分割パタンを決定し、担当する部分画面を決定
する。この場合、3分割した結果、501で示すように分割
される。
The division pattern in the data space is determined based on the boundary value of the divided data, and the assigned partial screen is determined. In this case, as a result of the division into three, the division is made as indicated by 501.

【0043】次に、ステップ604において、分割された
領域のそれぞれについて、y軸方向にソーティングを行
なう。ソーティング後にデータを等分割することによ
り、502のような分割パタンになる。各プロセッサは、
必要なデータのみ取り出す。
Next, in step 604, sorting is performed in the y-axis direction for each of the divided areas. By dividing the data equally after sorting, a divided pattern like 502 is obtained. Each processor:
Retrieve only necessary data.

【0044】同様にステップ605において、zの値でソー
ティングを行なった後等分割することにより503のよう
に分割される。
Similarly, in step 605, after performing sorting by the value of z, the data is equally divided and divided like 503.

【0045】ソーティングにはどのようなアルゴリズム
を用いてもよいが、 例えば、クイックソート などを用
いることができる。
Although any algorithm may be used for sorting, for example, a quick sort can be used.

【0046】構造分割では、データを均一に分割できる
がソーティングを行なうため処理量が大きい。ソーティ
ングは最悪 N log(N) に比例した処理量になるのでデー
タサイズ(N)の影響が大きい。後半のソーティング(ステ
ップ603,605)では、前半のソーティング、分割(ステッ
プ601)によりソーティングすべきデータ量が減るので影
響は少ないが、最初のソーティング(ステップ601)で
は、全データに対してソーティングを行なうため影響が
大きい。よって、構造分割の最初のソーティング、分割
の部分を直交分割に置き換えることにより処理時間を短
縮する。この分割方法をハイブリッド分割とする。
In the structure division, the data can be uniformly divided, but the processing amount is large because the sorting is performed. Sorting has a worst case processing amount proportional to N log (N), so the data size (N) has a large effect. In the latter half of the sorting (steps 603 and 605), the amount of data to be sorted is reduced by the first half of the sorting and division (step 601), so the effect is small, but in the first sorting (step 601), sorting is performed on all data. A large impact. Therefore, the processing time is reduced by replacing the first sorting and division part of the structural division with the orthogonal division. This division method is referred to as hybrid division.

【0047】フローチャートを図7に示す。ステップ701
において、直交分割を行ない必要なデータだけを取り出
し、その取り出したデータに対しステップ702で構造分
割を行なう。
FIG. 7 shows a flowchart. Step 701
In step 702, orthogonal division is performed to extract only necessary data, and the extracted data is subjected to structural division in step 702.

【0048】ハイブリッド分割では、構造分割に比べ処
理時間を短縮できるが、最初のソーティングを行なって
いないので、完全に均一にデータを分割できない。特
に、データが画面中央(中心部)に偏っていない時など
は、最初の分割の影響を受け、均一なデータ分割が困難
になる。
In the hybrid division, the processing time can be reduced as compared with the structure division. However, since the initial sorting is not performed, data cannot be divided completely uniformly. In particular, when data is not biased toward the center (center) of the screen, uniform data division is difficult due to the influence of the first division.

【0049】並列直交分割のフローチャートを図12に示
す。並列直交分割では、ハイブリッド分割のように構造
分割の最初のソーティング(ステップ601)を直交分割で
置き換えるのではなく、このソーティング自体を並列に
行なう。ステップ1201において、各ノードプロセスは、
直交分割など既存の分割方法を用いて必要なデータだけ
を取り出し、その(分割後でデータサイズが小さくなっ
た)データに対しソーティングを行ない、あるプロセッ
サ(ホストプロセスあるはノードプロセスの中のひとつN
0とする)に、ソートしたデータを送信する。プロセッサ
(N0)は、ステップ1203において、各ノードプロセスから
ソートされたデータを受信する。ソートされた部分デー
タを集めることにより、完全にソートされたデータを得
る。プロセッサ(N0)はデータを等分割したあと、各プロ
セッサへ必要なデータを送信する。この後は、通常の構
造分割を行なう。
FIG. 12 shows a flowchart of the parallel orthogonal division. In the parallel orthogonal division, instead of replacing the initial sorting (step 601) of the structure division with the orthogonal division unlike the hybrid division, the sorting itself is performed in parallel. In step 1201, each node process:
Using the existing division method such as orthogonal division, only necessary data is extracted, and the data (the data size has become smaller after division) is sorted, and a certain processor (host process or one of the node processes N
0), the sorted data is transmitted. Processor
(N0) receives the sorted data from each node process in step 1203. By collecting the sorted partial data, a completely sorted data is obtained. After dividing the data equally, the processor (N0) transmits necessary data to each processor. Thereafter, normal structure division is performed.

【0050】ステップ1201からステップ1203でソーティ
ングを並列に行なっている。クイックソートのアルゴリ
ズムは、ある基準値を取り出し、その基準値より大きい
データと小さいデータに分けるという操作を再帰的に繰
り返すアルゴリズムである。ステップ1201において直交
分割を行なうことにより、(ノードプロセス-1)個分の基
準値を選び分割している。分割された部分データにソー
ティングを行なうが、分割後でデータサイズが小さくな
っているのでソーティングに要する時間は少なくなる。
その後、分割ソートされた(部分)データを一つのプロセ
スへ集めることによりソートされた(全体の)データが得
られる。
In steps 1201 to 1203, sorting is performed in parallel. The quick sorting algorithm is an algorithm that recursively repeats an operation of extracting a certain reference value and dividing the data into data larger than the reference value and data smaller than the reference value. In step 1201, orthogonal division is performed to select and divide (node process-1) reference values. Sorting is performed on the divided partial data, but the time required for sorting is reduced because the data size is reduced after the division.
Then, the sorted (partial) data is collected into one process to obtain the sorted (whole) data.

【0051】図8に比例分割の分割例を示す。比例分割
では、データ空間を既存の分割方法で分割する。例えば
領域1(803)、領域2(802)に分割されたとする。各領域に
含まれるデータ数をカウントし、領域間のデータ数の比
とそれぞれの領域を担当するプロセッサ比が等しくなる
ように、領域にプロセッサを割り当てる。
FIG. 8 shows an example of proportional division. In the proportional division, the data space is divided by an existing division method. For example, assume that the area is divided into an area 1 (803) and an area 2 (802). The number of data included in each area is counted, and processors are assigned to the areas so that the ratio of the number of data between the areas and the processor ratio in charge of each area are equal.

【0052】図8では、領域1、領域2にそれぞれ N_R1(8
05)個,N_R2(806)個のデータが含まれていたので、領域
1、領域2に割り当てるプロセッサ数を NP_R1(807),NP_R
2(808)とすると、N_R1/N_R2 = NP_R1/NP_R2 の式を満た
すようにプロセッサを割り当てる。
In FIG. 8, N_R1 (8
05) and N_R2 (806) data,
1, NP_R1 (807), NP_R
Assuming 2 (808), the processor is allocated so as to satisfy the equation of N_R1 / N_R2 = NP_R1 / NP_R2.

【0053】比例分割の処理手順のフローを図9に示
す。ステップ901では、一様分割、直交分割など処理量
の少ない分割手法によりデータ空間を部分領域に分割す
る。ステップ902においては、各部分領域について領域
内に存在するデータをカウントする。ステップ903で
は、各部分領域に含まれるデータの比と、各部分領域に
割り当てられるプロセッサの比が等しくなるように、NP
個のプロセッサの中からプロセッサを割り当てる。i番
目の部分領域に割り当てられたプロセッサの個数を NPi
とする。ステップ904で、各部分領域について NP に N
Pi の値を代入し、割り当て可能なプロセッサの数を更
新する。ステップ905で、NP の値がある定数(NPc)の値
より大きかったら、ステップ901へ戻り、各部分領域そ
れぞれについてさらに分割を進める。NPの値がNPc以下
であったら、それ以降は既存の分割方法(構造分割)を用
いてデータを分割する。あるいは、NPの値が 1 であっ
たら分割を終了する。ステップ905では、分割が進み分
割すべきデータが少なくなってからは構造分割などを行
なうが、これはデータ数が少ない場合ソーティングの処
理は大きくないためである。
FIG. 9 shows the flow of the processing procedure for proportional division. In step 901, the data space is divided into partial regions by a division method with a small processing amount such as uniform division or orthogonal division. In step 902, for each partial area, the data existing in the area is counted. In step 903, the NP is set so that the ratio of the data included in each partial region is equal to the ratio of the processor assigned to each partial region.
Assign a processor from among the processors. NPi is the number of processors assigned to the i-th partial area.
And In step 904, N is set to NP for each partial area.
Substitute the value of Pi and update the number of processors that can be allocated. In step 905, if the value of NP is larger than the value of a certain constant (NPc), the process returns to step 901 to further divide each partial area. If the value of NP is less than or equal to NPc, then the data is divided using the existing division method (structure division). Alternatively, if the value of NP is 1, the division ends. In step 905, the structure division is performed after the division has progressed and the data to be divided becomes small, because the sorting process is not large when the number of data is small.

【0054】ヒストグラム分割の分割例を図10示す。ヒ
ストグラム分割では、領域を一様分割などの既存の分割
方法により複数の小領域に分割する。小領域に分割され
たデータ空間(1001)に対し、ヒストグラム(1008)を生成
する。最初に、他の領域より極端に多いデータ量を持つ
領域を選ぶ。この例では、ヒストグラムより領域i(100
4)のデータ量(1007)が多いことがわかる。よって領域i
を再分割し、領域i-1(1012)と領域i'(1013)を生成す
る。次に、他の領域よりデータ数が少ない領域を選ぶ。
ヒストグラムより、領域1のデータ量(1005)がデータ量
が少ないことがわかるので、領域1(1005)と、領域1と領
域2をマージし領域1’を生成する。再分割、マージ後の
データ空間(1010)では、領域の大きさは不均一になる
が、ヒストグラム(1009)のようにデータ量は均一化され
る。
FIG. 10 shows an example of histogram division. In the histogram division, an area is divided into a plurality of small areas by an existing division method such as uniform division. A histogram (1008) is generated for the data space (1001) divided into small areas. First, an area having an extremely large data amount than other areas is selected. In this example, the region i (100
It can be seen that the data amount (1007) of 4) is large. Therefore area i
Is subdivided to generate a region i-1 (1012) and a region i ′ (1013). Next, an area having a smaller number of data than other areas is selected.
Since the histogram shows that the data amount (1005) of the area 1 is small, the area 1 (1005) is merged with the areas 1 and 2 to generate the area 1 '. In the data space (1010) after subdivision and merging, the size of the region is not uniform, but the data amount is uniformed as in the histogram (1009).

【0055】ヒストグラム分割のフローチャートを図11
に示す。ステップ1101では、プロセッサより大きい数
(R)の小領域(短冊状、あるいは長方形のブロック)に分
割する。次にステップ1102において、各領域に含まれる
データ数(R_ni:領域iに含まれるデータ数)をカウントす
る。ステップ1103では、データ量(N_Ri)と基準のデータ
量(N_b)と比較し基準より大きければステップ1104でさ
らに分割を行なう。分割を行なった場合は、ステップ11
05で領域内に含まれるデータ数をカウントし直し、ステ
ップ1106でRの値をインクリメントする。基準値を超え
るデータを持つ領域がなくったら、ステップ1107で、一
番少ないデータ量を持つ領域を捜し出す。ステップ1108
では、その領域に隣接する領域の中でデータ量が一番少
ない領域を選び出し2つの領域をマージする。ステップ1
109でRをデクリメントする。この操作をステップ1110
で、小領域の数とプロセッサの数とを比較し、等しくな
かったらステップ1107に戻り、等しくなったら処理を終
了する。
FIG. 11 is a flowchart of the histogram division.
Shown in In step 1101, a number greater than the processor
(R) is divided into small areas (strips or rectangular blocks). Next, in step 1102, the number of data included in each area (R_ni: the number of data included in the area i) is counted. In step 1103, the data amount (N_Ri) is compared with the reference data amount (N_b). If the data amount is larger than the reference, further division is performed in step 1104. If splitting, step 11
At 05, the number of data included in the area is counted again, and at step 1106, the value of R is incremented. When there is no area having data exceeding the reference value, in step 1107, an area having the smallest data amount is searched for. Step 1108
Then, an area having the smallest data amount is selected from the areas adjacent to the area, and the two areas are merged. step 1
Decrement R at 109. Perform this operation in step 1110
Then, the number of small areas is compared with the number of processors.

【0056】[0056]

【発明の効果】本発明によれば以下の効果がある。According to the present invention, the following effects can be obtained.

【0057】(1)前処理としてデータ分割をしておくこ
とにより、プロセッサ間の負荷を均一にすることができ
る。
(1) By dividing the data as pre-processing, the load between processors can be made uniform.

【0058】(2)視点変更を行なう度にデータ分割を行
なうので、各視点について最適な分割を行なうことがで
きる。
(2) Since data division is performed each time the viewpoint is changed, optimal division can be performed for each viewpoint.

【0059】(3)画面中央部を細かく分割することによ
り、画面中心部にデータが偏って存在する場合は少ない
処理時間で負荷を分散することができる。
(3) By dividing the center of the screen finely, when data is unevenly distributed in the center of the screen, the load can be distributed in a short processing time.

【0060】(4)各軸(x,y,z)についてソーティング後に
等分割することにより、どのようなデータ分布に対して
もデータを均一に分割することができる。
(4) By equally dividing each axis (x, y, z) after sorting, data can be uniformly divided for any data distribution.

【0061】(5)分割の初期に直交分割を用い、その後
に構造分割を行なうことにより、ソーティングにかかる
処理時間を短縮することができる。
(5) The processing time required for sorting can be reduced by using orthogonal division at the beginning of division and then performing structural division.

【0062】(6)直交分割等の分割手法により分割した
後に各プロセッサでソーティングを行ない、そのデータ
を再び集めることで構造分割の最初のソーティングを並
列化しソーティングにかかる処理時間を短縮することが
できる。
(6) Sorting is performed by each processor after division by a division method such as orthogonal division and the data is collected again, so that the first sorting of the structural division can be parallelized and the processing time required for sorting can be reduced. .

【0063】(7)各領域に含まれるデータ量の比と、割
り当てられるプロセッサの比が等しくなるようにプロセ
ッサを割り当てることにより、各プロセッサに均等にデ
ータを割り当てることができる。
(7) By allocating processors so that the ratio of the amount of data included in each area is equal to the ratio of processors to be allocated, data can be uniformly allocated to each processor.

【0064】(8)データ空間を小領域に分割し、ヒスト
グラムを生成し、含まれるデータ量により領域を再分割
あるいはマージすることにより、各プロセッサに均等に
データを割り当てることができる。
(8) By dividing the data space into small areas, generating a histogram, and subdividing or merging the areas according to the amount of data included, data can be uniformly allocated to each processor.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の方法を実施する典型的な並列計算環境
を示す図。
FIG. 1 illustrates a typical parallel computing environment for implementing the method of the present invention.

【図2】ボリュームレンダリングのフローチャート。FIG. 2 is a flowchart of volume rendering.

【図3】並列ボリュームレンダリングのフローチャー
ト。
FIG. 3 is a flowchart of parallel volume rendering.

【図4】分割方法の分割パタンを示す図。FIG. 4 is a diagram showing a division pattern of a division method.

【図5】構造分割の分割例を示す図。FIG. 5 is a diagram showing a division example of a structure division.

【図6】分割方法(構造分割)のフローチャート。FIG. 6 is a flowchart of a division method (structure division).

【図7】分割方法(ハイブリッド分割)のフローチャー
ト。
FIG. 7 is a flowchart of a division method (hybrid division).

【図8】分割方法(比例分割)の分割例を示す図。FIG. 8 is a diagram showing a division example of a division method (proportional division).

【図9】分割方法(比例分割)のフローチャート。FIG. 9 is a flowchart of a division method (proportional division).

【図10】分割方法(ヒストグラム分割)の分割例を示す
図。
FIG. 10 is a diagram showing a division example of a division method (histogram division).

【図11】分割方法(ヒストグラム分割)のフローチャー
ト。
FIG. 11 is a flowchart of a division method (histogram division).

【図12】分割方法(並列構造分割)のフローチャート。FIG. 12 is a flowchart of a division method (parallel structure division).

【符号の説明】[Explanation of symbols]

101...並列計算機、102...内部高速ネットワーク、10
3...プロセッサエレメント(PE)、104...CPU、105...内
部メモリ、106...ネットワーク、107...コンピュータ、
108...ディスプレイ、109...キーボード、110...マウ
ス、401...一様分割、402...データ空間、403...デー
タ、404...視点、501...x軸について分割後の分割パタ
ン、502...y軸について分割後の分割パタン、503...z軸
について分割後の分割パタン、801...データ空間、80
2...データ、803...領域1(R1)、804...領域2(R2)、80
5...領域1に含まれるデータ(N_R1個)、806...領域2に含
まれるデータ(N_R2個)、807...領域1に割り当てられたP
E、808...領域2に割り当てられたPE、1001...再分割、
マージ前のデータ空間、1002...領域1、1003...領域2、
1004...領域I、1005...領域1のデータ量、1006...領域2
のデータ量、1007...領域iのデータ量、1008...再分
割、マージ前のヒストグラム、1009...再分割、マージ
後のヒストグラム、1010...再分割、マージ後のデータ
空間、1011...領域1’、1012...領域i-1、1013...領域
I'。
101 ... Parallel computer, 102 ... Internal high-speed network, 10
3 ... Processor element (PE), 104 ... CPU, 105 ... Internal memory, 106 ... Network, 107 ... Computer,
108 ... display, 109 ... keyboard, 110 ... mouse, 401 ... uniform division, 402 ... data space, 403 ... data, 404 ... viewpoint, 501 ... x Split pattern after splitting about axis, 502 ... Split pattern after splitting about y-axis, 503 ... Split pattern after splitting about z-axis, 801 ... Data space, 80
2 ... Data, 803 ... Region 1 (R1), 804 ... Region 2 (R2), 80
5 ... Data included in area 1 (N_R1), 806 ... Data included in area 2 (N_R2), 807 ... P assigned to area 1
E, 808 ... PE assigned to region 2, 1001 ... subdivision,
Data space before merging, 1002 ... region 1, 1003 ... region 2,
1004 ... Area I, 1005 ... Area 1 data amount, 1006 ... Area 2
1007 ... data amount of area i, 1008 ... repartition, histogram before merge, 1009 ... repartition, histogram after merge, 1010 ... repartition, data space after merge , 1011 ... area 1 ', 1012 ... area i-1, 1013 ... area
I '.

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】複数のプロセッサを含む並列計算環境にお
いて並列に画像を生成する方法であって、(1) 可視化す
べきデータの入力とユーザからのパラメータ変更などの
入力を受ける処理と、(2) 静的にプロセッサ間の負荷分
散を図るように入力されたデータの分割を行なう処理
と、(3) データの分割パタンより画面の分割パタンを決
定して部分画面を並列に生成する処理と、(4) 生成され
た部分画面を再構成して一枚の画像を生成し表示する処
理と、からなることを特徴とする並列画像生成方法。
1. A method for generating images in parallel in a parallel computing environment including a plurality of processors, comprising: (1) a process of receiving an input of data to be visualized and an input such as a parameter change from a user; ) A process of dividing the input data so as to statically distribute the load among the processors, and (3) a process of determining a screen division pattern from the data division pattern and generating partial screens in parallel, (4) A parallel image generation method, comprising: reconstructing a generated partial screen to generate and display one image.
【請求項2】前記(2)のデータ分割を行う処理は、画面
中心部をその周辺部よりも細かく分割する処理からなる
請求項1記載の並列画像生成方法。
2. The parallel image generating method according to claim 1, wherein the data dividing process (2) comprises a process of dividing a central portion of the screen more finely than a peripheral portion thereof.
【請求項3】前記(2)のデータ分割を行う処理は、デー
タ空間上の各軸についてソーティングを行なった後、デ
ータを等分割する処理からなる請求項1記載の並列画像
生成方法。
3. The parallel image generating method according to claim 1, wherein the data dividing process (2) comprises a process of performing sorting on each axis in a data space and then dividing the data equally.
【請求項4】前記(2)のデータ分割において、分割の初
期では請求項2記載の分割方法によりデータを分割し、
分割の後期では請求項3記載の分割方法によりデータを
分割することを特徴とするデータ分割手法。
4. In the data division of (2), data is divided by the division method according to claim 2 at an initial stage of division.
4. A data division method, wherein data is divided by a division method according to claim 3 in a later stage of division.
【請求項5】前記(2)のデータ分割において、分割の初
期では請求項2記載の分割方法によりデータを分割し、
各プロセッサでソーティングを行なった後、各プロセッ
サがソーティングしたデータを集めることにより、ソー
ティングを並列に行ない、ソーティングされたデータを
等分割し、分割の後期では請求項3記載の分割方法によ
りデータを分割することを特徴とするデータ分割手法。
5. In the data division of (2), data is divided by the division method according to claim 2 at an initial stage of the division.
After performing sorting by each processor, sorting is performed in parallel by collecting data sorted by each processor, and the sorted data is equally divided.In the latter half of the division, the data is divided by the dividing method according to claim 3. A data division method.
【請求項6】前記(2)のデータ分割処理は、データ空間
を複数の部分領域に分割し、各部分領域に属するデータ
をカウントし、各部分領域に属するデータ数に応じてプ
ロセッサを割り当てていく処理を含む請求項1記載の並
列画像生成方法。
6. The data dividing process of (2) includes dividing a data space into a plurality of partial areas, counting data belonging to each partial area, and assigning a processor according to the number of data belonging to each partial area. 2. The parallel image generation method according to claim 1, further comprising the steps of:
【請求項7】前記(2)のデータ分割処理は、ある軸につ
いてデータをプロセッサ数より多い部分領域に分割し、
分割した各部分領域に属するデータをカウントしてヒス
トグラムを生成し、データの数が少ない領域については
隣接する領域にマージし、データ数が大きい領域につい
てはさらに分割する処理からなる請求項1記載の並列画
像生成方法。
7. The data dividing process of (2) divides data for a certain axis into partial areas larger than the number of processors,
2. A process according to claim 1, further comprising the steps of: generating a histogram by counting data belonging to each of the divided partial areas; merging an area having a small number of data into an adjacent area; and further dividing an area having a large number of data. Parallel image generation method.
JP9139661A 1997-05-29 1997-05-29 Parallel image generation method and data dividing technique for parallel image generation Pending JPH10334054A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9139661A JPH10334054A (en) 1997-05-29 1997-05-29 Parallel image generation method and data dividing technique for parallel image generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9139661A JPH10334054A (en) 1997-05-29 1997-05-29 Parallel image generation method and data dividing technique for parallel image generation

Publications (1)

Publication Number Publication Date
JPH10334054A true JPH10334054A (en) 1998-12-18

Family

ID=15250478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9139661A Pending JPH10334054A (en) 1997-05-29 1997-05-29 Parallel image generation method and data dividing technique for parallel image generation

Country Status (1)

Country Link
JP (1) JPH10334054A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009510612A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Task and data management in Cell processor
JP2009187115A (en) * 2008-02-04 2009-08-20 Internatl Business Mach Corp <Ibm> Multi-node server system, load distribution method, resource management server, and program
JP2009245265A (en) * 2008-03-31 2009-10-22 Aisin Aw Co Ltd Map display device, map display program, and navigation device using the same
US7965373B2 (en) 2005-06-28 2011-06-21 Asml Netherlands B.V. Lithographic apparatus and device manufacturing method utilizing a datapath having a balanced calculation load
JP2011170774A (en) * 2010-02-22 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> Device and method for generation of decision tree, and program
JP2015049655A (en) * 2013-08-30 2015-03-16 日本電信電話株式会社 Data processing device and data processing method
JP2020035195A (en) * 2018-08-30 2020-03-05 富士通株式会社 Apparatus, method and program for image recognition

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965373B2 (en) 2005-06-28 2011-06-21 Asml Netherlands B.V. Lithographic apparatus and device manufacturing method utilizing a datapath having a balanced calculation load
JP2009510612A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Task and data management in Cell processor
JP2012198902A (en) * 2005-09-27 2012-10-18 Sony Computer Entertainment Inc Processor task and data management
JP2009187115A (en) * 2008-02-04 2009-08-20 Internatl Business Mach Corp <Ibm> Multi-node server system, load distribution method, resource management server, and program
JP2009245265A (en) * 2008-03-31 2009-10-22 Aisin Aw Co Ltd Map display device, map display program, and navigation device using the same
JP2011170774A (en) * 2010-02-22 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> Device and method for generation of decision tree, and program
JP2015049655A (en) * 2013-08-30 2015-03-16 日本電信電話株式会社 Data processing device and data processing method
JP2020035195A (en) * 2018-08-30 2020-03-05 富士通株式会社 Apparatus, method and program for image recognition

Similar Documents

Publication Publication Date Title
DE102019102279A1 (en) Generation of synthetic images for training a neuronal network model
JP4778561B2 (en) Method, program, and system for image classification and segmentation based on binary
DE102018114929B4 (en) SYSTEM AND METHOD FOR Rendering a Light Field
DE102018108324A1 (en) System and method for estimating an optical flow
DE102019102009A1 (en) REDUCING NOISE DURING RENDERING THROUGH PARALLEL PATH SPACE FILTERING USING HASHING
DE102019103310A1 (en) ESTIMATE FOR AN OPTIMAL OPERATING POINT FOR HARDWARE WORKING WITH A RESTRICTION ON THE SHARED PERFORMANCE / HEAT
DE69932768T2 (en) Method and apparatus for collision checking of objects in computer systems
DE102018113845A1 (en) Systems and methods for training neural networks with sparse data
DE102020104637A1 (en) TECHNIQUES FOR EFFICIENT PARTITIONING OF MEMORY
DE102012213643A1 (en) Multitthread physics engine with impulse forwarding
DE102013020614A1 (en) Consistent grid division with multi-resolution
US20110122135A1 (en) Method and system of rendering parallel global illumination
DE102019128750A1 (en) REDUCING THE LEVEL OF DETAILS OF A POLYGON NETWORK TO REDUCE THE COMPLEXITY OF A PICTURED GEOMETRY WITHIN A SCENE
DE102019106996A1 (en) PRESENTING A NEURONAL NETWORK USING PATHS INSIDE THE NETWORK TO IMPROVE THE PERFORMANCE OF THE NEURONAL NETWORK
DE102019134020A1 (en) DECOMPRESSION TECHNIQUES FOR THE PROCESSING OF COMPRESSED DATA SUITABLE FOR ARTIFICIAL NEURAL NETWORKS
DE112019001978T5 (en) IMPROVING THE REALISM OF SCENES WITH WATER SURFACES DURING RENDERING
US6853374B2 (en) Image space display method and apparatus
DE102021111335A1 (en) TECHNIQUES FOR DYNAMICALLY COMPRESSING STORAGE REGIONS THAT HAVE A UNIFORM VALUE
DE102019103319A1 (en) STOCHASTIC ROUNDING OF NUMBER VALUES
CN116109121A (en) User demand mining method and system based on big data analysis
CN114155337A (en) Large-scale digital workshop rendering system and method based on Unity platform
US6091425A (en) Constant multisample image coverage mask
JPH10334054A (en) Parallel image generation method and data dividing technique for parallel image generation
Chouchene et al. Efficient implementation of Sobel edge detection algorithm on CPU, GPU and FPGA
CN116310060B (en) Method, device, equipment and storage medium for rendering data

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130