JP3123920B2 - マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 - Google Patents
マルチプロセッサシステムにおける乱数発生装置および乱数発生方法Info
- Publication number
- JP3123920B2 JP3123920B2 JP08083416A JP8341696A JP3123920B2 JP 3123920 B2 JP3123920 B2 JP 3123920B2 JP 08083416 A JP08083416 A JP 08083416A JP 8341696 A JP8341696 A JP 8341696A JP 3123920 B2 JP3123920 B2 JP 3123920B2
- Authority
- JP
- Japan
- Prior art keywords
- generated
- random
- processor
- random numbers
- processors
- 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.)
- Expired - Fee Related
Links
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】本発明は、マルチプロセッサ
システムを構成する各プロセッサに乱数を発生させるマ
ルチプロセッサシステムにおける乱数発生装置および乱
数発生方法に関する。
システムを構成する各プロセッサに乱数を発生させるマ
ルチプロセッサシステムにおける乱数発生装置および乱
数発生方法に関する。
【0001】
【従来の技術】「Lehmer D.H., Proceedings of a Secon
d Symposium on Large-Scale DigitalCalculating Mach
inery, Ann. Comput. Lab. Harvard U. 26 (1951), pp.
141-146」には、乱数発生法の一つである合同法が記載さ
れている。
d Symposium on Large-Scale DigitalCalculating Mach
inery, Ann. Comput. Lab. Harvard U. 26 (1951), pp.
141-146」には、乱数発生法の一つである合同法が記載さ
れている。
【0002】合同法は、合同式を用いた漸化式 Xi+1 = aXi+c (mod m) すなわち、ある数Xiにある定数aを乗算してある数c
を加算したものを、ある数mで除算した余りをXi+1と
するという整数演算を行う漸化式によって、周期的に反
復する乱数の数列{Xi}を求める方法である。
を加算したものを、ある数mで除算した余りをXi+1と
するという整数演算を行う漸化式によって、周期的に反
復する乱数の数列{Xi}を求める方法である。
【0003】この漸化式においてc=0の場合、漸化式 Xi+1 = aXi (mod m) の右辺が乗算だけになるので、特に乗算合同法と呼び、
c≠0の場合には混合合同法と呼ぶ。
c≠0の場合には混合合同法と呼ぶ。
【0004】特開昭60−136876号公報には、合
同法のアルゴリズムに基づいて、並列に乱数を発生させ
る方法が記載されている。
同法のアルゴリズムに基づいて、並列に乱数を発生させ
る方法が記載されている。
【0005】
【発明が解決しようとする課題】ところで汎用的に利用
されるマルチプロセッサシステムにおいて乱数を発生す
る場合には、該乱数を発生するプログラム、発生された
乱数を使用する汎用プログラム、さらにこれらとは全く
関係のない他のプログラム群がマルチプロセッサシステ
ムを構成するプロセッサ群を共有して利用する。このよ
うな場合、乱数を発生するプログラムが利用することが
できるプロセッサの数は動的に変化する。
されるマルチプロセッサシステムにおいて乱数を発生す
る場合には、該乱数を発生するプログラム、発生された
乱数を使用する汎用プログラム、さらにこれらとは全く
関係のない他のプログラム群がマルチプロセッサシステ
ムを構成するプロセッサ群を共有して利用する。このよ
うな場合、乱数を発生するプログラムが利用することが
できるプロセッサの数は動的に変化する。
【0006】特開昭60−136876号公報において
は、乱数発生開始後に乱数を発生させるプロセッサの数
を変更することについては、示唆されておらず、このよ
うな汎用的に利用されるマルチプロセッサシステムにお
いては、効率良く乱数を発生することができないという
問題点がある。
は、乱数発生開始後に乱数を発生させるプロセッサの数
を変更することについては、示唆されておらず、このよ
うな汎用的に利用されるマルチプロセッサシステムにお
いては、効率良く乱数を発生することができないという
問題点がある。
【0007】本発明の目的は、マルチプロセッサシステ
ムにおいて、容易に乱数を発生することができるように
することにある。
ムにおいて、容易に乱数を発生することができるように
することにある。
【0008】本発明の他の目的は、マルチプロセッサシ
ステムにおいて、乱数発生中に乱数を発生させるプロセ
ッサの数を変更することができるようにすることにあ
る。
ステムにおいて、乱数発生中に乱数を発生させるプロセ
ッサの数を変更することができるようにすることにあ
る。
【0009】本発明の他の目的は、マルチプロセッサシ
ステムにおいて実行されるさまざまなプログラム群と共
存して効率良く乱数を発生することができるようにする
ことにある。
ステムにおいて実行されるさまざまなプログラム群と共
存して効率良く乱数を発生することができるようにする
ことにある。
【0010】
【課題を解決するための手段】本発明の第1のマルチプ
ロセッサシステムにおける乱数発生装置は、複数のプロ
セッサのそれぞれにより発生された乱数列を組み合わせ
た乱数列が一つのプロセッサにより発生された乱数列と
同一になるように、Xn=X*(α**n)modMただ
し、α、X、およびMは整数で、0≦X<M、nはプロ
セッサの番号、**はべき算からなる式により算出した初
期値と乱数発生数=(発生総数/プロセッサ数)−1た
だし、乱数発生数はそれぞれのプロセッサに発生させる
乱数の個数、発生総数は全部のプロセッサに発生させる
乱数の総数、プロセッサは乱数を発生させるプロセッサ
数からなる式により算出した乱数発生数とを設定して、
該初期値と該乱数発生数とに基づいてXn+rt=(α**
r)*Xn+r(t-1)ただし、Xは整数、αは初期値、rは
プロセッサ数、nはプロセッサの番号、tは自然数で、
1≦t≦乱数発生数、**はべき算からなる式により乱数
列を前記複数のプロセッサのそれぞれに発生させ、Xn
を発生乱数列格納部内のn番目の領域に格納し、Xn+rt
を該発生乱数列格納部内のn+rt番目の領域に格納するこ
とによって、一つの乱数列にするプロセッサ管理部から
構成されている。
ロセッサシステムにおける乱数発生装置は、複数のプロ
セッサのそれぞれにより発生された乱数列を組み合わせ
た乱数列が一つのプロセッサにより発生された乱数列と
同一になるように、Xn=X*(α**n)modMただ
し、α、X、およびMは整数で、0≦X<M、nはプロ
セッサの番号、**はべき算からなる式により算出した初
期値と乱数発生数=(発生総数/プロセッサ数)−1た
だし、乱数発生数はそれぞれのプロセッサに発生させる
乱数の個数、発生総数は全部のプロセッサに発生させる
乱数の総数、プロセッサは乱数を発生させるプロセッサ
数からなる式により算出した乱数発生数とを設定して、
該初期値と該乱数発生数とに基づいてXn+rt=(α**
r)*Xn+r(t-1)ただし、Xは整数、αは初期値、rは
プロセッサ数、nはプロセッサの番号、tは自然数で、
1≦t≦乱数発生数、**はべき算からなる式により乱数
列を前記複数のプロセッサのそれぞれに発生させ、Xn
を発生乱数列格納部内のn番目の領域に格納し、Xn+rt
を該発生乱数列格納部内のn+rt番目の領域に格納するこ
とによって、一つの乱数列にするプロセッサ管理部から
構成されている。
【0011】本発明の第2のマルチプロセッサシステム
における乱数発生装置は、複数のプロセッサのそれぞれ
により発生された乱数列を組み合わせた乱数列が1つの
プロセッサにより発生された乱数列と同一になるよう
に、Xn=X*(α**n)modMただし、α、X、お
よびMは整数で、0≦X<M、nはプロセッサの番号、
**はべき算からなる式により算出した初期値と乱数発生
数=(発生総数/プロセッサ数)−1ただし、乱数発生
数はそれぞれのプロセッサに発生させる乱数の数、発生
総数は全部のプロセッサに発生させる乱数の総数、プロ
セッサは乱数を発生させるプロセッサ数からなる式によ
り算出した乱数発生数とを設定して、該初期値と該乱数
発生数とに基づいて、Xn+rt=(α**r)*Xn+r(t-1)
ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させている最中に乱数を発生
させるプロセッサを追加し、追加したプロセッサを含め
る前記複数のプロセッサのそれぞれにXq+n=Xq*(α
**n)modMただし、α、X、およびMは整数で、0
≦X<M、nはプロセッサの番号、qは既設のすべての
プロセッサが発生した乱数の合計、**はべき算からなる
式により算出した初期値と乱数発生数={(発生総数−
発生済数)/プロセッサ数}−1ただし、乱数発生数は
それぞれのプロセッサに発生させる乱数の数、発生総数
は全部のプロセッサに発生させる乱数の総数、発生済数
は発生済みの乱数の個数、プロセッサは乱数を発生させ
るプロセッサ数からなる式により算出した乱数発生数と
を再設定して、該初期値と該乱数発生数とに基づいてX
n+q+rt=(α**r)*Xn+q+r(t-1)ただし、Xは整数、
αは初期値、rはプロセッサ数、nはプロセッサの番
号、qは既設のすべてのプロセッサが発生した乱数の合
計、tは自然数で、1≦t≦乱数発生数、**はべき算か
らなる式による乱数列を発生させ、Xnを発生乱数列格
納部内のn番目の領域に格納し、Xn+rtを該発生乱数列
格納部内のn+rt番目の領域に格納して、さらに、X
q+nを該発生乱数列格納部内のq+n番目の領域に格納
し、Xn+q+rtを該発生乱数列格納部内のn+q+rt番
目の領域に格納することによって、一つの乱数列にする
プロセッサ管理部から構成されている。
における乱数発生装置は、複数のプロセッサのそれぞれ
により発生された乱数列を組み合わせた乱数列が1つの
プロセッサにより発生された乱数列と同一になるよう
に、Xn=X*(α**n)modMただし、α、X、お
よびMは整数で、0≦X<M、nはプロセッサの番号、
**はべき算からなる式により算出した初期値と乱数発生
数=(発生総数/プロセッサ数)−1ただし、乱数発生
数はそれぞれのプロセッサに発生させる乱数の数、発生
総数は全部のプロセッサに発生させる乱数の総数、プロ
セッサは乱数を発生させるプロセッサ数からなる式によ
り算出した乱数発生数とを設定して、該初期値と該乱数
発生数とに基づいて、Xn+rt=(α**r)*Xn+r(t-1)
ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させている最中に乱数を発生
させるプロセッサを追加し、追加したプロセッサを含め
る前記複数のプロセッサのそれぞれにXq+n=Xq*(α
**n)modMただし、α、X、およびMは整数で、0
≦X<M、nはプロセッサの番号、qは既設のすべての
プロセッサが発生した乱数の合計、**はべき算からなる
式により算出した初期値と乱数発生数={(発生総数−
発生済数)/プロセッサ数}−1ただし、乱数発生数は
それぞれのプロセッサに発生させる乱数の数、発生総数
は全部のプロセッサに発生させる乱数の総数、発生済数
は発生済みの乱数の個数、プロセッサは乱数を発生させ
るプロセッサ数からなる式により算出した乱数発生数と
を再設定して、該初期値と該乱数発生数とに基づいてX
n+q+rt=(α**r)*Xn+q+r(t-1)ただし、Xは整数、
αは初期値、rはプロセッサ数、nはプロセッサの番
号、qは既設のすべてのプロセッサが発生した乱数の合
計、tは自然数で、1≦t≦乱数発生数、**はべき算か
らなる式による乱数列を発生させ、Xnを発生乱数列格
納部内のn番目の領域に格納し、Xn+rtを該発生乱数列
格納部内のn+rt番目の領域に格納して、さらに、X
q+nを該発生乱数列格納部内のq+n番目の領域に格納
し、Xn+q+rtを該発生乱数列格納部内のn+q+rt番
目の領域に格納することによって、一つの乱数列にする
プロセッサ管理部から構成されている。
【0012】本発明の第1のマルチプロセッサシステム
における乱数発生方法は、Xn=X*(α**n)mod
Mただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号、**はべき算からなる式により算出
した初期値と乱数発生数=(発生総数/プロセッサ数)
−1ただし、乱数発生数はそれぞれのプロセッサに発生
させる乱数の個数、発生総数は全部のプロセッサに発生
させる乱数の総数、プロセッサは乱数を発生させるプロ
セッサ数からなる式により算出した乱数発生数とを設定
する設定ステップと、該初期値と該乱数発生数とに基づ
いてXn+rt=(α**r)*Xn+r(t-1)ただし、Xは整
数、αは初期値、rはプロセッサ数、nはプロセッサの
番号、tは自然数で、1≦t≦乱数発生数、**はべき算
からなる式により乱数列を前記複数のプロセッサのそれ
ぞれに発生させる発生ステップと、Xnを発生乱数列格
納部内のn番目の領域に格納し、Xn+rtを該発生乱数列
格納部内のn+rt番目の領域に格納することによっ
て、一つの乱数列にする格納ステップとを含むことを特
徴とする。
における乱数発生方法は、Xn=X*(α**n)mod
Mただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号、**はべき算からなる式により算出
した初期値と乱数発生数=(発生総数/プロセッサ数)
−1ただし、乱数発生数はそれぞれのプロセッサに発生
させる乱数の個数、発生総数は全部のプロセッサに発生
させる乱数の総数、プロセッサは乱数を発生させるプロ
セッサ数からなる式により算出した乱数発生数とを設定
する設定ステップと、該初期値と該乱数発生数とに基づ
いてXn+rt=(α**r)*Xn+r(t-1)ただし、Xは整
数、αは初期値、rはプロセッサ数、nはプロセッサの
番号、tは自然数で、1≦t≦乱数発生数、**はべき算
からなる式により乱数列を前記複数のプロセッサのそれ
ぞれに発生させる発生ステップと、Xnを発生乱数列格
納部内のn番目の領域に格納し、Xn+rtを該発生乱数列
格納部内のn+rt番目の領域に格納することによっ
て、一つの乱数列にする格納ステップとを含むことを特
徴とする。
【0013】本発明の第2のマルチプロセッサシステム
における乱数発生方法は、Xn=X*(α**n)mod
Mただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号、**はべき算からなる式により算出
した初期値と乱数発生数=(発生総数/プロセッサ数)
−1ただし、乱数発生数はそれぞれのプロセッサに発生
させる乱数の数、発生総数は全部のプロセッサに発生さ
せる乱数の総数、プロセッサは乱数を発生させるプロセ
ッサ数からなる式により算出した乱数発生数とを設定す
る設定ステップと、該初期値と該乱数発生数とに基づい
て、Xn+rt=(α**r)*Xn+r(t-1)ただし、Xは整
数、αは初期値、rはプロセッサ数、nはプロセッサの
番号、tは自然数で、1≦t≦乱数発生数、**はべき算
からなる式により乱数列を前記複数のプロセッサのそれ
ぞれに発生させる発生ステップと、前記発生ステップに
より乱数を発生させている最中に乱数を発生させるプロ
セッサを追加する追加ステップと、前記追加したプロセ
ッサを含める前記複数のプロセッサのそれぞれにXq+n
=Xq*(α**n)modMただし、α、X、およびM
は整数で、0≦X<M、nはプロセッサの番号、qは既
設のすべてのプロセッサが発生した乱数の合計、**はべ
き算からなる式により算出した初期値と乱数発生数=
{(発生総数−発生済数)/プロセッサ数}−1ただ
し、乱数発生数はそれぞれのプロセッサに発生させる乱
数の数、発生総数は全部のプロセッサに発生させる乱数
の総数、発生済数は発生済みの乱数の個数、プロセッサ
は乱数を発生させるプロセッサ数からなる式により算出
した乱数発生数とを再設定する再設定ステップと、該初
期値と該乱数発生数とに基づいてXn+q+rt=(α**r)
*Xn+q+r(t-1)ただし、Xは整数、αは初期値、rはプ
ロセッサ数、nはプロセッサの番号、qは既設のすべて
のプロセッサが発生した乱数の合計、tは自然数で、1
≦t≦乱数発生数、**はべき算からなる式による乱数列
を再度発生させる再発生ステップと、Xnを発生乱数列
格納部内のn番目の領域に格納し、Xn+rtを該発生乱数
列格納部内のn+rt番目の領域に格納して、さらに、
Xq+nを該発生乱数列格納部内のq+n番目の領域に格
納し、Xn+q+rtを該発生乱数列格納部内のn+q+rt
番目の領域に格納することによって、一つの乱数列にす
る格納ステップとを含むことを特徴とする。
における乱数発生方法は、Xn=X*(α**n)mod
Mただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号、**はべき算からなる式により算出
した初期値と乱数発生数=(発生総数/プロセッサ数)
−1ただし、乱数発生数はそれぞれのプロセッサに発生
させる乱数の数、発生総数は全部のプロセッサに発生さ
せる乱数の総数、プロセッサは乱数を発生させるプロセ
ッサ数からなる式により算出した乱数発生数とを設定す
る設定ステップと、該初期値と該乱数発生数とに基づい
て、Xn+rt=(α**r)*Xn+r(t-1)ただし、Xは整
数、αは初期値、rはプロセッサ数、nはプロセッサの
番号、tは自然数で、1≦t≦乱数発生数、**はべき算
からなる式により乱数列を前記複数のプロセッサのそれ
ぞれに発生させる発生ステップと、前記発生ステップに
より乱数を発生させている最中に乱数を発生させるプロ
セッサを追加する追加ステップと、前記追加したプロセ
ッサを含める前記複数のプロセッサのそれぞれにXq+n
=Xq*(α**n)modMただし、α、X、およびM
は整数で、0≦X<M、nはプロセッサの番号、qは既
設のすべてのプロセッサが発生した乱数の合計、**はべ
き算からなる式により算出した初期値と乱数発生数=
{(発生総数−発生済数)/プロセッサ数}−1ただ
し、乱数発生数はそれぞれのプロセッサに発生させる乱
数の数、発生総数は全部のプロセッサに発生させる乱数
の総数、発生済数は発生済みの乱数の個数、プロセッサ
は乱数を発生させるプロセッサ数からなる式により算出
した乱数発生数とを再設定する再設定ステップと、該初
期値と該乱数発生数とに基づいてXn+q+rt=(α**r)
*Xn+q+r(t-1)ただし、Xは整数、αは初期値、rはプ
ロセッサ数、nはプロセッサの番号、qは既設のすべて
のプロセッサが発生した乱数の合計、tは自然数で、1
≦t≦乱数発生数、**はべき算からなる式による乱数列
を再度発生させる再発生ステップと、Xnを発生乱数列
格納部内のn番目の領域に格納し、Xn+rtを該発生乱数
列格納部内のn+rt番目の領域に格納して、さらに、
Xq+nを該発生乱数列格納部内のq+n番目の領域に格
納し、Xn+q+rtを該発生乱数列格納部内のn+q+rt
番目の領域に格納することによって、一つの乱数列にす
る格納ステップとを含むことを特徴とする。
【0014】
【0015】
【0016】
【0017】
【0018】
【0019】
【0020】
【0021】
【0022】
【0023】
【0024】
【0025】
【0026】
【0027】
【0028】
【発明の実施の形態】以下、本発明の実施例について、
図を参照しながら詳細に説明する。
図を参照しながら詳細に説明する。
【0029】図1を参照すると、本発明の第1の実施例
であるマルチプロセッサシステムにおける乱数発生装置
は、乱数を発生するプロセッサ31、32、33、およ
び34と、各プロセッサにおいて乱数を発生するための
初期値およびパラメータ群を設定するプロセッサ管理部
1と、乱数を発生するためのパラメータ群を各プロセッ
サ毎に格納するプロセッサ管理テーブル2と、各プロセ
ッサによって発生された乱数を格納する発生乱数列格納
部4とから構成されている。
であるマルチプロセッサシステムにおける乱数発生装置
は、乱数を発生するプロセッサ31、32、33、およ
び34と、各プロセッサにおいて乱数を発生するための
初期値およびパラメータ群を設定するプロセッサ管理部
1と、乱数を発生するためのパラメータ群を各プロセッ
サ毎に格納するプロセッサ管理テーブル2と、各プロセ
ッサによって発生された乱数を格納する発生乱数列格納
部4とから構成されている。
【0030】以下に、本発明の第1の実施例であるマル
チプロセッサシステムにおける乱数発生装置について、
図1〜図3、および図7〜図11を参照して詳細に説明
する。
チプロセッサシステムにおける乱数発生装置について、
図1〜図3、および図7〜図11を参照して詳細に説明
する。
【0031】本実施例においては、各プロセッサが、初
期値を基にして400個ずつの乱数を発生させることと
する。
期値を基にして400個ずつの乱数を発生させることと
する。
【0032】まず、プロセッサ管理部1は、各プロセッ
サ31〜34の初期値を次式に基づいて設定する。
サ31〜34の初期値を次式に基づいて設定する。
【0033】Xn = X*αnmodM (ただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号とする。) したがって、 プロセッサ31は、X1 = X*αmodM プロセッサ32は、X2 = X*α2modM プロセッサ33は、X3 = X*α3modM プロセッサ34は、X4 = X*α4modM が初期値となる。
はプロセッサの番号とする。) したがって、 プロセッサ31は、X1 = X*αmodM プロセッサ32は、X2 = X*α2modM プロセッサ33は、X3 = X*α3modM プロセッサ34は、X4 = X*α4modM が初期値となる。
【0034】プロセッサ管理部1は、図2に示すよう
に、これらの初期値を発生乱数列格納部4に格納する。
に、これらの初期値を発生乱数列格納部4に格納する。
【0035】プロセッサ管理部1は、図7に示すよう
に、これらの初期値をプロセッサ管理テーブル2にも格
納する。
に、これらの初期値をプロセッサ管理テーブル2にも格
納する。
【0036】次に、プロセッサ管理部1は、各プロセッ
サの乱数発生数を次式に基づいて設定する。
サの乱数発生数を次式に基づいて設定する。
【0037】 乱数発生数 = (発生総数/プロセッサ数)−1 したがって、 乱数発生数 = (400/4)−1 = 99 プロセッサ管理部1は、図8に示すように、この乱数発
生数をプロセッサ管理テーブル2の乱数発生数の欄に格
納する。該計算において、除算に剰余が出た場合には、
プロセッサ番号の小さい順に、乱数発生数に該剰余から
1ずつ加える。
生数をプロセッサ管理テーブル2の乱数発生数の欄に格
納する。該計算において、除算に剰余が出た場合には、
プロセッサ番号の小さい順に、乱数発生数に該剰余から
1ずつ加える。
【0038】次に、プロセッサ管理部1は、各プロセッ
サが乱数生成に使用する乗算合同法の乗数を次式によっ
て決定し、図9に示すように、プロセッサ管理テーブル
2の乗数の欄に格納する。
サが乱数生成に使用する乗算合同法の乗数を次式によっ
て決定し、図9に示すように、プロセッサ管理テーブル
2の乗数の欄に格納する。
【0039】乗数 = α**r (= αr) (αは初期値の値、**はべき算、rはプロセッサ数で
ある。) したがって、本実施例では、乗数 = α4 である。
ある。) したがって、本実施例では、乗数 = α4 である。
【0040】プロセッサ管理部1は、各プロセッサが発
生する乱数を直列に発生乱数列格納部4へ格納する際の
結果格納位置間隔を、図10に示すように、プロセッサ
管理テーブル2の結果格納位置間隔の欄に格納する。本
実施例では、プロセッサ数が4であることにより、結果
格納位置間隔も4となる。
生する乱数を直列に発生乱数列格納部4へ格納する際の
結果格納位置間隔を、図10に示すように、プロセッサ
管理テーブル2の結果格納位置間隔の欄に格納する。本
実施例では、プロセッサ数が4であることにより、結果
格納位置間隔も4となる。
【0041】プロセッサ管理部1は、プロセッサ管理テ
ーブル2内の各プロセッサの発生数カウンタに0を格納
する。
ーブル2内の各プロセッサの発生数カウンタに0を格納
する。
【0042】次に、プロセッサ管理部1は、各プロセッ
サに対して乱数発生開始を指示する。
サに対して乱数発生開始を指示する。
【0043】各プロセッサは、プロセッサ管理部1から
乱数の発生開始を指示されると、図11の状態のプロセ
ッサ管理テーブル2から、自プロセッサのプロセッサ番
号に対応する乗数、初期値、および乱数発生数の数値を
得て、次式の計算を行って乱数を発生する。さらに、各
プロセッサは、発生した乱数を図3に示すように発生乱
数列格納部4に結果格納間隔にしたがって格納するとと
もに、プロセッサ管理テーブル2内の自プロセッサのプ
ロセッサ番号に対応する発生数カウンタの値に1加算す
る。
乱数の発生開始を指示されると、図11の状態のプロセ
ッサ管理テーブル2から、自プロセッサのプロセッサ番
号に対応する乗数、初期値、および乱数発生数の数値を
得て、次式の計算を行って乱数を発生する。さらに、各
プロセッサは、発生した乱数を図3に示すように発生乱
数列格納部4に結果格納間隔にしたがって格納するとと
もに、プロセッサ管理テーブル2内の自プロセッサのプ
ロセッサ番号に対応する発生数カウンタの値に1加算す
る。
【0044】Xn+rt = αr*Xn+r(t-1) (ただし、α、Xは整数で、nはプロセッサの番号とす
る。) この式で、r=4、tは1から始まる自然数とすると、
プロセッサ31は、乱数X1+4=α4*X1、X1+4*2=α
4*X1+4、…、プロセッサ32は、乱数X2+4=α4*X
2、X2+4*2=α4*X2+4、…、プロセッサ33は、乱数
X3+4=α4*X3、X3+4*2=α4*X3+4、…、プロセッ
サ34は、乱数X4+4=α4*X4、X4+4*2=α4*
X4+4、…、を発生する。
る。) この式で、r=4、tは1から始まる自然数とすると、
プロセッサ31は、乱数X1+4=α4*X1、X1+4*2=α
4*X1+4、…、プロセッサ32は、乱数X2+4=α4*X
2、X2+4*2=α4*X2+4、…、プロセッサ33は、乱数
X3+4=α4*X3、X3+4*2=α4*X3+4、…、プロセッ
サ34は、乱数X4+4=α4*X4、X4+4*2=α4*
X4+4、…、を発生する。
【0045】各プロセッサは、この乱数の計算をプロセ
ッサ管理テーブル2内の乱数発生数が示す回数だけ実行
する。
ッサ管理テーブル2内の乱数発生数が示す回数だけ実行
する。
【0046】以上により、本発明の第1の実施例である
マルチプロセッサシステムにおける乱数発生装置の処理
が完了する。
マルチプロセッサシステムにおける乱数発生装置の処理
が完了する。
【0047】本発明の第1の実施例であるマルチプロセ
ッサシステムにおける乱数発生装置の特徴は、プロセッ
サ管理部1が各プロセッサにおける乱数発生のための初
期値およびパラメータ群を設定してプロセッサ管理テー
ブル2に格納し、各プロセッサが該プロセッサ管理テー
ブル2に格納された乱数発生のための初期値およびパラ
メータ群に基づいて、乗算合同法により乱数を発生する
ようにしたことにある。
ッサシステムにおける乱数発生装置の特徴は、プロセッ
サ管理部1が各プロセッサにおける乱数発生のための初
期値およびパラメータ群を設定してプロセッサ管理テー
ブル2に格納し、各プロセッサが該プロセッサ管理テー
ブル2に格納された乱数発生のための初期値およびパラ
メータ群に基づいて、乗算合同法により乱数を発生する
ようにしたことにある。
【0048】本発明の第1の実施例であるマルチプロセ
ッサシステムにおける乱数発生装置は、このような特徴
を備えたことにより、マルチプロセッサシステムにおい
て、効率良く容易に乱数を発生することができる効果を
有している。
ッサシステムにおける乱数発生装置は、このような特徴
を備えたことにより、マルチプロセッサシステムにおい
て、効率良く容易に乱数を発生することができる効果を
有している。
【0049】図4を参照すると、本発明の第2の実施例
であるマルチプロセッサシステムにおける乱数発生装置
は、第1の実施例であるマルチプロセッサシステムにお
ける乱数発生装置の構成に加えて、乱数を発生するプロ
セッサ35が追加されている。
であるマルチプロセッサシステムにおける乱数発生装置
は、第1の実施例であるマルチプロセッサシステムにお
ける乱数発生装置の構成に加えて、乱数を発生するプロ
セッサ35が追加されている。
【0050】以下に、本発明の第2の実施例であるマル
チプロセッサシステムにおける乱数発生装置について、
図4〜図6、および図12〜図18を参照して詳細に説
明する。
チプロセッサシステムにおける乱数発生装置について、
図4〜図6、および図12〜図18を参照して詳細に説
明する。
【0051】本実施例においては、プロセッサ管理テー
ブル2の内容が図12に示す状態である環境において、
プロセッサ35を追加する場合について説明する。
ブル2の内容が図12に示す状態である環境において、
プロセッサ35を追加する場合について説明する。
【0052】プロセッサ管理部1は、プロセッサ管理テ
ーブル2を参照し、発生数カウンタの値が最も大きい、
すなわちその時点で乱数を最も多く発生しているプロセ
ッサの番号と該プロセッサの発生数カウンタとを認識す
る。本実施例においては、プロセッサ番号“3”と発生
数カウンタの値“31”とが認識される。
ーブル2を参照し、発生数カウンタの値が最も大きい、
すなわちその時点で乱数を最も多く発生しているプロセ
ッサの番号と該プロセッサの発生数カウンタとを認識す
る。本実施例においては、プロセッサ番号“3”と発生
数カウンタの値“31”とが認識される。
【0053】プロセッサ管理部1は、認識した発生数カ
ウンタの値に予め設定した遅延数を加えた値(以下、発
生一時停止数とする)を求め、既存のプロセッサ31〜
34に対して、発生一時停止数に発生数カウンタの値が
達した時点で乱数の発生処理を停止させる。この遅延数
は、プロセッサ管理部1が乱数発生の中断指示を出して
から実際にプロセッサが乱数発生を中断するまでに発生
する乱数の個数より大きい最小の整数値である。本実施
例においては、該遅延数は“1”であり、発生一時停止
数は“32”となる。
ウンタの値に予め設定した遅延数を加えた値(以下、発
生一時停止数とする)を求め、既存のプロセッサ31〜
34に対して、発生一時停止数に発生数カウンタの値が
達した時点で乱数の発生処理を停止させる。この遅延数
は、プロセッサ管理部1が乱数発生の中断指示を出して
から実際にプロセッサが乱数発生を中断するまでに発生
する乱数の個数より大きい最小の整数値である。本実施
例においては、該遅延数は“1”であり、発生一時停止
数は“32”となる。
【0054】次に、プロセッサ管理部1は、プロセッサ
管理テーブル2のすべてのプロセッサの発生カウンタの
値が“32”になるまで、該プロセッサ管理テーブル2
を監視する。プロセッサ管理部1は、各プロセッサの発
生数カウンタが“32”になると、該プロセッサに乱数
発生処理を停止させる。この時のプロセッサ管理テーブ
ル2の状態を図13に示す。
管理テーブル2のすべてのプロセッサの発生カウンタの
値が“32”になるまで、該プロセッサ管理テーブル2
を監視する。プロセッサ管理部1は、各プロセッサの発
生数カウンタが“32”になると、該プロセッサに乱数
発生処理を停止させる。この時のプロセッサ管理テーブ
ル2の状態を図13に示す。
【0055】プロセッサ管理部1は、この時点でプロセ
ッサ管理テーブル2の内容を変更する。すなわち、この
時点の乱数発生合計数は初期値を加えて、 4+(32×4)=132 であり、プロセッサ数が“5”になってからの各プロセ
ッサの初期値を次式に基づいて設定する。
ッサ管理テーブル2の内容を変更する。すなわち、この
時点の乱数発生合計数は初期値を加えて、 4+(32×4)=132 であり、プロセッサ数が“5”になってからの各プロセ
ッサの初期値を次式に基づいて設定する。
【0056】X132+n = X132*αnmodM (ただし、α、X、およびMは整数で、0≦X<M、n
はプロセッサの番号とする。) プロセッサ管理部1は、設定した初期値を図5に示すよ
うに発生乱数列格納部4に格納する。
はプロセッサの番号とする。) プロセッサ管理部1は、設定した初期値を図5に示すよ
うに発生乱数列格納部4に格納する。
【0057】プロセッサ管理部1は、図14に示すよう
に、これらの初期値をプロセッサ管理テーブル2にも格
納する。
に、これらの初期値をプロセッサ管理テーブル2にも格
納する。
【0058】次に、プロセッサ管理部1は、乱数の発生
総数400と中断時の合計発生数132とに基づいて、
各プロセッサのこれからの乱数発生数を次式に基づいて
決定する。
総数400と中断時の合計発生数132とに基づいて、
各プロセッサのこれからの乱数発生数を次式に基づいて
決定する。
【0059】乱数発生数 = {(発生総数−発生済数)
/プロセッサ数}−1 したがって、 乱数発生数 = {(400−132)/5}−1 = 5
2 該計算において、除算に剰余が出た場合には、プロセッ
サ番号の小さい順に、乱数発生数に該剰余から1ずつ加
える。
/プロセッサ数}−1 したがって、 乱数発生数 = {(400−132)/5}−1 = 5
2 該計算において、除算に剰余が出た場合には、プロセッ
サ番号の小さい順に、乱数発生数に該剰余から1ずつ加
える。
【0060】プロセッサ管理部1は、図15に示すよう
に、この乱数発生数をプロセッサ管理テーブル2の乱数
発生数の欄に格納する。
に、この乱数発生数をプロセッサ管理テーブル2の乱数
発生数の欄に格納する。
【0061】次に、プロセッサ管理部1は、各プロセッ
サが乱数生成に使用する乗算合同法の乗数を次式によっ
て決定し、図16示すように、プロセッサ管理テーブル
2の乗数の欄に格納する。
サが乱数生成に使用する乗算合同法の乗数を次式によっ
て決定し、図16示すように、プロセッサ管理テーブル
2の乗数の欄に格納する。
【0062】乗数 = α**r (αは初期値の値、**はべき算、rはプロセッサ数で
ある。) したがって、本実施例では、乗数 = α5 である。
ある。) したがって、本実施例では、乗数 = α5 である。
【0063】プロセッサ管理部1は、各プロセッサが発
生する乱数を直列にして発生乱数列格納部4へ格納する
際の結果格納位置間隔を、図17に示すように、プロセ
ッサ管理テーブル2の結果格納位置間隔の欄に格納す
る。本実施例では、プロセッサ数が5であることによ
り、結果格納位置間隔も5となる。
生する乱数を直列にして発生乱数列格納部4へ格納する
際の結果格納位置間隔を、図17に示すように、プロセ
ッサ管理テーブル2の結果格納位置間隔の欄に格納す
る。本実施例では、プロセッサ数が5であることによ
り、結果格納位置間隔も5となる。
【0064】プロセッサ管理部1は、図18に示すプロ
セッサ管理テーブル2内の各プロセッサの発生数カウン
タに0を格納する。
セッサ管理テーブル2内の各プロセッサの発生数カウン
タに0を格納する。
【0065】次に、プロセッサ管理部1は、各プロセッ
サに対して乱数発生開始を指示する。
サに対して乱数発生開始を指示する。
【0066】各プロセッサは、プロセッサ管理部1から
乱数の発生開始を指示されると、図18の状態のプロセ
ッサ管理テーブル2から、自プロセッサのプロセッサ番
号に対応する乗数、初期値、および乱数発生数の数値に
したがって、次式の計算を行って乱数を発生する。さら
に、各プロセッサは、該乱数を図6に示すように発生乱
数列格納部4に結果格納間隔にしたがって格納するとと
もに、プロセッサ管理テーブル2内の自プロセッサのプ
ロセッサ番号に対応する発生数カウンタの値に1加算す
る。
乱数の発生開始を指示されると、図18の状態のプロセ
ッサ管理テーブル2から、自プロセッサのプロセッサ番
号に対応する乗数、初期値、および乱数発生数の数値に
したがって、次式の計算を行って乱数を発生する。さら
に、各プロセッサは、該乱数を図6に示すように発生乱
数列格納部4に結果格納間隔にしたがって格納するとと
もに、プロセッサ管理テーブル2内の自プロセッサのプ
ロセッサ番号に対応する発生数カウンタの値に1加算す
る。
【0067】Xn+q+rt = αr*Xn+q+r(t-1) (ただし、α、Xは整数で、nはプロセッサの番号とす
る。) この式で、r=5、tは1から始まる自然数、qは13
2であるので、各プロセッサは、乱数Xn+132+5=α5*
Xn+132、Xn+132+5*2=α5*Xn+132+5、…、を発生す
る。
る。) この式で、r=5、tは1から始まる自然数、qは13
2であるので、各プロセッサは、乱数Xn+132+5=α5*
Xn+132、Xn+132+5*2=α5*Xn+132+5、…、を発生す
る。
【0068】各プロセッサは、この乱数の計算をプロセ
ッサ管理テーブル2内の乱数発生数が示す回数だけ実行
する。
ッサ管理テーブル2内の乱数発生数が示す回数だけ実行
する。
【0069】以上により、本発明の第2の実施例である
マルチプロセッサシステムにおける乱数発生装置の処理
が完了する。
マルチプロセッサシステムにおける乱数発生装置の処理
が完了する。
【0070】本発明の第2の実施例であるマルチプロセ
ッサシステムにおける乱数発生装置の特徴は、乱数の発
生途中に新たなプロセッサを追加するために、プロセッ
サ管理部1がプロセッサ管理テーブル2に格納されてい
るパラメータにおいて、既設のプロセッサの乱数の発生
数を同一にし、その時点までに全ての既設のプロセッサ
で発生した乱数の合計数を基とした初期値と以降の乱数
の発生数をプロセッサ追加後のすべてのプロセッサに設
定し、各プロセッサが該プロセッサ管理テーブル2に格
納された乱数発生のための初期値およびパラメータ群に
基づいて、乗算合同法により乱数を発生するようにした
ことにある。
ッサシステムにおける乱数発生装置の特徴は、乱数の発
生途中に新たなプロセッサを追加するために、プロセッ
サ管理部1がプロセッサ管理テーブル2に格納されてい
るパラメータにおいて、既設のプロセッサの乱数の発生
数を同一にし、その時点までに全ての既設のプロセッサ
で発生した乱数の合計数を基とした初期値と以降の乱数
の発生数をプロセッサ追加後のすべてのプロセッサに設
定し、各プロセッサが該プロセッサ管理テーブル2に格
納された乱数発生のための初期値およびパラメータ群に
基づいて、乗算合同法により乱数を発生するようにした
ことにある。
【0071】本発明の第2の実施例であるマルチプロセ
ッサシステムにおける乱数発生装置は、このような特徴
を備えたことにより、マルチプロセッサシステムにおい
て、乱数発生中に乱数を発生させるプロセッサの数を変
更することができる効果を有している。
ッサシステムにおける乱数発生装置は、このような特徴
を備えたことにより、マルチプロセッサシステムにおい
て、乱数発生中に乱数を発生させるプロセッサの数を変
更することができる効果を有している。
【0072】
【発明の効果】以上説明したように、本発明は、マルチ
プロセッサシステムにおいて、乱数発生中に乱数を発生
させるプロセッサの数を変更することができるので、マ
ルチプロセッサシステムにおいて実行されるさまざまな
プログラム群と共存して効率良く乱数を発生することが
できる効果を有している。
プロセッサシステムにおいて、乱数発生中に乱数を発生
させるプロセッサの数を変更することができるので、マ
ルチプロセッサシステムにおいて実行されるさまざまな
プログラム群と共存して効率良く乱数を発生することが
できる効果を有している。
【図1】本発明の第1の実施例におけるブロック図であ
る。
る。
【図2】本発明の第1の実施例において、発生乱数列格
納部4に初期値が格納された状態を示す図である。
納部4に初期値が格納された状態を示す図である。
【図3】本発明の第1の実施例において、各プロセッサ
が発生した乱数が発生乱数列格納部4に格納される状態
を示す図である。
が発生した乱数が発生乱数列格納部4に格納される状態
を示す図である。
【図4】本発明の第2の実施例におけるブロック図であ
る。
る。
【図5】本発明の第2の実施例において、発生乱数列格
納部4に初期値が格納された状態を示す図である。
納部4に初期値が格納された状態を示す図である。
【図6】本発明の第2の実施例において、各プロセッサ
が発生した乱数が発生乱数列格納部4に格納される状態
を示す図である。
が発生した乱数が発生乱数列格納部4に格納される状態
を示す図である。
【図7】本発明の第1の実施例におけるプロセッサ管理
テーブル2の内容を示す図である。
テーブル2の内容を示す図である。
【図8】本発明の第1の実施例におけるプロセッサ管理
テーブル2の内容を示す図である。
テーブル2の内容を示す図である。
【図9】本発明の第1の実施例におけるプロセッサ管理
テーブル2の内容を示す図である。
テーブル2の内容を示す図である。
【図10】本発明の第1の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図11】本発明の第1の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図12】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図13】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図14】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図15】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図16】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図17】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
【図18】本発明の第2の実施例におけるプロセッサ管
理テーブル2の内容を示す図である。
理テーブル2の内容を示す図である。
1 プロセッサ管理部 2 プロセッサ管理テーブル 4 発生乱数列格納部 31 プロセッサ 32 プロセッサ 33 プロセッサ 34 プロセッサ 35 プロセッサ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−242827(JP,A) 特開 平6−202856(JP,A) 特開 平4−370827(JP,A) 特開 昭60−136876(JP,A) Knuth著,渋谷政昭訳「準数値算 法/乱数」、第9−11頁、株式会社サイ エンス社発行
Claims (4)
- 【請求項1】 複数のプロセッサのそれぞれにより発生
された乱数列を組み合わせた乱数列が一つのプロセッサ
により発生された乱数列と同一になるように、 Xn=X*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、**はべき算からなる式により算出し
た初期値と乱数発生数=(発生総数/プロセッサ数)−
1ただし、乱数発生数はそれぞれのプロセッサに発生さ
せる乱数の個数、発生総数は全部のプロセッサに発生さ
せる乱数の総数、プロセッサは乱数を発生させるプロセ
ッサ数からなる式により算出した乱数発生数とを設定し
て、該初期値と該乱数発生数とに基づいて Xn+rt=(α**r)*Xn+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させ、Xnを発生乱数列格納
部内のn番目の領域に格納し、Xn+rtを該発生乱数列格
納部内のn+rt番目の領域に格納することによって、
一つの乱数列にするプロセッサ管理部を備えたことを特
徴とするマルチプロセッサシステムにおける乱数発生装
置。 - 【請求項2】 複数のプロセッサのそれぞれにより発生
された乱数列を組み合わせた乱数列が1つのプロセッサ
により発生された乱数列と同一になるように、 Xn=X*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、**はべき算からなる式により算出し
た初期値と 乱数発生数=(発生総数/プロセッサ数)−1 ただし、乱数発生数はそれぞれのプロセッサに発生させ
る乱数の数、発生総数は全部のプロセッサに発生させる
乱数の総数、プロセッサは乱数を発生させるプロセッサ
数からなる式により算出した乱数発生数とを設定して、
該初期値と該乱数発生数とに基づいて、 Xn+rt=(α**r)*Xn+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させている最中に乱数を発生
させるプロセッサを追加し、追加したプロセッサを含め
る前記複数のプロセッサのそれぞれに Xq+n=Xq*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、qは既設のすべてのプロセッサが発
生した乱数の合計、**はべき算からなる式により算出し
た初期値と 乱数発生数={(発生総数−発生済数)/プロセッサ
数}−1 ただし、乱数発生数はそれぞれのプロセッサに発生させ
る乱数の数、発生総数は全部のプロセッサに発生させる
乱数の総数、発生済数は発生済みの乱数の個数、プロセ
ッサは乱数を発生させるプロセッサ数からなる式により
算出した乱数発生数とを再設定して、該初期値と該乱数
発生数とに基づいて Xn+q+rt=(α**r)*Xn+q+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、qは既設のすべてのプロセッサが
発生した乱数の合計、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式による乱数列を発生させ、X
nを発生乱数列格納部内のn番目の領域に格納し、Xn+r
tを該発生乱数列格納部内のn+rt番目の領域に格納
して、さらに、Xq+nを該発生乱数列格納部内のq+n
番目の領域に格納し、Xn+q+rtを該発生乱数列格納部内
のn+q+rt番目の領域に格納することによって、一
つの乱数列にするプロセッサ管理部を備えたことを特徴
とするマルチプロセッサシステムにおける乱数発生装
置。 - 【請求項3】 Xn=X*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、**はべき算からなる式により算出し
た初期値と 乱数発生数=(発生総数/プロセッサ数)−1 ただし、乱数発生数はそれぞれのプロセッサに発生させ
る乱数の個数、発生総数は全部のプロセッサに発生させ
る乱数の総数、プロセッサは乱数を発生させるプロセッ
サ数からなる式により算出した乱数発生数とを設定する
設定ステップと、 該初期値と該乱数発生数とに基づいて Xn+rt=(α**r)*Xn+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させる発生ステップと、 Xnを発生乱数列格納部内のn番目の領域に格納し、Xn
+rtを該発生乱数列格納部内のn+rt番目の領域に格
納することによって、一つの乱数列にする格納ステップ
とを含むことを特徴とするマルチプロセッサシステムに
おける乱数発生方法。 - 【請求項4】 Xn=X*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、**はべき算からなる式により算出し
た初期値と 乱数発生数=(発生総数/プロセッサ数)−1 ただし、乱数発生数はそれぞれのプロセッサに発生させ
る乱数の数、発生総数は全部のプロセッサに発生させる
乱数の総数、プロセッサは乱数を発生させるプロセッサ
数からなる式により算出した乱数発生数とを設定する設
定ステップと、 該初期値と該乱数発生数とに基づいて、 Xn+rt=(α**r)*Xn+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式により乱数列を前記複数のプ
ロセッサのそれぞれに発生させる発生ステップと、 前記発生ステップにより乱数を発生させている最中に乱
数を発生させるプロセッサを追加する追加ステップと、 前記追加したプロセッサを含める前記複数のプロセッサ
のそれぞれに Xq+n=Xq*(α**n)modM ただし、α、X、およびMは整数で、0≦X<M、nは
プロセッサの番号、qは既設のすべてのプロセッサが発
生した乱数の合計、**はべき算からなる式により算出し
た初期値と 乱数発生数={(発生総数−発生済数)/プロセッサ
数}−1 ただし、乱数発生数はそれぞれのプロセッサに発生させ
る乱数の数、発生総数は全部のプロセッサに発生させる
乱数の総数、発生済数は発生済みの乱数の個数、プロセ
ッサは乱数を発生させるプロセッサ数からなる式により
算出した乱数発生数とを再設定する再設定ステップと、 該初期値と該乱数発生数とに基づいて Xn+q+rt=(α**r)*Xn+q+r(t-1) ただし、Xは整数、αは初期値、rはプロセッサ数、n
はプロセッサの番号、qは既設のすべてのプロセッサが
発生した乱数の合計、tは自然数で、1≦t≦乱数発生
数、**はべき算からなる式による乱数列を再度発生させ
る再発生ステップと、 Xnを発生乱数列格納部内のn番目の領域に格納し、Xn
+rtを該発生乱数列格納部内のn+rt番目の領域に格
納して、さらに、Xq+nを該発生乱数列格納部内のq+
n番目の領域に格納し、Xn+q+rtを該発生乱数列格納部
内のn+q+rt番目の領域に格納することによって、
一つの乱数列にする格納ステップとを含むことを特徴と
するマルチプロセッサシステムにおける乱数発生方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08083416A JP3123920B2 (ja) | 1995-04-11 | 1996-04-05 | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8552995 | 1995-04-11 | ||
JP7-85529 | 1995-04-11 | ||
JP08083416A JP3123920B2 (ja) | 1995-04-11 | 1996-04-05 | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08339294A JPH08339294A (ja) | 1996-12-24 |
JP3123920B2 true JP3123920B2 (ja) | 2001-01-15 |
Family
ID=26424442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08083416A Expired - Fee Related JP3123920B2 (ja) | 1995-04-11 | 1996-04-05 | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3123920B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3539870B2 (ja) * | 1998-07-14 | 2004-07-07 | 株式会社日立製作所 | 乱数生成システム及び乱数生成方法 |
JP4950325B2 (ja) * | 2010-07-02 | 2012-06-13 | みずほ第一フィナンシャルテクノロジー株式会社 | モンテカルロ法の効率的な並列処理手法 |
-
1996
- 1996-04-05 JP JP08083416A patent/JP3123920B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
Knuth著,渋谷政昭訳「準数値算法/乱数」、第9−11頁、株式会社サイエンス社発行 |
Also Published As
Publication number | Publication date |
---|---|
JPH08339294A (ja) | 1996-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Brent | Factorization of the tenth Fermat number | |
US5793657A (en) | Random number generating apparatus and random number generating method in a multiprocessor system | |
JP2003330734A (ja) | 重みを使用してアプリケーションにシステム資源を割当てる方法およびシステム | |
JPS59160267A (ja) | ベクトル処理装置 | |
CN108762897A (zh) | 多任务管理方法及智能手表 | |
JP2004038291A (ja) | クロック周波数の制御方法および電子機器 | |
Perarnau et al. | Victim selection and distributed work stealing performance: A case study | |
CN112000484A (zh) | 栈帧地址随机化方法及相关设备 | |
JP3123920B2 (ja) | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 | |
CN110232289A (zh) | 椭圆曲线密码的高速倍点运算方法 | |
JP6316593B2 (ja) | 半導体装置 | |
CN109375895B (zh) | 多项式乘法的加速方法及装置、ntru加解密加速方法及装置 | |
Cucu et al. | Non-preemptive multiprocessor scheduling for strict periodic systems with precedence constraints | |
JP2007193744A (ja) | 情報処理装置、プログラム、およびスケジューリング方法 | |
JP2003122251A (ja) | 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体 | |
JPH11184717A (ja) | スケジューリング解析装置及び方法並びにスケジューリング解析用ソフトウェアを記録した記録媒体 | |
JP3686261B2 (ja) | 計算機、プログラム変換装置及びプログラム記録媒体 | |
JP3223530B2 (ja) | データ転送命令生成処理方法 | |
JPH09167114A (ja) | マルチスレッドタスクのスタック割り当て方法 | |
JPH11345129A (ja) | インターバルタイマ回路 | |
Kaviani et al. | On scheduling in multiprocessor systems using fuzzy logic | |
JP2021149793A (ja) | 情報処理装置、情報処理プログラムおよび情報処理方法 | |
JPH03163630A (ja) | プロセッサのスタック制御方法 | |
JPS61182135A (ja) | 処理選択方法 | |
JPS633336A (ja) | システム生成方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071027 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081027 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |