JP2003099411A - Monte carlo simulation parallel processing system, method, program and recording medium - Google Patents

Monte carlo simulation parallel processing system, method, program and recording medium

Info

Publication number
JP2003099411A
JP2003099411A JP2001290631A JP2001290631A JP2003099411A JP 2003099411 A JP2003099411 A JP 2003099411A JP 2001290631 A JP2001290631 A JP 2001290631A JP 2001290631 A JP2001290631 A JP 2001290631A JP 2003099411 A JP2003099411 A JP 2003099411A
Authority
JP
Japan
Prior art keywords
simulation
parallel processing
monte carlo
simulations
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001290631A
Other languages
Japanese (ja)
Other versions
JP4032339B2 (en
Inventor
Masahiko Ono
征彦 小野
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.)
Hitachi Information Systems Ltd
Original Assignee
Hitachi Information Systems 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 Hitachi Information Systems Ltd filed Critical Hitachi Information Systems Ltd
Priority to JP2001290631A priority Critical patent/JP4032339B2/en
Publication of JP2003099411A publication Critical patent/JP2003099411A/en
Application granted granted Critical
Publication of JP4032339B2 publication Critical patent/JP4032339B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To accelerate parallel processing using Monte Carlo simulation. SOLUTION: When dividing Monte Carlo simulation by the number of the times of simulation, parallel processing is performed including the generation of a random number. Namely, the random number is generated in the first and second processes 11a and 12a of respective server No.1 device 11 and server No.2 device. In addition, in consideration of a processing time for generating extra random numbers in the second process 12a in this case, the number of the times of simulation to be shared by the first and second processes 11a and 12a is adjusted. For example, the first process 11a takes the charge of 10 to 600 thousands of times of simulation and the second process 12a takes the charge of 600 thousands to one million of times of simulation.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、モンテカルロシミ
ュレーションを並列処理化する技術に係わり、特に、モ
ンテカルロシミュレーションによる金融リスク計量等を
高速処理化するのに好適なモンテカルロシミュレーショ
ン並列処理技術に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for parallelizing a Monte Carlo simulation, and more particularly to a Monte Carlo simulation parallel processing technique suitable for speeding up financial risk metric or the like by Monte Carlo simulation.

【0002】[0002]

【従来の技術】現在、例えば金融機関において、コンピ
ュータを用いて金融リスクを計量化する技術としてモン
テカルロシミュレーションが使用されている。このモン
テカルロシミュレーションとは、乱数を使用したシミュ
レーションのことである。
2. Description of the Related Art Currently, for example, in a financial institution, Monte Carlo simulation is used as a technique for quantifying financial risk using a computer. This Monte Carlo simulation is a simulation that uses random numbers.

【0003】このモンテカルロシミュレーションを金融
リスク計量化にどのように使用するかを以下に説明す
る。
The use of this Monte Carlo simulation for financial risk quantification is described below.

【0004】まず、乱数を発生させ、次に、その乱数に
より、コンピュータにおいて、将来の信用格付変動、金
利変動、為替変動、株価変動を予測計算し、損失額を算
出する。さらに、この処理を多数回(数千回〜数万回)
繰り返す。そして、算出した損失額を額の多い順にソー
トし、最大損失額を割り出す。
First, a random number is generated, and then the computer uses the random number to predict and calculate future credit rating fluctuations, interest rate fluctuations, foreign currency fluctuations, and stock price fluctuations to calculate the loss amount. Furthermore, this processing is performed many times (thousands to tens of thousands of times).
repeat. Then, the calculated loss amounts are sorted in descending order of amount, and the maximum loss amount is calculated.

【0005】この最大損失額は最悪の状況下で発生し得
る損失額を意味し、割り出した最大損失額を考慮して、
保有資産内容や取引内容を見直すことができる。この最
大損失額の割り出しには、通常は「99%点〜95%
点」を使用する。
This maximum loss amount means a loss amount that can occur in the worst situation. Considering the calculated maximum loss amount,
You can review the contents of owned assets and the contents of transactions. This maximum loss is usually calculated by "99% point to 95%
Use "point".

【0006】「99%点」は、例えばシミュレーション
回数を1万回とすると、額の多いほうから100番目
(1万回×1%)の損失額を指す。このことは、99%
の確率で、現実の損失額が予測した99%点の額内に収
まるはずであることを意味する。「95%点」について
も同様である。
The "99% point" refers to the 100th (10,000 times × 1%) loss amount from the largest amount, assuming that the number of simulations is 10,000. This is 99%
With the probability of, it means that the actual loss amount should fall within the predicted 99% point amount. The same applies to the "95% point".

【0007】ところで近年、より悪い条件下での損失額
を予測しようとして「99.9%点」を使用しようとす
る動きがある。しかし、シミュレーション回数が数万回
程度では、その数万回の内、数回しか「99.9%点」
付近で発生しない。この場合、使用する乱数によって、
「99.9%点」の損失額が大きくぶれる。
By the way, in recent years, there is a tendency to use the "99.9% point" in order to predict the loss amount under worse conditions. However, when the number of simulations is about tens of thousands, only a few times out of the tens of thousands of "99.9% points"
Does not occur in the vicinity. In this case, depending on the random number used,
The loss of "99.9% point" is greatly shaken.

【0008】これに対処して、「99.9%点」の損失
額を精緻に予測するためには、コンピュータでのシミュ
レーション回数を数百万回まで増やす必要がある。
In order to cope with this and to precisely predict the loss amount of "99.9% point", it is necessary to increase the number of simulations on the computer to several millions.

【0009】また、従来のコンピュータによる金融リス
ク計量化は、信用リスクと金利リスクおよび為替リスク
のそれぞれを個別に計量化するもので、信用リスクと金
利リスク等の複合リスクには対応していないことが多
い。
Further, the conventional financial risk quantification by a computer quantifies credit risk, interest rate risk and foreign exchange risk individually, and does not deal with compound risk such as credit risk and interest rate risk. There are many.

【0010】しかし現実には、「日本円下落」と「国内
企業信用格付下落」さらに「国内金利上昇」が同時に起
きることもあり得るので、複合リスクへの対応は不可欠
である。
However, in reality, there is a possibility that "the yen depreciation", "the domestic corporate credit rating decline" and "the domestic interest rate rise" may occur at the same time, so it is essential to deal with the compound risk.

【0011】以上のとおり、モンテカルロシミュレーシ
ョンを使ったコンピュータによる金融リスク計量化にお
いては、シミュレーション回数の増加と複合リスクへの
対応が不可欠である。
As described above, in computerized financial risk quantification using Monte Carlo simulation, it is indispensable to increase the number of simulations and deal with complex risks.

【0012】しかし、シミュレーション回数の増加と複
合リスクへの対応は、コンピュータでの計算量の増加、
処理時間の増加をもたらす。
However, increasing the number of simulations and dealing with complex risks requires increasing the amount of calculation on the computer,
This results in increased processing time.

【0013】このような問題に対処して、処理時間短縮
を図るための従来技術として、(A)取引明細と保有債
権を分割して並列処理化する技術や、(B)シミュレー
ション回数で分割して、将来の信用格付変動、金利変
動、為替変動、株価変動の予測、損失額算出を並列処理
化する技術(尚、この技術では、乱数発生処理は1台の
コンピュータで行う)がある。
As a conventional technique for dealing with such a problem and shortening the processing time, (A) a technique for dividing transaction details and held debts into parallel processing, and (B) dividing by the number of simulations. There is a technology for parallelizing future credit rating fluctuations, interest rate fluctuations, foreign currency fluctuations, stock price fluctuations, and loss calculation (in this technology, random number generation processing is performed by one computer).

【0014】しかし、これらの技術には、それぞれ下記
の問題点がある。
However, each of these techniques has the following problems.

【0015】従来技術(A)においては、各並列プロセ
ス毎に算出した損失額を、最終的には1プロセスに転送
して集計する必要がある。この場合、並列度を上げるに
従って、転送されるデータ量が増加するので、データ転
送が処理性能上のボトルネックになる。特に、プロセス
間のデータ転送を、直接プロセス間で行わず、データベ
ースを介するシステムにおいては、致命的なボトルネッ
クとなる。
In the prior art (A), it is necessary to finally transfer the loss amount calculated for each parallel process to one process and total it. In this case, the amount of data to be transferred increases as the degree of parallelism increases, so that data transfer becomes a bottleneck in processing performance. In particular, in a system in which data transfer between processes is not performed directly between processes but via a database, it becomes a fatal bottleneck.

【0016】これに対して、従来技術(B)において
は、各並列プロセスが全取引明細および全保有債権を処
理するので、各並列プロセス毎に算出した損失額を、最
終的に、1プロセスに転送する必要がない。しかし、こ
の技術では、使用する乱数が多くなると、乱数発生、転
送がボトルネックとなる。
On the other hand, in the prior art (B), since each parallel process processes all transaction details and all held credits, the loss amount calculated for each parallel process is finally converted into one process. No need to transfer. However, in this technique, when the number of random numbers used increases, random number generation and transfer become a bottleneck.

【0017】なぜなら、この技術(B)においては、乱
数発生に1台しかコンピュータを割り当ておらず、この
コンピュータで発生させた乱数を各コンピュータに転送
しなくてはならないからである。
This is because, in this technique (B), only one computer is assigned to generate random numbers, and the random numbers generated by this computer must be transferred to each computer.

【0018】[0018]

【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、モンテカルロシミュレーション
を使って例えば金融リスク計量化を並列処理化する場
合、高速化のボトルネックとなるデータ転送を回避する
ことができない点である。
The problem to be solved by the present invention is to avoid data transfer, which is a bottleneck for speeding up, in the conventional technique when, for example, parallelizing financial risk quantification using Monte Carlo simulation. This is a point that cannot be done.

【0019】本発明の目的は、これら従来技術の課題を
解決し、モンテカルロシミュレーションを使った並列処
理化を高速化して、例えば、金融リスク計量化のシミュ
レーション回数の増加および複合リスクへの対応を可能
とし、コンピュータを用いた金融リスク計量化における
予測精度を向上させることである。
The object of the present invention is to solve these problems of the prior art and to speed up parallel processing using Monte Carlo simulation, and to increase the number of simulations of financial risk quantification and cope with complex risks, for example. Then, it is to improve the prediction accuracy in financial risk quantification using a computer.

【0020】[0020]

【課題を解決するための手段】上記目的を達成するた
め、本発明では、モンテカルロシミュレーションをシミ
ュレーション回数で分割する際、乱数発生も含めて並列
処理化する。すなわち、各並列処理プロセスにおいて乱
数を発生させる。さらに、この際、単純な分割であれ
ば、例えば、第1プロセスでシミュレーション回数1〜
50万回を分担し、第2プロセスでシミュレーション回
数50万1〜100万回を分担することになるが、この
場合、第2プロセスでは1〜50万回分の乱数も発生さ
せることになるので、本発明では、このような第2プロ
セスにおいては余分に乱数を発生させる処理時間を考慮
して、例えば、第1プロセスでシミュレーション回数1
〜60万回を分担し、第2プロセスでシミュレーション
回数60万1〜100万回を分担するようにする。この
ように、各プロセスにおいて余分に乱数を発生させる処
理時間を考慮して、各並列処理プロセスで分担するシミ
ュレーション回数を調整することにより、各並列処理プ
ロセス間の処理時間が均一化し、全体の処理時間をさら
に短縮することができる。
In order to achieve the above object, in the present invention, when the Monte Carlo simulation is divided by the number of simulations, random number generation is performed and parallel processing is performed. That is, a random number is generated in each parallel processing process. Further, in this case, if the division is simple, for example, the number of simulations 1 to
The second process will share 500,000 times, and the second process will share 500,000 to 1,000,000 simulations. In this case, the second process will also generate random numbers for 1 to 500,000 times. In the present invention, in consideration of the processing time for generating an extra random number in such a second process, for example, the number of simulations is 1 in the first process.
.About.600,000 times, and the second process shares 600,000 to 1,000,000 simulation times. In this way, by considering the processing time for generating extra random numbers in each process and adjusting the number of simulations shared by each parallel processing process, the processing time between each parallel processing process is made uniform, and the overall processing is performed. The time can be further shortened.

【0021】[0021]

【発明の実施の形態】以下、本発明の実施の形態を、図
面により詳細に説明する。図1は、本発明に係わるモン
テカルロシミュレーション並列処理システムの構成例を
示すブロック図であり、図2は、図1におけるモンテカ
ルロシミュレーション並列処理システムの本発明に係わ
る処理手順例を示すフローチャート、図3は、図1にお
ける各サーバ機のハードウェア構成例を示すブロック図
である。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described in detail below with reference to the drawings. 1 is a block diagram showing a configuration example of a Monte Carlo simulation parallel processing system according to the present invention, FIG. 2 is a flow chart showing an example of a processing procedure according to the present invention of the Monte Carlo simulation parallel processing system in FIG. 1, and FIG. 2 is a block diagram showing a hardware configuration example of each server machine in FIG. 1. FIG.

【0022】図3において、31はCRT(Cathode Ra
y Tube)やLCD(Liquid CrystalDisplay)等からな
る表示装置、32はキーボードやマウス等からなる入力
装置、33はHDD(Hard Disk Drive)等からなる外
部記憶装置、34はCPU(Central Processing Uni
t)34aや主メモリ34bおよび入出力インタフェー
ス34c等を具備してコンピュータ処理を行なう情報処
理装置、35は本発明に係わるプログラムやデータを記
録したCD−ROM(Compact Disc-Read Only Memor
y)もしくはDVD(Digital Video Disc/Digital Vers
atile Disc)等からなる光ディスク、36は光ディスク
35に記録されたプログラムおよびデータを読み出すた
めの駆動装置、37はLAN(Local Area Network)カ
ード等からなる通信装置である。
In FIG. 3, 31 is a CRT (Cathode Ra
y Tube) or LCD (Liquid Crystal Display) or the like, 32 is an input device such as a keyboard or mouse, 33 is an external storage device such as HDD (Hard Disk Drive), and 34 is a CPU (Central Processing Uni
t) An information processing device for performing computer processing, which is provided with 34a, a main memory 34b, an input / output interface 34c and the like, and 35 is a CD-ROM (Compact Disc-Read Only Memor) in which programs and data according to the present invention are recorded
y) or DVD (Digital Video Disc / Digital Vers
An optical disc made of a tile disc) or the like, a drive device 36 for reading programs and data recorded on the optical disc 35, and a communication device 37 made of a LAN (Local Area Network) card or the like.

【0023】光ディスク35に格納されたプログラムお
よびデータを情報処理装置34により駆動装置36を介
して外部記憶装置33内にインストールした後、外部記
憶装置33から主メモリ34bに読み込みCPU34a
で処理することにより、情報処理装置34内に図1に示
す各サーバの各機能が構成される。
After the program and data stored in the optical disk 35 are installed in the external storage device 33 by the information processing device 34 via the drive device 36, the program and data are read from the external storage device 33 into the main memory 34b and the CPU 34a is read.
1 is configured in the information processing device 34 by processing.

【0024】図1において、1はクライアント機、11
はサーバ1号機、12はサーバ2号機であり、本例のシ
ステムのオペレータは、クライアント機1を介して、シ
ミュレーションの指示操作を行い、サーバ1号機11と
サーバ2号機12においては、クライアント機1から指
示されたシミュレーションを並列処理する。
In FIG. 1, 1 is a client machine and 11
Is a server No. 1 and 12 is a server No. 2. The operator of the system of the present example performs a simulation instruction operation via the client unit 1, and the server No. 1 unit 11 and the server No. 2 unit 12 have the client unit 1 Parallel processing of the simulation instructed by.

【0025】本例においては、クライアント機1には、
並列処理制御部1aとソート処理部1b、データベース
(図中「取引明細、保有債権のデータベース」と記載)
1c、データベース(図中「損失額のデータベース」と
記載)1d、入力装置1e、表示装置1fが設けられて
おり、サーバ1号機11とサーバ2号機12には、第1
プロセス11aと第2プロセス12a(図中「モンテカ
ルロシミュレーション並列処理 第1,第2プロセス」
と記載)が実装される。
In this example, the client machine 1 has
Parallel processing control unit 1a, sort processing unit 1b, database (described as "transaction details, database of held debt" in the figure)
1c, a database (described as "a loss amount database" in the figure) 1d, an input device 1e, and a display device 1f are provided, and the first server 11 and the second server 12 have a first server.
Process 11a and second process 12a (“Monte Carlo simulation parallel processing first and second process” in the figure)
Will be implemented).

【0026】このような構成において、本例のシステム
では、モンテカルロシミュレーションをシミュレーショ
ン回数で分割するが、従来技術の(B)で説明した技術
とは異なり、乱数発生も含めて並列処理化する。
In the system of this example having such a configuration, the Monte Carlo simulation is divided by the number of simulations, but unlike the technique described in the prior art (B), parallel processing is performed including random number generation.

【0027】つまり、従来技術(B)では、1プロセス
(例えば、クライアント機1)で乱数発生をさせ、発生
させた乱数を、各並列処理プロセス(例えば、サーバ1
号機11とサーバ2号機12)に転送していたが、本例
では、各並列処理プロセス、すなわち、サーバ1号機1
1とサーバ2号機12において乱数を発生させる。
That is, in the prior art (B), one process (for example, the client machine 1) generates a random number, and the generated random number is used for each parallel processing process (for example, the server 1).
No. 11 and server No. 2) were transferred to each parallel processing process, that is, server No. 1 1
A random number is generated in the server 1 and the server 2-12.

【0028】この場合、例えば、サーバ1号機の第1プ
ロセス11aでシミュレーション回数1〜50万回を分
担し、サーバ2号機の第2プロセス12aでシミュレー
ション回数50万1〜100万回を分担した場合、第2
プロセス11aは1〜50万回分の乱数も発生させるこ
とになる。
In this case, for example, the first process 11a of the first server shares the simulation count of 1 to 500,000 times, and the second process 12a of the second server shares the simulation count of 501 to 1,000,000. , Second
The process 11a will also generate a random number for 100,000 to 500,000 times.

【0029】これは、現在の金融機関等においてのモン
テカルロシミュレーションでは、物理乱数を使わず、算
術乱数(擬似乱数)を使用することが多いことと関係す
る。
This is related to the fact that in the current Monte Carlo simulation in financial institutions and the like, arithmetic random numbers (pseudo random numbers) are often used instead of using physical random numbers.

【0030】すなわち、そもそも算術乱数は、ランダム
な物理現象(例:サイコロ)を利用して発生させる物理
乱数と異なり、前回の乱数を算術式に代入して、新たな
乱数を発生させるというものである。従って、算術乱数
では、第2のプロセス12aにおいて、1〜50万回分
の乱数を発生させないと、50万1回以降の乱数を算出
できない。
In other words, arithmetic random numbers are different from physical random numbers generated by utilizing a random physical phenomenon (for example, dice) in that the previous random numbers are substituted into the arithmetic expression to generate new random numbers. is there. Therefore, with the arithmetic random number, the random number of 500,000 times or more cannot be calculated unless the random number of 1 to 500,000 times is generated in the second process 12a.

【0031】しかし、このように、50万回分の乱数を
余分に発生させるほうが、従来技術(B)のように50
万回分の乱数を転送するよりも、全体としての処理時間
は短くなる。
However, it is preferable to generate an extra random number for 500,000 times as in the prior art (B).
The processing time as a whole is shorter than that of transferring the random number for ten thousand times.

【0032】さらに、本例では、このように、乱数の発
生処理を並列化するだけではなく、第2プロセス12a
において余分に乱数を発生させる処理時間を考慮して、
第1プロセス11aと第2プロセス12aで分担するシ
ミュレーション回数を調整することにより、第1,第2
プロセス11a,12a間の処理時間を均一化し、シス
テム全体の処理時間の短縮を図っている。以下、その説
明を行う。
Further, in this example, not only is the random number generation process parallelized in this way, but the second process 12a is also used.
Considering the processing time to generate an extra random number in
By adjusting the number of simulations shared by the first process 11a and the second process 12a,
The processing time between the processes 11a and 12a is made uniform to reduce the processing time of the entire system. The description will be given below.

【0033】上述したように、各並列処理プロセス(サ
ーバ1号機11とサーバ2号機12の第1,第2プロセ
ス11a,12a)に均等にシミュレーション回数を割
り振ると、サーバ2号機12における第2プロセス12
aにおいては、余分に乱数を発生させているので、サー
バ1号機11における第1プロセス11aとの処理時間
に差が生じる。
As described above, if the number of simulations is evenly allocated to the respective parallel processing processes (the first and second processes 11a and 12a of the server No. 11 and the server No. 12), the second process in the server No. 12 is distributed. 12
Since a random number is additionally generated in a, a processing time difference with the first process 11a in the server No. 1 machine 11 occurs.

【0034】ここで、システム全体でのシミュレーショ
ンの処理時間を考えると、各並列処理プロセスの処理時
間の内、最も長い処理時間がシステム全体での処理時間
となる。従って、各並列処理プロセスの処理時間の差が
大きい場合、シミュレーションの全体の処理時間を効果
的に短縮できず、その結果、並列処理化の効率を最大限
まで発揮できない。
Considering the processing time of the simulation in the entire system, the longest processing time among the processing times of the respective parallel processing processes is the processing time in the entire system. Therefore, if there is a large difference in the processing time between the parallel processing processes, the overall processing time of the simulation cannot be effectively reduced, and as a result, the efficiency of parallel processing cannot be maximized.

【0035】各並列処理プロセスの処理時間の差が大き
い場合として、第1に、高度な算術式の乱数を使用して
いるため、シミュレーション処理時間における乱数発生
処理時間の割合が大きい場合が想定できる。
As a case where there is a large difference in processing time between parallel processing processes, firstly, it is possible to assume a case where the ratio of the random number generation processing time to the simulation processing time is large because the random numbers of advanced arithmetic expressions are used. .

【0036】また、第2に、更なる高速化を狙って、サ
ーバの台数を増やし並列度を上げた場合も想定できる。
すなわち、このように並列度を上げると、最後の並列処
理プロセスにおいて余分に発生させる乱数の個数が多く
なり、その分の乱数発生処理時間が増加するため、各並
列処理プロセスの処理時間の差が大きくなる。
Secondly, it can be assumed that the number of servers is increased and the parallelism is increased in order to further increase the speed.
That is, if the degree of parallelism is increased in this way, the number of random numbers to be additionally generated in the last parallel processing process increases, and the random number generation processing time increases by that amount. growing.

【0037】このような問題に対処するためには、各並
列処理プロセスの処理時間を均一にすることが有効であ
る。
In order to deal with such a problem, it is effective to make the processing time of each parallel processing process uniform.

【0038】そこで本例では、このように余分に乱数を
発生させる処理時間を考慮して、サーバ1号機11にお
ける第1プロセス11aとサーバ2号機12における第
2プロセス12aのそれぞれで分担するシミュレーショ
ン回数を調整する。
Therefore, in this example, the number of simulations shared by each of the first process 11a in the first server 11 and the second process 12a in the second server 12 is taken into consideration in consideration of the processing time for generating an extra random number. Adjust.

【0039】例えば、本例では、サーバ1号機11にお
ける第1プロセス11aでシミュレーション回数1〜6
0万回、サーバ2号機12における第2プロセス12a
でシミュレーション回数60万1〜100万回を分担す
る。
For example, in this example, the number of simulations 1 to 6 in the first process 11a in the first server 11
0,000 times, the second process 12a in the second server 12
The number of simulations is from 600,000 to 1,000,000.

【0040】これにより、サーバ1号機11における第
1プロセス11aとサーバ2号機12における第2プロ
セス12a間の処理時間が均一化し、システム全体の処
理時間をさらに短縮することができる。
As a result, the processing time between the first process 11a in the server No. 1 machine 11 and the second process 12a in the server No. 2 machine 12 is made uniform, and the processing time of the entire system can be further shortened.

【0041】以下、図1を用いて、このような処理動作
を説明する。
Hereinafter, such a processing operation will be described with reference to FIG.

【0042】まず、クライアント機1において、例えば
オペレータの操作に基づき入力装置1eから実行要求
(モンテカルロシミュレーション実効要求)が並列処理
制御部1aに対して出力されると、並列処理制御部1a
が、各並列処理プロセス(サーバ1号機11の第1プロ
セス11aとサーバ2号機12の第2プロセス12a)
毎に分担すべきシミュレーション回数を算出し、各並列
処理プロセスに指示を出す。
First, in the client machine 1, when an execution request (a Monte Carlo simulation effective request) is output from the input device 1e to the parallel processing control section 1a based on the operation of the operator, for example, the parallel processing control section 1a.
However, each parallel processing process (the first process 11a of the first server 11 and the second process 12a of the second server 12)
The number of simulations to be shared is calculated for each, and an instruction is given to each parallel processing process.

【0043】このようにして、クライアント機1の並列
処理制御部1aからの指示を受けた各並列処理プロセス
(サーバ1号機11の第1プロセス11aとサーバ2号
機12の第2プロセス12a)は、まず、クライアント
機1のデータベース1cから、全取引明細や全保有債権
分のデータを取得する。
In this way, the respective parallel processing processes (the first process 11a of the first server 11 and the second process 12a of the second server 12) receiving the instruction from the parallel processing control unit 1a of the client machine 1 First, data of all transaction details and all held credits are acquired from the database 1c of the client machine 1.

【0044】次に、各並列処理プロセス、すなわち、サ
ーバ1号機11の第1プロセス11aとサーバ2号機1
2の第2プロセス12aは、余分な乱数発生処理部11
b,12bにおいて、分担するシミュレーションで使用
する乱数の直前の乱数までを発生させる。
Next, each parallel processing process, that is, the first process 11a of the first server 11 and the second server 1
The second process 12a of No. 2 is an extra random number generation processing unit 11
In b and 12b, the random numbers immediately before the random numbers used in the shared simulation are generated.

【0045】さらに、乱数発生処理部11c,12cに
おいて、余分な乱数発生処理部11b,12bで既に発
生させた乱数以降の乱数を、シミュレーション1回分発
生させ、その後、予測部11d,12dにおいて、乱数
発生処理部11c,12cで発生させた乱数をもとに、
将来の格付変動や金利変動、為替変動、株価変動等の予
測をする。
Further, in the random number generation processing units 11c and 12c, random numbers after the random numbers already generated in the extra random number generation processing units 11b and 12b are generated for one simulation, and then, in the prediction units 11d and 12d. Based on the random numbers generated by the generation processing units 11c and 12c,
Predict future rating fluctuations, interest rate fluctuations, currency fluctuations, stock price fluctuations, etc.

【0046】そして、損失額算出部11e,12eにお
いて、予測部11d,12dで予測した将来の格付変
動、金利変動、為替変動、株価変動をもとに、損失額を
算出し、算出した損失額を、クライアント機1のデータ
ベース1dに出力する。
Then, in the loss amount calculation units 11e and 12e, the loss amount is calculated based on the future rating fluctuation, interest rate fluctuation, foreign currency fluctuation, stock price fluctuation predicted by the prediction units 11d and 12d, and the calculated loss amount. Is output to the database 1d of the client machine 1.

【0047】尚、サーバ1号機11の第1プロセス11
aとサーバ2号機12の第2プロセス12aは、乱数発
生処理部11c,12cと予測部11d,12dおよび
損失額算出部11e,12eのそれぞれによる処理、並
びに、クライアント機1のデータベース1dへの書き出
し処理を、開始シミュレーション回数から終了シミュレ
ーション回数分、実行する。
The first process 11 of the first server 11
a and the second process 12a of the server No. 2 12 process by the random number generation processing units 11c and 12c, the prediction units 11d and 12d, and the loss amount calculation units 11e and 12e, and write to the database 1d of the client device 1. The process is executed from the start simulation count to the end simulation count.

【0048】クライアント機1では、ソート処理部1b
により、サーバ1号機11とサーバ2号機12からの出
力が完了したデータベース1dを損失額でソートして、
その最大損失額を求め、表示装置1fで表示する。
In the client machine 1, the sort processing section 1b
Thus, the database 1d whose output from the server No. 11 and the server No. 12 has been completed is sorted by the loss amount,
The maximum loss amount is calculated and displayed on the display device 1f.

【0049】以下、このような動作を図2を用いて説明
する。尚、この図2では、図1における構成、すなわ
ち、サーバ1号機11とサーバ2号機12の2台の第
1,第2プロセス11a,12aに限らない、複数の各
並列処理プロセスp(1≦p≦P)に対し、分担すべき
シミュレーション回数を指示する内容とする。
Hereinafter, such an operation will be described with reference to FIG. In addition, in FIG. 2, the plurality of parallel processing processes p (1 ≦ 1) are not limited to the configuration in FIG. 1, that is, the two first and second processes 11a and 12a of the server No. 11 and the server No. 12 are not limited. For p ≦ P), the content indicates the number of simulations to be shared.

【0050】まず、ステップ201において、シミュレ
ーション1回分の乱数発生処理時間Trと、シミュレー
ション1回の処理時間Tm(乱数発生処理時間を含む)
を取得する。尚、これらの値は予め測定しておく。
First, at step 201, a random number generation processing time Tr for one simulation and a processing time Tm for one simulation (including the random number generation processing time).
To get. In addition, these values are measured in advance.

