JP2012014591A - モンテカルロ法の効率的な並列処理手法 - Google Patents
モンテカルロ法の効率的な並列処理手法 Download PDFInfo
- Publication number
- JP2012014591A JP2012014591A JP2010152357A JP2010152357A JP2012014591A JP 2012014591 A JP2012014591 A JP 2012014591A JP 2010152357 A JP2010152357 A JP 2010152357A JP 2010152357 A JP2010152357 A JP 2010152357A JP 2012014591 A JP2012014591 A JP 2012014591A
- Authority
- JP
- Japan
- Prior art keywords
- state variable
- thread
- storage unit
- random number
- generation storage
- 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.)
- Granted
Links
- 238000000342 Monte Carlo simulation Methods 0.000 title claims abstract description 70
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 155
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims description 61
- 238000004364 calculation method Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 6
- 238000004088 simulation Methods 0.000 abstract description 4
- 230000010354 integration Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 241001589086 Bellapiscis medius Species 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000329 molecular dynamics simulation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
モンテカルロ法を用いたシミュレーションあるいは数値積分のための効率的な並列処理手法を提供する。
【解決手段】
状態変数生成記憶部(481)と複数のスレッド(440、450、460、470)を用いて並列処理によりモンテカルロ法を実行する方法であって、状態変数生成記憶部(481)に排他ロックがかかっているか否かを一のスレッドにおいてプロセッサコアが判断するステップと、状態変数生成記憶部(481)に排他ロックをかけるステップと、状態変数生成記憶部(481)に記憶されている状態変数を順次スキップ処理するステップと、排他ロックを解除するステップとを含み、前記の各ステップを他のスレッドにおいても順次実行してゆく方法である。
【選択図】 図4
Description
図1は、従来技術(以下、従来技術1とも呼ぶ。)として、4個のスレッドを有する並列処理システムを用いて並列処理を行う場合の各スレッドの試行番号の担当を示す図である。横軸は第1スレッドから第4スレッドを示しており、縦軸は時間tを示している。そして、符号Aは、後続で行う試行に用いる乱数の生成処理を示している。符号Bは、各試行の実行処理を示している。符号Bの後に続くかっこ書きの数字は、試行番号である。符号Cは、後述する乱数捨象処理もしくは状態変数のスキップ処理を示している。
上記の方法を改善したものが特許文献1に記載されている。特許文献1によれば、金融工学の種々の計算におけるモンテカルロ法において、各スレッドが担当する試行回数を均等に割り当てるのではなく、後続の試行を担当するスレッドの試行回数を少なくすることにより、各スレッドの処理負荷の均一化を図るように改善されている。その様子を図2に示している。図1と同様に、符号Aは、後続で行うモンテカルロ法に用いる乱数生成処理を示している。符号Bは、試行の実行処理を示している。符号Bの後に続くかっこ書きの数字は、試行番号である。符号Cは、乱数捨象処理を示している。
450、460、470が状態変数生成記憶部481へアクセスできることとなる。
以下、モンテカルロ法を用いて、半径0.5の円の面積を求める実施例について説明する。まず、図9は、モンテカルロ法を並列にではなく、逐次的に行うプログラム例である。ここでは、プログラミング言語としてC++言語を用いる。図9に示されているプログラムの各行の左側に示されている「1」、「2」、・・・、「20」は、プログラムの行番号を表すものであって、プログラム自体を構成するものではない。
410 入力装置
420 表示装置
430 並列処理制御部
440 第1スレッド
450 第2スレッド
460 第3スレッド
470 第4スレッド
441、451、461、471 試行回数計数部
442、452、462、472 排他ロック制御部
443、453、463、473 状態変数取得部
445、455、465、475 乱数生成部
446、456、466、476 試行実行部
447、457、467、477 ローカル記憶部
480 グローバル記憶部
481 状態変数生成記憶部
482 状態変数スキップ処理部
490 結果出力部
Claims (13)
- コンピュータによるモンテカルロ法の実行を状態変数生成記憶部と複数のスレッドを用いて並列処理する並列処理方法であって、
状態変数を状態変数生成記憶部に記憶するステップと、
一のスレッドのプロセッサコアが、排他制御のもと前記一のスレッドのプロセッサコアのみがアクセスできる状態で、前記状態変数生成記憶部に記憶されている状態変数に対し、所定の回数にわたり順次スキップ処理と変換処理を行って、乱数を生成する乱数生成ステップと、
前記一のスレッドのプロセッサコアが、前記生成した乱数を用いて前記一のスレッドに割り当てられた試行の演算を行う試行演算ステップと
を含み、前記乱数生成ステップと試行演算ステップを他のスレッドにおいても並行して順次実行してゆく並列処理方法。 - 前記乱数生成ステップが、
乱数を生成するために用いる状態変数が記憶されている状態変数生成記憶部に排他ロックがかかっているか否かを一のスレッドにおいてプロセッサコアが判断するステップと、
前記状態変数生成記憶部に排他ロックがかかっていない場合には、前記一のスレッドのプロセッサコアが前記状態変数生成記憶部に排他ロックをかけるステップと、
前記一のスレッドのプロセッサコアが、前記状態変数生成記憶部に記憶されている状態変数に対し、所定の回数にわたり順次スキップ処理と変換処理を行う処理ステップと、
前記一のスレッドのプロセッサコアが前記状態変数生成記憶部に対する排他ロックを解除するステップと
を含む請求項1に記載の並列処理方法。 - コンピュータによるモンテカルロ法の実行を状態変数生成記憶部と複数のスレッドを用いて並列処理する並列処理方法であって、
状態変数を状態変数生成記憶部に記憶するステップと、
一のスレッドのプロセッサコアが、排他制御のもと前記一のスレッドのプロセッサコアのみがアクセスできる状態で、前記状態変数生成記憶部に記憶されている状態変数を取得するとともに、該状態変数に対し、所定の回数にわたり順次スキップ処理を行う状態変数スキップ処理ステップと、
前記一のスレッドのプロセッサコアが、前記取得した状態変数に対し、所定の回数にわたり変換処理とスキップ処理を行って乱数を生成するステップと、
前記一のスレッドのプロセッサコアが、前記生成した乱数を用いて前記一のスレッドに割り当てられた試行の演算を行う試行演算ステップと
を含み、前記各ステップを他のスレッドにおいても並行して順次実行してゆく並列処理方法。 - 前記状態変数スキップ処理ステップが、
乱数を生成するために用いる状態変数が記憶されている状態変数生成記憶部に排他ロックがかかっているか否かを一のスレッドにおいてプロセッサコアが判断するステップと、
前記状態変数生成記憶部に排他ロックがかかっていない場合には、前記一のスレッドのプロセッサコアが前記状態変数生成記憶部に排他ロックをかけるステップと、
前記一のスレッドのプロセッサコアが、前記状態変数生成記憶部から状態変数の値を取得するステップと、
前記一のスレッドのプロセッサコアが、前記状態変数生成記憶部に記憶されている状態変数に対し、所定の回数にわたり順次スキップ処理を行う処理ステップと、
前記一のスレッドのプロセッサコアが、前記状態変数生成記憶部に対する排他ロックを解除するステップと
を含む請求項3に記載の並列処理方法。 - 複数の債権を含むポートフォリオの信用リスク量を計測する方法であって、請求項1〜4のいずれか一項に記載の方法を用いてモンテカルロ法を実行することにより信用リスク量を計測する方法。
- 請求項1〜4のいずれか一項に記載の方法を用いてモンテカルロ法を実行することにより、金融市場の変動によって生ずる市場リスク量を計測する方法。
- 金融市場の変化をモデル化し、請求項1〜4のいずれか一項に記載の方法を用いてモンテカルロ法を実行することにより、金融商品の価格を算出する方法。
- コンピュータによるモンテカルロ法を状態変数生成記憶部と複数のスレッドを用いて並列処理により実行する並列処理システムであって、
前記複数のスレッドで共有される、乱数を生成するために用いる状態変数が記憶されている状態変数生成記憶部と、
前記状態変数生成記憶部に記憶されている状態変数に対し、所定の回数にわたり順次変換処理とスキップ処理を行って乱数を生成する乱数生成部と、
各スレッドについて、前記状態変数生成記憶部に排他ロックをかけるか、あるいは排他ロックを解除する排他ロック制御部と、
前記乱数生成部で生成された乱数を用いて試行の演算を行う演算処理実行部と
を備える並列処理システム。 - コンピュータによるモンテカルロ法を状態変数生成記憶部と複数のスレッドを用いて並列処理することにより実行する並列処理システムであって、
前記複数のスレッドで共有される、乱数を生成するために用いる状態変数が記憶されている状態変数生成記憶部と、
前記状態変数生成記憶部に記憶されている状態変数に対し、所定の回数にわたり順次スキップ処理を行う状態変数スキップ処理部と、
各スレッドについて、前記状態変数生成記憶部に排他ロックをかけるか、あるいは排他ロックを解除する排他ロック制御部と、
前記状態変数生成記憶部から状態変数の値を取得してメモリに保存する状態変数取得部と、
メモリに保存されている状態変数に対して、所定の回数にわたり変換処理とスキップ処理を行い、乱数を生成する乱数生成部と、
前記乱数生成部で生成された乱数を用いて試行の演算を行う演算処理実行部と
を備える並列処理システム。 - 複数の債権を含むポートフォリオの信用リスク量を計測する請求項8または9に記載の並列処理システム。
- 金融市場の変動によって生ずる市場リスク量を計測する請求項8または9に記載の並列処理システム。
- 金融商品の価格を算出するために、金融市場の変化をモデル化し、並列処理システムを用いてモンテカルロ法を実行する請求項8または9に記載の並列処理システム。
- コンピュータに請求項1〜7のいずれかに記載の方法の各ステップを実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010152357A JP4950325B2 (ja) | 2010-07-02 | 2010-07-02 | モンテカルロ法の効率的な並列処理手法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010152357A JP4950325B2 (ja) | 2010-07-02 | 2010-07-02 | モンテカルロ法の効率的な並列処理手法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012014591A true JP2012014591A (ja) | 2012-01-19 |
JP4950325B2 JP4950325B2 (ja) | 2012-06-13 |
Family
ID=45600911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010152357A Active JP4950325B2 (ja) | 2010-07-02 | 2010-07-02 | モンテカルロ法の効率的な並列処理手法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4950325B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014123272A (ja) * | 2012-12-21 | 2014-07-03 | Fujitsu Ltd | シミュレーション方法、プログラム、及び情報処理システム |
JP2014222420A (ja) * | 2013-05-13 | 2014-11-27 | 株式会社メガチップス | 半導体記憶装置及びデータ処理システム |
JP2016184307A (ja) * | 2015-03-26 | 2016-10-20 | 三菱電機株式会社 | 並列シミュレーション装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04199225A (ja) * | 1990-11-26 | 1992-07-20 | Hitachi Ltd | 計算機における算術乱数の生成方法 |
JPH06202856A (ja) * | 1991-08-23 | 1994-07-22 | Fujitsu Ltd | 並列計算機システムにおける乱数列生成処理方式 |
JPH08339294A (ja) * | 1995-04-11 | 1996-12-24 | Nec Corp | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 |
-
2010
- 2010-07-02 JP JP2010152357A patent/JP4950325B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04199225A (ja) * | 1990-11-26 | 1992-07-20 | Hitachi Ltd | 計算機における算術乱数の生成方法 |
JPH06202856A (ja) * | 1991-08-23 | 1994-07-22 | Fujitsu Ltd | 並列計算機システムにおける乱数列生成処理方式 |
JPH08339294A (ja) * | 1995-04-11 | 1996-12-24 | Nec Corp | マルチプロセッサシステムにおける乱数発生装置および乱数発生方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014123272A (ja) * | 2012-12-21 | 2014-07-03 | Fujitsu Ltd | シミュレーション方法、プログラム、及び情報処理システム |
JP2014222420A (ja) * | 2013-05-13 | 2014-11-27 | 株式会社メガチップス | 半導体記憶装置及びデータ処理システム |
JP2016184307A (ja) * | 2015-03-26 | 2016-10-20 | 三菱電機株式会社 | 並列シミュレーション装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4950325B2 (ja) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | A framework for general sparse matrix–matrix multiplication on GPUs and heterogeneous processors | |
US10331666B1 (en) | Apparatus and method for parallel processing of a query | |
KR101839544B1 (ko) | 이종 코어의 자동 부하 균형 | |
Singh et al. | Energy-efficient run-time mapping and thread partitioning of concurrent OpenCL applications on CPU-GPU MPSoCs | |
Fonseca et al. | A multi-dag model for real-time parallel applications with conditional execution | |
US9152462B2 (en) | Parallel processing device, parallel processing method, optimization device, optimization method and computer program | |
Zhang et al. | Automated profiling and resource management of pig programs for meeting service level objectives | |
CN103262036A (zh) | 非阻塞无等待数据并行调度器 | |
CN101398753A (zh) | 用于执行扫描运算的系统、方法及计算机程序产品 | |
CN102708009B (zh) | 一种基于cuda实现多任务共享gpu的方法 | |
JP5059928B2 (ja) | Gpuを用いた乱数生成処理の並列化 | |
Naghibzadeh | Modeling and scheduling hybrid workflows of tasks and task interaction graphs on the cloud | |
CN110597606A (zh) | 一种高速缓存友好的用户级线程调度方法 | |
Nishida et al. | Accelerating the dynamic programming for the optimal polygon triangulation on the GPU | |
US9965343B2 (en) | System and method for determining concurrency factors for dispatch size of parallel processor kernels | |
Egielski et al. | Massive atomics for massive parallelism on GPUs | |
Gmys et al. | A GPU-based Branch-and-Bound algorithm using Integer–Vector–Matrix data structure | |
Beaumont et al. | Optimal GPU-CPU offloading strategies for deep neural network training | |
CN115934102B (zh) | 通用寄存器动态分配方法、装置、计算机设备和存储介质 | |
JP4950325B2 (ja) | モンテカルロ法の効率的な並列処理手法 | |
Martinez et al. | Quantifying WCET reduction of parallel applications by introducing slack time to limit resource contention | |
Davidović et al. | Parallel local search to schedule communicating tasks on identical processors | |
Xue et al. | Iterational retiming with partitioning: Loop scheduling with complete memory latency hiding | |
Jiang et al. | Exploiting potential of deep neural networks by layer-wise fine-grained parallelism | |
Cardoen et al. | A PDEVS simulator supporting multiple synchronization protocols: implementation and performance analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120308 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150316 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4950325 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |