JPH06202856A - Random sequence generation processing system for parallel computer system - Google Patents

Random sequence generation processing system for parallel computer system

Info

Publication number
JPH06202856A
JPH06202856A JP4211131A JP21113192A JPH06202856A JP H06202856 A JPH06202856 A JP H06202856A JP 4211131 A JP4211131 A JP 4211131A JP 21113192 A JP21113192 A JP 21113192A JP H06202856 A JPH06202856 A JP H06202856A
Authority
JP
Japan
Prior art keywords
random number
value
initial value
processor element
sequence
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
JP4211131A
Other languages
Japanese (ja)
Inventor
Masahide Fujisaki
正英 藤崎
Motoi Okuda
基 奥田
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 JP4211131A priority Critical patent/JPH06202856A/en
Publication of JPH06202856A publication Critical patent/JPH06202856A/en
Withdrawn legal-status Critical Current

Links

Abstract

PURPOSE:To generate a long-cycle random sequence having different arrangement at high speed by generating the random number sequence at each processor element according to M series of random sequence generating methods. CONSTITUTION:S random number initial value generating means 10 of a master processor element 1 generates (pxvxk) pieces of initial values of random numbers, and a random number initial value distributing means 11 distributes the (pxv) pieces of random number initial values to a slave processor element 2-i so as not to overlap them. On the other hand, a random number initial value receiving means 20-i of the slave processor element 2-i receives the random number initial values addressed to that element itself, and a random number generating means 21-i generates a random number value An (n>= pxv+1) by using the received random number initial values preferably according to the logic arithmetic of bit correspondence between a random number value An-pv and a random umber value An-qv when a parameter (v) satisfying the condition of 'qxv>alpha' is used or according to the logic arithmetic of bit correspondence between the random number value An-pv and a random number value An-pv+qv when a parameter (v) satisfying the condition of ' (p-q) xv>alpha' is used.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、並列計算機システムに
おける乱数列生成処理方式に関し、特に、並列計算機シ
ステムを構成する各プロセッサエレメントが、異なる並
びを持つ長い周期の乱数列を高速に生成できるようにす
る並列計算機システムにおける乱数列生成処理方式に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a random number sequence generation processing method in a parallel computer system, and more particularly, to enable each processor element constituting the parallel computer system to generate a long period random number sequence having different sequences at high speed. The present invention relates to a random number sequence generation processing method in a parallel computer system.

【0002】データ処理装置では、モンテカルロ法によ
るコンピュータ・シミュレーションを中心にして、長い
周期の乱数列を高速に生成していくことが要求されてい
る。一方、近年、データ処理能力の拡大を図るために、
並列計算機システムにより構成されるデータ処理システ
ムが普及しつつある。これから、並列計算機システムの
各プロセッサエレメントが、異なる並びを持つ長い周期
の乱数列を高速に生成していく必要性がでてきている。
A data processing device is required to generate a random number sequence having a long period at high speed, centering on a computer simulation by a Monte Carlo method. On the other hand, in recent years, in order to expand the data processing capacity,
Data processing systems composed of parallel computer systems are becoming popular. From this, it has become necessary for each processor element of the parallel computer system to generate a random number sequence having a different sequence and a long period at high speed.

【0003】[0003]

【従来の技術】これまでは、単一のベクトルプロセッサ
上で高速に乱数列を生成していく改良はなされてきたも
のの、並列計算機システムにおける乱数列の発生方法に
ついては殆ど提案されていないというのが実情である。
2. Description of the Related Art Up to now, although improvements have been made in which a random number sequence is generated at high speed on a single vector processor, almost no proposal has been made regarding a method for generating a random number sequence in a parallel computer system. Is the reality.

【0004】このようなことを背景にして、最近、P.Fr
edrickson et al.は、並列計算機システムにおける乱数
列の発生方法について1つの考え方を提案(Fredrickso
n,P., et al., "Pseudo-random trees in Monte Carl
o," Parallel Computing,Vol.1,No.2,1984,175-180.)し
た。この提案は、Pseudo-random trees という概念を導
入して、親プロセッサが、このPseudo-random trees を
用いて混合乗算法に従いつつ乱数生成の種を生成して子
プロセッサに分配し、各子プロセッサが、この分配され
た種を元にして混合乗算法に従って乱数列を生成してい
くことで、乱数列の生成を実現するという方法である。
Against this background, recently P.Fr.
edrickson et al. proposed one way of thinking about the method of generating a random number sequence in a parallel computer system (Fredrickso
n, P., et al., "Pseudo-random trees in Monte Carl
o, "Parallel Computing, Vol.1, No.2, 1984, 175-180.). This proposal introduces the concept of Pseudo-random trees, and the parent processor uses these Pseudo-random trees. The seeds of random number generation are generated according to the mixed multiplication method and distributed to the child processors, and each child processor generates a random number sequence according to the mixed multiplication method based on the distributed seeds. It is a method of realizing generation.

【0005】すなわち、XをPseudo-random trees の任
意の要素とすると、それから2つの要素L(X),R
(X)を L(X)=(aL X+cL ) mod m R(X)=(aR X+cR ) mod m で定義する。ここで、「x mod y」は、整数xを整数
yで割ったときの剰余を表している。この定義に従い、
初期値X0 が与えられると、図13(a)のようにtree
が生成できる。このtreeの任意のノードから出発して右
側のsuccessor ばかりを取り出したものを、そのtreeの
なかの右系列と呼ぶ。図13(b)に示すように、特定
のノードの左分岐を取りあげるのは、その左分岐を出発
点として新しい右系列を作るときである。
That is, if X is an arbitrary element of Pseudo-random trees, then two elements L (X), R
(X) is defined by L (X) = (a L X + c L ) mod m R (X) = (a R X + c R ) mod m. Here, “x mod y” represents the remainder when the integer x is divided by the integer y. According to this definition
Given an initial value X 0 , tree as shown in FIG.
Can be generated. The successor on the right side taken from any node in this tree is called the right series in that tree. As shown in FIG. 13B, the left branch of a particular node is taken up when a new right series is created with the left branch as a starting point.

【0006】P.Fredrickson et al.は、このPseudo-ran
dom trees に従い、親プロセッサが左分岐となる要素を
生成して、この生成した要素を子プロセッサに分配し、
子プロセッサがこの分配した要素から右系列を生成して
いくという方法により、各プロセッサで乱数列を発生し
ていく方法を提案した。
[0006] P. Fredrickson et al.
According to the dom trees, the parent processor creates an element that becomes a left branch, and distributes this created element to the child processors,
We have proposed a method in which each processor generates a random number sequence by generating a right sequence from the distributed elements.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、P.Fred
rickson et al.の提案する乱数列の生成方法は、確か
に、並列計算機システムの各プロセッサにおいて乱数列
を生成できるようになるものの、混合乗算法に従ってい
るために、周期の短い乱数列しか生成できないという問
題点がある。例えば、32ビットの計算機では、高々
(232−1)の周期の乱数列しか得られないのである。
[Problems to be Solved by the Invention] However, P. Fred
Although the random number sequence generation method proposed by rickson et al. can certainly generate a random number sequence in each processor of a parallel computer system, it can generate only a random number sequence with a short period because it follows the mixed multiplication method. There is a problem. For example, a 32-bit computer can only obtain a random number sequence with a period of (2 32 -1) at most.

【0008】また、各プロセッサで生成される乱数列が
衝突しないようにすることは乱数列生成にとって極めて
重要なことである。しかしながら、P.Fredrickson et a
l.の提案する乱数列の生成方法に従うと、この衝突を防
ぐために、Pseudo-random trees の生成に用いる係数値
に複雑な制限が加わることから、その係数値の決定に困
難を伴うという問題点があった。
It is extremely important for random number sequence generation to prevent the random number sequences generated by the respective processors from colliding. However, P. Fredrickson et a
According to the method of generating random number sequence proposed by l., in order to prevent this collision, there is a complicated limitation on the coefficient value used for generating pseudo-random trees, which makes it difficult to determine the coefficient value. was there.

【0009】本発明はかかる事情に鑑みてなされたもの
であって、並列計算機システムを構成する各プロセッサ
エレメントが、異なる並びを持つ長い周期の乱数列を高
速に生成できるようにする新たな並列計算機システムに
おける乱数列生成処理方式の提供を目的とする。
The present invention has been made in view of the above circumstances, and is a new parallel computer which enables each processor element constituting the parallel computer system to generate a random number sequence having a long sequence and a different sequence at a high speed. The purpose is to provide a random number sequence generation processing method in the system.

【0010】[0010]

【課題を解決するための手段】図1ないし図3に本発明
の原理構成を図示する。図1に原理構成を示す本発明
は、分散メモリ型並列計算機システムに適用した場合の
原理構成である。
1 to 3 show the principle configuration of the present invention. The present invention whose principle configuration is shown in FIG. 1 is a principle configuration when applied to a distributed memory type parallel computer system.

【0011】図中、1は親プロセッサエレメント、2-i
(1≦i≦k)は子プロセッサエレメント、4は通信網
である。ここで、いずれかの子プロセッサエレメント2
-iが、親プロセッサエレメント1として機能する構成を
採ることも可能である。
In the figure, 1 is a parent processor element, 2-i
(1 ≦ i ≦ k) is a child processor element, and 4 is a communication network. Here, one of the child processor elements 2
It is also possible to adopt a configuration in which -i functions as the parent processor element 1.

【0012】この親プロセッサエレメント1は、乱数初
期値生成手段10と、乱数初期値分配手段11とを備え
る。この乱数初期値生成手段10は、p×v×k個の乱
数の初期値を生成する。この乱数初期値の生成方法は、
混合乗算法によることも可能であるし、これから説明す
るM系列の生成方法によることも可能であるし、この2
つの方法を合わせて用いることも可能である。生成され
る乱数初期値は、すべて0でなければ基本的には何でも
よい。乱数初期値分配手段11は、乱数初期値生成手段
10の生成する乱数初期値を、通信網4を介して子プロ
セッサエレメント2-iに対して重複しないようにp×v
個ずつ分配する。
The parent processor element 1 comprises a random number initial value generating means 10 and a random number initial value distributing means 11. The random number initial value generating means 10 generates initial values of p × v × k random numbers. This random number initial value generation method is
It is possible to use the mixed multiplication method or the M sequence generation method described below.
It is also possible to use the two methods in combination. The generated random number initial value may be basically any value as long as it is not all zero. The random number initial value distribution unit 11 is p × v so that the random number initial value generated by the random number initial value generation unit 10 does not overlap with the child processor element 2-i via the communication network 4.
Distribute each one.

【0013】ここで、pはM系列(Tausworthe数列)の
乱数列の生成を規定する原始既約多項式「Xp +Xq
1」のパラメータ、vは2の巾乗の数値として定義され
て、子プロセッサエレメント2-iのベクトル演算機構の
ベクトル長をα、qを上記の原始既約多項式のパラメー
タで表すならば、好ましくは、「q×v>α」か「(p
−q)×v>α」の条件を充足する数値、kは乱数を生
成する子プロセッサエレメント2-iの個数である。子プ
ロセッサエレメント2-iがベクトル演算機構を持たない
場合には、vの値は1に設定されることになる。また、
vは、乱数初期値の生成効率を高めるために、上述の条
件の充足の内の最も小さな値であることが好ましい。
Here, p is a primitive irreducible polynomial "X p + X q +" that defines the generation of a random number sequence of an M sequence (Tausworthe number sequence).
1 ", v is defined as a power of 2, and the vector length of the vector operation mechanism of the child processor element 2-i is represented by α and q by the above primitive irreducible polynomial parameters. Is “q × v> α” or “(p
−q) × v> α ”, and k is the number of child processor elements 2-i that generate random numbers. If the child processor element 2-i does not have a vector operation mechanism, the value of v will be set to 1. Also,
It is preferable that v is the smallest value satisfying the above conditions in order to increase the generation efficiency of the random number initial value.

【0014】一方、子プロセッサエレメント2-iは、乱
数初期値受信手段20-iと、乱数生成手段21-iとを備
える。この乱数初期値受信手段20-iは、親プロセッサ
エレメント1より分配されてくる自エレメント宛の乱数
初期値を受信する。乱数生成手段21-iは、乱数初期値
受信手段20-iの受信した乱数初期値を用いて、好まし
くは、「q×v>α」の条件充足のパラメータvが用い
られるときには、乱数値An-pvと乱数値An-qvとのビッ
ト対応の論理演算、「(p−q)×v>α」の条件充足
のパラメータvが用いられるときには、乱数値An-pv
乱数値An-pv+q v とのビット対応の論理演算に従って、
新たな乱数値An (n≧p×v+1)を生成する。
On the other hand, the child processor element 2-i comprises a random number initial value receiving means 20-i and a random number generating means 21-i. The random number initial value receiving means 20-i receives the random number initial value addressed to its own element distributed from the parent processor element 1. The random number generating means 21-i uses the random number initial value received by the random number initial value receiving means 20-i, preferably when the parameter v satisfying the condition of “q × v> α” is used, the random number value A When a parameter v that satisfies the condition of “(p−q) × v> α”, which is a logical operation corresponding to a bit between n-pv and the random number A n-qv , is used, the random number A n-pv and the random number A According to the bitwise logical operation with n-pv + q v ,
A new random number value A n (n ≧ p × v + 1) is generated.

【0015】ここで、好ましくは、「q>(p−q)」
が成立するときに、「q×v>α」の条件充足が要求さ
れ、「q<(p−q)」が成立するときに、「(p−
q)×v>α」の条件充足が要求される。そして、乱数
生成手段21-iは、好ましくは、ビット対応の論理演算
として排他的論理和演算を用いる。
Here, it is preferable that "q>(p-q)".
Is satisfied, the condition satisfaction of “q × v> α” is required, and when “q <(p−q)” is satisfied, “(p−
q) × v> α ”is satisfied. Then, the random number generation means 21-i preferably uses an exclusive OR operation as the bit-based logical operation.

【0016】図2に原理構成を示す本発明は、図1の原
理構成で用いていた通信網4の代わりに、親プロセッサ
エレメント1及び子プロセッサエレメント2-iが共にア
クセスできる共有メモリ5を通信機構として用いてい
る。
In the present invention whose principle configuration is shown in FIG. 2, instead of the communication network 4 used in the principle configuration of FIG. 1, a shared memory 5 that can be accessed by both the parent processor element 1 and the child processor element 2-i is communicated. It is used as a mechanism.

【0017】この原理構成に従う場合には、親プロセッ
サエレメント1は、図1で説明した乱数初期値生成手段
10と、新たな乱数初期値書込手段12とを備え、一
方、子プロセッサエレメント2-iは、図1で説明した乱
数生成手段21-iと、新たな乱数初期値読込手段22-i
とを備える。
In accordance with this principle configuration, the parent processor element 1 comprises the random number initial value generating means 10 and the new random number initial value writing means 12 described in FIG. 1, while the child processor element 2- i is the random number generating means 21-i described in FIG. 1 and the new random number initial value reading means 22-i.
With.

【0018】図1及び図2に原理構成を示す本発明で
は、親プロセッサエレメント1が乱数初期値を生成する
という構成を採るのに対して、図3に原理構成を示す本
発明は、乱数生成を要求される各プロセッサエレメント
自身が乱数初期値を生成していくという構成を採るもの
である。図中、3-i(1≦i≦k)は、乱数生成を要求
されるプロセッサエレメントである。
In the present invention whose principle configuration is shown in FIGS. 1 and 2, the parent processor element 1 generates a random number initial value, whereas the present invention whose principle configuration is shown in FIG. Each processor element required to generate a random number initial value is configured to generate a random number initial value. In the figure, 3-i (1≤i≤k) is a processor element for which random number generation is required.

【0019】この構成を採るときには、各プロセッサエ
レメント3-iは、図1で説明した乱数初期値生成手段1
0と同一の機能を発揮する乱数初期値生成手段30-i
と、新たな乱数初期値抽出手段31-iと、図1で説明し
た乱数生成手段21-iと同一の機能を発揮する乱数生成
手段32-iとを備える。
When adopting this configuration, each processor element 3-i has the random number initial value generating means 1 described in FIG.
Random number initial value generation means 30-i exhibiting the same function as 0
And a new random number initial value extraction means 31-i and a random number generation means 32-i that exhibits the same function as the random number generation means 21-i described in FIG.

【0020】[0020]

【作用】最初に、図1に原理構成を示す本発明の作用に
ついて説明する。図1に原理構成を示す本発明にあっ
て、親プロセッサエレメント1の乱数初期値生成手段1
0は、p×v×k個の乱数の初期値を生成し、乱数初期
値分配手段11は、各子プロセッサエレメント2-iに対
して、この生成された乱数初期値をp×v個ずつ重複し
ないように分配する。すなわち、順番通りとかいったよ
うな所定の規則性に従って、重複しないように分配して
いくのである。そして、各子プロセッサエレメント2-i
の乱数初期値受信手段20-iは、親プロセッサエレメン
ト1より分配されてくる自エレメント宛の乱数初期値を
受信し、乱数生成手段21-iは、この受信した乱数初期
値を用いて乱数列を生成する。
First, the operation of the present invention whose principle configuration is shown in FIG. 1 will be described. In the present invention whose principle configuration is shown in FIG. 1, random number initial value generating means 1 of the parent processor element 1
0 generates p × v × k random number initial values, and the random number initial value distribution unit 11 generates p × v random number initial values for each child processor element 2-i. Distribute so that they do not overlap. That is, according to a predetermined regularity such as the order, the distribution is performed so as not to overlap. Then, each child processor element 2-i
The random number initial value receiving means 20-i receives the random number initial value addressed to the self element distributed from the parent processor element 1, and the random number generating means 21-i uses the received random number initial value to generate a random number sequence. To generate.

【0021】この乱数生成手段21-iの乱数生成処理
は、M系列の乱数列の生成方法に従って実行されること
になる。M系列の乱数列生成方法では、A1 〜Ap のp
個の乱数初期値が与えられるときに、ビット対応の論理
演算として排他的論理和演算を用いるならば、2を法と
する原始既約多項式「Xp +Xq +1」から導出される
下記の漸化式 An =EOR(An-p ,An-q )・・・・・式 に従って、(p+1)項以降の乱数列を生成していく。
そして、この原始既約多項式「Xp +Xq +1」は「X
p +X(p-q) +1」と等価であることが証明されている
ことから、あるいは、この原始既約多項式「Xp +X
(p-q) +1」から導出される下記の漸化式 An =EOR(An-p ,An-p+q )・・・・式 に従って、(p+1)項以降の乱数列を生成していく。
The random number generation processing of the random number generation means 21-i is executed according to the method of generating the M-sequence random number sequence. In the M-sequence random number sequence generation method, p of A 1 to A p is used.
If exclusive OR operations are used as the bit-corresponding logical operations when the random number initial values are given, the following graduation derived from the primitive irreducible polynomial “X p + X q +1” modulo 2 is used. Formula A n = EOR (A np , A nq ) ... The random number sequence after the (p + 1) term is generated according to the formula.
Then, this primitive irreducible polynomial "X p + X q +1" becomes "X
p + X (pq) +1 ”, or because this primitive irreducible polynomial“ X p + X
(pq) +1 ”, the following recurrence formula A n = EOR (A np , A n-p + q ) ... The random number sequence after the (p + 1) term is generated according to the formula.

【0022】ここで、上述の式に従う場合、Ak とA
p+k-q とからAp+k を生成することから、A1 〜Ap
p個の乱数初期値を使って一度に生成できる乱数の個数
は、「p+k−q=p」の成立する「k=q」個とな
る。一方、上述の式に従う場合、Ak とAk+q とから
p+k を生成することから、A1 〜Ap のp個の乱数初
期値を使って一度に生成できる乱数の個数は、「k+q
=p」の成立する「k=(p−q)」個となる。すなわ
ち、乱数生成効率の観点からみて、「q>(p−q)」
が成立するときには、式に従って乱数を生成していく
ことが好ましく、「(p−q)<q」が成立するときに
は、式に従って乱数を生成していくことが好ましいこ
とになる。
Here, if the above equation is followed, A k and A
Since A p + k is generated from p + kq , the number of random numbers that can be generated at one time using p random number initial values of A 1 to A p is “p + k−q = p”. k = q ”. On the other hand, when following the above formula, since A p + k is generated from A k and A k + q , the number of random numbers that can be generated at one time using p random number initial values of A 1 to A p is , "K + q
= P ”holds, there are“ k = (p−q) ”pieces. That is, “q> (p−q)” from the viewpoint of random number generation efficiency.
When is satisfied, it is preferable to generate random numbers according to the formula, and when “(p−q) <q” is satisfied, it is preferable to generate random numbers according to the formula.

【0023】このように、乱数生成手段21-iは、式
の漸化式に従う場合には、一度にq個の乱数しか生成で
きない。また、式の漸化式に従う場合には、一度に
(p−q)個の乱数しか生成できない。これでは、qや
(p−q)の値が、子プロセッサエレメント2-iのベク
トル演算機構のベクトル長αよりも小さいときには、折
角、ベクトル演算機構がα個の乱数を一度に生成できる
能力を有しているにもかかわらず、それを使用していな
いという問題点がある。従って、高速に乱数を生成でき
ないという問題点がある。
As described above, the random number generation means 21-i can generate only q random numbers at a time when the recurrence formula is followed. Further, when the recurrence formula of the formula is followed, only (p−q) random numbers can be generated at one time. With this, when the value of q or (p−q) is smaller than the vector length α of the vector operation mechanism of the child processor element 2-i, the vector operation mechanism has the ability to generate α random numbers at a time. There is a problem in that it does not use it even though it has it. Therefore, there is a problem that random numbers cannot be generated at high speed.

【0024】そこで、乱数生成手段21-iは、2を法と
する原始既約多項式「Xp +Xq +1」が「(Xp +X
q +1)v 」や「(Xp +X(p-q) +1)v 」と等価で
あることが証明されていることに対応して、A1 〜Apv
のp×v個の乱数初期値が与えられるときに、これらの
原始既約多項式から導出される下記の漸化式 An =EOR(An-pv,An-rv)・・・・式 但し、r=qあるいは(p−q) EOR演算は他の論理演算でも可 に従って、(p×v+1)項以降の乱数列を生成してい
くことが可能であるという点に着目して、M系列の乱数
列生成方法に従いつつ高速に乱数を発生していく構成を
採る。
Therefore, the random number generating means 21-i uses the primitive irreducible polynomial "X p + X q +1" modulo 2 as "(X p + X
Corresponding to the fact that it is proved to be equivalent to “ q +1) v ” and “(X p + X (pq) +1) v ”, A 1 to A pv
The following recurrence formula A n = EOR (A n-pv , A n-rv ) derived from these primitive irreducible polynomials when p × v random initial values of However, it should be noted that r = q or (p−q) EOR operation can generate random number sequence after (p × v + 1) terms according to other logical operations. The configuration is such that a random number is generated at high speed while following the sequence random number sequence generation method.

【0025】すなわち、乱数生成手段21-iは、rの値
としてqを使用してこの式の漸化式を用いることで、
上述の式に関係する説明部分から分かるように、A1
〜A pvのp×v個の乱数初期値から一度にq×v個の乱
数を生成でき、以後このq×v個を単位として効率的に
乱数を生成できる。一方、rの値として(p−q)を使
用してこの式の漸化式を用いることで、上述の式に
関係する説明部分から分かるように、A1 〜Apvのp×
v個の乱数初期値から一度に(p−q)×v個の乱数を
生成でき、以後この(p−q)×v個を単位として効率
的に乱数を生成できる。
That is, the random number generation means 21-i uses the value of r.
Using the recurrence of this equation using q as
As can be seen from the description related to the above equation, A1
~ A pvQ × v random numbers at a time from p × v random initial values of
A number can be generated, and thereafter, q × v units can be efficiently used as a unit.
Can generate random numbers. On the other hand, (p-q) is used as the value of r.
Using the recurrence formula of this formula,
As you can see from the related explanation, A1~ ApvP ×
(p−q) × v random numbers at once from v random initial values
Can be generated, and thereafter, the efficiency in units of (p−q) × v
Can randomly generate random numbers.

【0026】これから、乱数生成手段21-iは、好まし
くは、q×vがベクトル長αよりも大きくなるようなv
を選択して、「r=q」とする式の漸化式に従い、ベ
クトル長αを生成単位として、(p×v+1)項以降の
乱数列を生成していくか、(p−q)×vがベクトル長
αよりも大きくなるようなvを選択して、「r=(p−
q)」とする式の漸化式に従い、ベクトル長αを生成
単位として、(p×v+1)項以降の乱数列を生成して
いくことで、M系列の乱数列生成方法に従いつつ高速に
乱数を発生していくよう処理する。
From this, the random number generating means 21-i preferably uses v such that q × v is larger than the vector length α.
Is selected, and a random number sequence of (p × v + 1) terms or later is generated with the vector length α as a generation unit according to the recurrence formula of “r = q”, or (p−q) × By selecting v such that v is larger than the vector length α, “r = (p−
q) ”according to a recurrence formula of a vector length α and a random number sequence of (p × v + 1) and subsequent terms is generated, thereby generating a high-speed random number sequence according to the M-sequence random number sequence generation method. Is processed.

【0027】ここで、rとして、qを選択するか、(p
−q)を選択するかは、基本的には、いずれでもよいの
であるが、親プロセッサエレメント1の乱数初期値生成
手段10がp×v×k個の乱数の初期値を生成する必要
があることから、vの値としては小さい方が適切であ
る。これから、「q>(p−q)」が成立するときに
は、rとしてqを選択することが好ましく、「(p−
q)>q」が成立するときには、rとして(p−q)を
選択することが好ましい。
Here, q is selected as r or (p
Basically, it is possible to select -q), but it is necessary that the random number initial value generating means 10 of the parent processor element 1 generates the initial values of p × v × k random numbers. Therefore, a smaller value of v is more suitable. From this, when "q>(p-q)" holds, it is preferable to select q as r, and "(p-
When “q)> q” holds, it is preferable to select (p−q) as r.

【0028】また、「r×v>α」の条件を充足する場
合、vとして、いかなる2の巾乗の数値を用いてもよい
のであるが、親プロセッサエレメント1の乱数初期値生
成手段10がp×v×k個の乱数の初期値を生成する必
要があることから、vの値としては、同様に、この条件
を充足する数値の内の最も小さな値を示すものを用いる
ことが適切である。
When the condition of "r × v>α" is satisfied, any power of 2 may be used as v, but the random number initial value generating means 10 of the parent processor element 1 uses Since it is necessary to generate initial values of p × v × k random numbers, it is appropriate to use the value of v that shows the smallest value among the numerical values that satisfy this condition. is there.

【0029】そして、更に言うならば、「r×v>α」
の条件を充足しなくても、vが1より大きな値を示すと
きには、vが1を示すときよりも、子プロセッサエレメ
ント2-iのベクトル演算機構を有効利用していることに
なるので、高速な乱数発生を実現できる。なお、当初か
ら「r>α」の条件が充足されるときには、vの値とし
ては1が設定されることになる。
Further, to put it further, "r × v>α"
Even if the condition of is not satisfied, when v shows a value larger than 1, it means that the vector operation mechanism of the child processor element 2-i is effectively used as compared with the case where v shows 1. Random number generation. When the condition of “r> α” is satisfied from the beginning, 1 is set as the value of v.

【0030】このようにして、本発明では、並列計算機
システムの各子プロセッサエレメント2-iは、M系列の
乱数列生成方法に従って乱数列を生成していく構成を採
るものである。
In this way, according to the present invention, each child processor element 2-i of the parallel computer system has a configuration for generating a random number sequence in accordance with the M-sequence random number sequence generation method.

【0031】次に、図2に原理構成を示す本発明の作用
について説明する。図2に原理構成を示す本発明にあっ
て、親プロセッサエレメント1の乱数初期値生成手段1
0は、p×v×k個の乱数の初期値を生成し、乱数初期
値書込手段12は、この生成されたp×v×k個の乱数
初期値を共有メモリ5に書き込む。そして、子プロセッ
サエレメント2-iの乱数初期値読込手段22-iは、共有
メモリ5に書き込まれたp×v×k個の乱数初期値をp
×v個ずつ他子プロセッサエレメント2-iと重複しない
ように読み込み、乱数生成手段21-iは、この読み込ま
れたp×v個の乱数初期値を用いてM系列の乱数列生成
方法に従って乱数列を生成する。
Next, the operation of the present invention whose principle configuration is shown in FIG. 2 will be described. In the present invention whose principle configuration is shown in FIG. 2, the random number initial value generating means 1 of the parent processor element 1
0 generates p × v × k random number initial values, and the random number initial value writing means 12 writes the generated p × v × k random number initial values in the shared memory 5. Then, the random number initial value reading means 22-i of the child processor element 2-i sets p × v × k random number initial values written in the shared memory 5 to p.
The random number generation means 21-i reads x × each so that it does not overlap with the other child processor element 2-i, and the random number generation means 21-i uses the read p × v random number initial values according to the M-sequence random number sequence generation method. Generate a column.

【0032】このようにして、並列計算機システムの各
子プロセッサエレメント2-iは、M系列の乱数列生成方
法に従って乱数列を生成していくのである。次に図3に
原理構成を示す本発明の作用について説明する。
In this way, each child processor element 2-i of the parallel computer system generates a random number sequence in accordance with the M-sequence random number sequence generation method. Next, the operation of the present invention whose principle configuration is shown in FIG. 3 will be described.

【0033】図3に原理構成を示す本発明にあって、各
プロセッサエレメント3-iの乱数初期値生成手段30-i
は、図1の乱数初期値生成手段10と同様にp×v×k
個の乱数の初期値を生成し、乱数初期値抽出手段31-i
は、生成されたp×v×k個の乱数初期値の中から、自
エレメントに割り付けられるp×v個の乱数初期値を他
プロセッサエレメント3-iと重複しないように抽出し、
乱数生成手段32-iは、この抽出された乱数初期値を用
いてM系列の乱数列生成方法に従って乱数列を生成す
る。
In the present invention whose principle configuration is shown in FIG. 3, random number initial value generating means 30-i of each processor element 3-i is provided.
Is p × v × k similarly to the random number initial value generating means 10 of FIG.
Initial value of each random number is generated, and the random number initial value extraction means 31-i
Extracts p × v random number initial values assigned to its own element from the generated p × v × k random number initial values so as not to overlap with other processor elements 3-i,
The random number generation means 32-i uses the extracted random number initial value to generate a random number sequence according to the M-sequence random number sequence generation method.

【0034】このようにして、並列計算機システムの各
プロセッサエレメント3-iは、M系列の乱数列生成方法
に従って乱数列を生成していくのである。この構成に従
うと、プロセッサエレメント3-i間で乱数生成の処理の
ための通信処理を実行しなくても済むことになる。した
がって本発明のプロセッサは,共有メモリでも,通信網
でもどちらでも良い。
In this way, each processor element 3-i of the parallel computer system generates a random number sequence in accordance with the M-sequence random number sequence generation method. According to this configuration, it is not necessary to execute the communication process for the random number generation process between the processor elements 3-i. Therefore, the processor of the present invention may be either a shared memory or a communication network.

【0035】[0035]

【実施例】以下、実施例に従って本発明を詳細に説明す
る。次に、図1に示した実施例のより具体的な実施例に
従って、本発明を詳細に説明する。
EXAMPLES The present invention will be described in detail below with reference to examples. Next, the present invention will be described in detail according to a more specific embodiment of the embodiment shown in FIG.

【0036】本発明は、図1ないし図3で説明したよう
に、あらゆるタイプの並列計算機システムに対して適用
可能である。例えば、図4(a)に示すような通信網を
介して接続される構成を採る分散メモリ型の並列計算機
システムに対しても適用可能であり、また、図4(b)
に示すようなメモリを共有する構成を採る共有メモリ型
の並列計算機システムに対しても可能であり、また、図
4(c)に示すような共有メモリを保有しつつ通信網を
介して接続される構成を採るハイブリッド型の並列計算
機システムに対しても適用可能であるのである。ここ
で、図中のPEはプロセッサエレメントを表している。
The present invention can be applied to all types of parallel computer systems as described with reference to FIGS. For example, the present invention is also applicable to a distributed memory type parallel computer system having a configuration connected through a communication network as shown in FIG. 4 (a), and FIG. 4 (b).
It is also possible for a shared memory type parallel computer system to adopt a configuration of sharing a memory as shown in FIG. 4 and is connected through a communication network while having a shared memory as shown in FIG. It can also be applied to a hybrid parallel computer system that adopts the above configuration. Here, PE in the figure represents a processor element.

【0037】図5に、図1で説明した親プロセッサエレ
メント1及び子プロセッサエレメント2-iの実行する処
理の全体の流れを図示する。ここで、図中の左側部分が
親プロセッサエレメント1の実行する処理であり、右側
部分が子プロセッサエレメント2-iの実行する処理であ
る。
FIG. 5 shows an overall flow of processing executed by the parent processor element 1 and the child processor element 2-i described in FIG. Here, the left part in the figure is the process executed by the parent processor element 1, and the right part is the process executed by the child processor element 2-i.

【0038】この図に示すように、親プロセッサエレメ
ント1は、先ず最初に、ステップ1で、子プロセッサエ
レメント2-iで発生する乱数列の種となる乱数初期値を
発生するための前処理を実行し、次に、ステップ2で、
この乱数初期値を発生する。そして、続くステップ3
で、この発生した乱数初期値を通信網等を介して子プロ
セッサエレメント2-iに転送し、最後に、ステップ4
で、後処理を実行して処理を終了する。
As shown in this figure, the parent processor element 1 first performs in step 1 a preprocessing for generating a random number initial value which is a seed of a random number sequence generated by the child processor element 2-i. Run, then in step 2,
This random number initial value is generated. And the following step 3
Then, the generated random number initial value is transferred to the child processor element 2-i via a communication network or the like, and finally, in step 4
Then, the post-processing is executed and the processing ends.

【0039】一方、子プロセッサエレメント2-iは、先
ず最初に、ステップ5で、オペレーティングシステムか
ら、自エレメントのプロセッサ番号情報と、子プロセッ
サエレメント2-iの総台数情報とを入手する。次に、ス
テップ6で、乱数を使用しない処理部分の処理を実行し
てから、ステップ7で、親プロセッサエレメント1から
転送されてくる乱数初期値の中から自エレメント宛に分
配されてくる乱数初期値を受信する。
On the other hand, the child processor element 2-i first obtains the processor number information of its own element and the total number information of the child processor elements 2-i from the operating system in step 5. Next, in step 6, the process of the processing part that does not use random numbers is executed, and then in step 7, the random number initial value distributed to the own element from the random number initial value transferred from the parent processor element 1 is executed. Receive a value.

【0040】そして、続くステップ8で、この受信した
乱数初期値を用いて自エレメントで使用する乱数列を生
成し、ステップ9で、生成した乱数列を使用する処理部
分の処理を実行してから、ステップ10で、乱数を使用
する要求があるか否かを判断する。このステップ10の
判断で、乱数の使用要求があるときにはステップ8に戻
り、乱数の使用要求がないときには、ステップ11に進
んで、乱数を使用しない処理部分の処理を実行してから
処理を終了する。
Then, in the following step 8, a random number sequence to be used in its own element is generated using this received random number initial value, and in step 9, the processing of the processing part using the generated random number sequence is executed. In step 10, it is determined whether or not there is a request to use a random number. If it is determined in step 10 that there is a request for using a random number, the process returns to step 8, and if there is no request for using a random number, the process proceeds to step 11 to execute the process of the process part that does not use the random number, and then the process ends. .

【0041】図6に、親プロセッサエレメント1の実行
する乱数初期値の生成処理の詳細な処理フローを図示す
る。親プロセッサエレメント1は、乱数初期値を生成す
るときには、図6の処理フローに示すように、先ず最初
に、ステップ20で、変数lp に“p×v×k”を設定
するとともに、qと(p−q)の内の大きい方を求めて
それを新たなq(これまではrと記述してきたもの)と
して設定する。更に、この新たなqに従って変数lq
“q×v×k”を設定するとともに、変数A1 に“49
99”を設定する。ここで、上述したように、pとqは
M系列の乱数値の生成を規定する原始既約多項式「Xp
+Xq +1」のパラメータ、vは2の巾乗の数値として
定義されて、子プロセッサエレメント2-iのベクトル演
算機構のベクトル長をαで表すならば、「q×v>α」
の条件を充足する数値、kは乱数を生成する子プロセッ
サエレメント2-iの個数である。
FIG. 6 shows a detailed processing flow of the random number initial value generation processing executed by the parent processor element 1. When generating the random number initial value, the parent processor element 1 first sets “p × v × k” in the variable l p in step 20 as shown in the processing flow of FIG. The larger one of (p−q) is obtained and set as a new q (what has been described as r so far). Furthermore, according to this new q , “q × v × k” is set to the variable l q , and “49” is set to the variable A 1.
99 ". Here, as described above, p and q are primitive irreducible polynomials" X p "that define the generation of M-sequence random number values.
+ X q +1 ”, v is defined as a power of 2, and if the vector length of the vector operation mechanism of the child processor element 2-i is represented by α, then“ q × v> α ”
Is a numerical value that satisfies the condition of, and k is the number of child processor elements 2-i that generate random numbers.

【0042】次に、ステップ21で、 Ai =Ai-1 ×137371 に従って、Ai (i=2〜2×lp )の値を算出する。
この算出処理と“4999”に設定されているA1 とか
ら、2×lp 個のAi (i=1〜2×lp )の値が決定
されることになる。
Next, at step 21, the value of A i (i = 2 to 2 × 1 p ) is calculated according to A i = A i-1 × 137371.
From this calculation process and A 1 set to “4999”, 2 × l p values of A i (i = 1 to 2 × l p ) are determined.

【0043】続いて、ステップ22で、i=1〜lp
範囲にあるAi を1つ選択するとともに、これに対応付
けられるAi+lpを選択する。そして、この選択したAi
の上位16ビットと、この選択したAi+lpの下位16ビ
ットとを結合することで、選択したAi を新たなものに
置き換える処理を実行する。すなわち、Ai とAi+lp
をミックスして、新たにlp 個のAi (i=1〜lp
を生成するのである。ここまでの乱数生成方法は混合乗
算法に従っている。
Then, in step 22, one A i in the range of i = 1 to l p is selected and A i + lp associated with this is selected. And this selected A i
The process of replacing the selected A i with a new one is performed by combining the upper 16 bits of A i + lp with the lower 16 bits of the selected A i + lp . In other words, to mix the A i and A i + lp, newly l p pieces of A i (i = 1~l p)
Is generated. The random number generation method so far follows the mixed multiplication method.

【0044】続いて、ステップ23で、M系列の乱数生
成方法に従って、 Ai =EOR(Ai-lp,Ai-lq) 但し、EORはビット対応の排他的論理和演算 に従って、ステップ22で生成されたAi (i=1〜l
p )を用いて、A1 とA lp+1-lq とのビット対応の排他
的論理和演算に従ってAlp+1を算出し、A2 とA
lp+2-lq とのビット対応の排他的論理和演算に従ってA
lp+2を算出するというように、Ak とAlp+k-lq とのビ
ット対応の排他的論理和演算に従ってAlp+kを算出して
いくことを繰り返すことで、新たに定義されるAi (i
=lp +1〜lp+2×lq )の値を算出する。
Then, in step 23, a random number of M series is generated.
According to the methodi= EOR (Ai-lp, Ai-lq) However, EOR is the A generated in step 22 according to the bitwise exclusive OR operation.i(I = 1 to l
p), A1And A lp + 1-lqBitwise exclusion with
A according to logical OR operationlp + 1And calculate A2And A
lp + 2-lqA according to the exclusive OR operation corresponding to
lp + 2To calculate AkAnd Alp + k-lqWith
According to the exclusive OR operation corresponding tolp + kCalculate
A is newly defined by repeating the processi(I
= Lp+1 to 1p+ 2 × lq) Value is calculated.

【0045】この繰り返しの算出処理は、ステップ22
で生成されたAi (i=1〜lp )を用いることで算出
する第1段階としては、ステップ22で生成されたAi
の最後の数がAlpであることから、 lp +k−lq =lp の成立する「k=lq 」まで算出可能である。すなわ
ち、第1段階としては、ステップ22で生成されたAi
(i=1〜lp )を用いて、新たにAi (i=lp+1
〜lp +lq )を生成する。
This iterative calculation process is performed in step 22.
As the first stage of calculation by using A i (i = 1 to l p ) generated in step 22, A i generated in step 22
Last number because it is A lp of can be calculated from "k = l q" which satisfies the l p + k-l q = l p. That is, in the first stage, A i generated in step 22
(I = 1 to l p ) is used to newly create A i (i = 1 p +1
~ L p + l q ).

【0046】次に、この新たに生成されたAi (i=l
p +1〜lp +lq )も含めることで算出する第2段階
としては、この第2段階で生成されたAi の最後の数が
lp +lq であることから、 lp +k−lq =lp +lq の成立する「k=2lq 」まで算出可能である。すなわ
ち、第2段階としては、第1段階で生成されたAi (i
=lp +1〜lp +lq )も含めて、第1段階で生成し
たものに続く、新たなAi (i=lp +lq +1〜lp
+2×lq )を生成する。
Next, this newly generated A i (i = 1
p +1 to l p + l q ) is also included in the second stage, and since the last number of A i generated in this second stage is A lp + lq , l p + k−l q It is possible to calculate up to “k = 2l q ” at which = l p + l q holds. That is, as the second stage, A i (i
= L p + 1~l p + l q) be included, followed by those produced in the first stage, the new A i (i = l p + l q + 1~l p
+ 2 × l q ) is generated.

【0047】このようにして、このステップ23では、
ステップ22で生成されたAi (i=1〜lp )から、
新たに定義されるAi (i=lp +1〜lp +2×
q )の値を算出することで、更にミックスされたAi
が決定されることになる。
Thus, in this step 23,
From A i (i = 1 to l p ) generated in step 22,
Newly defined as A i (i = l p + 1~l p + 2 ×
By calculating the value of l q ), the further mixed A i
Will be decided.

【0048】後述するように、実際に乱数初期値として
使用されるものは、この決定されたAi (i=lp +1
〜lp +2×lq )の内の後ろからlp 個のAi (i=
2×lq +1〜lp +2×lq )である。
As will be described later, what is actually used as the random number initial value is the determined A i (i = l p +1).
~ L p + 2 × l q ) of l p A i (i =
2 × l q +1 to l p + 2 × l q ).

【0049】このようにして、親プロセッサエレメント
1は、図6の処理フローを実行することで乱数初期値を
生成していく。この生成される乱数初期値は、k個の子
プロセッサエレメント2-iに対して、p×v個ずつ一定
の規則に従って重複しないように分配されることにな
る。この分配方法は様々な方法に従うことが可能であっ
て、例えば、生成したlp (=p×v×k)個の乱数初
期値の先頭から乱数初期値をp×v個ずつ取り出してき
て、各子プロセッサエレメント2-iに順番に分配してい
く方法とか、図7に示すように、生成したlp 個の乱数
初期値の先頭から乱数初期値を1ずつ取り出してきて、
各子プロセッサエレメント2-iに順番に振り分けていく
方法といったように、様々な分配方法に従うことが可能
である。
In this way, the parent processor element 1 generates a random number initial value by executing the processing flow of FIG. The random number initial values thus generated are distributed to the k child processor elements 2-i by p × v so as not to overlap each other according to a certain rule. This distribution method can follow various methods. For example, p × v random number initial values are extracted from the beginning of the generated l p (= p × v × k) random number initial values, As a method of sequentially distributing to each child processor element 2-i, or as shown in FIG. 7, the random number initial values are taken out one by one from the head of the generated l p random number initial values,
It is possible to follow various distribution methods such as a method of sequentially distributing to each child processor element 2-i.

【0050】このようにして、親プロセッサエレメント
1は、子プロセッサエレメント2-iに対して、重複する
ことのないp×v個の乱数初期値の組み合わせを分配し
ていく。
In this way, the parent processor element 1 distributes to the child processor element 2-i a combination of p × v random number initial values that does not overlap.

【0051】各子プロセッサエレメント2-iは、図8に
示す処理フローに従って、この親プロセッサエレメント
1から通知される自エレメント宛のp×v個の乱数初期
値を用いて、データ処理に必要となる乱数列を生成して
いくことになる。
Each child processor element 2-i uses the p * v random number initial value addressed to this element notified from the parent processor element 1 according to the processing flow shown in FIG. Will generate a random number sequence.

【0052】すなわち、子プロセッサエレメント2-i
は、先ず最初に、ステップ30で、p,q,v,maの
値をセットする。ここで、図6の処理フローで説明した
ように、pは親プロセッサエレメント1が想定した原始
既約多項式「Xp +Xq +1」のパラメータ、qはこの
原始既約多項式のqと(p−q)の内の大きい方のパラ
メータ、vは2の巾乗の数値として定義されて、子プロ
セッサエレメント2-iのベクトル演算機構のベクトル長
をαで表すならば、「q×v>α」の条件を充足する数
値、kは乱数を生成する子プロセッサエレメント2-iの
個数である。また、maは生成する乱数量を規定する自
然数である。
That is, the child processor element 2-i
First, in step 30, the values of p, q, v, and ma are set. Here, as described in the processing flow of FIG. 6, p is a parameter of the primitive irreducible polynomial “X p + X q +1” assumed by the parent processor element 1, and q is q of this primitive irreducible polynomial and (p− The larger parameter of q), v, is defined as a power of 2, and if the vector length of the vector operation mechanism of the child processor element 2-i is represented by α, then “q × v> α”. Is a numerical value that satisfies the condition of, and k is the number of child processor elements 2-i that generate random numbers. Further, ma is a natural number that defines the amount of random numbers to be generated.

【0053】次に、ステップ31で、親プロセッサエレ
メント1から通知されるp×v個の乱数初期値を受信す
る。以下、説明の便宜上、この受信するp×v個の乱数
初期値をBi (i=1〜p×v)と記述することにす
る。
Next, at step 31, p × v random number initial values notified from the parent processor element 1 are received. Hereinafter, for the sake of convenience of explanation, the received p × v random number initial values will be described as B i (i = 1 to p × v).

【0054】続いて、ステップ32で、M系列の乱数列
生成方法を拡張することで導出される上述の式と同一
の漸化式である Bi =EOR(Bi-pv,Bi-qv)・・・・・式 に従って、ステップ31で受信された乱数初期値B
i (i=1〜p×v)を用いて、B1 とBpv+1-qv との
ビット対応の排他的論理和演算に従ってBpv+1を算出
し、B2 とBpV+2-qv とのビット対応の排他的論理和演
算に従ってBpv+2を算出し、この算出処理をBpv+maqv
が求まるまで繰り返していくことで、新たな乱数列Bi
(i=p×v+1〜p×v+ma×q×v)を生成す
る。
Then, in step 32, the recurrence formula is the same as the above formula derived by expanding the method for generating a random number sequence of M sequence. B i = EOR (B i-pv , B i-qv ) ... The random number initial value B received in step 31 according to the equation
i (i = 1 to p × v) is used to calculate B pv + 1 according to the bitwise exclusive OR operation of B 1 and B pv + 1-qv, and B 2 and B pV + 2- B pv + 2 is calculated according to the bitwise exclusive OR operation with qv, and this calculation process is performed by B pv + maqv
By repeating the above until a new random number sequence B i
(I = p × v + 1 to p × v + ma × q × v) is generated.

【0055】ここで、この乱数列Bi (i=p×v+1
〜p×v+ma×q×v)の算出処理は、具体的には、
子プロセッサエレメント2-iのベクトル演算機構に合わ
せて、第1段階で、Bi (i=p×v+1〜p×v+q
×v)を算出し、第2段階で、Bi (i=p×v+1+
q×v〜p×v+2×q×v)を算出し、第3段階で、
i (i=p×v+1+2×q×v〜p×v+3×q×
v)を算出していって、これを第ma段階まで実行して
いくことで行う。
Here, this random number sequence B i (i = p × v + 1
Specifically, the calculation process of (p × v + ma × q × v) is
In accordance with the vector operation mechanism of the child processor element 2-i, at the first stage, B i (i = p × v + 1 to p × v + q
Xv) is calculated, and in the second step, B i (i = p × v + 1 +
q × v to p × v + 2 × q × v), and in the third stage,
B i (i = p × v + 1 + 2 × q × v to p × v + 3 × q ×
This is performed by calculating v) and executing it up to the ma-th stage.

【0056】このように、式の漸化式を用いること
で、子プロセッサエレメント2-iは、自エレメントのベ
クトル演算機構をフルに利用して乱数列を高速に生成で
きるのである。これが、本発明で、M系列の乱数列生成
方法を規定する一般的な式や式の漸化式を用いるの
ではなくて、拡張した式の漸化式を用いて乱数列を生
成する理由である。この点については、式の漸化式導
入理由の説明箇所で詳述した。
As described above, by using the recurrence formula of the formula, the child processor element 2-i can generate a random number sequence at high speed by fully utilizing the vector operation mechanism of its own element. This is the reason why, in the present invention, the random number sequence is generated using the recurrence formula of the expanded formula, not using the general formula or the recurrence formula of the formula that defines the method for generating the M-sequence random number sequence. is there. This point was explained in detail in the explanation of the reason for introducing the recurrence formula.

【0057】更に正確に説明するならば、子プロセッサ
エレメント2-iは、図8の処理フローのステップ32で
は、各段階で、q×v個を単位として乱数列を生成して
いくのではなくて、後述するように、ベクトル演算機構
のベクトル長αを単位として乱数列を生成していくよう
処理することになる。
More precisely, in step 32 of the process flow of FIG. 8, the child processor element 2-i does not generate a random number sequence in q × v units at each stage in step 32. Then, as will be described later, the random number sequence is processed in units of the vector length α of the vector operation mechanism.

【0058】このようにして、本発明では、並列計算機
システムの各子プロセッサエレメント2-iにおいて、ベ
クトル演算機構をフルに利用しつつ、拡張されたM系列
の乱数列生成方法に従って乱数列を生成する構成を採る
ことで、長い周期の衝突することのない乱数列を高速に
生成できるようになるのである。
As described above, in the present invention, in each child processor element 2-i of the parallel computer system, a random number sequence is generated according to the extended M-sequence random number sequence generation method while fully utilizing the vector operation mechanism. By adopting such a configuration, it becomes possible to generate a random number sequence with a long cycle without collision at high speed.

【0059】図9ないし図12に、以上に説明した処理
フローを実現するための詳細なプログラムの一実施例を
図示する。ここで、図9は、親プロセッサエレメント1
の実行する乱数初期値生成処理を実現するためのプログ
ラム例、図10は、親プロセッサエレメント1の実行す
る乱数初期値転送処理を実現するためのプログラム例、
図11は、子プロセッサエレメント2-iの実行する乱数
初期値受信処理を実現するためのプログラム例、図12
は、子プロセッサエレメント2-iの実行する乱数列生成
処理を実現するためのプログラム例である。
9 to 12 show an example of a detailed program for realizing the processing flow described above. Here, FIG. 9 shows the parent processor element 1.
10 is a program example for realizing the random number initial value generation process executed by the above, FIG. 10 is a program example for realizing the random number initial value transfer process executed by the parent processor element 1,
FIG. 11 is a program example for realizing the random number initial value receiving process executed by the child processor element 2-i, FIG.
Is an example program for realizing the random number sequence generation process executed by the child processor element 2-i.

【0060】次に、これらのプログラム内容について説
明する。図6に示した処理フローを実現することになる
図9のプログラムにおいて、部分は、図6の処理フロ
ーのステップ20に対応するプログラム部分であって、
各種のパラメータ情報の設定を指示するプログラム部分
である。このプログラム部分で、kの値が“210”、す
なわち、子プロセッサエレメント2-iの個数が1024
台であることが設定されるとともに、pの値が“28
4”、qの値が“143”であることが設定される。
Next, the contents of these programs will be described. In the program of FIG. 9 that realizes the processing flow shown in FIG. 6, the portion is the program portion corresponding to step 20 of the processing flow of FIG.
This is a program part for instructing the setting of various parameter information. In this program part, the value of k is “2 10 ”, that is, the number of child processor elements 2-i is 1024.
Is set to be a stand, and the value of p is "28
It is set that the values of 4 ”and q are“ 143 ”.

【0061】そして、このqの値に従って、 r=MAX(q,p−q)=q=143 であることから、このqの値が新たなqの値として用い
られることになる。更に、子プロセッサエレメント2-i
の持つベクトル演算機構のベクトル長αが“512”で
あることを想定するならば、新たに定義されるqが、 q×v>512 を充足する必要があることから、vの値として“22
4”が設定されることになる。
Since r = MAX (q, p-q) = q = 143 according to the value of q, this value of q is used as a new value of q. Furthermore, the child processor element 2-i
Assuming that the vector length α of the vector operation mechanism of is 512, the newly defined q needs to satisfy q × v> 512. 2 =
4 "will be set.

【0062】更に、この部分では、lp 及びlq の定
義と、「IRANSU」という配列が、4バイトのデー
タ項目からなって、図6の処理フローのステップ23で
説明したように、最大(lp +2×lq )個のデータ値
を格納するものであることが設定される。そして、A1
の値を規定する「TANE」という変数の値が“499
9”であることが設定されるとともに、Ai の上位16
ビットを抽出するために用いられる“FF00”という
値を持つデータIXと、Ai+lpの下位16ビットを抽出
するために用いられる“00FF”という値を持つデー
タIYとが設定される。
Further, in this part, the definitions of l p and l q and the array “IRANSU” consist of 4-byte data items, and as described in step 23 of the processing flow of FIG. It is set to store l p + 2 × l q ) data values. And A 1
The value of the variable "TANE" that defines the value of
Is set to 9 "and the top 16 of A i
Data IX having a value of "FF00" used to extract bits and data IY having a value of "00FF" used to extract lower 16 bits of A i + lp are set.

【0063】また、図9のプログラムにおいて、部分
は、図6の処理フローのステップ21に対応するプログ
ラム部分であって、 Ai =Ai-1 ×137371 に従って、2×lp 個のAi (i=1〜2×lp )の値
を算出して、配列IRANSUの先頭から順番に格納す
るプログラム部分である。
Further, in the program of FIG. 9, the portion is the program portion corresponding to step 21 of the processing flow of FIG. 6, and 2 × l p A i are obtained according to A i = A i-1 × 137371. calculates the value of the (i = 1~2 × l p) , a program part to be stored in order from the beginning of the array IRANSU.

【0064】また、部分は、図6の処理フローのステ
ップ22に対応するプログラム部分であって、データI
Xと配列IRANSUに格納されるAi (i=1〜
p )とのビット対応の論理積演算でもってAi の上位
16ビットを抽出するとともに、データIYと配列IR
ANSUに格納されるAi+lp(i=1〜lp )とのビッ
ト対応の論理積演算でもってAi+lpの下位16ビットを
抽出し、更に、この抽出したAi の上位16ビットとA
i+lpの下位16ビットとのビット対応の論理和演算に従
って、新たなlp 個のAi (i=1〜lp )の値を算出
して、配列IRANSUの先頭から順番に格納するプロ
グラム部分である。
The portion is the program portion corresponding to step 22 of the processing flow of FIG.
X and A i (i = 1 to 1) stored in the array IRANSU
The upper 16 bits of A i are extracted by a logical AND operation corresponding to 1 p ) and the data IY and array IR.
The lower 16 bits of A i + lp are extracted by a logical AND operation corresponding to A i + lp (i = 1 to l p ) stored in ANSU, and the upper 16 bits of the extracted A i are further extracted. And A
A program for calculating new l p A i (i = 1 to l p ) values according to a logical OR operation corresponding to the lower 16 bits of i + lp , and storing the values in order from the beginning of the array IRANSU It is a part.

【0065】また、部分は、図6の処理フローのステ
ップ23に対応するプログラム部分であって、配列IR
ANSUに格納されるA1 とAlp+1-lq とのビット対応
の排他的論理和演算に従ってAlp+1を算出して、配列I
RANSUの“lp +1”番目に格納し、配列IRAN
SUに格納されるA2 とAlp+2-lq とのビット対応の排
他的論理和演算に従ってAlp+2を算出して、配列IRA
NSUの“lp +2”番目に格納していくという処理を
繰り返していって、最後に、配列IRANSUに格納さ
れるA2lq とAlp+lq とのビット対応の排他的論理和演
算に従ってAlp +2lqを算出して、配列IRANSUの
“lp +2×lq ”番目に格納していくことで、配列I
RANSUの“lp +1”番目から“lp +2×lq
番目に、新たな2×lq 個のAi (i=lp +1〜lp
+2×lq )を格納するプログラム部分である。
The portion is a program portion corresponding to step 23 of the processing flow of FIG.
An array I is calculated by calculating A lp + 1 according to the bitwise exclusive OR operation of A 1 and A lp + 1- lq stored in ANSU.
Stored in the "l p +1" th RANSU, array IRAN
The array IRA is calculated by calculating A lp + 2 according to the bitwise exclusive OR operation of A 2 and A lp + 2-lq stored in SU.
The process of storing "l p +2" th of NSU is repeated, and finally, according to the bitwise exclusive OR operation of A 2lq and A lp + lq stored in the array IRANSU, A lp + 2LQ calculates the, by going to store the "l p + 2 × l q " th sequence IRANSU, SEQ I
"L p +1" to "l p + 2 × l q " of RANSU
Th, the new 2 × l q pieces of A i (i = l p + 1~l p
+ 2 × l q ) is the program part that stores it.

【0066】以上に説明した図9のプログラム内容から
分かるように、親プロセッサエレメント1は、この図9
のプログラムを実行することで、混合乗算法とM系列と
による生成方法に従いつつ乱数初期値を生成することに
なる。この親プロセッサエレメント1により生成された
乱数初期値は、図10及び図11に示すプログラムに従
って、子プロセッサエレメント2-iにp×v個ずつ規則
的に分配される。ここで、この図10及び図11の分配
プログラムは、親プロセッサエレメント1が、全子プロ
セッサエレメント2-iに対して生成した乱数初期値を整
列させて通知する構成を採って、子プロセッサエレメン
ト2-iの側で、自エレメント宛に分配される乱数初期値
を一定の規則に従って選択的に受信していく方法を採っ
ている。
As can be seen from the program contents of FIG. 9 explained above, the parent processor element 1 is
By executing the program (1), the random number initial value is generated while following the generation method based on the mixed multiplication method and the M series. The random number initial value generated by the parent processor element 1 is regularly distributed to the child processor elements 2-i by p × v in accordance with the programs shown in FIGS. Here, the distribution program of FIGS. 10 and 11 has a configuration in which the parent processor element 1 arranges and notifies the generated random number initial values to all the child processor elements 2-i. On the -i side, a method of selectively receiving the random number initial value distributed to its own element according to a certain rule is adopted.

【0067】図10のプログラムは、親プロセッサエレ
メント1により実行されるものであって、生成された配
列IRANSUの中の指定の乱数初期値を、全子プロセ
ッサエレメント2-iに転送していくことを指示するプロ
グラム例である。転送処理を実行するサブルーチンのS
END命令の第1引数は、転送する配列の先頭アドレス
を表示し、第2引数は、この先頭アドレスから転送する
バイト数を表示する。
The program of FIG. 10 is executed by the parent processor element 1, and transfers the designated random number initial value in the generated array IRANSU to all the child processor elements 2-i. It is an example of a program for instructing. S of the subroutine that executes the transfer process
The first argument of the END instruction displays the start address of the array to be transferred, and the second argument displays the number of bytes to transfer from this start address.

【0068】このプログラムでは、配列IRANSUの
“2×lq +1”番目の乱数初期値を先頭として、その
先頭の乱数初期値からlp 個の乱数初期値(1個の乱数
初期値のデータ長は4バイト)を全子プロセッサエレメ
ント2-iに転送していく例を開示してある。すなわち、
親プロセッサエレメント1は、このプログラムに従っ
て、図9のプログラムにより生成された乱数初期値Ai
(i=lp +1〜lp +2×lq )の内の、後ろからl
p 個の乱数初期値をAi を全子プロセッサエレメント2
-iに転送していくのである。
In this program, the "2 × l q +1" th random number initial value of the array IRANSU is set as the head, and l p random number initial values (data length of one random number initial value are 4 bytes) to all the child processor elements 2-i. That is,
According to this program, the parent processor element 1 generates the random number initial value A i generated by the program of FIG.
(I = l p + 1~l p + 2 × l q) of the, l from behind
Initialize p random numbers to A i for all child processor elements 2
-Transfer to i.

【0069】一方、図8に示した処理フローのステップ
31の処理を実現することになる図11のプログラム
は、子プロセッサエレメント2-iにより実行されるもの
であって、親プロセッサエレメント1から転送されてく
る乱数初期値の中から、自エレメント宛に分配される乱
数初期値を選択的に受信していくことを指示するプログ
ラム例である。
On the other hand, the program of FIG. 11 which realizes the processing of step 31 of the processing flow shown in FIG. 8 is executed by the child processor element 2-i and transferred from the parent processor element 1. This is an example of a program for instructing to selectively receive a random number initial value distributed to its own element from among the random number initial values that are received.

【0070】ここで、受信処理を実行する部分のサブ
ルーチンのRECV命令の第1引数は、受信する乱数初
期値の格納先となる配列の先頭アドレスを表示する。第
2引数は、X方向(図7のプロセッサ番号方向)におけ
る受信開始部分までのバイト数を表示する。第3引数
は、X方向における前の受信部分から次の受信部分まで
のバイト数を表示する。第4引数は、X方向における受
信部分単位の持つバイト数を表示する。例えば、4バイ
トが受信部分の一単位であることを表示する。第5引数
は、X方向における受信部分の総バイト数を表示する。
例えば、受信部分の総単位数が一単位であるときには、
4バイトを表示する。
Here, the first argument of the RECV instruction of the subroutine of the part that executes the receiving process displays the starting address of the array where the received random number initial value is stored. The second argument indicates the number of bytes up to the reception start portion in the X direction (processor number direction in FIG. 7). The third argument displays the number of bytes from the previous received portion to the next received portion in the X direction. The fourth argument indicates the number of bytes of the reception partial unit in the X direction. For example, it indicates that 4 bytes are one unit of the reception part. The fifth argument indicates the total number of bytes of the reception part in the X direction.
For example, when the total number of units of the receiving part is one unit,
Display 4 bytes.

【0071】また、第6引数は、Y方向(図7のもう一
方の方向)における受信開始部分のライン数を表示す
る。第7引数は、Y方向における前の受信部分から次の
受信部分までのライン数を表示する。0であるときに
は、連続するラインであることを表示する。第8引数
は、Y方向における受信部分単位の持つライン数を表示
する。1であるときには、受信部分が1つのラインに存
在することを表示する。第9変数は、Y方向における受
信部分の総ライン数を表示する。例えば、p×v個を受
信するときにはp×vを表示する。
The sixth argument displays the number of lines of the reception start portion in the Y direction (the other direction in FIG. 7). The seventh argument displays the number of lines from the previous reception portion to the next reception portion in the Y direction. When it is 0, it indicates that the lines are continuous. The eighth argument displays the number of lines that the receiving partial unit has in the Y direction. When it is 1, it indicates that the received portion is on one line. The ninth variable indicates the total number of lines in the reception part in the Y direction. For example, when receiving p × v, p × v is displayed.

【0072】ここで、この図11のプログラムは、汎用
的な構成を採っているので複雑なものになっているが、
専用的な構成を採る場合には、更に簡単なもので実現で
きることになる。
Here, the program of FIG. 11 is complicated because it has a general-purpose configuration.
If a dedicated configuration is adopted, it can be realized with a simpler one.

【0073】このプログラムでは、部分で、パラメー
タ情報と、受信するp×v個の乱数初期値を格納するこ
とになる配列IRとを定義した後、部分で自プロセッ
サエレメント番号ncidを入手し、部分で総子プロ
セッサエレメント個数kを入手する。そして、部分の
RECV命令で、自プロセッサエレメント番号ncid
の指定する先頭の乱数初期値から、k個飛ばしでもって
乱数初期値を順次p×v個まで受信していく例を開示し
てある。このプログラムにより、各子プロセッサエレメ
ント2-iは、図7に示す態様に従って、親プロセッサエ
レメント1から転送されてくる乱数初期値を受信してい
くことになる。
In this program, after defining the parameter information and the array IR that will store p × v random number initial values to be received in the part, the part obtains its own processor element number ncid, Then, the total number k of child processor elements is obtained. Then, in the RECV instruction of the part, the own processor element number ncid
An example is disclosed in which, from the initial random number initial value specified by, the random number initial values are sequentially received up to p × v by skipping k. By this program, each child processor element 2-i receives the random number initial value transferred from the parent processor element 1 according to the aspect shown in FIG.

【0074】図8に示した処理フローのステップ32の
処理を実現することになる図12のプログラムにおい
て、部分は、各種のパラメータ情報の設定を指示する
プログラム部分である。このプログラム部分では、ma
の値として“3”が設定されるとともに、図9のプログ
ラム例に対応して、pの値が“284”、qの値が“1
43”、vの値が“4”であることを設定される。更
に、受信したp×v個の乱数初期値を格納している配列
IRと、生成する512×ma個の乱数列を格納するこ
とになる配列JRとが定義される。ここで、ベクトル演
算の可能になる最大ベクトル長は、この場合q×v個、
すなわち572個となるが、ベクトル演算機構のベクト
ル長αが512に最適化されていることに対応して、配
列JRの最大格納個数は512×ma個で定義されるこ
とになる。
In the program of FIG. 12 that realizes the process of step 32 of the process flow shown in FIG. 8, the part is a program part for instructing the setting of various parameter information. In this program part, ma
"3" is set as the value of p, and the value of p is "284" and the value of q is "1" corresponding to the program example of FIG.
It is set that the values of 43 "and v are" 4 ". Furthermore, the array IR storing the received p * v random number initial values and the 512 * ma random number sequence to be generated are stored. An array JR is defined as follows, where the maximum vector length that allows vector operation is q × v in this case,
That is, the number is 572, but the maximum storage number of the array JR is defined by 512 × ma, corresponding to the fact that the vector length α of the vector operation mechanism is optimized to 512.

【0075】図8に示した処理フローのステップ32の
処理を実現することになるプログラム部分は、部分で
ある。このプログラム部分により、乱数列が生成される
ことになる。
The part of the program that realizes the process of step 32 of the process flow shown in FIG. 8 is the part. A random number sequence is generated by this program part.

【0076】ここで、この乱数列の算出処理は、「Bi
=EOR(Bi-pv,Bi-qv)」を使って、具体的には、
子プロセッサエレメント2-iのベクトル演算機構に合わ
せて、第1段階で、「i=p×v+1〜p×v+51
2」個を算出し、第2段階で、「i=p×v+1+51
2〜p×v+2×512」を算出し、第3段階で、「i
=p×v+1+2×512〜p×v+3×512」を算
出していって、これを第ma段階まで実行していくとい
うように、ベクトル演算機構のベクトル長α(この場合
は、512)を単位として実行していくことになる。
Here, the calculation process of this random number sequence is "B i
= EOR (B i-pv , B i-qv ) ”, specifically,
In accordance with the vector operation mechanism of the child processor element 2-i, at the first stage, “i = p × v + 1 to p × v + 51
2 ”are calculated, and in the second stage,“ i = p × v + 1 + 51
2−p × v + 2 × 512 ”is calculated, and“ i
= P × v + 1 + 2 × 5122−p × v + 3 × 512 ”, and this is executed up to the ma-th stage, and the vector length α (512 in this case) of the vector operation mechanism is used as a unit. Will be executed as.

【0077】なお、部分のプログラムは、生成された
乱数値を右方向に1ビットシフトしていくことで、符号
を表示することになる先頭ビットの値を常に“0”、す
なわち正を表示するように設定していくために設けられ
るものである。また、“0”から“1”の乱数を使用す
る場合には、生成された乱数列を格納する配列JRの要
素を231で割っていく処理が入ることになる。
Note that the program of the part always shifts the generated random number value to the right by 1 bit so that the value of the leading bit for displaying the code is always "0", that is, positive. It is provided to set like this. Further, when using a random number from "0" to "1", a process of dividing the element of the array JR that stores the generated random number sequence by 2 31 is required.

【0078】このようにして、図9ないし図12に示し
たプログラム例に従って、本発明の乱数列生成処理が実
現できるのである。
In this way, the random number sequence generation processing of the present invention can be realized according to the program examples shown in FIGS.

【0079】[0079]

【発明の効果】以上説明したように、本発明によれば、
並列計算機システムの各プロセッサエレメントが、M系
列の乱数列生成方法に従って乱数列を生成していく構成
を採ることから、長い周期の乱数列を生成できるように
なるとともに、混合乗算法のような困難性を伴うことな
く、衝突することのない乱数列を生成できるようにな
る。 そして、このM系列の乱数列生成方法を適用する
にあたって、ベクトル演算機構を最大に利用する構成を
採ることから、各プロセッサエレメントは、乱数列を高
速に生成できるようになる。しかも、プロセッサエレメ
ント間の通信処理が乱数初期値のデータ転送以外に要求
されることがないし、この乱数初期値のデータ転送も必
要としない構成も採れることから、この高速性を確実な
ものとできるのである。
As described above, according to the present invention,
Since each processor element of the parallel computer system is configured to generate a random number sequence in accordance with the M-sequence random number sequence generation method, it becomes possible to generate a random number sequence with a long period, and it is difficult to perform a mixed multiplication method. It becomes possible to generate a random number sequence that does not collide with the character. Then, in applying this M-sequence random number sequence generation method, since the configuration that makes maximum use of the vector operation mechanism is adopted, each processor element can generate a random number sequence at high speed. Moreover, since the communication process between the processor elements is not required other than the data transfer of the random number initial value, and the configuration that does not require the data transfer of the random number initial value is adopted, the high speed can be ensured. Of.

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

【図1】本発明の原理構成図である。FIG. 1 is a principle configuration diagram of the present invention.

【図2】本発明の原理構成図である。FIG. 2 is a principle configuration diagram of the present invention.

【図3】本発明の原理構成図である。FIG. 3 is a principle configuration diagram of the present invention.

【図4】本発明の適用可能な並列計算機システムの説明
図である。
FIG. 4 is an explanatory diagram of a parallel computer system to which the present invention is applicable.

【図5】本発明の処理の全体を説明する処理フローであ
る。
FIG. 5 is a processing flow for explaining the overall processing of the present invention.

【図6】乱数初期値の生成処理の処理フローの一実施例
である。
FIG. 6 is an example of a processing flow of random number initial value generation processing.

【図7】乱数初期値の分配方法の一実施例である。FIG. 7 is an example of a method of distributing a random number initial value.

【図8】乱数列生成の処理フローの一実施例である。FIG. 8 is an example of a processing flow of random number sequence generation.

【図9】親プロセッサエレメントの実行する乱数初期値
生成のためのコーディング例である。
FIG. 9 is a coding example for generating a random number initial value executed by a parent processor element.

【図10】親プロセッサエレメントの実行する乱数初期
値転送のためのコーディング例である。
FIG. 10 is a coding example for random number initial value transfer executed by a parent processor element.

【図11】子プロセッサエレメントの実行する乱数初期
値受信のためのコーディング例である。
FIG. 11 is a coding example for receiving a random number initial value executed by a child processor element.

【図12】子プロセッサエレメントの実行する乱数列生
成のためのコーディング例である。
FIG. 12 is a coding example for generating a random number sequence executed by a child processor element.

【図13】従来技術の説明図である。FIG. 13 is an explanatory diagram of a conventional technique.

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

1 親プロセッサエレメント 2 子プロセッサエレメント 3 プロセッサエレメント 10 乱数初期値生成手段 11 乱数初期値分配手段 12 乱数初期値書込手段 20 乱数初期値受信手段 21 乱数生成手段 22 乱数初期値読込手段 30 乱数初期値生成手段 31 乱数初期値抽出手段 32 乱数生成手段 DESCRIPTION OF SYMBOLS 1 parent processor element 2 child processor element 3 processor element 10 random number initial value generating means 11 random number initial value distributing means 12 random number initial value writing means 20 random number initial value receiving means 21 random number generating means 22 random number initial value reading means 30 random number initial value Generating means 31 Random number initial value extracting means 32 Random number generating means

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサエレメントから構成さ
れる並列計算機システムにおいて、 いずれかのプロセッサエレメントが、乱数の初期値を生
成し、 乱数生成を要求されるプロセッサエレメントは、生成さ
れた乱数初期値の内の自エレメント宛の乱数初期値を用
いて、M系列の乱数生成方法に従って新たな乱数列を生
成していくよう処理することを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
1. In a parallel computer system composed of a plurality of processor elements, any one of the processor elements generates an initial value of a random number, and a processor element required to generate a random number is an initial value of the generated random number. A random number sequence generation processing method in a parallel computer system, characterized in that a random number sequence is generated according to an M-sequence random number generation method using a random number initial value addressed to its own element in the above.
【請求項2】 複数のプロセッサエレメントから構成さ
れる並列計算機システムにおいて、 乱数生成を要求される各プロセッサエレメントは、同一
のアルゴリズムに従って乱数の初期値を生成するととも
に、その生成した乱数初期値の内から自エレメント分の
乱数初期値を抽出し、 そして、その抽出した乱数初期値を用いて、M系列の乱
数生成方法に従って新たな乱数列を生成していくよう処
理することを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
2. In a parallel computer system composed of a plurality of processor elements, each processor element that is required to generate a random number generates an initial value of a random number according to the same algorithm, and among the generated random number initial values, A random number initial value for its own element is extracted from the element, and the extracted random number initial value is used to generate a new random number sequence according to the M-sequence random number generation method. A random number sequence generation processing method in a computer system.
【請求項3】 複数のプロセッサエレメントから構成さ
れる並列計算機システムにおいて、 いずれかのプロセッサエレメントが、p×v×k個(p
は乱数生成を規定する原始既約多項式のパラメータ、v
は1以上の値を示す所定の数値、kは乱数を生成するプ
ロセッサエレメントの個数)の乱数の初期値を生成し、 乱数生成を要求されるプロセッサエレメントは、qを乱
数生成を規定する原始既約多項式のパラメータ、rをq
と(p−q)の内のいずれか一方と定義するならば、生
成されたp×v×k個の乱数初期値の内の自エレメント
宛のp×v個の乱数初期値を用いて、乱数値An-pvと乱
数値An-rvとのビット対応の論理演算により新たな乱数
値An (n≧p×v+1)を生成していくよう処理する
ことを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
3. A parallel computer system comprising a plurality of processor elements, wherein any one of the processor elements is p × v × k (p
Is a primitive irreducible polynomial parameter that defines random number generation, v
Is a predetermined numerical value indicating a value of 1 or more, k is the initial value of a random number of the number of processor elements generating a random number), and the processor element required to generate the random number is q Approximate polynomial parameter, r to q
And (p−q), one of the generated p × v × k random number initial values is assigned to its own element by p × v random number initial values, A parallel computer characterized by processing to generate a new random number value A n (n ≧ p × v + 1) by a logical operation corresponding to a bit of the random number value A n-pv and the random number value A n-rv. A random number sequence generation processing method in the system.
【請求項4】 複数のプロセッサエレメントから構成さ
れる並列計算機システムにおいて、 各プロセッサエレメントは、同一のアルゴリズムに従っ
て、p×v×k個(pは乱数生成を規定する原始既約多
項式のパラメータ、vは1以上の値を示す所定の数値、
kは乱数を生成するプロセッサエレメントの個数)の乱
数の初期値を生成するとともに、その生成した乱数初期
値の内から自エレメント分のp×v個を抽出し、 そして、qを乱数生成を規定する原始既約多項式のパラ
メータ、rをqと(p−q)の内のいずれか一方と定義
するならば、抽出したp×v個の乱数初期値を用いて、
乱数値An-pvと乱数値An-rvとのビット対応の論理演算
により新たな乱数値An (n≧p×v+1)を生成して
いくよう処理することを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
4. In a parallel computer system composed of a plurality of processor elements, each processor element has p × v × k pieces (p is a parameter of a primitive irreducible polynomial that defines random number generation, v Is a predetermined number indicating a value of 1 or more,
(k is the number of processor elements that generate the random number), generates an initial value of the random number, extracts p × v of the own element from the generated initial value of the random number, and defines q as the random number generation. If r, which is a parameter of the primitive irreducible polynomial to be defined, is defined as one of q and (p−q), using the extracted p × v random number initial values,
A parallel computer characterized by processing to generate a new random number value A n (n ≧ p × v + 1) by a logical operation corresponding to a bit of the random number value A n-pv and the random number value A n-rv. A random number sequence generation processing method in the system.
【請求項5】 請求項3又は4記載の並列計算機システ
ムにおける乱数列生成処理方式において、 rは、qと(p−q)の内の大きい値を示すもので定義
されることを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
5. The random number sequence generation processing method in the parallel computer system according to claim 3 or 4, wherein r is defined as a value showing a large value of q and (p−q), Random Number Sequence Generation Method for Parallel Computer Systems.
【請求項6】 請求項3、4又は5記載の並列計算機シ
ステムにおける乱数列生成処理方式において、 vは、乱数生成を要求されるプロセッサエレメントのベ
クトル演算機構のベクトル長をαで表すならば、r×v
がαより大きな値を示すものの中の最も小さな値を示す
ものとして選択されることを、 特徴とする並列計算機システムにおける乱数列生成処理
方式。
6. A random number sequence generation processing method in a parallel computer system according to claim 3, 4 or 5, wherein v represents a vector length of a vector operation mechanism of a processor element required to generate a random number by α, r × v
A random number sequence generation processing method in a parallel computer system characterized in that is selected as showing the smallest value among those showing a value larger than α.
JP4211131A 1991-08-23 1992-08-07 Random sequence generation processing system for parallel computer system Withdrawn JPH06202856A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4211131A JPH06202856A (en) 1991-08-23 1992-08-07 Random sequence generation processing system for parallel computer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3-211212 1991-08-23
JP21121291 1991-08-23
JP4211131A JPH06202856A (en) 1991-08-23 1992-08-07 Random sequence generation processing system for parallel computer system

Publications (1)

Publication Number Publication Date
JPH06202856A true JPH06202856A (en) 1994-07-22

Family

ID=26518452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4211131A Withdrawn JPH06202856A (en) 1991-08-23 1992-08-07 Random sequence generation processing system for parallel computer system

Country Status (1)

Country Link
JP (1) JPH06202856A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087064A (en) * 2005-09-21 2007-04-05 Canon Inc Random number generator and random number generation method
JP2012014591A (en) * 2010-07-02 2012-01-19 Mizuho Dl Financial Technology Co Ltd Efficient parallel processing method of monte carlo method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087064A (en) * 2005-09-21 2007-04-05 Canon Inc Random number generator and random number generation method
JP4585949B2 (en) * 2005-09-21 2010-11-24 キヤノン株式会社 Random number generation apparatus and random number generation method
JP2012014591A (en) * 2010-07-02 2012-01-19 Mizuho Dl Financial Technology Co Ltd Efficient parallel processing method of monte carlo method

Similar Documents

Publication Publication Date Title
US5327365A (en) Generating system of random-number sequences for a parallel computer system
Raman Priority queues: Small, monotone and trans-dichotomous
CA2633923C (en) Mixed radix number generator with chosen statistical artifacts
CN1677917B (en) Method and system for circulated storage unit for stream cipher
EP2000900A2 (en) Extending a repetition period of a random sequence
CN104380245A (en) Random number generator and stream cipher
EP0066768A1 (en) Apparatus for generation of random numbers
Badal et al. A package of Linux scripts for the parallelization of Monte Carlo simulations
US6366279B1 (en) Triangle mesh compression
Dragon et al. Constructing de Bruijn sequences with co-lexicographic order: The k-ary Grandmama sequence
CN112650471A (en) Processor and method for processing masked data
CN113721988B (en) Chip-based workload proving method and chip for workload proving
JPH06202856A (en) Random sequence generation processing system for parallel computer system
CN116318660B (en) Message expansion and compression method and related device
CN113518991A (en) Secret array access device, secret array access method, and program
Alexeev Minimal DFA for testing divisibility
JP2007287079A (en) Pseudo random number generation device, pseudo random number generation method, pseudo random number generation program, ciphering device and deciphering device
CN109375895B (en) Polynomial multiplication accelerating method and device, and NTRU encryption and decryption accelerating method and device
RU2726266C1 (en) Operating method of shift register with linear feedback
JP2000298577A (en) Random number generation device
CN116301721B (en) Random number generation method and device, electronic equipment and medium
KR100427672B1 (en) Method for embodying a shift register in software
JP5268011B2 (en) Encryption system and decryption system
Korabelshchikova Algorithms for Solving Problems of Information Theory, Leading to the Problem of the Backpack
Addabbo et al. On the efficient digital implementation of nonlinear congruential generators derived from the Rényi chaotic map

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991102