【0051】次に、ステップ202において、並列処理
プロセス数Pと、シミュレーション回数Saを取得し、
ステップ203において、シミュレーション1回の処理
時間Tm(乱数発生処理時間を含む)、シミュレーショ
ン1回分の乱数発生処理時間Tr、並列処理プロセス数
P、シミュレーション回数Saから、並列処理プロセス
p(1≦p≦P)が分担すべきシミュレーション回数S
pを、次の数式により算出する。
Next, in step 202, the number of parallel processing processes P and the number of times of simulation Sa are acquired,
In step 203, from the processing time Tm of one simulation (including the random number generation processing time), the random number generation processing time Tr of one simulation, the number of parallel processing processes P, and the number of times of simulation Sa, the parallel processing process p (1 ≦ p ≦ The number of simulations S that P) should share
p is calculated by the following formula.

【0052】[0052]

【数1】 [Equation 1]

【0053】このようにして、各並列処理プロセス間の
処理時間が均一となるシミュレーション回数Spが求め
られ、このようにして求めた各並列処理プロセスp(1
≦p≦P)が分担すべきシミュレーション回数Spか
ら、各並列処理プロセス毎の開始シミュレーション回数
と終了シミュレーション回数を算出し、各並列処理プロ
セスに処理要求を出す(ステップ204〜209)。
In this way, the number of simulations Sp that makes the processing time between the parallel processing processes uniform is obtained, and the parallel processing processes p (1
≦ p ≦ P) calculates the number of start simulations and the number of end simulations for each parallel processing process from the number of simulations Sp to be shared, and issues a processing request to each parallel processing process (steps 204 to 209).

【0054】例えば、1番目のプロセスに対しては、開
始シミュレーション回数「1」〜終了シミュレーション
回数「S1」を実行するよう指示し(ステップ20
6)、p番目(1<p<P)のプロセスに対しては、
「前プロセスの終了シミュレーション回数+1」からな
る開始シミュレーション回数〜「前プロセスの終了シミ
ュレーション回数+Sp」からなる終了シミュレーショ
ン回数を実行するよう指示し(ステップ207)、P番
目のプロセスに対しては、「前プロセスの終了シミュレ
ーション回数+1」からなる開始シミュレーション回数
〜終了シミュレーション回数「Sa」を実行するよう指
示する(ステップ208)。
For example, the first process is instructed to execute the start simulation count "1" to the end simulation count "S1" (step 20).
6), for the p-th (1 <p <P) process,
It is instructed to execute the start simulation number consisting of "pre-process end simulation number + 1" to the end simulation number consisting of "pre-process end simulation number + Sp" (step 207), and for the P-th process, It is instructed to execute the start simulation count to the end simulation count "Sa" consisting of "end simulation count of previous process + 1" (step 208).

【0055】このようにして、余分な乱数発生にかかる
処理時間を考慮し、各並列処理プロセスが分担するシミ
ュレーション回数を調整する。
In this way, the number of simulations shared by each parallel processing process is adjusted in consideration of the processing time required for generating an extra random number.

【0056】以上、図1〜図3を用いて説明したよう
に、本例では、モンテカルロシミュレーションをシミュ
レーション回数で分割する際、乱数発生も含めて並列処
理化する。すなわち、サーバ1号機11とサーバ2号機
のそれぞれの並列処理プロセス(第1,第2プロセス1
1a,12a)において乱数を発生させる。さらに、こ
の際、単に、第1プロセス11aでシミュレーション回
数1〜50万回を分担し、第2プロセス12aでシミュ
レーション回数50万1〜100万回を分担するといっ
た単純な均等分割でなく、第2プロセス12aにおいて
余分に乱数を発生させる処理時間を考慮して、第1,第
2の各プロセス11a,12aで分担するシミュレーシ
ョン回数を調整する。本例では、第1プロセス11aで
シミュレーション回数1〜60万回を分担し、第2プロ
セス12aでシミュレーション回数60万1〜100万
回を分担する。
As described above with reference to FIGS. 1 to 3, in this example, when the Monte Carlo simulation is divided by the number of simulations, parallel processing is performed including random number generation. That is, the parallel processing processes (first and second processes 1) of the server No. 11 and the server No. 2 respectively.
A random number is generated in 1a, 12a). Further, at this time, the first process 11a merely shares the number of simulations of 1 to 500,000 times, and the second process 12a shares the number of simulations of 500,000 to 1 million times. The number of simulations shared by the first and second processes 11a and 12a is adjusted in consideration of the processing time for generating extra random numbers in the process 12a. In this example, the first process 11a shares the simulation count of 1 to 600,000 times, and the second process 12a shares the simulation count of 600,000 to 1,000,000 times.

【0057】このように、第2のプロセス12aにおい
て余分に乱数を発生させる処理時間を考慮して、各並列
処理プロセスで分担するシミュレーション回数を調整す
ることにより、第1,第2の各プロセス11a,12a
間の処理時間が均一化し、システム全体の処理時間をさ
らに短縮することができる。
As described above, the number of simulations shared by each parallel processing process is adjusted in consideration of the processing time for generating an extra random number in the second process 12a, so that each of the first and second processes 11a is adjusted. , 12a
The processing time between them can be made uniform, and the processing time of the entire system can be further shortened.

【0058】本例の技術を、例えば、モンテカルロシミ
ュレーションを使った金融リスク計量化の並列処理化に
適用することにより、その金融リスク計量化の並列処理
化をさらに効果的に行うことができるので、金融リスク
シミュレーションの高精度化に必要な、シミュレーショ
ン回数の増加や複合リスクへの対応が可能となる。
By applying the technique of this example to parallel processing of financial risk quantification using, for example, Monte Carlo simulation, the parallel processing of financial risk quantification can be more effectively performed. It is possible to increase the number of simulations and deal with complex risks, which are necessary for improving the accuracy of financial risk simulations.

