JP5953808B2 - 乱数処理装置、乱数処理方法、及びプログラム - Google Patents
乱数処理装置、乱数処理方法、及びプログラム Download PDFInfo
- Publication number
- JP5953808B2 JP5953808B2 JP2012036969A JP2012036969A JP5953808B2 JP 5953808 B2 JP5953808 B2 JP 5953808B2 JP 2012036969 A JP2012036969 A JP 2012036969A JP 2012036969 A JP2012036969 A JP 2012036969A JP 5953808 B2 JP5953808 B2 JP 5953808B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- cache
- data
- block
- number data
- 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
- 238000012545 processing Methods 0.000 title claims description 68
- 238000003672 processing method Methods 0.000 title claims description 15
- 238000003860 storage Methods 0.000 claims description 116
- 238000000034 method Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 19
- 238000004088 simulation Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 238000000342 Monte Carlo simulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001589086 Bellapiscis medius Species 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
乱数データを生成する、乱数生成部と、
前記乱数生成部に、予め、第1の乱数データをキャッシュデータとして生成させる、キャッシュ生成部と、
前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを前記乱数生成部に生成させ、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供する、キャッシュ読込部と、
を備えていることを特徴とする。
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を有することを特徴とする。
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を実行させることを特徴とする。
以下、本発明の実施形態1における、乱数処理装置、乱数処理方法、及びプログラムについて、図1〜図4を参照しながら説明する。
最初に図1を用いて、本実施形態1における乱数処理装置の構成について説明する。図1は、本発明の実施形態1における乱数処理装置の構成を示すブロック図である。図1に示す本実施形態1における乱数処理装置1は、アプリケーションプログラム2に擬似乱数を提供する装置であり、キャッシュ生成部3と、乱数生成部4と、キャッシュ読込部5と、を備えている。
次に、本発明の実施形態における乱数処理装置1の動作について、図1を適宜参酌しつつ図2〜図4を用いて説明する。なお、本実施形態1では、乱数処理装置1を動作させることによって乱数処理方法が実施されるため、本実施形態における乱数処理方法の説明は以下の乱数処理装置1の動作説明に代える。
・記憶装置7の補助記憶キャッシュ保存領域に存在しているブロックであること、
・現在乱数生成部4で生成されているブロックよりもブロック番号が大きいこと、
・予め設定された算出乱数データとキャッシュ乱数データとの利用比率に基づいて当該ブロックが必要となる瞬間にメモリ6への転送が完了できるブロックであること、
の3つである。
本実施形態1におけるプログラムは、コンピュータに、図2に示すステップS1〜S3、図3に示すステップS31〜S35、図4に示すステップS41〜S42を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし実行することによって、本実施形態における乱数処理装置1と乱数処理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、キャッシュ生成部3、乱数生成部4、キャッシュ読込部5として機能し、処理を行なう。
次に本発明の実施形態2について、以下、説明する。なお、実施形態1と異なる部分は、キャッシュ生成部3が乱数生成部4に生成させるブロックのブロック番号の特定方法であるため、この部分を中心に説明を行い、その他の部分については説明を省略する。
本実施形態2におけるプログラムは、実施形態1におけるステップに加え、図5に示すステップS11〜S22を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし実行することによって、本実施形態2における乱数処理装置1と乱数処理方法とを実現することができる。
ここで、本実施形態1及び2におけるプログラムを実行することによって、乱数処理装置を実現するコンピュータについて図を用いて説明する。図6は、本発明の実施形態における乱数処理装置を実現するコンピュータの一例を示すブロック図である。
上記各実施形態では、アプリケーションプログラム2がキャッシュ読込部5に要求する乱数データのデータ量と、アプリケーションプログラム2がキャッシュ生成部3に要求する乱数データのデータ量とを同じとして説明したが、これらは異なっていてもよい。例えば、キャッシュ読込部5に要求する乱数データのデータ量が、キャッシュ生成部3に要求した乱数データのデータ量よりも小さい場合、そのデータ量を超える部分のキャッシュ乱数データのブロックを単に利用しなければよい。また、これと逆の場合、すなわち、キャッシュ読込部5に要求する乱数データのデータ量が、キャッシュ生成部3に要求した乱数データのデータ量よりも大きい場合は、キャッシュ乱数データの不足分を全て乱数生成部4にて生成すればよい。
また、上記各実施形態では、必要とする乱数データのキャッシュを全て作成すると説明したが、高速な乱数データ生成が必要な場所が一部に限られている場合、その一部に対応するキャッシュ乱数データのみをキャッシュ生成部3が乱数生成部4に生成させてもよい。このようにすることで、キャッシュ乱数データの生成時間を減少させることもできる。
また、上記各実施形態において、乱数処理装置1を実現するコンピュータのCPUの数、コア数、スレッドの数については、1つに限定されない。乱数処理装置1を実現するコンピュータ全体で利用できるスレッド数が複数になる場合、単純にCPU処理能力がその分倍増すると考えれば、各実施形態で述べた技術は複数のCPUスレッドに対応することができる。また、同様に、乱数処理装置1を実現するコンピュータのストレージ(記憶装置7)の数に関しても1つに限定されない。バックグラウンドでのキャッシュ読込処理が複数同時に行われるように、キャッシュ読込部5を拡張することで容易に複数のストレージに対応することができる。
また、上記各実施形態では、乱数生成部4は乱数の種とブロック番号とで擬似乱数アルゴリズムを初期化して乱数データを生成している。この方法では、データの再現性はあるが、ブロックごとに擬似乱数アルゴリズムの種が異なることになる。しかし、計算の精度の問題やその他の都合により、同一の種からの擬似乱数アルゴリズムによる連続した乱数データが必要となる場合がある。この場合、キャッシュ生成部3では、キャッシュ乱数データを作成する際、先頭から全ての乱数データを乱数生成部4に計算させ、キャッシュする必要のあるブロックのみを記憶装置7の補助記憶キャッシュ保存領域に書き込むことで連続した乱数データを利用できる。
また、上記各実施形態は、特願2011−031611に記載の「仮想ファイルシステム」に組み合わせることができる。この仮想ファイルシステムは、ストレージシステムなどの性能評価に利用され、ファイルのデータを動的にCPUによって計算することで、処理の高速化を図っている。この仮想ファイルシステムに、本実施形態1及び2の技術を組み合わせた場合は、よりいっそうの処理の高速化が図られると考えられる。
また、上記各実施形態に記載の乱数処理装置1をモンテカルロ法などの乱数を用いたシミュレーションに利用することが考えられる。モンテカルロ法では乱数精度と試行回数とが重要であるが、特に試行回数を多くする場合、乱数アルゴリズムの計算コストが課題となる。これに対して、モンテカルロ法と乱数計算を高速化する本実施形態1又は2の乱数処理装置とを組み合わせれば、同じ計算時間で試行回数を増やすことが可能となり、計算コストが低減される。
また、上記各実施形態における乱数生成部4で使用されるアルゴリズムは、特定の種から同一データを再現できるデータ生成アルゴリズムであればよい。例えば、使用されるデータ生成アルゴリズムは、辞書データ、又は文法データ等を用いて自然言語風の擬似データを生成するアルゴリズムでも良いし、図形データ等を組み合わせて画像データを作成するアルゴリズムでも良い。つまり、本実施形態1及び2において、擬似乱数及び乱数データは、ランダムな数字の列に限定されるものではない。
上述した実施形態1において、記憶装置7へと格納されるブロックのブロック番号の特定方法について実施例1として説明する。例えば、予め設定した算出乱数データとキャッシュ乱数データとの利用比率が4:1の場合、キャッシュ生成部3は、5(=4+1)ブロックにつき1つのブロック、すなわち、ブロック番号0,5,10,15・・・に対応するブロックを記憶装置7に格納する。
上述した実施形態2の具体例について、図5を参照しつつ、実施例2として説明する。実施例2において、キャッシュ生成部3が1つのブロックを生成するために実際に掛かる時間yを1ms、キャッシュ生成部3が記憶装置7へ1つのブロックを書き込むのに実際に掛かる時間を3.5msとする。また、時刻をtで表し、処理を開始した時刻を0とする。
アプリケーションプログラムに擬似乱数を提供するための乱数処理装置であって、
乱数データを生成する、乱数生成部と、
前記乱数生成部に、予め、第1の乱数データをキャッシュデータとして生成させる、キャッシュ生成部と、
前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを前記乱数生成部に生成させ、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供する、キャッシュ読込部と、
を備えていることを特徴とする、乱数処理装置。
前記第1の乱数データ及び前記第2の乱数データは、それぞれ、複数のブロックから構成されており、
前記キャッシュ読込部は、前記第1の乱数データと前記第2の乱数データとを、両者のブロック数の比が設定された値となるように組み合わせる、付記1に記載の乱数処理装置。
前記第1の乱数データを格納するための記憶領域が設けられた記憶装置をさらに備え、
前記キャッシュ読込部は、前記乱数生成部が前記第2の乱数データを生成する際に掛かる時間と、前記キャッシュ読込部が前記記憶装置から前記第1の乱数データを読み込む際に掛かる時間とに基づいて、前記ブロック数の比を設定する、付記2に記載の乱数処理装置。
前記キャッシュ生成部は、設定された前記ブロックの数の比に基づいて、前記第1の乱数データを構成する各ブロックに、間隔をおいたブロック番号を付与し、
前記乱数生成部は、前記キャッシュ読込部が前記第1の乱数データを構成する各ブロックに付与されたブロック番号以外のブロック番号を要求した場合に当該ブロック番号の第2の乱数データのブロックを生成し、
前記キャッシュ読込部は、前記ブロック番号の順に、前記第1の乱数データ及び前記第2の乱数データを前記アプリケーションプログラムへ提供する、付記2又は3に記載の乱数処理装置。
アプリケーションプログラムに擬似乱数を提供するための方法であって、
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を有することを特徴とする、乱数処理方法。
前記第1の乱数データと前記第2の乱数データは、それぞれ、複数のブロックから構成されており、
前記(b)のステップにおいて、前記第1の乱数データと前記第2の乱数データとを、両者のブロック数の比が設定された値となるように組み合わせる、付記5に記載の乱数処理方法。
(c)前記第1の乱数データを格納するための記憶領域が設けられた記憶装置に前記第1の乱数データを格納するステップをさらに有し、
前記(b)のステップにおいて、前記第2の乱数データを生成する際に掛かる時間と、前記キャッシュ読込部が前記記憶装置から前記第1の乱数データを読み込む際に掛かる時間とに基づいて、前記ブロック数の比を設定する、付記6に記載の乱数処理方法。
前記(a)のステップにおいて、設定された前記ブロックの数の比に基づいて、前記第1の乱数データを構成するブロックに、間隔をおいたブロック番号を付与し、
前記(b)のステップにおいて、前記(a)のステップで付与されたブロック番号以外のブロック番号が要求された場合に当該ブロック番号の第2の乱数データを生成し、前記ブロック番号の順に、前記第1の乱数データ及び前記第2の乱数データを前記アプリケーションプログラムへと提供する、付記6又は7に記載の乱数処理方法。
アプリケーションプログラムへの擬似乱数の提供をコンピュータに実行させるためのプログラムであって、前記コンピュータに、
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を実行させることを特徴とする、プログラム。
前記第1の乱数データと前記第2の乱数データは、それぞれ、複数のブロックから構成されており、
前記(b)のステップにおいて、前記第1の乱数データと前記第2の乱数データとを、両者のブロック数の比が設定された値となるように組み合わせる、付記9に記載のプログラム。
(c)前記第1の乱数データを格納するための記憶領域が設けられた記憶装置に前記第1の乱数データを格納するステップを前記コンピュータにさらに実行させ、
前記(b)のステップにおいて、前記第2の乱数データを生成する際に掛かる時間と、前記キャッシュ読込部が前記記憶装置から前記第1の乱数データを読み込む際に掛かる時間とに基づいて、前記ブロック数の比を設定する、付記10に記載のプログラム。
前記(a)のステップにおいて、設定された前記ブロックの数の比に基づいて、前記第1の乱数データを構成するブロックに、間隔をおいたブロック番号を付与し、
前記(b)のステップにおいて、前記(a)のステップで付与されたブロック番号以外のブロック番号が要求された場合に当該ブロック番号の第2の乱数データを生成し、前記ブロック番号の順に、前記第1の乱数データ及び前記第2の乱数データを前記アプリケーションプログラムへと提供する、付記10又は11に記載のプログラム。
2 アプリケーションプログラム
3 キャッシュ生成部
4 乱数生成部
5 キャッシュ読込部
6 メモリ
7 記憶装置
110 コンピュータ
111 CPU
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
Claims (6)
- アプリケーションプログラムに擬似乱数を提供するための乱数処理装置であって、
乱数データを生成する、乱数生成部と、
前記乱数生成部に、予め、第1の乱数データをキャッシュデータとして生成させる、キャッシュ生成部と、
前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを前記乱数生成部に生成させ、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供する、キャッシュ読込部と、
を備えていることを特徴とする、乱数処理装置。 - 前記第1の乱数データ及び前記第2の乱数データは、それぞれ、複数のブロックから構成されており、
前記キャッシュ読込部は、前記第1の乱数データと前記第2の乱数データとを、両者のブロック数の比が設定された値となるように組み合わせる、請求項1に記載の乱数処理装置。 - 前記第1の乱数データを格納するための記憶領域が設けられた記憶装置をさらに備え、
前記キャッシュ読込部は、前記乱数生成部が前記第2の乱数データを生成する際に掛かる時間と、前記キャッシュ読込部が前記記憶装置から前記第1の乱数データを読み込む際に掛かる時間とに基づいて、前記ブロック数の比を設定する、請求項2に記載の乱数処理装置。 - 前記キャッシュ生成部は、設定された前記ブロックの数の比に基づいて、前記第1の乱数データを構成する各ブロックに、間隔をおいたブロック番号を付与し、
前記乱数生成部は、前記キャッシュ読込部が前記第1の乱数データを構成する各ブロックに付与されたブロック番号以外のブロック番号を要求した場合に当該ブロック番号の第2の乱数データのブロックを生成し、
前記キャッシュ読込部は、前記ブロック番号の順に、前記第1の乱数データ及び前記第2の乱数データを前記アプリケーションプログラムへ提供する、請求項2又は3に記載の乱数処理装置。 - アプリケーションプログラムに擬似乱数を提供するための方法であって、
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を有することを特徴とする、乱数処理方法。 - アプリケーションプログラムへの擬似乱数の提供をコンピュータに実行させるためのプログラムであって、前記コンピュータに、
(a)予め、第1の乱数データをキャッシュデータとして生成するステップと、
(b)前記アプリケーションプログラムの要求に応じて、前記第1の乱数データを読み込むとともに第2の乱数データを生成し、前記第1の乱数データと前記第2の乱数データとを組み合わせて、前記アプリケーションプログラムに提供するステップと、
を実行させることを特徴とする、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012036969A JP5953808B2 (ja) | 2012-02-23 | 2012-02-23 | 乱数処理装置、乱数処理方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012036969A JP5953808B2 (ja) | 2012-02-23 | 2012-02-23 | 乱数処理装置、乱数処理方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013171549A JP2013171549A (ja) | 2013-09-02 |
JP5953808B2 true JP5953808B2 (ja) | 2016-07-20 |
Family
ID=49265418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012036969A Expired - Fee Related JP5953808B2 (ja) | 2012-02-23 | 2012-02-23 | 乱数処理装置、乱数処理方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5953808B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6232303B2 (ja) * | 2014-01-31 | 2017-11-15 | 株式会社日立製作所 | 情報処理装置 |
JP6295742B2 (ja) * | 2014-03-13 | 2018-03-20 | 日本電気株式会社 | ストレージシステム |
KR102486888B1 (ko) * | 2022-05-30 | 2023-01-11 | 주식회사 베이스스톤홀딩스 | 양자난수 암호화키 생성방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3580737B2 (ja) * | 1999-08-30 | 2004-10-27 | 富士通株式会社 | 正規乱数生成装置および記録媒体 |
JP2001290634A (ja) * | 2000-04-04 | 2001-10-19 | Fuji Film Microdevices Co Ltd | 物理乱数発生装置及び物理乱数発生方法 |
-
2012
- 2012-02-23 JP JP2012036969A patent/JP5953808B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013171549A (ja) | 2013-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877757B2 (en) | Binding constants at runtime for improved resource utilization | |
US9921847B2 (en) | Tree-based thread management | |
US8533397B2 (en) | Improving performance in a cache mechanism by way of destaging data in partial strides | |
US10209922B2 (en) | Communication via a memory interface | |
US20130219135A1 (en) | Dynamic time reversal of a tree of images of a virtual hard disk | |
US20140304464A1 (en) | Methods and systems for performing deduplication in a data storage system | |
JP2020531994A (ja) | 圧縮メタデータを用いたテクスチャ常駐チェック | |
TW201626218A (zh) | 傳遞api的相依性的技術 | |
AU2018306114A1 (en) | Dynamic TRIM processing with disk caching | |
JP5953808B2 (ja) | 乱数処理装置、乱数処理方法、及びプログラム | |
US10121220B2 (en) | System and method for creating aliased mappings to minimize impact of cache invalidation | |
US9754561B2 (en) | Managing memory regions to support sparse mappings | |
JP5979966B2 (ja) | 回路設計支援装置及び回路設計支援方法及びプログラム | |
US20070079109A1 (en) | Simulation apparatus and simulation method | |
US10997077B2 (en) | Increasing the lookahead amount for prefetching | |
JP6243884B2 (ja) | 情報処理装置、プロセッサ、および情報処理方法 | |
JP2010237837A (ja) | ファイルシステム及びそのデータ再配置方法,プログラム | |
US9934094B2 (en) | Process for verification of randomly generated I/O requests | |
JP6254986B2 (ja) | 情報処理装置、アクセスコントローラ、および情報処理方法 | |
US9804968B2 (en) | Storage system and data writing method | |
JP7367365B2 (ja) | タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム | |
US10331369B2 (en) | Array control program, array control method, and array control apparatus | |
KR102277094B1 (ko) | 버퍼 캐시 관리 방법 및 상기 버퍼 캐시 관리 방법이 적용된 컴퓨팅 장치 | |
JP6891678B2 (ja) | ストレージ制御装置、およびストレージ制御プログラム | |
JP2018173786A (ja) | ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150108 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20150123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160530 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5953808 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |