JPH04242827A - 超並列計算機用乱数発生方式 - Google Patents

超並列計算機用乱数発生方式

Info

Publication number
JPH04242827A
JPH04242827A JP2417249A JP41724990A JPH04242827A JP H04242827 A JPH04242827 A JP H04242827A JP 2417249 A JP2417249 A JP 2417249A JP 41724990 A JP41724990 A JP 41724990A JP H04242827 A JPH04242827 A JP H04242827A
Authority
JP
Japan
Prior art keywords
processor
pet
control flag
value
random number
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.)
Withdrawn
Application number
JP2417249A
Other languages
English (en)
Inventor
Toshiyuki Shibuya
渋谷 利行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2417249A priority Critical patent/JPH04242827A/ja
Publication of JPH04242827A publication Critical patent/JPH04242827A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は超並列計算機用乱数発生
方式に係り、特に各プロセッサにおいて、品質のよい乱
数を発生させるようにしたものに関する。
【0002】
【従来の技術】計算機は我々の生活とますます密着に結
びついている。今後、計算機で処理されることの量がま
すます増大し、その内容も複雑化する。しかし1台の計
算機で処理できる能力には限界があり、そこで複数の計
算機を用いた並列処理により、処理能力を高める方法の
研究や開発が活発に行われている。
【0003】並列計算機の接続方式としては、複数の計
算機でメモリを共有する共有メモリ型と、複数の各プロ
セッサ毎にメモリを有する分散メモリ型がある。そして
分散メモリ型でも個々のプロセッサが独立したプログラ
ムとデータを持ち演算を実行するMIMD型と、複数の
各プロセッサをコントローラから同一の命令を実行する
SIMD型とがある。そしてSIMD型は、プログラム
を保持していないので、その分だけ小型になり、またコ
ントローラからの同一命令を実行するので制御が簡単で
もある。
【0004】ところで、分子運動をシミュレーションす
るような場合、分子間吸引力にもとづく分子の運動や、
分子間衝突にもとづく分子運動がある。このようなシミ
ュレーションを行う場合各プロセッサに乱数を発生させ
、演算を行うことが必要となる。
【0005】このため、従来では、図4(A)に示す如
く、多数のプロセッサPEをコントローラ50で制御す
るSIMD型の並列計算機において、図4(B)に示す
如く制御を行っていた。すなわち、プロセッサ40に代
表的に説明するように、その北にあるプロセッサ41、
東にあるプロセッサ44、南にあるプロセッサ42、西
にあるプロセッサ43に関連して以下の演算を行うもの
である。なお図5はプロセッサ40〜44のデータ保持
部40−1〜44−1を示し、各データ保持部は、区分
PEt と区分PEt+1 に2区分されている。
【0006】■まず初期値としてt=0、PEOを設定
する。これにより各プロセッサの区分PEt に初期値
PEOが設定される。この初期値は各プロセッサにより
適宜定められるデータ(例えば「0」または「1」の1
ビット)である。
【0007】■次にコントローラ50は、各プロセッサ
に対し、自プロセッサの区分PEt の値と、その北側
に位置するプロセッサの区分PEt の値に対し、演算
@を行ない自プロセッサの区分PEt+1 に代入する
。例えばプロセッサ40はその区分PEt の値とプロ
セッサ41の区分PEt の値に対して演算@を行い、
プロセッサ40の区分PEt+1 に代入する。ここで
@はAND,OR,NANDO,NOR,XOR,XN
OR,ADD等の演算子の中から任意なものを選び、決
めておく。
【0008】■コントローラ50は、各プロセッサに対
し自プロセッサのPEt+1 の値と、その東側に位置
するプロセッサのPEt の値に対して演算@を行ない
、自プロセッサの区分PEt+1 に代入する。例えば
プロセッサ40は、その区分PEt+1 の値とプロセ
ッサ44の区分PEt の値に対して演算@を行い、プ
ロセッサ40の区分PEt+1 に代入する。
【0009】■コントローラ50は、各プロセッサに対
し自プロセッサのPEt+1 の値と、その南側にある
プロセッサのPEt の値に対して演算@を行ない、自
プロセッサの区分PEt+1 に代入する。例えばプロ
セッサ40は、その区分PEt+1 の値と、プロセッ
サ42の区分PEt の値に対して演算@を行い、プロ
セッサ40の区分PEt+1 に代入する。
【0010】■コントローラ50は、各プロセッサに対
し自プロセッサのPEt+1 の値と、その西側にある
プロセッサPEt の値に対し演算@を行い、自プロセ
ッサの区分PEt+1 に代入する。例えば、プロセッ
サ40は、その区分PEt+1 の値と、プロセッサ4
3の区分PEt の値に対して演算@を行い、プロセッ
サ40の区分PEt+1 に代入する。
【0011】■コントローラ50は、各プロセッサに対
し区分PEt+1 の値を区分PEt に代入させる。
【0012】■コントローラ50はt=t+1 とする
【0013】即ち、従来の超並列計算機における並列乱
数発生アルゴリズムは、自分のプロセッサの状態とその
東西南北の状態に対して演算を行い、次の状態を決定す
る、セルクオートマトンの原理にもとづいている。図4
(C)のデータ構造に対して、プロセッサnは次の様な
演算を行う。
【0014】
【数1】
【0015】このとき、PEの添付であるtは時間を表
わし、(n)はプロセッサの位置を表わす。
【0016】
【発明が解決しようとする課題】乱数を用いる演算の例
として、シミュレーテイッド・アニーリング法がある。 シミュレーテイッド・アニーリング法では、ヒューリス
テイックな最適化アルゴリズムに対して、乱数の値を用
いてノイズを与えることによりローカルオプテイマムに
陥り難くしている。シミュレーテイッド・アニーリング
法は、良い結果が得らる反面、計算時間が長いという欠
点がある。そこで並列処理によって高速化を実現しよう
としている。
【0017】シミュレーテイッド・アニーリング法を用
いて良い結果を得るために最も重要なことは、質の良い
乱数を作ることである。従ってシミュレーテイッド・ア
ニーリング法を並列化する際のポイントとしては、質が
良く高速な並列乱数発生アルゴリズムを採用することで
ある。従来技術では、比較的質の良い乱数が得られるが
、初期値に乱数の質が大きく依存することと、長く繰り
返していると安定する、つまり特定のパターンに収束し
てしまう欠点がある。
【0018】したがって本発明の目的は、初期値に乱数
の質が依存せず、安定し難い乱数を得ることができる超
並列計算機用乱数発生方式を提供することである。
【0019】
【課題を解決するための手段】前記目的を達成するため
、本発明では、図1に示す如く、複数のプロセッサ10
0,101〜10n,110,111〜11n,−1m
0,1m1〜1mnを格子状に並列接続し、コントロー
ラ10により各プロセッサを共通に制御してSIMD型
並列計算機を構成するとともに、プロセッサ100に代
表的に示す如く、各プロセッサ100には演算部1,2
、セレクタ3、コントロール・フラグ(CF)4を設け
る。演算部1,2は共通のデータd1 ,d2 により
異なる演算を行う。例えば演算部1はd1 とd2 の
ANDを、演算部2はd1 とd2 のORを演算する
。そしてセレクタ3はコントロール・フラグ4の状態に
応じて、例えばコントロール・フラグ4が「1」のとき
、演算部1のAND演算が出力され、「0」のとき演算
部2のOR演算が出力される。
【0020】このコントロール・フラグ4は、前記セレ
クタ4の出力を記入する。またコントローラ11から適
宜設定することもできる。
【0021】なお、演算部13により、全プロセッサ1
00〜10n〜1m1〜1mnのデータの例えばORを
求め、グローバルメモリ12に代入してグローバルデー
タとする。また制御装置10は、コントローラ11、グ
ローバルメモリ12、演算部13等を有する。演算部1
3は、ORのみでなく、AND,NAND,NOR,X
OR,XNOR,ADD等他の演算を行うことができる
【0022】
【作用】各プロセッサは、コントローラ11からの命令
により、例えば自プロセッサのPEt の値と、北側の
プロセッサのPEt の値とにより、コントロール・フ
ラグが「1」のときAND演算値をPEt+1に代入し
、「0」のときOR演算値をPEt+1 に代入する。
【0023】次に各プロセッサは自プロセッサのPEt
+1 の値と東側のPEt の値について、同様の演算
を行いPEt+1 に代入する。そして南側、西側につ
いても、同様の演算を行ってPEt+1 に代入する。
【0024】このようにして初期値に乱数の質が依存せ
ず、安定し難い乱数が並列で求められる。
【0025】
【実施例】本発明の一実施例を図2、図3にもとづき説
明する。
【0026】図2は、図1におけるプロセッサの詳細図
であり、1,2は演算部、3はセレクタ、4はコントロ
ール・フラグ、5はメモリ、6は制御部である。
【0027】メモリ5は、データを保持するものであり
、例えばセレクタ3より出力される演算結果が保持され
たり、初期値が設定されるものである。また区分PEt
 と区分PEt+1 が設けられている。
【0028】制御部6は、プロセッサを総合的に制御す
るとともに、また通信機能をも具備するものであって、
メモリ5にアクセスしたり、演算部1,2にAND,O
R,NAND,NOR,XOR,XNORなどの演算を
行わせたり、図1に示すコントローラ11からの命令等
の制御信号を受信したり、例えば東西南北のプロセッサ
等の、他のプロセッサとの通信を行ったり、図1の演算
部13に対してデータを送出するなどの各種制御を行う
ものである。
【0029】(1)本発明の第1実施例を図3にもとづ
き説明する。この場合、制御部6は演算部1にAND演
算を行わせ、演算部2にOR演算を行わせる。
【0030】■まず、初期値としてt=0、PEoを設
定する。これにより、図1に示した、各プロセッサ10
0〜1mnのメモリ(図2のメモリ5)には、その区分
PEt に初期値PEoが設定される。この設定はコン
トローラ11により行われ、各プロセッサ100〜1m
nに応じて「1」または「0」が制御部6を経由して設
定される。
【0031】■次にコントローラ11は各プロセッサ1
00〜1mnのコントロール・フラグ(CF)4を「1
」または「0」に適宜設定する。この設定は制御部6を
経由して行われる。
【0032】■それからコントローラ11は各プロセッ
サに対し、自プロセッサの区分PEt の値と、その北
側に位置するプロセッサの区分PEt の値に対し、演
算部1ではAND演算を行わせ、演算部2ではOR演算
を行わせる。そしてコントロール・フラグ4が「1」の
とき、セレクタ3は演算部1のAND演算結果を出力さ
せ、コントロール・フラグ4が「0」のとき、セレクタ
3は演算部2のOR演算結果を出力させ、メモリ5の区
分、PEt+1 に代入させる。これにより、コントロ
ール・フラグ4が「1」のときAND演算が、「0」の
ときOR演算が行われたものとなる。
【0033】■コントローラ11は、各プロセッサに対
し、自プロセッサの区分PEt+1 の値と、自プロセ
ッサの東側に位置するプロセッサのPEt の値に対し
、上記■と同様にしてコントロール・フラグ4の値が「
1」ならAND演算を行う演算部1の出力をセレクタ3
より出力させてこれを区分PEt+1 に代入し、コン
トロール・フラグ4の値が「0」ならOR演算を行う演
算部2の出力をセレクタ3より出力させてこれを区分P
Et+1 に代入する。
【0034】■コントローラ11は、各プロセッサに対
し、自プロセッサの区分PEt+1 の値と自プロセッ
サの南側に位置するプロセッサの区分PEt の値に対
し、同様にしてコントロール・フラグ4の値が「1」な
らAND演算を行う演算部1の出力をセレクタ3より出
力させてこれを区分PEt+1 に代入し、コントロー
ル・フラグ4の値が「0」ならOR演算を行う演算部2
の出力をセレクタ3より出力させてこれを区分PEt+
1 に代入する。
【0035】■コントローラ11は、各プロセッサに対
し、自プロセッサの区分PEt+1 の値と自プロセッ
サの西側に位置するプロセッサの区分PEt の値に対
し、同様にしてコントロール・フラグ4の値が「1」な
らAND演算を行う演算部1の出力をセレクタ3より出
力させてこれを区分PEt+1 に代入し、コントロー
ル・フラグ4の値が「0」ならOR演算を行う演算部2
の出力をセレクタ3より出力させてこれを区分PEt+
1 に代入する。
【0036】■コントローラ11は、各プロセッサに対
し区分PEt+1 の値を区分PEt に代入させる。
【0037】■コントローラ11はt=t+1とする。
【0038】上記■〜■の処理により、各プロセッサは
初期値及びコントロール・フラグの値を設定し、以下の
演算を行うことになる。
【0039】
【数2】
【0040】なお前記の場合は、ANDとORの演算を
コントロール・フラグで選択する側について説明したが
、ANDとORに限るものではなく、演算子@としてA
ND,OR,NAND,NOR,XOR,XNOR等の
うちより適宜の2つを使用し、この2つの1つをコント
ロール・フラグで選択することもできる。そしてこのコ
ントロール・フラグを、図2に示す如く、セレクタ3の
出力により設定することができる。
【0041】東西南北の各プロセッサの区分PEt と
の値にもとづき複数の異なる演算を行い、しかもコント
ロール・フラグにより一方の演算結果を取り出すように
したので、ランダム性を一層増すことができる。
【0042】(2)第2実施例 第2実施例では、各プロセッサに例えばその自プロセッ
サの区分PEtの値をそのままスルー出力するように演
算部を制御させたり、自プロセッサの区分PEt の値
と、北側に位置するプロセッサの区分PEt の値との
OR演算を行うように制御して、コントロール・フラグ
4の値に応じて上記スルー出力かOR演算かのいずれか
を選択させる。
【0043】すなわち、下記の演算を行わせるものであ
る。ここでPASS  LEFTは引数の左側の被演算
の値を、そのまま通過させる演算子である。これにより
ランダム性を増すことができる。
【0044】
【数3】
【0045】(3)第3実施例 コントロール・フラグ(CF)4の決定の手法として、
自プロセッサの区分PEt の値と、その北側に位置す
るプロセッサの区分PE(t)の値のAND演算または
OR演算を、そのときのコントロール・フラグ4にもと
づきいずれか一方を選択して、これをコントロール・フ
ラグ4に代入してこれを新コントロール・フラグとする
。 すなわち下記の演算が行われる。
【0046】
【数4】
【0047】このようにしてホスト(コントローラ)側
のみからの記入のみではなく、プロセッサの演算結果に
もとづきコントロール・フラグ4を設定できるので、ラ
ンダム性を増すことができる。
【0048】(4)第4実施例 ホスト(コントローラ)側からコントロール・フラグを
設定するとき、下記数式5によりコントロール・フラグ
を設定する。iは整数であり、ランダム発生函数ran
dom(  )で発生した整数を、16進(OX)表示
の「01」でマスクして得られた下位1ビットをフラグ
flagとする。(1,2)
【0049】次にこの下位1ビットだけシフトし(3)
、前期フラグが1のとき(4)、コントロール・フラグ
CFをセットする。このコントロール・フラグをセット
するプロセッサの座標(X,Y)はiをP(並列計算機
の横方向つまりX方向の接続台数)で商したときの余り
(%が付加されている項)で示されるX座標と、iをP
で商したもので示されるY座標で選択されるものである
(5)、
【0050】もしくは、同様にして得られたX座標、Y
座標(プロセッサ番号)のプロセッサのコントロール・
フラグをリセットする(6)。
【0051】
【数式5】
【0052】(5)第5実施例 プロセッサ側でコントロール・フラグを設定するとき、
下記数式6により設定する。ここでCFの添字であるt
は時間を表わし、(n)はプロセッサの位置を表わす。 すなわち、自プロセッサのコントロール・フラグと、そ
の北、東、南、西側のプロセッサとのコントロール・フ
ラグとの演算@にもとづき、新しい自コントロール・フ
ラグを設定する。ここで@はAND,OR,NAND,
NOR,XOR,XNOR,ADDなどの演算子の中か
ら任意のものを選択し、決めておく。
【0053】
【数式6】
【0054】(6)第6実施例 ホスト(コントローラ)側からコントロール・フラグを
設定するとき、下記数式7によりコントロール・フラグ
を設定する。すなわち全プロセッサの区分PEt の値
を、図1に示す演算部13により、例えば加算し、得ら
れたグローバルデータの下位1ビットをグローバル・メ
モリ12に保持し、これをコントローラ11により全プ
ロセッサにコントロール・フラグとして設定する。
【0055】
【数式7】
【0056】(7)他の実施例 前記(1)〜(6)の説明は、データの設定、あるいは
コントロール・フラグの設定のどちらかに関するもので
あるが、勿論これらを組み合わせて実施することもでき
る。
【0057】例えば、 上記(1)と(3)を組み合わせる。 上記(1)と(4)を組み合わせる。 上記(1)と(5)を組み合わせる。 上記(1)と(6)を組み合わせる。 上記(2)と(3)を組み合わせる。 上記(3)と(4)を組み合わせる。 上記(4)と(5)を組み合わせる。 上記(5)と(6)を組み合わせる。 上記(1)と(2)を組み合わせる。 等により実施することができる。
【0058】
【発明の効果】本発明によれば、並列計算機の各プロセ
ッサにおいて、プロセッサ間で独立性の高い、しかも初
期値に乱数の質が依存せず、周期の長い乱数を生成する
ことができる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明におけるプロセッサの一実施例構成図で
ある。
【図3】本発明の一実施例の動作説明図である。
【図4】(A)はSIMD型並列計算機の説明図、(B
)はSIMD型計算機を使用した従来の乱数発生動作説
明図である。
【図5】自プロセッサと東西南北に位置するプロセッサ
のデータ構造説明図である。
【符号の説明】
10  制御装置 11  コントローラ 12  グローバル・メモリ 13  演算部
【数5】
【数6】
【数7】

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】  複数のプロセッサを格子状に並列接続
    し、コントローラで各プロセッサを制御し、自プロセッ
    サのデータと、隣接するプロセッサとのデータを演算し
    て乱数を発生する超並列計算機用乱数発生方式において
    、プロセッサに少なくとも2つの演算部(1),(2)
    と、セレクタ(5)と、コントロール・フラグ(4)を
    設け、上記コントロール・フラグ(4)にもとづき演算
    部の1つの演算結果を乱数値としたことを特徴とする超
    並列計算機用乱数発生方式。
  2. 【請求項2】  上記コントロール・フラグ(4)に、
    上記演算部の選択された一方の演算結果をセットするこ
    とを特徴とする請求項1の超並列計算機用乱数発生方式
  3. 【請求項3】  上記コントロール・フラグ(4)の値
    を、コントローラ側より設定することを特徴とする請求
    項1の超並列計算機用乱数発生方式。
  4. 【請求項4】  上記コントロール・フラグをコントロ
    ーラ側より設定するとき、プロセッサ番号座標(X,Y
    )のコントロール・フラグに「1」または「0」のいず
    れかを選択的に設定することを特徴とする請求項1の超
    並列計算機用乱数発生方式。
  5. 【請求項5】  全プロセッサの乱数の加算手段(13
    )を設け、これにもとづき全プロセッサのコントロール
    ・フラグを設定することを特徴とする請求項1の超並列
    計算機用乱数発生方式。
JP2417249A 1990-12-28 1990-12-28 超並列計算機用乱数発生方式 Withdrawn JPH04242827A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2417249A JPH04242827A (ja) 1990-12-28 1990-12-28 超並列計算機用乱数発生方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2417249A JPH04242827A (ja) 1990-12-28 1990-12-28 超並列計算機用乱数発生方式

Publications (1)

Publication Number Publication Date
JPH04242827A true JPH04242827A (ja) 1992-08-31

Family

ID=18525374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2417249A Withdrawn JPH04242827A (ja) 1990-12-28 1990-12-28 超並列計算機用乱数発生方式

Country Status (1)

Country Link
JP (1) JPH04242827A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079922A (ja) * 1998-03-18 2010-04-08 Koninkl Philips Electronics Nv マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079922A (ja) * 1998-03-18 2010-04-08 Koninkl Philips Electronics Nv マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法
USRE46712E1 (en) 1998-03-18 2018-02-13 Koninklijke Philips N.V. Data processing device and method of computing the cosine transform of a matrix

Similar Documents

Publication Publication Date Title
JP4316574B2 (ja) グラフィック処理を用いた粒子操作方法及び装置
Dippe et al. An adaptive subdivision algorithm and parallel architecture for realistic image synthesis
US10896241B2 (en) Information processing device and control method therefor
EP2121154A1 (en) Simulation techniques in a distributed computer system for multiplayer games
JP6937759B2 (ja) データベース操作方法及び装置
US20130207983A1 (en) Central processing unit, gpu simulation method thereof, and computing system including the same
Zhou et al. Multi-GPU implementation of a 3D finite difference time domain earthquake code on heterogeneous supercomputers
Ha et al. A scalable work-efficient and depth-optimal parallel scan for the GPGPU environment
Wąs et al. GPGPU computing for microscopic simulations of crowd dynamics
CN103578131A (zh) 用于实施光线跟踪的系统、方法和计算机程序产品
CN112035995A (zh) 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法
JPH04242827A (ja) 超並列計算機用乱数発生方式
Rahman et al. Towards accelerated agent-based crowd simulation for Hajj and Umrah
Yoshida et al. CONeP: A cost-effective online nesting procedure for regional atmospheric models
CN101819608B (zh) 一种微处理器指令级随机验证中加速取指的装置和方法
CN114970395A (zh) 基于二维圣维南方程的大规模流体模拟方法及系统
Shrestha et al. Multi-level domain-decomposition strategy for solving the eikonal equation with the fast-sweeping method
Silva et al. GPU pathfinding optimization
CN102255821B (zh) 一种联系人的状态输出方法和系统
Playne et al. Simulating and Benchmarking the shallow-water fluid dynamical equations on multiple graphical processing units
Lorant et al. Particle-based volume rendering of remote volume datasets using flowvr
JP2022162131A5 (ja)
JPS62280956A (ja) 配列デ−タ転送方法
JP2628912B2 (ja) ルール生成装置
Gamblin et al. Intuitive performance visualization techniques for topological analysis on capability machines

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980312