【0059】尚、本発明は、図1〜図3を用いて説明し
た例に限定されるものではなく、その要旨を逸脱しない
範囲において種々変更可能である。例えば、本例では、
並列処理制御部1aをクライアント機1側に搭載する構
成としているが、並列処理制御部1aをサーバ1号機1
1もしくはサーバ2号機12のいずれかの1台に搭載し
ても良い。
The present invention is not limited to the examples described with reference to FIGS. 1 to 3, and various modifications can be made without departing from the scope of the invention. For example, in this example,
Although the parallel processing control unit 1a is mounted on the client machine 1 side, the parallel processing control unit 1a is installed in the first server 1
It may be mounted on either one of the server 1 and the server 2-12.

【0060】また、本例では、金融リスク計量化システ
ムを中心に説明してきたが、他のモンテカルロシミュレ
ーションを使用したシステムの高速化にも適用可能であ
る。
In this example, the financial risk quantification system has been mainly described, but the present invention can be applied to the speedup of the system using another Monte Carlo simulation.

【0061】また、本例では、クライアント機およびサ
ーバ機の構成として図2のコンピュータ構成例を示した
が、キーボードや光ディスクの駆動装置の無いコンピュ
ータ構成としても良い。また、本例では、光ディスクを
記録媒体として用いているが、FD(Flexible Disk)
等を記録媒体として用いることでも良い。また、プログ
ラムのインストールに関しても、通信装置を介してネッ
トワーク経由でプログラムをダウンロードしてインスト
ールすることでも良い。
Further, in this example, the computer configuration example of FIG. 2 is shown as the configuration of the client machine and the server machine, but a computer configuration without a keyboard or an optical disk drive may be used. Further, in this example, an optical disk is used as a recording medium, but an FD (Flexible Disk) is used.
Etc. may be used as the recording medium. Further, regarding the installation of the program, the program may be downloaded and installed via the network via the communication device.

【0062】[0062]

【発明の効果】本発明によれば、モンテカルロシミュレ
ーションを使った並列処理化を高速化することができ、
例えば、金融リスク計量化のシミュレーション回数の増
加および複合リスクへの対応が可能となり、コンピュー
タを用いた金融リスク計量化における予測精度を向上さ
せることが可能である。
According to the present invention, parallel processing using Monte Carlo simulation can be speeded up,
For example, it is possible to increase the number of simulations of financial risk quantification and deal with complex risks, and it is possible to improve the prediction accuracy in financial risk quantification using a computer.

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

【図1】本発明に係わるモンテカルロシミュレーション
並列処理システムの構成例を示すブロック図である。
FIG. 1 is a block diagram showing a configuration example of a Monte Carlo simulation parallel processing system according to the present invention.

【図2】図1におけるモンテカルロシミュレーション並
列処理システムの本発明に係わる処理手順例を示すフロ
ーチャートである。
FIG. 2 is a flow chart showing an example of a processing procedure according to the present invention of the Monte Carlo simulation parallel processing system in FIG.

【図3】図1における各サーバ機のハードウェア構成例
を示すブロック図である。
3 is a block diagram showing an example of a hardware configuration of each server machine in FIG.

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

