JP2007188384A - Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program - Google Patents

Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program Download PDF

Info

Publication number
JP2007188384A
JP2007188384A JP2006006972A JP2006006972A JP2007188384A JP 2007188384 A JP2007188384 A JP 2007188384A JP 2006006972 A JP2006006972 A JP 2006006972A JP 2006006972 A JP2006006972 A JP 2006006972A JP 2007188384 A JP2007188384 A JP 2007188384A
Authority
JP
Japan
Prior art keywords
memory
calculation
analysis program
reference information
array
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.)
Pending
Application number
JP2006006972A
Other languages
Japanese (ja)
Inventor
Masahiro Tatsumi
雅洋 巽
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.)
Nuclear Fuel Industries Ltd
Original Assignee
Nuclear Fuel Industries 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 Nuclear Fuel Industries Ltd filed Critical Nuclear Fuel Industries Ltd
Priority to JP2006006972A priority Critical patent/JP2007188384A/en
Publication of JP2007188384A publication Critical patent/JP2007188384A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for managing an object-oriented memory where masking property aimed at by object orientation is not damaged, the number of storage devices can be reduced and processing speed is improved in a programming model of a high abstractness and a large scale using object-oriented language. <P>SOLUTION: In the method for managing the object-oriented memory, an array object in which a memory area where each object requires access for calculation is secured continuously is prepared. To each object, reference information for making the object access to the memory area for calculation is assigned by slicing the array object. Moreover, each object updates a part equivalent to the reference information of the array object on the basis of the reference information. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明はオブジェクト指向メモリ管理方法に関し、特に原子炉炉心解析用にメモリアクセスの抽象化と効率化を図ったオブジェクト指向メモリ管理方法に関する。   The present invention relates to an object-oriented memory management method, and more particularly to an object-oriented memory management method for abstracting and improving the efficiency of memory access for nuclear reactor core analysis.

原子炉の炉心解析等の大規模な科学技術計算では、大量の一次記憶装置が必要であり、さらにメモリの使用効率が、計算体系の規模や計算速度に大きな影響を与え、ひいては計算精度にも影響を与える。一方、近年のプログラミング方法論における開発効率向上の観点から、オブジェクト指向アプローチを利用することが多いが、この手法はデータの集合とそのデータを操作する手段等のデータに対応する手段とを1つのまとまりとして管理するため、メモリ管理等のハードウェアに近い部分は直接的には取り扱わないのが一般的である。   Large-scale science and technology calculations such as reactor core analysis require a large amount of primary storage, and the memory usage efficiency has a large impact on the scale and speed of the calculation system, which in turn increases the calculation accuracy. Influence. On the other hand, from the viewpoint of improving development efficiency in recent programming methodologies, an object-oriented approach is often used, but this method is a set of data and means corresponding to data such as means for manipulating the data. Therefore, it is common not to directly handle hardware-related parts such as memory management.

大規模な科学技術計算、例えば原子炉炉心解析、気象予報、各種のシュミレーション解析等では、参照用データ、初期値、境界値等の当初のデータのみならず途中結果をも保持しておかねばならないことが多い。特に何度も類似した処理を繰返す計算、具体的には例えば最初は境界条件を基に大まかなメッシュ分割で応力や熱の分布等を計算し、次にその計算結果を使用して少し細かなメッシュ分割で応力や熱の分布等を少し詳しく計算し、以降徐々にメッシュ分割を小さくして精密な応力や熱の分布等を計算するプログラム、初期値を基にメッシュ分割された各部の1ケ月後の状態を計算し、次にその計算結果を使用して2ケ月後の状態を計算し、以下この手順を繰返して1年後の状態を計算する気象予測のプログラムや原子炉の燃焼の解析プログラム等が、そうである。   In large-scale scientific and technological calculations, such as reactor core analysis, weather forecasts, and various simulation analyses, not only initial data such as reference data, initial values, and boundary values, but also intermediate results must be retained. There are many cases. In particular, a calculation that repeats a similar process many times, specifically, for example, first, calculate the stress and heat distribution by rough mesh division based on the boundary condition, and then use the calculation result to make a little more detailed. A program that calculates stress and heat distribution in mesh division a little in detail, then gradually reduces mesh division to calculate precise stress and heat distribution, etc. One month for each part of the mesh divided based on initial values Calculate the state after, and then calculate the state after two months using the calculation result, then repeat this procedure to calculate the state after one year and analyze the combustion of the reactor That is the case with programs.

そこで、例えばC++等のオブジェクト指向言語を使用して、あるいは利用してかかる計算、解析を行う場合には、オブジェクト指向言語に備わる動的なメモリ確保機能により一般にヒープ領域と呼ばれる特定のメモリ領域にそのデータ領域を確保し、当該オブジェクトに割り当てる。しかし、一般的な動的メモリの確保の手法(new、オブジェクト生成のメソッド)を用いる限り、プログラム実行中に確保する際のメモリ領域の位置が変化する場合があるため、必要なデータが連続するメモリ領域から取出される保証はなく、またメモリの断片化が発生する可能性がある。これらの様子を、図1に概念的に示す。図1において、10はベースメモリのアドレス(addrで示す)であり、11、12、13はヒープ領域における各オブジェクトのアドレスであり、21、22、23は各オブジェクト(操作対象となるデータと、実際の操作を行う実施部(関数)がセットになっているもの。Fortranにおける、現実に炉心の中性子分布等の解析を行うサブルーチンに相当するもの)1、同2、同3である。また、矢印は、ベースメモリのアドレスの方向(順にアドレス番号が大きくなる)である。各オブジェクト1、同2、同3は、各々小さなヒープ領域のアドレス11、12、13を割当てられている。図1に示す様に、各ヒープ領域のアドレス11、12、13は不連続な領域となっており、ひいてはアドレスも不連続となる。   Therefore, when performing calculation and analysis using, for example, an object-oriented language such as C ++, a dynamic memory reservation function provided in the object-oriented language is used to store a specific memory area generally called a heap area. The data area is secured and assigned to the object. However, as long as a general dynamic memory allocation method (new, object generation method) is used, the location of the memory area at the time of allocation may change during program execution, so that necessary data continues. There is no guarantee that it will be taken from the memory area, and memory fragmentation may occur. These states are conceptually shown in FIG. In FIG. 1, 10 is an address of the base memory (indicated by addr), 11, 12, and 13 are addresses of each object in the heap area, and 21, 22, and 23 are each object (data to be operated, A set of implementation units (functions) that perform actual operations (corresponding to subroutines that actually analyze the neutron distribution and the like of the core in Fortran) 1, 2, and 3. The arrow indicates the address direction of the base memory (address numbers increase in order). The objects 1, 2, and 3 are assigned small heap area addresses 11, 12, and 13, respectively. As shown in FIG. 1, the addresses 11, 12, and 13 of each heap area are discontinuous areas, and the addresses are also discontinuous.

また、繰返し計算等で途中結果を保持する等のためにメモリ領域の確保と開放を繰返すと、メモリの断片化が促進され、その結果ファイルアクセスも少量のデータ単位で大量のI/Oトランザクションを実行せざるを得ず、処理時間の面からも不利になる。
その対策として、各オブジェクトがデータを重複して持つことは、ハード面はもちろんソフト面からも困難であることが多い。
In addition, if the allocation and release of the memory area are repeated to hold intermediate results in repeated calculations, etc., the fragmentation of the memory is promoted, and as a result, file accesses can be performed with a large amount of I / O transactions in a small amount of data. It must be executed and is disadvantageous in terms of processing time.
As a countermeasure, it is often difficult for each object to have duplicate data from the hardware as well as the software aspects.

そこで、一度1つの連続する大きなメモリ空間を持つ配列を確保しておき、その一部を各オブジェクトに割当てる様にメモリ確保部分に工夫を凝らすことが考えられる。即ち、各オブジェクト内にデータの本体を持たせるのではなく、あくまでもデータを記憶している連続メモリ領域への参照情報を割当てることが考えられる。図2に、この様子を示す。本図において、各オブジェクト1、同2、同3用に、ベースメモリのアドレス内で連続するアドレス11、12、13が、即ちベースメモリ内で連続した領域(連続したヒープ領域)となるアドレスが割当てられ、さらに各オブジェクト1、同2、同3には各々その割当てられたアドレス11、12、13を参照するため(my new、独自の管理によるオブジェクトの生成)の情報(ポインタ)31、32、33が付加される。   Therefore, it is conceivable to devise a memory securing portion so that an array having one continuous large memory space is secured once and a part of the array is allocated to each object. That is, it is conceivable to assign reference information to a continuous memory area in which data is stored rather than having a data body in each object. FIG. 2 shows this state. In this figure, for each object 1, 2 and 3, there are addresses 11, 12, 13 which are consecutive in the address of the base memory, that is, addresses which are continuous areas (continuous heap areas) in the base memory. Further, information (pointers) 31 and 32 for referring to the assigned addresses 11, 12, and 13 for each of the objects 1, 2, and 3 (my new, creation of an object by unique management). , 33 are added.

これにより、この配列の内容をまとめてファイルに書き出す場合には、コピーをする必要がなくなる。また、複数のオブジェクトが見かけ上別々に保持する内容をまとめてディスクに書き出したり、ファイルの内容を読み込んで複数のオブジェクトを自動的に初期化したりすることが可能になる。具体的には、数ヶ月先までの炉内の各燃料集合体の燃焼度の様子等の炉内の各種の状況を1ケ月ごとに順に計算して解析する場合には、各月の計算では当該月の初期値を使用して各オブジェクトにより計算された燃焼度、中性子分布や密度等の結果が順に書き込まれ、さらに当該月における各オブジェクトの計算が全て終了し、次の1ケ月の解析を開始する際には、ベースアドレスに書き込まれてある既に解析が終了した直前の月の結果が各オブジェクトに初期値として読み出されることとなる。   This eliminates the need for copying when the contents of this array are collectively written to a file. In addition, it is possible to collectively write out contents that are apparently held by a plurality of objects to a disk, or to automatically initialize a plurality of objects by reading the contents of a file. Specifically, when calculating and analyzing various conditions in the furnace, such as the degree of burnup of each fuel assembly in the furnace up to several months in advance, every month, Results of burnup, neutron distribution, density, etc. calculated by each object using the initial value of the month are written in order, and all calculations for each object for that month are completed, and the analysis for the next month is completed. When starting, the result of the month immediately before the end of the analysis already written in the base address is read to each object as an initial value.

ただこの場合には、メモリ管理はハードウェアに近い、いわゆる「低レベル」の操作、処理であるため、オブジェクト指向で目指す隠蔽性を損う危険性がある。例えば、何らかの原因により各オブジェクトが保有するメモリ空間が重複した場合には、あるオブジェクトが自分のメンバ変数(当該オブジェクト内のデータを保持するためのフィールド)を書き換えると、他のオブジェクトのメンバ変数も変化していたということにもなりかねない。   However, in this case, since memory management is a so-called “low level” operation and processing close to hardware, there is a risk of losing the concealment aimed at by object orientation. For example, if the memory space held by each object is duplicated for some reason, if one object rewrites its member variable (the field for holding the data in the object), the member variable of the other object It could also mean that it was changing.

具体的には、前記の計算例で言えば、与えられた初期条件を基に多数のオブジェクトからなる最初の1ケ月を計算し、その計算結果を新たに初期条件として同じく多数のオブジェクトからなる次の1ケ月(第2ヶ月)を計算する場合に、最初の1ケ月の計算処理において、あるオブジェクトがその計算結果に基づいて当該オブジェクトが次の月の計算を実行する際に使用する目的でその計算に関連ある初期条件の一部のデータでも書き換える(あるいは更新してしまう)様なことが生じれば、最初の1ケ月の計算処理において後続する他のオブジェクトは元々の初期条件を使用して最初の1ケ月目の担当する部分や内容の計算を行うことが出来なくなることが生じかねない。   Specifically, in the above calculation example, the first month consisting of a large number of objects is calculated based on a given initial condition, and the calculation result is newly set as the initial condition, and the next When calculating one month (second month) of an object, in the calculation process for the first month, an object uses that object to calculate the next month based on the calculation result. If some data of the initial condition related to the calculation is rewritten (or updated), other objects that follow in the calculation process for the first month use the original initial condition. It may happen that it is impossible to calculate the parts and contents for the first month.

ところが、現実の大規模な計算では、オブジェクトは数が多い上に相互に関連しあっていることが多く、さらに例えば繰返し計算では繰返しの回数も多いのが普通である。一方、オブジェクト指向言語を用いたプログラミングモデルは抽象度が高い。その結果、かかることが生じないようにするには、細心の注意が必要となり、プログラマーの負担も大きくなる。   However, in an actual large-scale calculation, objects are often associated with each other, and for example, iterative calculations usually have a large number of repetitions. On the other hand, programming models using object-oriented languages are highly abstract. As a result, careful attention is required to prevent this from occurring, and the burden on the programmer increases.

このため、オブジェクト指向言語を用いた抽象度の高いそして大規模なプログラミングモデルにおいて、オブジェクト指向で目指す隠蔽性が損われず、しかもメモリへのアクセス回数が少なく、また必要な記憶装置も少なくて済み、計算費用、処理速度等も優れるオブジェクト指向メモリ管理方法の開発が望まれていた。   For this reason, in a high-level and large-scale programming model using an object-oriented language, the object-oriented concealment is not impaired, the number of accesses to the memory is small, and less storage devices are required. It has been desired to develop an object-oriented memory management method that is excellent in calculation cost, processing speed, and the like.

本発明は、以上の課題を解決することを目的としてなされたものであり、メモリの確保作業を最小限とするため、内容に隠蔽性を有するオブジェクトにメモリを確保させ、さらに各オブジェクトにメモリを分配する際に内容に隠蔽性を有するオブジェクトと同一メモリを示すサブセットオブジェクトを分配するようにしたものである。
以下、各請求項の発明を説明する。
The present invention has been made for the purpose of solving the above-mentioned problems. In order to minimize the memory securing operation, an object having concealment in contents is secured, and a memory is allocated to each object. When distributing, a subset object indicating the same memory as an object having concealment in content is distributed.
The invention of each claim will be described below.

請求項1に記載の発明は、
各オブジェクトが計算時にアクセスを必要とするメモリ領域が連続して確保されたアレイオブジェクトが作成され、
各オブジェクトには、当該オブジェクトが計算時に前記メモリ領域へアクセスするための参照情報が前記アレイオブジェクトをスライシングして割り当てられ、
さらに各オブジェクトは前記参照情報を基に前記アレイオブジェクトの当該参照情報に該当するメモリ領域を更新することを特徴とするオブジェクト指向メモリ管理方法である。
The invention described in claim 1
An array object is created in which memory areas that each object needs to access at the time of calculation are continuously allocated,
For each object, reference information for the object to access the memory area at the time of calculation is assigned by slicing the array object,
Furthermore, each object updates a memory area corresponding to the reference information of the array object based on the reference information, and is an object-oriented memory management method.

本請求項の発明では、各オブジェクトは、計算時にアクセスを必要とするメモリ領域が連続して確保されたアレイオブジェクトをスライシング(slicing、分割)して作成された参照情報を基にアレイオブジェクトの当該参照情報に該当する部分を更新する。このため、オブジェクト指向言語を使用した計算処理において、オブジェクト指向で目指す隠蔽性が損われず、ひいては他のオブジェクトの保持する参照情報が書き換えられることがない。
また、メモリの断片化が促進されることがなく、そのためメモリへのアクセス回数が少なくて済み、メモリ管理のために必要なプログラミング上の困難性を排除でき、必要な記憶装置も少なくて済むため、計算費用、保守性、処理速度等も優れる。
According to the invention of this claim, each object is associated with the array object based on the reference information created by slicing (slicing) the array object in which memory areas that require access at the time of calculation are continuously secured. Update the part corresponding to the reference information. For this reason, in the calculation process using the object-oriented language, the concealment aimed at by the object orientation is not impaired, and the reference information held by other objects is not rewritten.
In addition, memory fragmentation is not promoted, so the number of accesses to the memory can be reduced, programming difficulties required for memory management can be eliminated, and fewer storage devices are required. , Calculation cost, maintainability, processing speed, etc. are also excellent.

請求項2に記載の発明は、前記のオブジェクト指向メモリ管理方法であって、
前記アレイオブジェクトが確保するメモリ領域の参照情報は、m個のn次元行列にて表現されており、
前記スライシングは、前記n次元行列にて表現された参照情報を単位として行われるものであることを特徴とするオブジェクト指向メモリ管理方法である。
The invention according to claim 2 is the object-oriented memory management method,
The reference information of the memory area secured by the array object is represented by m n-dimensional matrices,
In the object-oriented memory management method, the slicing is performed in units of reference information expressed by the n-dimensional matrix.

本請求項の発明においては、各計算オブジェクトへのメモリ領域の割り当てには概念的には1直線に連続して並んだm個の参照情報をスライシングして、さらにスライシングされた各データはメモリ領域をn次元行列にて表現しているため、各計算オブジェクトに割り当てられたメモリ領域の重複が発生しないようにすることが容易となる。なおここに、m(行列の個数)とn(次元)は、計算オブジェクトの個数、メッシュ分割等に応じて適宜最適な値とされるが、共に正整数である。
また、n次元行列で表現すると、多数の種類のデータの記憶、書き換えを行、列を単位として行うことが容易となり、プログラム作成も容易となる。
なお、1次元の参照情報やデータをn次元行列にて表現することは、例えば1列に並んだ100個の参照情報等を10×10ずつ配列して2次元化する様に、1次元の参照情報等を適宜分割して作成される。
In the invention of this claim, conceptually, the allocation of the memory area to each calculation object is performed by slicing m pieces of reference information arranged in a straight line, and each sliced data is stored in the memory area. Is represented by an n-dimensional matrix, it becomes easy to avoid duplication of memory areas allocated to the respective calculation objects. Here, m (number of matrices) and n (dimensions) are appropriately optimized values depending on the number of calculation objects, mesh division, and the like, but both are positive integers.
In addition, when expressed in an n-dimensional matrix, it becomes easy to store and rewrite many types of data in units of rows and columns, and to create a program.
Note that expressing one-dimensional reference information and data in an n-dimensional matrix means, for example, that one-dimensional reference information and data are arranged in two columns by arranging 10 × 10 pieces of reference information and the like in 10 columns. It is created by appropriately dividing reference information and the like.

請求項3に記載の発明は、前記のオブジェクト指向メモリ管理方法であって、
前記アレイオブジェクトはクラス定義部を有し、該クラス定義部の作用の下で、前記各オブジェクトの前記メモリ領域へのアクセスによるデータの入出力が行われるものであることを特徴とするオブジェクト指向メモリ管理方法である。
The invention according to claim 3 is the object-oriented memory management method,
An object-oriented memory, wherein the array object has a class definition unit, and data is input / output by accessing the memory area of each object under the action of the class definition unit It is a management method.

本請求項の発明においては、クラス定義部のメモリ分配に対する調整処理等の作用の下で、複数のオブジェクトが見かけ上別々に保持する内容をまとめてディスクに書き出したり、ファイルの内容を読み込んで複数のオブジェクトを自動的に初期化したりすることがなされる。そのため、複雑な計算に際して、各オブジェクトのメモリへのアクセス回数が減少し、計算時間が短縮される。   In the invention of this claim, under the action of the adjustment processing for the memory distribution of the class definition section, the contents that are apparently held separately by a plurality of objects are collectively written to a disk, or the contents of a file are read and read Some objects are automatically initialized. For this reason, the number of accesses to the memory of each object is reduced in complex calculations, and the calculation time is shortened.

請求項4に記載の発明は、
請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用していることを特徴とする解析プログラムである。
The invention according to claim 4
An analysis program that employs the object-oriented memory management method according to any one of claims 1 to 3.

本請求項の発明においては、請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用しているため、各種のオブジェクトが複雑な繰返し計算を何度も行う様な解析プログラムにおいて、演算に必要なメモリそのものが節約可能となり、メモリへのデータの入出力の管理も楽となり、メモリアクセスに必要な時間の短縮もなされる。ひいては、処理時間の短縮、処理コストの低下が達成される。
なお、実際に解析を行うプログラムと参照情報を管理するオブジェクトとの結びつきは、すなわち計算時にアクセスを必要とするメモリ領域が連続となるように確保されたアレイオブジェクトをスライシングして参照情報を作成するために、例えば、「Blitz++ 」や「boost」等の公開の技術を用いる。
In the invention of this claim, since the object-oriented memory management method according to any one of claims 1 to 3 is employed, an analysis program in which various objects repeatedly perform complicated repeated calculations. However, it is possible to save the memory itself necessary for the calculation, to facilitate the management of data input / output to / from the memory, and to reduce the time required for the memory access. As a result, reduction of processing time and reduction of processing cost are achieved.
Note that the link between the program that actually performs the analysis and the object that manages the reference information, that is, the reference information is created by slicing the array object that is secured so that the memory areas that require access at the time of calculation are continuous. For this purpose, for example, a public technique such as “Blitz ++” or “boost” is used.

請求項5に記載の発明は、前記の解析プログラムであって、
前記解析プログラムは、解析対象をメッシュ分割し、各メッシュに同じ内容の計算を行い、計算に必要なデータと計算結果についてのメモリの管理はm個のn次元にて表現された参照情報で特定されるメモリ領域を使用して行われ、さらに前記メモリの管理は請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法にてなされるものであることを特徴とする解析プログラムである。
Invention of Claim 5 is the said analysis program, Comprising:
The analysis program divides the analysis target into meshes, performs the same calculation for each mesh, and manages the data necessary for the calculation and the memory management for the calculation results using reference information expressed in m n dimensions An analysis program characterized in that the memory management is performed by the object-oriented memory management method according to any one of claims 1 to 3. is there.

本請求項の発明においては、解析対象がメッシュ分割されているため、該メッシュ分割に対応した行列により表現された参照情報を作成し、これにより記憶領域へのアクセス、データの管理を行うようにして、効率化を図っている。   In the invention of this claim, since the analysis target is divided into meshes, the reference information expressed by a matrix corresponding to the mesh division is created, thereby accessing the storage area and managing the data. To improve efficiency.

請求項6に記載の発明は、前記の解析プログラムであって、
原子炉炉心特性解析プログラムであることを特徴とする解析プログラムである。
Invention of Claim 6 is the said analysis program, Comprising:
This is an analysis program characterized by being a reactor core characteristic analysis program.

原子炉の炉心解析プログラムは、膨大なデータを使用して同じ計算を多数回繰返し、さらに計算結果の書き換えも多いため、請求項4または請求項5の発明を使用すれば、データの管理のみならずプログラムの作成、修正、チェックに最適なものとなる。   Reactor core analysis programs use the vast amount of data to repeat the same calculation many times, and also frequently rewrite the calculation results. Therefore, if the invention of claim 4 or claim 5 is used, only data management is possible. It is ideal for creating, modifying and checking programs.

請求項7に記載の発明は、
原子炉の炉心を水平方向(2次元)と上下方向(1次元)からなる3次元にメッシュ分割し、各メッシュに初期値としての各種物理量を記憶し、また記憶した初期値を基にそれらの経時変化を計算し、さらに該計算の際に請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用している原子炉炉心特性解析プログラムであって、
前記初期値としての各種物理量と計算された経時毎の物理量についての各メッシュのメモリの管理が、m個のn次元行列で表現された参照情報で定まる記憶領域においてなされるものであることを特徴とする原子炉炉心特性解析プログラムである。
The invention described in claim 7
The reactor core is divided into three dimensions, the horizontal direction (two dimensions) and the vertical direction (one dimension), and various physical quantities as initial values are stored in each mesh, and those values are stored based on the stored initial values. A reactor core characteristic analysis program that calculates a change with time and further adopts the object-oriented memory management method according to any one of claims 1 to 3 at the time of the calculation,
The management of each mesh memory for the various physical quantities as the initial values and the calculated physical quantities over time is performed in a storage area determined by reference information represented by m n-dimensional matrices. It is a reactor core characteristic analysis program.

原子炉の炉心解析プログラムは、膨大なデータを使用して同じ計算を多数回繰返し、さらに計算結果の書き換えも多いため、請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用し、さらに前記初期値としての各種物理量および計算された経時毎の物理量の各メッシュの記憶の管理が、m個のn次元行列で表現された参照情報で定まる記憶領域においてなされるため、データの管理のみならずプログラムの作成、修正、チェックが容易になる。   The core analysis program for a nuclear reactor repeats the same calculation many times using a large amount of data, and also frequently rewrites the calculation result. Therefore, the object-oriented memory management method according to any one of claims 1 to 3 is used. In addition, the management of each mesh of the various physical quantities as the initial value and the calculated physical quantities for each time is performed in a storage area determined by reference information represented by m n-dimensional matrices. This makes it easy to create, modify, and check programs as well as managing programs.

請求項8に記載の発明は、前記の原子炉炉心特性解析プログラムであって、
各メッシュについて、前記n次元行列で表現された参照情報で定まる記憶領域に記憶されているデータを使用して計算を行い、また計算結果を格納するステップを有していることを特徴とする原子炉炉心特性解析プログラムである。
The invention according to claim 8 is the above-mentioned nuclear reactor core characteristic analysis program,
For each mesh, there is a step of performing calculation using data stored in a storage area determined by the reference information represented by the n-dimensional matrix and storing the calculation result. It is a reactor core characteristic analysis program.

解析は、各メッシュについて、前記n次元行列で表現された参照情報で定まる記憶領域に記憶されているデータを使用して計算を行い、また計算結果を格納するものであるため、請求項7の発明の特徴が最も発揮され易くなる。   The analysis is performed using data stored in a storage area determined by the reference information represented by the n-dimensional matrix for each mesh, and stores the calculation result. The features of the invention are most easily exhibited.

請求項9に記載の発明は、前記の原子炉炉心特性解析プログラムであって、
各メッシュについて繰返し計算を行うステップを有していることを特徴とする原子炉炉心特性解析プログラムである。
The invention according to claim 9 is the above-mentioned nuclear reactor core characteristic analysis program,
A reactor core characteristic analysis program characterized by having a step of repeatedly calculating each mesh.

繰返し計算であるため、データの使用、書き換えも繰返しなされることとなる。この際、メモリ領域の参照情報がn次元行列で作成されているため、請求項7、請求個8の発明の特徴が一層発揮される。   Since it is an iterative calculation, use and rewriting of data are also repeated. At this time, since the reference information of the memory area is created in an n-dimensional matrix, the features of the inventions of claims 7 and 8 are further exhibited.

本発明においては、オブジェクト指向言語を用いた抽象度の高いそして大規模なプログラミングモデルにおいて、元のオブジェクトと同一のメモリ空間を共有するサブセットオブジェクトを使用してメモリを管理するので、元のオブジェクトの隠蔽性を損うことなく効率的なメモリの管理がなされることとなる。
このため、隠蔽性を損うことにより、1のオブジェクトが他のオブジェクトに必要なデータを書き換えてしまう等の各種の不都合が生じなくなる。
また、計算に必要なメモリの量も少なくて済み、さらにメモリへのアクセス時間も短縮されるため、計算費用は少なくなり、計算速度は向上する。
また、メモリ管理にサブセットオブジェクトを用いるため、計算コード内に複雑なメモリ管理機構を設ける必要がなく、その結果計算コードの構造が簡単となるため、保守性の向上にも寄与する。
In the present invention, in a high-level and large-scale programming model using an object-oriented language, memory is managed using a subset object that shares the same memory space as the original object. Efficient memory management is performed without losing the concealment.
For this reason, by losing the concealment property, various inconveniences such as one object rewriting data necessary for another object do not occur.
In addition, the amount of memory required for the calculation is small, and the access time to the memory is shortened, so that the calculation cost is reduced and the calculation speed is improved.
Further, since the subset object is used for memory management, it is not necessary to provide a complicated memory management mechanism in the calculation code, and as a result, the structure of the calculation code is simplified, which contributes to improvement in maintainability.

また、原子炉炉心解析プログラム等の、メッシュ分割された物等を対象として各所の計算が繰返し行われ、この際相互に関連する多種かつ多数のデータの使用、書き換え、記憶等を大規模に行う必要がある解析プログラムにおいては、連続した記憶領域を確保すると共に、各計算オブジェクトが必要とする前記記憶領域についての割り当てられた場所の参照情報がn次元の行列で与えられるため、計算速度の向上、計算費用の削減が可能となるのみならず、プログラムの作成も容易となる。   In addition, the calculation of each part of the reactor core analysis program etc. is repeatedly performed for the mesh-divided items, etc. At this time, the use, rewriting, storing, etc. of various and many related data are performed on a large scale In a necessary analysis program, a continuous storage area is secured, and reference information of an allocated location for the storage area required by each calculation object is given as an n-dimensional matrix, so that the calculation speed is improved. Not only can the calculation cost be reduced, but also the creation of a program becomes easy.

以下、本発明をその最良の実施の形態に基づいて説明する。なお、本発明は、以下の実施の形態に限定されるものではない。本発明と同一および均等の範囲内において、以下の実施の形態に対して種々の変更を加えることが可能である。   Hereinafter, the present invention will be described based on the best mode. In addition, this invention is not limited to the following embodiment. Various modifications can be made to the following embodiments within the same and equivalent scope as the present invention.

(原理の説明)
本実施の形態のオブジェクト指向のメモリ管理方法の原理を、図面を参照しつつ説明する。図3は、各オブジェクト21、22、23へのメモリの分配を概念的に示す図である。図3において、40はアレイオブジェクトであり、49はクラス定義部である。アレイオブジェクト40は、各オブジェクト21、22、23が持つべきメモリ領域の集合体を管理しており、各オブジェクト21、22、23にそれらが持つべきメモリ領域に対応する割当参照情報(Subset reference)であるサブセット参照情報41、42、43を割当てている。またこのため、多数の2次元のサブセット参照情報を、一次元的に配列して(重ねて)メモリ内に保持している。
このため、各オブジェクト21、22、23は、自身のサブセット参照情報41、42、43を介してアレイオブジェクト40と同一のメモリ空間を共有することとしている。なお、各オブジェクト21、22、23は、実際の操作を行う実施部(関数)を有しているが、自明かつ図が煩雑となるため、図3では示していない。
(Description of principle)
The principle of the object-oriented memory management method of this embodiment will be described with reference to the drawings. FIG. 3 is a diagram conceptually showing the distribution of the memory to the objects 21, 22 and 23. In FIG. 3, 40 is an array object, and 49 is a class definition section. The array object 40 manages a collection of memory areas that each of the objects 21, 22, and 23 should have, and each object 21, 22, and 23 has allocation reference information (Subset reference) corresponding to the memory area that they should have. The subset reference information 41, 42, 43 is assigned. For this reason, a large number of two-dimensional subset reference information is arranged one-dimensionally (overlaid) and held in the memory.
For this reason, each object 21, 22, 23 shares the same memory space as the array object 40 via its own subset reference information 41, 42, 43. Each of the objects 21, 22, and 23 has an execution unit (function) that performs an actual operation, but is not shown in FIG. 3 because it is obvious and complicated.

各オブジェクト21、22、23が自分に割当てられたサブセット参照情報41、42、43を変更すると、アレイオブジェクト40の対応するサブセット(本体)の内容も変更される。ただし、他のオブジェクトのサブセット参照情報(および本体)の内容は保護されている。
さらに、各サブセット参照情報41、42、43に対応するメモリのアドレスは重複せず、各オブジェクト21、22、23がメモリへ書き込んだり、メモリから読み出したりするデータの分配、制御については、アレイオブジェクト40のクラス定義部49において集約してなされる。
When the subset reference information 41, 42, 43 assigned to each object 21, 22, 23 is changed, the contents of the corresponding subset (main body) of the array object 40 are also changed. However, the contents of the subset reference information (and the main body) of other objects are protected.
Furthermore, the addresses of the memories corresponding to the subset reference information 41, 42, 43 do not overlap, and the distribution and control of the data that each object 21, 22, 23 writes to or reads from the memory is an array object. This is done in 40 class definition sections 49.

(多数の計算オブジェクトを有する場合)
次に、多数の計算オブジェクトを有する場合における各オブジェクトの管理方法とファイルアクセス方法の様子を、図4を参照しつつ説明する。図4は、この様子を概念的に示す図である。図4において、40は、各オブジェクト21、22、23が持つべきメモリ領域についての情報の集合体であるアレイオブジェクトであり、44はメモリ領域である。このアレイオブジェクト40は1次元配列であり、このアレイオブジェクト40をスライシングにより分割して(そのサブセットとして)作成したオブジェクトが各オブジェクト21、22、23に参照情報として付与され、さらにメモリ領域44も同じくスライシングにより分割されて参照情報(サブセット)として作成されたオブジェクトに、参照情報に対応する領域が付与されている。このため、その長さは各オブジェクト21、22、23が持つべきメモリ領域についての情報に等しく、この情報に基づいて各オブジェクト21、22、23に連続したメモリ領域(連続したヒープ領域)が確保されている。さらに、アレイオブジェクト40、メモリ領域44のいずれもスライシングにより分割されているため、メモリの競合は原理的に生じないこととなる。
(If you have a large number of calculation objects)
Next, the state of the management method and file access method for each object when there are a large number of calculation objects will be described with reference to FIG. FIG. 4 is a diagram conceptually showing this state. In FIG. 4, reference numeral 40 denotes an array object that is a collection of information about memory areas that each of the objects 21, 22, and 23 should have, and reference numeral 44 denotes a memory area. The array object 40 is a one-dimensional array, and an object created by dividing the array object 40 by slicing (as a subset thereof) is given to each of the objects 21, 22, and 23 as reference information, and the memory area 44 is also the same. An area corresponding to the reference information is given to the object divided by slicing and created as reference information (subset). Therefore, the length is equal to the information about the memory area that each object 21, 22, 23 should have, and a memory area (continuous heap area) continuous to each object 21, 22, 23 is secured based on this information. Has been. Furthermore, since both the array object 40 and the memory area 44 are divided by slicing, no memory contention occurs in principle.

(サンプルコード)
以上の動作概念を、図5に示すサンプルコードを用いて説明する。このコードは、C++を使用して、大きさ(4,3,2)の3次元配列オブジェクトAを確保し,次の2つの方法でAの内容を変更している。
1.オブジェクトAの内容を明示的に変更する。これを、図5の上に示す。
2.オブジェクトAの部分要素である大きさ(3,2)の2次元配列への参照情報を取出し、4つのブロックオブジェクトに配置し、各ブロックオブジェクトが内部変数であるオブジェクトAの部分配列に対して内容を変更する。これを、図5の下に示す。
(Sample code)
The above operation concept will be described using the sample code shown in FIG. This code uses C ++ to secure a three-dimensional array object A of size (4, 3, 2), and changes the contents of A by the following two methods.
1. Explicitly change the contents of object A. This is shown at the top of FIG.
2. Retrieves reference information for a two-dimensional array of size (3, 2), which is a subelement of object A, places it in four block objects, and each block object is a content for the subarray of object A, which is an internal variable To change. This is shown at the bottom of FIG.

以下、図5の上のサンプルコードを説明する。
1〜5行で、スライシングを行うために、”blitz++”というテンプレートライブラリのための初期化を行っている。
7行目で、REAL型を、実質的にはfloatの別名を定義している。
9〜33行目が、「ブロック」オブジェクトの定義部であり、図3における49であり、21、22、23の挙動を定義する部分である。
The upper sample code of FIG. 5 will be described below.
Lines 1 to 5 are initialized for a template library “blitz ++” in order to perform slicing.
Line 7 defines the REAL type, which is essentially an alias for float.
The 9th to 33rd lines are the definition part of the “block” object, which is 49 in FIG. 3 and is a part that defines the behavior of 21, 22, and 23.

16〜21行目で、図3における”Sr”の挙動を定義している。これは、いわゆるコンストラクタであり、オブジェクト21等を生成するときのメソッドであり、その引数として(図3の40に相当する)分割対象オブジェクトaとその切り出し位置についての情報posの2つが渡される。これにより、例えば図3の21のオブジェクトの生成について言えば、19行目で自分が持つ参照情報41(12行目で定義されているarrayで、2次元配列を示すオブジェクト)に対してreferenceメソッドを起動し、”a(pos,Range::all(),Range::all())”で作られた40の一部分に対する参照情報を41に割り当てる。この結果、41のarrayは40の部分配列の化身となり、メモリ空間が共有されることとなる。
23〜32行目で、funclメソッドを定義している。メンバ変数arrayに対して操作しているが、実質的にはメモリ空間を共有している別のグローバルオブジェクトの一部分が変更される。
In the 16th to 21st lines, the behavior of “Sr” in FIG. 3 is defined. This is a so-called constructor, which is a method for generating the object 21 and the like, and two of the division target object a (corresponding to 40 in FIG. 3) and information pos about the cut-out position are passed as arguments. Thus, for example, with respect to the generation of the object 21 in FIG. 3, the reference method for the reference information 41 (the object indicating the two-dimensional array in the array defined in the 12th line) owned by the 19th line. And reference information for a portion of 40 created by “a (pos, Range :: all (), Range :: all ())” is assigned to 41. As a result, the array of 41 becomes an incarnation of 40 partial arrays, and the memory space is shared.
The funcl method is defined in the 23rd to 32nd lines. While operating on the member variable array, a portion of another global object sharing the memory space is substantially changed.

図5の下のサンプルコードの内容を説明する。
36〜61行目がテストプログラム本体であり、本コードをコンパイルした実行モジュールを走らせると、最初に36行目に制御が移る。
38行目で、3次元配列aへのポインタを宣言している。また、ブロックオブジェクトへのポインタ配列へのポインタを定義している。
41行目において、グローバル配列オブジェクトaを定義している。各次元の大きさとしてそれぞれ4、3、2としているが、最初の4が長さであり、3と2は3×2の2次元配列の各次元の長さである。即ち、3×2の2次元配列が4個確保されている。
The contents of the sample code at the bottom of FIG. 5 will be described.
The 36th to 61st lines are the test program main body. When an execution module compiled with this code is run, control is transferred to the 36th line first.
In the 38th line, a pointer to the three-dimensional array a is declared. In addition, a pointer to a pointer array to the block object is defined.
In the 41st line, a global array object a is defined. The size of each dimension is 4, 3, and 2, respectively. The first 4 is the length, and 3 and 2 are the lengths of each dimension of the 3 × 2 two-dimensional array. That is, four 3 × 2 two-dimensional arrays are secured.

43〜50行目で、3次元配列に対して値を設定している。
51行目において、3次元配列(オブジェクト)aの内容を表示している。
52行目において、そのデータ構造を表示している。これを図6の”Dump of...”行から”is Storage Contiguous()”までに示す。
55〜59行目において、図3の21に相当する参照オブジェクトを、グローバル配列aのスライシングとして生成している。このため、bのfunclメソッドにより、各オブジェクトのローカル変数41に対する操作は、実は40の該当する箇所を変更していることとなる。
61行目では、55〜59行目で行った操作の副作用{関数において、戻り値を求める以外の動作(値の表示等)の効果}が現れている。
In the 43rd to 50th lines, values are set for the three-dimensional array.
In line 51, the contents of the three-dimensional array (object) a are displayed.
The data structure is displayed in the 52nd line. This is shown from the line “Dump of...” To “is Storage Contiguous ()” in FIG.
In the 55th to 59th lines, a reference object corresponding to 21 in FIG. 3 is generated as slicing of the global array a. For this reason, the operation of the local variable 41 of each object by the b funcl method actually changes the corresponding part of 40.
In the 61st line, the side effect of the operation performed in the 55th to 59th lines {the effect of the operation other than obtaining the return value in the function (value display, etc.)} appears.

図6に、図5に示すサンプルコードの実行結果を示す。前記1.2.のいずれの場合も結果的にオブジェクトAの内容を変更するが、後者2.では配列aが実質的に隠蔽され、各ブロックオブジェクトの独立性が確保される形となっており、プログラム上のメリットが得られる。なお、最初の6個は、情報は更新されているが、同じ値だったので表面的に変化が無かったように見えている。   FIG. 6 shows the execution result of the sample code shown in FIG. Said 1.2. In either case, the content of the object A is changed as a result. Then, the array a is substantially concealed, and the independence of each block object is ensured, and a merit on the program can be obtained. In the first six items, the information has been updated, but since it was the same value, it seems that there was no change on the surface.

(炉心解析コードへの応用)
以上を、原子炉の炉心解析プログラムを例に採って説明する。
加圧水型の原子炉の炉心解析においては、1/4炉心を対象に、XY(水平)方向には燃料格子(約1.26cm)程度の幅で300×300に、Z(軸、上下)方向には15cm程度の幅で30に、即ち3次元配列としてa(300、300、30)のメッシュ分割がなされる。そして、各メッシュについて中性子束、各核種の数密度、燃焼度、燃料情報等の物理量が保持され、さらにそれら物理量の経時的な変化が計算されることとなる。
(Application to core analysis code)
The above will be described by taking a reactor core analysis program as an example.
In the core analysis of a pressurized water reactor, in the XY (horizontal) direction, the width of the fuel lattice (about 1.26 cm) is about 300 × 300, and the Z (axis, vertical) direction is targeted for the 1/4 core. Is divided into 30 with a width of about 15 cm, that is, a (300, 300, 30) as a three-dimensional array. Then, physical quantities such as neutron flux, number density of each nuclide, burnup, fuel information, etc. are held for each mesh, and further, changes with time of these physical quantities are calculated.

図4の各オブジェクト21、22、23は、前記炉心内の1/4集合体単位で分割した単位(ノード)を表現し、その内部において計算メッシュが用意され、各種データが保持されている。
これらのデータは、各オブジェクト21、22、23が計算を開始するに際して別途供給されるリスタートファイルに記録する必要があるため、各オブジェクト21、22、23に分散しているメモリ断片の一部はアレイオブジェクト40のサブセット参照情報(サブアレイ)41として準備する。このために、1次元配列で定義されるメモリは、分割されて各オブジェクト21、22、23に埋め込まれる。これにより、各オブジェクト21、22、23でのメモリの変更は、アレイオブジェクト40の中の1次元配列に自動的に反映される。
Each object 21, 22, and 23 in FIG. 4 represents a unit (node) divided by a 1/4 aggregate unit in the core, and a calculation mesh is prepared therein and various data are held.
Since these data need to be recorded in a restart file separately supplied when each object 21, 22, 23 starts calculation, a part of memory fragments distributed in each object 21, 22, 23 Are prepared as subset reference information (subarray) 41 of the array object 40. For this purpose, the memory defined by the one-dimensional array is divided and embedded in the objects 21, 22, and 23. Thereby, the memory change in each object 21, 22, 23 is automatically reflected in the one-dimensional array in the array object 40.

なお、実際の計算では、前記3次元配列としてのa(300、300、30)のメッシュ分割は、b(27000、10、10)として管理する。つまり、(10、10)の2次元配列が27000個(X、Y、Z方向に各30個存在する)あるものとして管理する。つまり、図4の40のような、(10、10)の2次元配列が27000個1次元的に(1列に)並んだ1次元オブジェクト配列となり、(10、10)の部分が41に相当する。
この結果、各メッシュの計算において、各オブジェクトは参照情報として与えられた(10、10)の領域のデータを参照して計算し、当該領域のデータの書き換えを行うこととなる。このため、1個の巨大な情報のコンテナを取り扱うよりも柔軟性が増すことともなる。
In actual calculation, mesh division of a (300, 300, 30) as the three-dimensional array is managed as b (27000, 10, 10). That is, it is managed that there are 27000 (10, 10) two-dimensional arrays (30 each in the X, Y, and Z directions). That is, as shown by 40 in FIG. 4, a 2D array of (10, 10) is a 1D object array arranged in a one-dimensional manner (in one column), and the portion of (10, 10) corresponds to 41. To do.
As a result, in the calculation of each mesh, each object is calculated by referring to the data of the area (10, 10) given as the reference information, and the data of the area is rewritten. For this reason, it becomes more flexible than handling one huge container of information.

各オブジェクト用に個別に特定のアドレス(メモリ領域)を確保して割当て、さらにその結果メモリの断片化が発生している様子を概念的に示す図である。It is a figure which shows notionally a mode that the specific address (memory area | region) is ensured and allocated separately for each object, and also fragmentation of the memory has occurred as a result. 別途一連の大きなメモリを確保し、各オブジェクトには当該メモリ領域への参照情報を割当てている様子を概念的に示す図である。It is a figure which shows notionally a mode that a series of large memory is ensured separately, and the reference information to the said memory area is allocated to each object. 別途一連の大きなメモリを確保したクラス定義部を有するアレイオブジェクトを有し、各オブジェクトにアレイオブジェクトの参照情報を割当てている様子を概念的に示す図である。It is a figure which shows notionally a mode that it has an array object which has a class definition part which secured a series of large memory separately, and the reference information of an array object is allocated to each object. 各オブジェクトにおける部分配列への参照情報と全体配列との関係を概念的に示す図である。It is a figure which shows notionally the relationship between the reference information to the partial arrangement | sequence in each object, and the whole arrangement | sequence. 本発明の実施の形態としてのサンプルコードである。It is a sample code as an embodiment of the present invention. 図5に示すサンプルコードの動作結果である。It is an operation result of the sample code shown in FIG.

符号の説明Explanation of symbols

10 ベースメモリのアドレス
11、12、13 ヒープ領域のアドレス
21、22、23 オブジェクト1、同2、同3
31、32、33 各オブジェクトが有する参照情報
40 アレイオブジェクト
41、42、43 各オブジェクト内のサブセット参照情報
44 メモリ領域
49 クラス定義部
10 Base memory address 11, 12, 13 Heap area address 21, 22, 23 Object 1, Same 2, Same 3
31, 32, 33 Reference information of each object 40 Array objects 41, 42, 43 Subset reference information in each object 44 Memory area 49 Class definition section

Claims (9)

各オブジェクトが計算時にアクセスを必要とするメモリ領域が連続して確保されたアレイオブジェクトが作成され、
各オブジェクトには、当該オブジェクトが計算時に前記メモリ領域へアクセスするための参照情報が前記アレイオブジェクトをスライシングして割り当てられ、
さらに各オブジェクトは前記参照情報を基に前記アレイオブジェクトの当該参照情報に該当するメモリ領域を更新することを特徴とするオブジェクト指向メモリ管理方法。
An array object is created in which memory areas that each object needs to access at the time of calculation are continuously allocated,
For each object, reference information for the object to access the memory area at the time of calculation is assigned by slicing the array object,
Further, each object updates a memory area corresponding to the reference information of the array object based on the reference information.
前記アレイオブジェクトが確保するメモリ領域の参照情報は、m個のn次元行列にて表現されており、
前記スライシングは、前記n次元行列にて表現された参照情報を単位として行われるものであることを特徴とする請求項1に記載のオブジェクト指向メモリ管理方法。
The reference information of the memory area secured by the array object is represented by m n-dimensional matrices,
The object-oriented memory management method according to claim 1, wherein the slicing is performed in units of reference information represented by the n-dimensional matrix.
前記アレイオブジェクトはクラス定義部を有し、該クラス定義部の作用の下で、前記各オブジェクトの前記メモリ領域へのアクセスによるデータの入出力が行われるものであることを特徴とする請求項1または請求項2に記載のオブジェクト指向メモリ管理方法。   2. The array object includes a class definition unit, and data is input / output by accessing the memory area of each object under the action of the class definition unit. The object-oriented memory management method according to claim 2. 請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用していることを特徴とする解析プログラム。   4. An analysis program that employs the object-oriented memory management method according to claim 1. 前記解析プログラムは、解析対象をメッシュ分割し、各メッシュに同じ内容の計算を行い、計算に必要なデータと計算結果についてのメモリの管理はm個のn次元にて表現された参照情報で特定されるメモリ領域を使用して行われ、さらに前記メモリの管理は請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法にてなされるものであることを特徴とする請求項4に記載の解析プログラム。   The analysis program divides the analysis target into meshes, performs the same calculation for each mesh, and manages the data necessary for the calculation and the memory management for the calculation results using reference information expressed in m n dimensions 5. The memory area according to claim 4, wherein the memory management is performed by the object-oriented memory management method according to any one of claims 1 to 3. Analysis program described in 1. 原子炉炉心特性解析プログラムであることを特徴とする請求項4または請求項5に記載の解析プログラム。   6. The analysis program according to claim 4, wherein the analysis program is a reactor core characteristic analysis program. 原子炉の炉心を水平方向(2次元)と上下方向(1次元)からなる3次元にメッシュ分割し、各メッシュに初期値としての各種物理量を記憶し、また記憶した初期値を基にそれらの経時変化を計算し、さらに該計算の際に請求項1ないし請求項3のいずれかに記載のオブジェクト指向メモリ管理方法を採用している原子炉炉心特性解析プログラムであって、
前記初期値としての各種物理量と計算された経時毎の物理量についての各メッシュのメモリの管理が、m個のn次元行列で表現された参照情報で定まる記憶領域においてなされるものであることを特徴とする原子炉炉心特性解析プログラム。
The reactor core is divided into three dimensions, the horizontal direction (two dimensions) and the vertical direction (one dimension), and various physical quantities as initial values are stored in each mesh, and those values are stored based on the stored initial values. A reactor core characteristic analysis program that calculates a change with time and further adopts the object-oriented memory management method according to any one of claims 1 to 3 at the time of the calculation,
The management of each mesh memory for the various physical quantities as the initial values and the calculated physical quantities over time is performed in a storage area determined by reference information represented by m n-dimensional matrices. Reactor core characteristics analysis program.
各メッシュについて前記n次元行列で表現された参照情報で定まる記憶領域に記憶されているデータを使用して計算を行い、また計算結果を格納するステップを有していることを特徴とする請求項7に記載の原子炉炉心特性解析プログラム。   2. The method of performing calculation using data stored in a storage area determined by reference information represented by the n-dimensional matrix for each mesh, and storing a calculation result. 7. Reactor core characteristic analysis program according to 7. 各メッシュについて繰返し計算を行うステップを有していることを特徴とする請求項8に記載の原子炉炉心特性解析プログラム。
9. The nuclear reactor core characteristic analysis program according to claim 8, further comprising a step of repeatedly calculating each mesh.
JP2006006972A 2006-01-16 2006-01-16 Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program Pending JP2007188384A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006006972A JP2007188384A (en) 2006-01-16 2006-01-16 Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006006972A JP2007188384A (en) 2006-01-16 2006-01-16 Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program

Publications (1)

Publication Number Publication Date
JP2007188384A true JP2007188384A (en) 2007-07-26

Family

ID=38343500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006006972A Pending JP2007188384A (en) 2006-01-16 2006-01-16 Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program

Country Status (1)

Country Link
JP (1) JP2007188384A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100957066B1 (en) 2009-11-27 2010-05-13 (주)에네시스 Method of nuclear reactor core analysis using characteristic of porous media
JP2012529102A (en) * 2009-06-03 2012-11-15 マイクロン テクノロジー, インク. Object-oriented memory in solid-state devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328861A (en) * 1995-01-04 1996-12-13 Internatl Business Mach Corp <Ibm> Method and system for call of subroutine from object
JPH10260288A (en) * 1997-03-19 1998-09-29 Nuclear Fuel Ind Ltd Method for analyzing reactor core and medium recording program for analyzing reactor core
JP2001243079A (en) * 2000-03-02 2001-09-07 Omron Corp Information processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328861A (en) * 1995-01-04 1996-12-13 Internatl Business Mach Corp <Ibm> Method and system for call of subroutine from object
JPH10260288A (en) * 1997-03-19 1998-09-29 Nuclear Fuel Ind Ltd Method for analyzing reactor core and medium recording program for analyzing reactor core
JP2001243079A (en) * 2000-03-02 2001-09-07 Omron Corp Information processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012529102A (en) * 2009-06-03 2012-11-15 マイクロン テクノロジー, インク. Object-oriented memory in solid-state devices
US8751860B2 (en) 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US9110832B2 (en) 2009-06-03 2015-08-18 Micron Technology, Inc. Object oriented memory in solid state devices
KR100957066B1 (en) 2009-11-27 2010-05-13 (주)에네시스 Method of nuclear reactor core analysis using characteristic of porous media

Similar Documents

Publication Publication Date Title
Compton et al. Configuration relocation and defragmentation for run-time reconfigurable computing
Bauer et al. Phat–persistent homology algorithms toolbox
Adler et al. Leap scratchpads: automatic memory and cache management for reconfigurable logic
US20130226535A1 (en) Concurrent simulation system using graphic processing units (gpu) and method thereof
Singh et al. An empirical comparison of the Kendall Square Research KSR-1 and Stanford DASH multiprocessors
US10311193B2 (en) Alteration of a signal value for an FPGA at runtime
TWI502489B (en) Register allocation for clustered multi-level register files
Hwu What is ahead for parallel computing
Jiang et al. Reusing data reorganization for efficient simd parallelization of adaptive irregular applications
Panda et al. Exploiting off-chip memory access modes in high-level synthesis
Ma et al. Acceleration by inline cache for memory-intensive algorithms on FPGA via high-level synthesis
CN103140834A (en) Processor support for filling memory regions
JP2007310565A (en) System lsi verification device and system lsi verification program
JP5295958B2 (en) Extreme virtual memory
JPS62501243A (en) Address environment storage for access to stack-oriented memory
JP2007188384A (en) Method for managing object-oriented memory, analysis program, and nuclear reactor core property analysis program
JP2004030638A (en) Microprocessor cache design initialization
KR102657104B1 (en) Operation device of convolutional neural network, operation method of convolutional neural network and computer program stored in a recording medium to execute the method thereof
Zhu et al. A general logic synthesis framework for memristor-based logic design
Chua et al. Hardware-accelerated free-form deformation
US8549456B2 (en) System and method for circuit design floorplanning
Kandemir et al. Improving the performance of out-of-core computations
Bao et al. Efficient cache simulation for affine computations
Seyfari et al. Optimizing inter-nest data locality in imperfect stencils based on loop blocking
JP4125475B2 (en) RTL generation system, RTL generation method, RTL generation program, and semiconductor device manufacturing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071119

A131 Notification of reasons for refusal

Effective date: 20101130

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20110329

Free format text: JAPANESE INTERMEDIATE CODE: A02