1:クライアント機、1a:並列処理制御部、1b:ソ
ート処理部、1c:データベース(「取引明細、保有債
権のデータベース」)、1d:データベース(「損失額
のデータベース」)、1e:入力装置、1f:表示装
置、11:サーバ1号機、12:サーバ2号機、11
a:第1プロセス、12a:第2プロセス、11b,1
2b:余分な乱数発生処理部、11c,12c:乱数発
生処理部、11d,12d:予測部、11e,12e:
損失額算出部、31:表示装置、32:入力装置、3
3:外部記憶装置、34:情報処理装置、34a:CP
U、34b:主メモリ、34c:入出力インタフェー
ス、35:光ディスク、36:駆動装置、37:通信装
置。
1: client machine, 1a: parallel processing control unit, 1b: sort processing unit, 1c: database (“transaction details, database of held debt”), 1d: database (“loss database”), 1e: input device, 1f: display device, 11: server 1st machine, 12: server 2nd machine, 11
a: first process, 12a: second process, 11b, 1
2b: extra random number generation processing unit, 11c, 12c: random number generation processing unit, 11d, 12d: prediction unit, 11e, 12e:
Loss amount calculation unit, 31: display device, 32: input device, 3
3: external storage device, 34: information processing device, 34a: CP
U, 34b: main memory, 34c: input / output interface, 35: optical disk, 36: drive device, 37: communication device.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 モンテカルロシミュレーションを用いた
シミュレーションを複数のコンピュータで分散処理して
行うシステムであって、上記モンテカルロシミュレーシ
ョンのシミュレーション回数を分割して上記複数のコン
ピュータに割り当て、上記シミュレーションに用いる乱
数を各コンピュータで発生させる手段と、上記複数のコ
ンピュータのそれぞれに割り当てるシミュレーション回
数を、各コンピュータでの乱数発生処理時間に応じて算
出する手段とを有することを特徴とするモンテカルロシ
ミュレーション並列処理システム。
1. A system for performing a simulation using a Monte Carlo simulation by a plurality of computers in a distributed manner, wherein the number of simulations of the Monte Carlo simulation is divided and assigned to the plurality of computers, and a random number used for the simulation is calculated. A Monte Carlo simulation parallel processing system comprising: means for generating by a computer; and means for calculating the number of simulations assigned to each of the plurality of computers according to the random number generation processing time at each computer.
【請求項2】 モンテカルロシミュレーションを用いた
シミュレーションを複数のプロセスで分散処理して行う
システムの並列処理方法であって、上記モンテカルロシ
ミュレーションのシミュレーション回数を分割して上記
複数のプロセスに割り当て、上記シミュレーションに用
いる乱数を各プロセスで発生させる手順と、上記複数の
プロセスのそれぞれに割り当てるシミュレーション回数
を、各プロセスでの乱数発生処理時間に応じて算出する
手順とを有することを特徴とするモンテカルロシミュレ
ーション並列処理方法。
2. A parallel processing method for a system in which a simulation using Monte Carlo simulation is performed by distributed processing in a plurality of processes, wherein the number of simulations in the Monte Carlo simulation is divided and assigned to the plurality of processes, and Monte Carlo simulation parallel processing method characterized by having a procedure for generating a random number to be used in each process, and a procedure for calculating the number of simulations to be assigned to each of the plurality of processes in accordance with the random number generation processing time in each process. .
【請求項3】 請求項2に記載のモンテカルロシミュレ
ーション並列処理方法であって、シミュレーション1回
分の乱数発生処理時間Trと、該乱数発生処理時間Tr
を含むシミュレーション1回の処理時間Tmとを測定す
る手順と、測定した上記シミュレーション1回分の乱数
発生処理時間Trと上記シミュレーション1回の処理時
間Tm、および、プロセス数Pとシミュレーション回数
Saに基づき、プロセスp(1≦p≦P)に割り当てる
シミュレーション回数Spを算出する手順とを有するこ
とを特徴とするモンテカルロシミュレーション並列処理
方法。
3. The Monte Carlo simulation parallel processing method according to claim 2, wherein the random number generation processing time Tr for one simulation and the random number generation processing time Tr.
Based on the procedure of measuring the processing time Tm for one simulation including the above, the measured random number generation processing time Tr for one simulation and the processing time Tm for one simulation, and the number of processes P and the number of simulations Sa, And a procedure for calculating the number of simulations Sp assigned to the process p (1 ≦ p ≦ P).
【請求項4】 請求項3に記載のモンテカルロシミュレ
ーション並列処理方法であって、 Sp=Sa×{(Tm−Tr)/Tm}p−1/Σ
{(Tm−Tr)/Tm}…(i=0〜P−1) により、上記プロセスp(1≦p≦P)に割り当てるシ
ミュレーション回数Spを算出する手順を有することを
特徴とするモンテカルロシミュレーション並列処理方
法。
4. The Monte Carlo simulation parallel processing method according to claim 3, wherein Sp = Sa × {(Tm−Tr) / Tm} p−1 / Σ.
Monte Carlo simulation characterized by having a procedure for calculating the number of simulations Sp assigned to the process p (1 ≦ p ≦ P) by {(Tm−Tr) / Tm} i (i = 0 to P−1) Parallel processing method.
【請求項5】 コンピュータに、請求項2から請求項4
のいずれかに記載のモンテカルロシミュレーション並列
処理方法における各手順を実行させるためのプログラ
ム。
5. The computer according to any one of claims 2 to 4.
A program for executing each step in the Monte Carlo simulation parallel processing method according to any one of 1.
【請求項6】 コンピュータに、請求項2から請求項4
のいずれかに記載のモンテカルロシミュレーション並列
処理方法における各手順を実行させるためのプログラム
を記録したコンピュータ読み取り可能な記録媒体。
6. The computer according to any one of claims 2 to 4.
A computer-readable recording medium recording a program for executing each step in the Monte Carlo simulation parallel processing method according to any one of 1.
JP2001290631A 2001-09-25 2001-09-25 Monte Carlo simulation parallel processing system and method, program, and recording medium Expired - Fee Related JP4032339B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001290631A JP4032339B2 (en) 2001-09-25 2001-09-25 Monte Carlo simulation parallel processing system and method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001290631A JP4032339B2 (en) 2001-09-25 2001-09-25 Monte Carlo simulation parallel processing system and method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2003099411A true JP2003099411A (en) 2003-04-04
JP4032339B2 JP4032339B2 (en) 2008-01-16

Family

ID=19112907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001290631A Expired - Fee Related JP4032339B2 (en) 2001-09-25 2001-09-25 Monte Carlo simulation parallel processing system and method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP4032339B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016207076A (en) * 2015-04-27 2016-12-08 富士通株式会社 Parallel computer, thread reallocation determination method, and thread reallocation determination program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016207076A (en) * 2015-04-27 2016-12-08 富士通株式会社 Parallel computer, thread reallocation determination method, and thread reallocation determination program

Also Published As

Publication number Publication date
JP4032339B2 (en) 2008-01-16

Similar Documents

Publication Publication Date Title
Qiu et al. Data transfer minimization for financial derivative pricing using Monte Carlo simulation with GPU in 5G
US7957948B2 (en) System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
Zhao et al. G-BLASTN: accelerating nucleotide alignment by graphics processors
US20220215269A1 (en) Enhancing Evolutionary Optimization in Uncertain Environments By Allocating Evaluations Via Multi-Armed Bandit Algorithms
JP2011527057A (en) Buffered bookkeeping
US20220414763A1 (en) System, Method and Apparatus for Modeling Loan Transitions
US20210357740A1 (en) Second-order optimization methods for avoiding saddle points during the training of deep neural networks
CN111427971A (en) Business modeling method, device, system and medium for computer system
CN108765134B (en) Order data processing method and device, electronic equipment and storage medium
Stockinger et al. Scalable architecture for Big Data financial analytics: user-defined functions vs. SQL
JP4392665B2 (en) Cluster system performance prediction apparatus, performance prediction method, and performance prediction program
CN113421095A (en) Parallel execution acceleration method for block chain transaction
Lee et al. Will solid-state drives accelerate your bioinformatics? In-depth profiling, performance analysis and beyond
WO2021257545A1 (en) Financial risk assessment
CN108509259A (en) Obtain the method and air control system in multiparty data source
Childers et al. Adapting the serial Alpgen parton-interaction generator to simulate LHC collisions on millions of parallel threads
JP4032339B2 (en) Monte Carlo simulation parallel processing system and method, program, and recording medium
CN109299175B (en) Dynamic expansion method, system, device and storage medium for database
US20230359941A1 (en) System and method for efficient transformation prediction in a data analytics prediction model pipeline
CN108762822A (en) A kind of data load method and device
US11755376B2 (en) Automatic assignment of hardware/software resources to different entities using machine learning based on determined scores for assignment solutions
CN113672834A (en) Data processing method and device, electronic equipment and computer readable medium
WO2020034752A1 (en) Floating income calculation method, apparatus and device, and computer-readable storage medium
CN111476671A (en) Block chain rollback insurance method, equipment and storage medium
Wells et al. Research Computing at a Business University

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070903

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: 20070928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071011

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees