(57)【要約】【課題】二次記憶装置に保存されている大量のデータにプロセッサが利便性、効率性、高速性を損うことなくアクセス可能であるデータファイルの管理方法、構造を提供する。  【解決手段】メッシュ分割された評価対象の全データが、パラメータの種類毎に１のレコードブロックに一定の配列規則で連続して記憶されている１または複数のリスタートファイルに並列アクセスする時に用いるデータファイルの管理方法、構造であって、各メッシュには位置特定番号が付されており、各プロセッサは担当する各メッシュの位置と当該メッシュの計算に必要なデータがいずれのリスタートファイルのいずれのアドレスに在るかを特定するシャッフリング情報を有しており、一定の配列規則、位置特定番号、シャッフリング情報およびバッファを用いてリスタートファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを規則正しい配列で読み込む。  【選択図】図６
2008176659.tif 000002
【特許請求の範囲】
【請求項１】
評価対象をメッシュ分割し、メッシュ分割により形成された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子を、単一のプロセッサがメッシュ毎に逐次計算して評価する際に、プロセッサが各メッシュの計算に必要なデータを入出力するために全データが格納されているリスタートファイルにアクセスする際に用いる逐次計算用データファイル管理方法であって、
前記リスタートファイルは、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなるファイル構造であり、
前記プロセッサは、前記本体部については、前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを前記一定の配列規則に従って読み込み、読み込んだデータを前記各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする逐次計算用データファイル管理方法。
【請求項２】
前記リスタートファイルは、複数あり、
前記プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする請求項１に記載の逐次計算用データファイル管理方法。
【請求項３】
評価対象がブロック分割され、さらにブロック分割で生成された各ブロックはメッシュ分割され、各プロセッサが割り当てられたブロックを必要に応じて他のプロセッサとデータを交換しつつ計算し、これにより分割された各ブロックやメッシュ分割された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子が並列的に計算され、評価がなされる際に、各プロセッサが担当するブロックやそのメッシュの計算に必要なデータを入出力するため全データが格納されているリスタートファイルに並列アクセスする時に用いる並列計算用データファイル管理方法であって、
前記リスタートファイルは、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなるファイル構造であり、
前記評価対象上の各メッシュには、その位置を特定する位置特定番号が前記一定の配列規則と整合を採った規則で付されており、
前記各プロセッサが担当する各ブロック内のメッシュには、当該メッシュが属するブロック内での位置を特定するブロック内番号が一定の規則で付されており、
前記各プロセッサは、担当するブロック内のメッシュについて、前記位置特定番号と前記ブロック内番号との対応表を有しており、
前記各プロセッサは、前記本体部については、前記対応表を参照しつつ前記各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込み、読み込んだデータを各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記各プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする並列計算用データファイル管理方法。
【請求項４】
前記ブロック分割は、各ブロックが凹部を有さない様になされていることを特徴とする請求項３に記載の並列計算用データファイル管理方法。
【請求項５】
前記リスタートファイルは、複数あり、
前記各プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトはその担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする請求項３または請求項４に記載の並列計算用データファイル管理方法。
【請求項６】
前記逐次計算は、原子炉炉心解析のための逐次計算であることを特徴とする請求項１または請求項２に記載の逐次計算用データファイル管理方法。
【請求項７】
前記並列計算は、原子炉炉心解析のための並列計算であることを特徴とする請求項３ないし請求項５のいずれかに記載の並列計算用データファイル管理方法。
【請求項８】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする請求項６に記載の逐次計算用データファイル管理方法。
【請求項９】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする請求項７に記載の並列計算用データファイル管理方法。
【請求項１０】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする請求項６に記載の逐次計算用データファイル管理方法。
【請求項１１】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする請求項７に記載の並列計算用データファイル管理方法。
【請求項１２】
評価対象をメッシュ分割し、メッシュ分割により形成された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子を、単一のプロセッサがメッシュ毎に逐次計算して評価する際に、プロセッサが各メッシュの計算に必要なデータを入出力するために全データが格納されているリスタートファイルにアクセスする際に用いる逐次計算用データファイル管理構造であって、
前記リスタートファイルの構造は、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなり、
前記プロセッサは、前記本体部については、前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを前記一定の配列規則に従って読み込み、読み込んだデータを前記各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記プロッセサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする逐次計算用データファイル管理構造。
【請求項１３】
前記リスタートファイルは、複数あり、
前記プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする請求項１２に記載の逐次計算用データファイル管理構造。
【請求項１４】
評価対象がブロック分割され、さらに分割で生成された各ブロックはメッシュ分割され、各プロセッサが割り当てられたブロックを必要に応じて他のプロセッサとデータを交換しつつ計算し、これにより分割された各ブロックやメッシュ分割された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子が並列的に計算され、評価がなされる際に、各プロセッサが担当するブロックやそのメッシュの計算に必要なデータを入出力するため全データが格納されているリスタートファイルに並列アクセスする時に用いる並列計算用データファイル管理構造であって、
前記リスタートファイルの構造は、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなり、
前記評価対象上の各メッシュには、その位置を特定する位置特定番号が前記一定の配列規則と整合を採った規則で付されており、
前記各プロセッサが担当する各ブロック内のメッシュには、当該メッシュが属するブロック内での位置を特定するブロック内番号が一定の規則で付されており、
前記各プロセッサは、担当するブロック内のメッシュについて、前記位置特定番号と前記ブロック内番号との対応表を有しており、
前記各プロセッサは、前記本体部については、前記対応表を参照しつつ前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込み、読み込んだデータを各レコードファイルに対応したアレイオブジェクトとしてメモリ内に保持し、
前記各プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする並列計算用データファイル管理構造。
【請求項１５】
前記ブロック分割は、各ブロックが凹部を有さない様になされていることを特徴とする請求項１４に記載の並列計算用データファイル管理構造。
【請求項１６】
前記リスタートファイルは、複数あり、
前記各プロセッサは、評価対象物のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする請求項１４または請求項１５に記載の並列計算用データファイル管理構造。
【請求項１７】
前記逐次計算は、原子炉炉心解析のための逐次計算であることを特徴とする請求項１２または請求項１３に記載の逐次計算用データファイル管理構造。
【請求項１８】
前記並列計算は、原子炉炉心解析のための並列計算であることを特徴とする請求項１２ないし請求項１４のいずれかに記載の並列計算用データファイル管理構造。
【請求項１９】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類ごとに、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする請求項１７に記載の逐次計算用データファイル管理構造。
【請求項２０】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする請求項１８に記載の並列計算用データファイル管理構造。
【請求項２１】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする請求項１７に記載の逐次計算用データファイル管理構造。
【請求項２２】
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする請求項１８に記載の並列計算用データファイル管理構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は逐次並列計算用データファイル管理方法と構造に関し、特に例えば原子炉の炉心を解析するための計算のように、評価対象をメッシュ分割し、その経時変化を単一のプロセッサで逐次、あるいは複数のプロセッサで逐次並列的に、計算する際のデータを記憶するデータファイルの管理方法と構造に関する。
【背景技術】
【０００２】
大規模な科学技術計算、例えば原子炉炉心解析では、以下に記す様に単一若しくは複数のプロセッサによって、類似した処理が何度も繰返し行われる。複数のプロセッサにより行われる原子炉炉心解析を例にとって、かかる処理の内容を説明する。
（１）最初に、評価対象の炉心がメッシュ分割され、各プロセッサには担当する領域が割り当てられ、さらにディスク等からなる二次記憶装置から計算に必要なデータの初期値が与えられ、メモリ（プロセッサ付の記憶装置、ただしいわゆるバッファとは異なる）に記憶される。
（２）各プロセッサは、メモリから必要なデータを読み出し、担当する領域の（例えば）１日後の状態を計算し、計算結果をメモリの所定位置（アドレス）に格納し、メモリ上の特定の種類のデータや、さらにケースによってはデータファイル上の特定のデータについても、必要な書き込みや書き換えを行う。
これにより第１回目の（この場合には第１日目の）計算サイクルが終了する。
（３）各プロセッサは、第１回目の計算結果を基に新たなデータが格納されたメモリ等から必要なデータを読み出し、必要に応じて隣接する他のプロセッサと計算結果の交換を行い、しかる後担当するメッシュの２日後の状態を計算し、計算結果をメモリの所定位置（アドレス）に格納し、第１回目と同様に必要な書き込みや書き換えを行う。これにより第２日目の計算サイクルが終了する。
（４）以下、この様な処理が繰返されて、１サイクル終了後の炉心の状態が求められる。
なお、前記の様な計算を行う際には、複数プロセッサによるデータファイルへの並列アクセスが不可欠であるが、これについては幾つかの技術が開示されている（非特許文献１）。
【０００３】
この様な計算においては、各プロセッサはほぼ同一内容の計算を繰返し行い、さらに各計算サイクルにおいてメモリ内のデータの読み込みと、計算結果を基にして担当するメッシュについての各種物理量のデータに対して、計算結果に基づいての新たなデータとしての書き込みや必要に応じて古いデータの上書き、更新である書き換えを行なうこととなる。
この際、最初の（第１日目の）計算サイクルに先立って入力された参照用データ、初期値、境界値等のみならず、条件や計算内容によっては、各計算サイクルにて得られた途中結果を保持しておかねばならないのが普通である。
【０００４】
即ち、例えば、ある計算サイクルで、１のプロセッサがその計算結果に基づいて担当する領域についての二次記憶装置やメモリ内の他のプロセッサと共通に用いられるデータを勝手に書き換えたりすれば、他のプロセッサが自分の担当する領域の計算をその後から行う場合に書き換え前のデータが必要である事態が生じたときに、他のプロセッサは必要なデータは既に書き換えられているため、計算をなし得ないこととなる。
【０００５】
他の例を挙げれば、原子炉の運転で定期的に行われる燃料交換では、単に燃焼が進んだ一部の燃料集合体が新しい燃料集合体に取り替えられるだけでなく、次の運転サイクルでも続けて使用される燃料集合体は原則として炉心内での配置換え（シャッフリング）が行われるが、実際のシャッフリングに先立って予め計算でその最適な配置換えを検討する際や、さらに将来にわたって最適な燃料交換や燃料配置の検討を行う際には、異なる配置毎に同じ燃料集合体のデータを何度も読み込んで計算する必要がある。
また、都合によっては、先行する運転サイクルや他の原子炉である程度燃焼された燃料集合体が装荷される場合もあるが、この様な場合にも、当該燃料集合体についてのデータが保存されている必要がある。
【０００６】
これらのため、全炉心詳細メッシュ体系や全炉心非均質メッシュ体系で計算を行う場合には、取り扱うデータは膨大な量となる。一般に、それらのデータは重複することなく、一時記憶装置（メモリ）上に効率よく保存されるが、一時記憶装置上のデータは計算プログラムが終了すると消失してしまうため、何らかの方法で二次記憶装置（ディスク等）上に保存しておく必要がある。そして、この情報が保存されたデータファイルを、一般的にリスタートファイルと呼ぶ。
リスタートファイルは、前回実施した条件で計算を再開する（リスタート計算）場合、燃料集合体の配置換えを伴う計算（燃料シャッフリング計算またはリロード計算）を行う場合、その他全炉心計算のデータを基に１／４炉心で計算を行う等の計算体系の変更が伴う場合等に用いられる。
【０００７】
この結果、全炉心詳細メッシュ計算では、数百メガバイトにも達するデータを、簡便で効率的に取り扱うことが要求される。また、計算の高速化のためには、複数のプロセッサによる並列計算が必須であるが、これに対応したデータ管理方法（あるいは構造）であることも要求される。
これらのため、従来はデータファイルアクセスを分割する方法が採られていた。この方法は、例えば原子炉炉心計算においては、データの管理単位を燃料集合体１体とし、燃料集合体の数だけデータファイルを準備する方法等が挙げられる。
【０００８】
しかし、この方法では、（１）ファイル入出力の処理（トランザクション）を複数回行わねばならず、スループットを向上させることができず、処理時間が長くなる。
（２）燃料集合体数分のファイルを管理する必要があるため、計算に際してオペレータが行わねばならない処理が煩雑となる。という２つの欠点がある。
特に、前記（１）の欠点は、複数回の入出力処理により大幅に計算速度が低下する可能性があるため、高速処理の観点からは致命的である。
また、（２）の欠点は、管理するファイルの数が増加することは、利便性の低下以外にも誤って不必要な読み出しや書き込みがなされたり、誤ったデータの書き換えがなされたりすることの防止に細心の注意が必要であり、また品質管理の点からも好ましくない。
【０００９】
次に、例えば超大型高速計算機のような単一のプロセッサが全炉心解析を行う場合に限らず、複数のプロセッサが分担して並列で計算を行う場合においても１のプロセッサが複数の領域の計算を担当している場合には、各領域の計算を行うに先立って必要なデータの読み込みがなされ、計算後には計算結果の格納が行われるが、この際担当する領域の計算の開始と終了毎に各プロセッサがリスタートファイルにアクセスすれば、計算速度が著しく遅くなる。このため、この場合にも、一度のアクセスで各領域の計算に必要なデータを一度でかつ一括して読み込み、書込みがなされる必要がある。
【非特許文献１】Ｗｉｌｌｉａｍ  Ｇｒｏｐｐ，ｅｔ，ａｌ．著  Ｕｓｉｎｇ  ＭＰＩ−２，ｐ．１０２，１９９９年  ＭＩＴ  Ｐｒｅｓｓ刊
【発明の開示】
【発明が解決しようとする課題】
【００１０】
これらのため、原子炉炉心計算のごとく、評価対象をメッシュ分割し、分割された各メッシュ内の経時的変化の様子をプロセッサが、特に複数のプロセッサが相互にデータの遣り取り等の連絡を取りつつ逐次、高速で並列計算する様な場合において、二次記憶装置に保存されている膨大な量のデータにプロセッサが利便性、効率性、高速性を損うことなくアクセス可能であるファイルの管理方法、構造の開発が望まれていた。
【課題を解決するための手段】
【００１１】
本発明は、以上の課題を解決することを目的としてなされたものであり、単に並列Ｉ／Ｏ規格であるＭＰＩ−ＩＯ等を用いるだけではなく、データファイルのアクセスすべきアドレスについての参照情報やマップ配列やシャッフリング情報を作成し、それらを利用してプロセッサが必要なデータの一時に、一括してかつ連続しての読み込み、書き込み等を行える様にしたものである。以下、各請求項の発明を説明する。
【００１２】
請求項１に記載の発明は、
評価対象をメッシュ分割し、メッシュ分割により形成された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子を、単一のプロセッサがメッシュ毎に逐次計算して評価する際に、プロセッサが各メッシュの計算に必要なデータを入出力するために全データが格納されているリスタートファイルにアクセスする際に用いる逐次計算用データファイル管理方法であって、
前記リスタートファイルは、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなるファイル構造であり、
前記プロセッサは、前記本体部については、前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを前記一定の配列規則に従って読み込み、読み込んだデータを前記各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする逐次計算用データファイル管理方法である。
【００１３】
本請求項の発明は、原子炉炉心計算、全地球気象予測計算等のごとく、評価対象を細かくメッシュ分割し、各メッシュ内の変化を逐次計算していく計算において必要となる膨大な量のデータを、計算開始に際してリスタートファイルといわれるデータファイルからプロセッサに読み込ませ、計算結果や必要に応じて計算の途中結果等を元のあるいは別のリスタートファイルに出力させる際に用いる逐次計算用データファイル管理方法に関するものである。
リスタートファイルは、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなるファイル構造である。ヘッダー部の計算体系に関する情報とは、各種計算条件、計算結果、燃料装荷パターン等の計算体系に関する情報であり、量が比較的少ないため、通常のシーケンシャルファイルとして読み込まれる。
【００１４】
一方、本体部は、燃焼度等の実質的な計算に必要なパラメータが、パラメータの種類毎に１つのレコードブロックに燃料集合体毎にその配列に対応している等の一定の配列規則で連続して記憶されている。このため、プロセッサは、各パラメータの読み込み毎にレコードブロックにアクセスして、必要なデータを連続して読み込み等を行う。このため、計算に使用するパラメータの種類が７個であれば、プロセッサは原則として合計７回レコードブロックにアクセスすることとなる。原則としてとは、例えば計算対象や計算条件によっては、データ数が少ない複数のパラメータを１のレコードブロックに記憶したり、相互に密接不可分な複数のパラメータを１のパラメータと見なして一体的に取り扱ったりする場合もあり得るため、一部に例外が生じ得ることによる。
なお、並列ファイルＩ／Ｏ機能とは、例えばＭＰＩ−Ｉ／ＯのＣｏｌｌｅｃｔｉｖｅ  Ｉ／Ｏ  等である。
【００１５】
プロセッサは、読み込んだデータをパラメータ毎に所定の規則で配列されたアレイオブジェクトとしてメモリに記憶し、さらに各領域を計算するブロックオブジェクト（操作対象となるデータと、実際の操作を行う実施部（関数）がセットになっているもの。Ｆｏｒｔｒａｎにおける、現実に炉心の中性子分布等の解析を行うサブルーチンに相当するもの）には、当該ブロックオブジェクトが担当するブロック、メッシュ、あるいは炉内の物理的条件の変化等の計算に必要なデータがアレイオブジェクトのどの位置に在るかを示す参照情報を持たせる。またこのため、必要に応じてスライシング（ｓｌｉｃｉｎｇ）等の技術も使用される。
このため、各ブロックオブジェクトは、参照情報を見て必要なデータをメモリから取り出したり、計算結果を書き込んだりする。
なおここに、参照情報は、各ブロックオブジェクトが担当するメッシュやブロックについてのデータと、当該メッシュやブロックの逐次計算の遂行に必要な隣接するそして他のブロックオブジェクトが担当するメッシュやブロックについてのデータとでは、なんらかの区分けがなされていてもよい。
また、各ブロックオブジェクトによる逐次計算結果のリスタートファイルやその他別の二次記憶装置への必要な書き込みや書き換えは、プロセッサが一括して取りまとめて行う。
【００１６】
なお、「評価対象」とは、大きな整数が素数であるか否かを計算する場合のごとく「物」には限定されず、さらに「メッシュ分割」とはかかる計算における試約数の範囲（整数の上限と下限）の指定等も含めた「計算対象や計算に使用するデータや数値の範囲を分割する」という意味であり、計算の内容あるいは数値解析の種類によっては、計算途中で各メッシュ間で必要な計算結果のやりとりがなされたりすることとなる。
さらに、「評価対象」には、例えば原子炉の炉心解析においては、現実の炉心の水平断面は円形であるが、計算コードの内部では外部との境界条件を直線として取扱う事が一般的であるので、全体を正方形として描き、現実には炉心が存在しない場所も炉心と同じく燃料集合体の大きさでメッシュ分割をして形式的に（実際の解析計算はなされない）評価対象とされるが、この様な場合も含まれる概念である。
またこのため、「前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う」とあるが、現実には計算がなされないあるいは一部なされない領域、メッシュもあり得る。これらのため、データの読み出しがなされないメッシュ、一部データの読み出しがなされないメッシュもあり得る。
また、原子炉の炉心等の物体を対象とするいわゆるメッシュ分割においても、平面的、立体的な分割に限定されず、各メッシュが同じ大きさであるとは限らない。ちなみに、例えば３次元炉心解析用データにおいて、燃料集合体の位置や種類に応じて、縦方向の分割が相違することもあり得る。
【００１７】
請求項２に記載の発明においては、前記の逐次計算用データファイル管理方法であって、
前記リスタートファイルは、複数あり、
前記プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする逐次計算用データファイル管理方法である。
【００１８】
本請求項の発明は、前回実施した計算条件で計算を再開するリスタート計算、シャッフリングやリロードで燃料集合体の再配置を伴う計算であるため、リスタートファイルが複数ある場合に関する。このため、プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、各メッシュから読み込んだデータを一時記憶するバッファを有している。そして、シャッフリング情報を参照しつつ、各リスタートファイルから必要なデータを読み込み、バッファに格納する。さらに、全てのリスタートファイルからの読み込みが終了すれば、バッファ内のデータを実際の配列に並び替え、メモリ内へ正しい配列に並び替えて書き込む。
なお、バッファ内のデータを正しい配列に並び替えてメモリ内へ書き込むことは、バッファ内からデータを所定の順で読み込み、メモリ内へ順に書き込むことを含む。
【００１９】
ここに、シャッフリング情報とは、何れのリスタートファイルのどの位置にあるメッシュが新しく逐次計算が行われる炉内（評価対象）の何れの位置のメッシュに相当するかを示す情報を指す。また、「メッシュ」とは、評価対象をメッシュ分割して形成された小さな領域、ブロックを指すが、これは燃料集合体が複数含まれる場合、１個の燃料集合体が複数のメッシュに分割される場合、１メッシュ＝１燃料集合体のいずれの場合をも含む。さらに、読み込むべきメッシュのアドレス、新しい配置位置を特定可能な限り、シャッフリング情報は数個のメッシュを１単位として取り扱っていてもよい。
また、シャッフリング情報とは、複数のリスタートファイルから正しく必要なデータを取り出したりするための情報を指す。
また、後の実施の形態で説明するが、新燃料を装荷する場合であって各新燃料を区別する必要がないとき等には、それらについてのデータの読み込みは一括してなされてもよい。
【００２０】
請求項３に記載の発明は、
評価対象がブロック分割され、さらにブロック分割で生成された各ブロックはメッシュ分割され、各プロセッサが割り当てられたブロックを必要に応じて他のプロセッサとデータを交換しつつ計算し、これにより分割された各ブロックやメッシュ分割された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子が並列的に計算され、評価がなされる際に、各プロセッサが担当するブロックやそのメッシュの計算に必要なデータを入出力するため全データが格納されているリスタートファイルに並列アクセスする時に用いる並列計算用データファイル管理方法であって、
前記リスタートファイルは、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなるファイル構造であり、
前記評価対象上の各メッシュには、その位置を特定する位置特定番号が前記一定の配列規則と整合を採った規則で付されており、
前記各プロセッサが担当する各ブロック内のメッシュには、当該メッシュが属するブロック内での位置を特定するブロック内番号が一定の規則で付されており、
前記各プロセッサは、担当するブロック内のメッシュについて、前記位置特定番号と前記ブロック内番号との対応表を有しており、
前記各プロセッサは、前記本体部については、前記対応表を参照しつつ前記各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込み、読み込んだデータを各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記各プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする並列計算用データファイル管理方法である。
【００２１】
本請求項の発明は、複数のプロセッサが評価対象を分担して並列して逐次計算を行う場合である。このため、評価対象上の各メッシュには、その位置を特定する位置特定番号が一定の配列規則と整合を採った規則で付されているのはプロセッサが１の場合と同じであるが、各プロセッサが担当する各ブロック内のメッシュには、当該メッシュが属するブロック内での位置を特定するブロック内番号が一定の規則で付されており、各プロセッサは、担当するブロック内のメッシュについて、位置特定番号とブロック内番号との対応表、その他ケースによってはブロックの形状についての情報等を有しており、これらにより、本体部に対応表を参照しつつレコードファイル毎に並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込み、さらにメモリ内の各レコードブロックに対応したアレイオブジェクトとして読み込んだデータを保持する。
その上で、読み込んだデータについての参照情報を各ブロックオブジェクトに通知するあるいは付加する。各ブロックオブジェクトはさらに担当するブロック、メッシュを計算する。
【００２２】
なお、各プロセッサによる計算結果のリスタートファイルへの書き込みや書き換えも、不規則分散配列の処理（ＭＰＩ−ＩＯにおけるＣｏｌｌｅｃｔｉｖｅ−Ｉ／Ｏのうち“Ｉｒｒｅｇｕｌａｒｌｙ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ａｒｒａｙｓ”の機能やこれに対応する機能）で統一して行われることとなる。
なおまた、各プロセッサの能力が同じであれば、各プロセッサが１個のブロックを担当する、あるいはプロセッサの個数だけブロック分割することが好ましい。ただし、各プロセッサが担当するブロックの個数は同じでなくてもよく、１個を担当するプロセッサと複数個を担当するプロセッサがあってもよい（本発明に含まれる）。
また、プロセッサの台数、あるいはブロック分割の個数の都合で、１の燃料集合体内のメッシュが異なるブロックに分割されることもあり得る。
さらに、原子炉の炉心計算等では、各メッシュの計算結果が相互に影響しあう、あるいは他のメッシュの１つ前のサイクルのデータが必要である様な場合が多いが、同じプロセッサで計算されるメッシュ相互、それも特に隣接するメッシュ間においては、当該メッシュの計算を担当するプロセッサ内で処理される様になっていることが望ましい。なお、ブロックの境界のメッシュの場合には、隣接するブロックを担当するプロセッサと通信用のキューやバッファを介して、かつ一括しての送受信がなされることとなる。
【００２３】
請求項４に記載の発明は、前記の並列計算用データファイル管理方法であって、
前記ブロック分割は、各ブロックが凹部を有さない様になされていることを特徴とする並列計算用データファイル管理方法である。
【００２４】
本請求項の発明においては、各プロセッサが並列計算を担当するブロックは凹みがないため、ブロック内番号の付け方、対応表の作成が容易となる。即ち、起点から右下方向に番号を昇順に付けていけばよい。
また、他のプロセッサが担当する領域、ブロックと隣接する界面も少なくなり、この面からも処理速度が向上する。
【００２５】
請求項５に記載の発明は、前記の並列計算用データファイル管理方法であって、
前記リスタートファイルは、複数あり、
前記各プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトはその担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行うものであることを特徴とする並列計算用データファイル管理方法である。
【００２６】
本請求項の発明は、リスタートファイルが複数ある場合である。このため、プロセッサ毎に、その担当しているブロックについてのデータのリスタートファイルからの読み込み等について、前記の発明の作用がなされる。
なお、複数のプロセッサの一部のみが複数のリスタートファイルからデータを読み込み、他のプロセッサは１個のリスタートファイルからデータを読み込む場合も本発明に含まれる。
【００２７】
請求項６に記載の発明は、前記の逐次計算用データファイル管理方法であって、
前記逐次計算は、原子炉炉心解析のための逐次計算であることを特徴とする逐次計算用データファイル管理方法である。
【００２８】
原子炉炉心解析のための逐次計算の場合に、前記の逐次計算用データファイル管理方法の作用、効果が最も発揮できる。
また、原子炉炉心解析であるため、あるメッシュとこれに面で隣接するメッシュ間での当該面を介しての中性子の流出入は、一方のメッシュにとっての流入は、他方のメッシュにとっての流出となる等の処理もなされる。  
【００２９】
請求項７に記載の発明は、前記の並列計算用データファイル管理方法であって、
前記並列計算は、原子炉炉心解析のための並列計算であることを特徴とする並列計算用データファイル管理方法である。
【００３０】
原子炉炉心解析のための並列計算の場合に、前記の並列計算用データファイル管理方法の作用、効果が最も発揮できる。
【００３１】
請求項８に記載の発明は、前記の逐次計算用データファイル管理方法であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする逐次計算用データファイル管理方法である。
【００３２】
本請求項の発明においては、燃料集合体に対応して作成された升目を単位として、燃料集合体、水反射体（中性子反射体、その他熱遮蔽）、真空領域等の各種の升目の構成要素毎に、行を列より優先し、１／４炉心図においては、同じ行では左方を右方に優先して、左上隅となる升目を起点として、その結果原則として炉心やその近傍の位置となる、左上隅の升目を起点にして昇順に整数の番号が付される。このため、燃料集合体ならば、左上隅の燃料集合体は１とされ、その右の燃料集合体は２とされる。
ここに、「燃料集合体に対応して作成された升目」とは、平面図におけるメッシュ分割の縦線、横線が、同じく正方形である燃料集合体の各辺と同じ場合のみならず、燃料集合体をさらに各辺に平行な縦線、横線で分割する場合、特に縦、横とも等分割する場合をも含む。
なお、前記の「行」、「列」、「左方」、「右方」は、あくまでも図面上での方向のことであり、実際の原子炉においては、これらと均等な東西方向と南北方向に着目して優先度を決める等のことがなされ得る。
【００３３】
請求項９に記載の発明は、前記の並列計算用データファイル管理方法であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする並列計算用データファイル管理方法である。
【００３４】
本請求項の発明は、請求項８が逐次計算用データファイル管理方法を対象としているのに対して、並列計算用データファイル管理方法を対象として１／４炉心図における一定の配列規則の内容を定めたものである。
【００３５】
請求項１０に記載の発明は、前記の逐次計算用データファイル管理方法であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする逐次計算用データファイル管理方法である。
【００３６】
本請求項の発明においては、全炉心を対象に各構成要素毎の番号が付される。
【００３７】
請求項１１に記載の発明は、前記の並列計算用データファイル管理方法であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする並列計算用データファイル管理方法である。
【００３８】
本請求項の発明は、請求項１０が逐次計算用データファイル管理方法を対象としているのに対して、並列計算用データファイル管理方法を対象として全炉心図における一定の配列規則の内容を定めたものである。
【００３９】
請求項１２に記載の発明は、
評価対象をメッシュ分割し、メッシュ分割により形成された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子を、単一のプロセッサがメッシュ毎に逐次計算して評価する際に、プロセッサが各メッシュの計算に必要なデータを入出力するために全データが格納されているリスタートファイルにアクセスする際に用いる逐次計算用データファイル管理構造であって、
前記リスタートファイルの構造は、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなり、
前記プロセッサは、前記本体部については、前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを前記一定の配列規則に従って読み込み、読み込んだデータを前記各レコードブロックに対応したアレイオブジェクトとしてメモリ内に保持し、
さらに前記プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする逐次計算用データファイル管理構造である。
【００４０】
本請求項の発明は、方法の発明である請求項１を、物の発明として捉えたものである。
ここに、「逐次計算用データファイル管理構造」とは、逐次計算用のデータファイル（リスタートファイル）と、このデータファイルから逐次計算に必要なデータの読み込み等を行い、逐次計算を行う計算機（プロセッサ）と、その制御用の計算プログラム等の組合せを指す。
【００４１】
請求項１３に記載の発明は、前記の逐次計算用データファイル管理構造であって、
前記リスタートファイルは、複数あり、
前記プロセッサは、評価対象のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする逐次計算用データファイル管理構造である。
【００４２】
本請求項の発明は、方法の発明である請求項２を、物の発明として捉えたものである。
【００４３】
請求項１４に記載の発明は、
評価対象がブロック分割され、さらに分割で生成された各ブロックはメッシュ分割され、各プロセッサが割り当てられたブロックを必要に応じて他のプロセッサとデータを交換しつつ計算し、これにより分割された各ブロックやメッシュ分割された各メッシュが相互に影響を及ぼしつつ経時的に変化していく様子が並列的に計算され、評価がなされる際に、各プロセッサが担当するブロックやそのメッシュの計算に必要なデータを入出力するため全データが格納されているリスタートファイルに並列アクセスする時に用いる並列計算用データファイル管理構造であって、
前記リスタートファイルの構造は、計算体系に関する情報が記憶されているヘッダー部と、各メッシュのデータが分割されてパラメータの種類毎に１つのレコードブロックに一定の配列規則で連続して記憶されている本体部からなり、
前記評価対象上の各メッシュには、その位置を特定する位置特定番号が前記一定の配列規則と整合を採った規則で付されており、
前記各プロセッサが担当する各ブロック内のメッシュには、当該メッシュが属するブロック内での位置を特定するブロック内番号が一定の規則で付されており、
前記各プロセッサは、担当するブロック内のメッシュについて、前記位置特定番号と前記ブロック内番号との対応表を有しており、
前記各プロセッサは、前記本体部については、前記対応表を参照しつつ前記各レコードファイルに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込み、読み込んだデータを各レコードファイルに対応したアレイオブジェクトとしてメモリ内に保持し、
前記各プロセッサは、その内部にある、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする並列計算用データファイル管理構造である。
【００４４】
本請求項の発明は、方法の発明である請求項３を、物の発明として捉えたものである。
ここに、「並列計算用データファイル管理構造」とは、並列計算用のデータファイルと、このデータファイルから並列計算に必要なデータの読み込み等を行い、並列計算を行う（複数の）計算機（プロセッサ）と、その制御用の計算プログラム等の組合せを指す。
【００４５】
請求項１５に記載の発明は、前記の並列計算用データファイル管理構造であって、
前記ブロック分割は、各ブロックが凹部を有さない様になされていることを特徴とする並列計算用データファイル管理構造である。
【００４６】
本請求項の発明は、方法の発明である請求項４を、物の発明として捉えたものである。
【００４７】
請求項１６に記載の発明は、前記の並列計算用データファイル管理構造であって、
前記リスタートファイルは、複数あり、
前記各プロセッサは、評価対象物のメッシュ毎に、当該メッシュを計算するために必要なデータを何れのリスタートファイルのどの位置から読み込むべきかについて、前記一定の配列規則と整合を採った規則で作成されたシャッフリング情報と、
各メッシュから読み込んだデータを一時記憶するバッファを有し、
前記各プロセッサは、前記各リスタートファイルにその本体部から前記シャッフリング情報を参照しつつ各レコードブロックに並列ファイルＩ／Ｏ機能でアクセスして必要なデータを読み込んで前記バッファに格納し、
前記バッファ内に読み込んだデータを、前記シャッフリング情報を参照しつつ並び替えてメモリ内にコピーし、
さらに、各メッシュを担当する各ブロックオブジェクトについて、当該ブロックオブジェクトが担当するメッシュの計算に必要なデータを前記アレイオブジェクトに入出力するためのアドレスについての情報である参照情報を作成し、
前記各ブロックオブジェクトは、その担当する各メッシュの計算に必要なデータの入出力を、前記参照情報を参照しつつ前記アレイオブジェクトに対して行う様になされていることを特徴とする並列計算用データファイル管理構造である。
【００４８】
本請求項の発明は、方法の発明である請求項５を、物の発明として捉えたものである。
【００４９】
請求項１７に記載の発明は、前記の逐次計算用データファイル管理構造であって、
前記逐次計算は、原子炉炉心解析のための逐次計算であることを特徴とする逐次計算用データファイル管理構造である。
【００５０】
本請求項の発明は、方法の発明である請求項６を、物の発明として捉えたものである。
【００５１】
請求項１８に記載の発明は、前記の並列計算用データファイル管理構造であって、
前記並列計算は、原子炉炉心解析のための並列計算であることを特徴とする並列計算用データファイル管理構造である。
【００５２】
本請求項の発明は、方法の発明である請求項７を、物の発明として捉えたものである。
【００５３】
請求項１９に記載の発明は、前記の逐次計算用データファイル管理構造であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする逐次計算用データファイル管理構造である。
【００５４】
本請求項の発明は、方法の発明である請求項８を、物の発明として捉えたものである。
【００５５】
請求項２０に記載の発明は、前記の並列計算用データファイル管理構造であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
かつ１／４炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、左上隅となる升目を起点として昇順に番号を付すものであることを特徴とする並列計算用データファイル管理構造である。
【００５６】
本請求項の発明は、方法の発明である請求項９を、物の発明として捉えたものである。
【００５７】
請求項２１に記載の発明は、前記の逐次計算用データファイル管理構造であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする逐次計算用データファイル管理構造である。
【００５８】
本請求項の発明は、方法の発明である請求項１０を、物の発明として捉えたものである。
【００５９】
請求項２２に記載の発明は、前記の並列計算用データファイル管理構造であって、
前記一定の配列規則とは、燃料集合体に対応した升目を単位とするものであり、
全炉心図において、各構成要素の種類毎に、行を列より優先し、同じ行では左方を右方に優先して、昇順に番号を付すものであることを特徴とする並列計算用データファイル管理構造である。
【００６０】
本請求項の発明は、方法の発明である請求項１１を、物の発明として捉えたものである。
【発明の効果】
【００６１】
本発明においては、プロセッサが複数の領域の計算を行う際に、単一若しくは複数のリスタートファイルからなるデータファイルのアクセスすべきアドレスについての参照情報やマップ配列やシャッフリング情報を作成し、それらとバッファを利用して、プロセッサによるデータファイルからの計算に必要なデータの読み込み等、プロセッサ内での各ブロックオブジェクトによる読み込んだデータの計算のためのメモリへのアクアセス等を一時に、一括してかつ連続して行うため、計算速度が向上する。
【００６２】
また、複数のプロセッサが担当する領域の計算を行う際に、各プロセッサ用にデータファイルのアクセスすべきアドレスについての参照情報やマップ配列やシャッフリング情報を作成し、それらとバッファを利用することにより、各プロセッサが計算に必要なデータのデータファイルからの読み込み等を一時に、一括してかつ連続して行うため、計算速度が向上する。
【発明を実施するための最良の形態】
【００６３】
以下、本発明をその最良の実施の形態に基づいて説明する。なお、本発明は、以下の実施の形態に限定されるものではない。本発明と同一および均等の範囲内において、以下の実施の形態に対して種々の変更を加えることが可能である。
【００６４】
（第１の実施の形態）
本実施の形態は、単一のプロセッサがメッシュ分割された全領域を、逐次計算する場合である。なお、本発明はリスタートファイルからのデータの読出し、書込み等のファイル入出力処理の高速化に関する発明であるため、実施の形態も原則としてこれに絞って説明する。
先ず、炉心計算に使用するリスタートファイルの構造と、プロセッサがその内部データをメモリに取り込み、さらにスライシングされて分割された各ブロックオブジェクトへ取り込んだデータを割り振ることについて、図１を参照しつつ説明する。図１において、１００はリスタートファイルであり、１１０はそのヘッダー部であり、１２０は本体部であり、１２１から１２７はレコードブロックである。また、２０１と２０２は、各々メモリ内の前記１２１と１２２のレコードブロックに対応するデータである。３１０と３２０は、各々分割されたブロックオブジェクトであり、３１１と３１２および３２１と３２２は各々ブロックオブジェクト３１０、３２０の参照情報である。
【００６５】
リスタートファイル１００がヘッダー部１１０と本体部１２０に分かれているのは、並列計算時の高速読み込みのためである。ヘッダー部１１０には、各種計算条件、計算結果、燃料装荷パターン等の計算体系に関する情報が格納されている。また、本体部１２０には、メッシュ分割で形成された各メッシュの燃焼度、核種数密度情報を含む詳細なパラメータが、パラメータ毎に連続したアドレスで所定のレコードブロック１２１から１２７に格納されている。なお、レコードブロックの個数は、パラメータの個数（種類の数）等に応じてケースバイケースで増減される。
また、メッシュ分割の大きさは、理解の容易のため、本実施の形態のみならず、後の実施の形態でも、１メッシュが１個の燃料集合体を装荷する領域としているが、これに限定されるものではない。
【００６６】
ヘッダー部１１０のデータ量は比較的少ないため、並列Ｉ／Ｏ規格であるＭＰＩ−ＩＯの関数（ＭＰＩ_Ｆｉｌｅ_ｒｅａｄ）を用いるが、基本的には通常のシーケンシャルファイルと同様のアクセスを行う。
本体部１２０へのアクセスは、各レコードブロック１２１〜１２７毎に行う。
【００６７】
ブロックオブジェクト３１０、３２０には、評価対象の領域を計算する際に必要なデータをメモリに入出力するために、各々参照情報３１１と３１２、３２１と３２２を有している。なお、図では、参照情報はスペースの都合で各２個としているが、実際には原則として各レコードブロックに対応する参照情報を有している。そして、各ブロックオブジェクトの計算に際しては、これらの参照情報を基に対応するメモリ内のアドレスにアクセスし、必要なデータの入出力を行うこととなる。
さらに、現実の炉心計算においては、評価対象の領域を計算するためには隣接する領域のデータも必要であり、このためかかるデータについての参照情報を有し、それらのデータも読み込まれる。
【００６８】
以上の他、炉心計算の内容、種類によっては、分割されたブロック毎の逐次計算がひととおり終了すれば、次のステップの計算がなされるが、これに先立ち各ブロックオブジェクトの保有する計算結果に基づいてメモリ内の所定のデータの書き換え、しかる後次のステップの計算のために参照情報を参照してメモリ内から新しいデータを入手する等の処理もなされることとなる。なおこの場合において、各ブロックオブジェクトが、計算対象の領域を計算するために当該領域に隣接する領域のデータをも読み込んでいるときには、参照情報に付されているフラグ等を基に、計算結果のみメモリに出力することとなる。
さらには、場合によっては、最終計算結果や途中計算結果のリスタートファイルへの書き込み等もなされることとなる。
【００６９】
最後に、実際のファイルアクセスの手順を説明する。
基本的には、例えばＭＰＩ−ＩＯのＣｏｌｌｅｃｔｉｖｅ  Ｉ／Ｏ等の並列ファイルＩ／Ｏ機能を用いる。
（１）ＭＰＩ_Ｆｉｌｅ_ｏｐｅｎ  で、リスタートファイルを開き、アクセス可能とする。
（２）バイト単位でなくレコードブロック単位でファイルアクセスを可能とするため、ファイルアクセスの型を定義する。これにより、ファイルストリームが良好になる。
（３）ＭＰＩ_Ｆｉｌｅ_ｓｅｔ_ｖｉｅｗ  で、ファイルの前記の物理構造と論理構造を対応付けるための機構であるファイルビューを設定する。最初は、ヘッダー部を読み飛ばし、ＢｕｒｎｕｐＰａｒａｍ  にアクセスする様に設定する。
【００７０】
（４）ＭＰＩ_Ｆｉｌｅ_ｒｅａｄ_ａｌｌ／ＭＰＩ_Ｆｉｌｅ_ｗｒｉｔｅ_ａｌｌ  でＢｕｒｎｕｐＰａｒａｍ  にアクセスし、最初のレコード（プロセッサのメモリ内へ読み込んだデータ）の書き込みを行う。
（５）ＭＰＩ_Ｆｉｌｅ_ｓｅｔ_ｖｉｅｗ  で、既に読み込んだＢｕｒｎｕｐＰａｒａｍ  を、ヘッダー部と見なして読み飛ばす様に設定する。
（６）ＭＰＩ_Ｆｉｌｅ_ｒｅａｄ_ａｌｌ／ＭＰＩ_Ｆｉｌｅ_ｗｒｉｔｅ_ａｌｌ  でＦｕｅｌＰａｒａｍ  にアクセスし、次のレコードの書き込みを行う。
（７）以下、同様の手順でファイルビューを変更して、全てのレコードに対する処理を行う。
【００７１】
（第２の実施の形態）
本実施の形態は、複数のプロセッサが担当する領域を並列して計算する場合であり、基本的にはＭＰＩ−ＩＯにおけるＣｏｌｌｅｃｔｉｖｅ−Ｉ／Ｏのうち「不規則分散配列」の機能（あるいは同等の機能）を用いる。
この機能の概略を、図２を参照しつつ説明する。図２に示す様に、各プロセッサが、入出力対象となるデータを特定する番号が所定の規則で配列された情報であるデータアレイと、データ要素のデータファイル中における位置情報であるマップアレイを持っているものである。図２の上は、各プロセッサのデータアレイであり、下は対応する位置情報が昇順に記載されているマップアレイである。
【００７２】
次に不規則分散配列機能を応用して、複数のプロセッサが並列計算を行う際に、リスタートファイルから必要なデータを入手する様子を、図３と図４を参照しつつ説明する。図３は、各プロセッサが炉心を分担して計算するために、炉心を分割する内容（炉心の区割り）と、分割の前後における各メッシュの位置を示す情報であるブロックナンバーの付け方を説明するための図である。図３において、左の正方形は１／４炉心図である。なお、本実施の形態も、計算そのものは、全炉心計算を行う場合について説明しているが、図面は１／４炉心図としているのは、全炉心図では内容が細かくなり過ぎ、図面が判り難くなることと、ブロックナンバーの付け方等の基本は全炉心図でも１／４炉心図でも同じであることによる。さらに、升目、メッシュ分割も実際の炉心より少なくし（実際の炉心では、例えば装荷される燃料集合体の個数はもっと多い）、各升目イコール燃料集合体の大きさとして分割している。また、前記のごとく現実の炉心の水平断面は円形であるが、計算コードの内部では外部との境界条件を直線として取扱う事が一般的であるので、全体を正方形として描き、現実には炉心が存在しない場所も炉心と同じく燃料集合体の大きさでメッシュ分割をしている。
【００７３】
この１／４炉心は、図に示す太い黒線を境界線として２つの領域（ブロック）に分割され、分割された各領域が各々プロセッサ０、同１により分担して並列的に計算される。図３の右側に、分割された２つの領域を示す。
なお、プロセッサ０、同１は、担当する領域の計算を並列して行うが、そのために必要なデータのリスタートファイルからの入出力をも、並列的に行うこととなる。
以下、各プロッセサが行うリスタートファイルからのデータの入出力の方法を説明する。
【００７４】
図３の左側に示す正方形の各升目内の数字は、１／４炉心図における当該升目を識別する整数（ブロックナンバー）である。この数字は、燃料領域にある燃料集合体は正整数、水反射体（中性子反射体）領域の升目は負整数とし、さらに前記の理由により１／４炉心図を正方形で描いているが原子炉圧力容器は実際には円形であるため、何も存在しない真空領域（あるいは、炉心計算には実際上無関係な領域）の升目は０としている。なお、実際の炉心計算においては、燃料領域、水反射体領域、真空領域では、なされる計算、計算に必要なデータ、計算のため読み出されるデータが相違するが、ブロックナンバーが正整数、負整数、０の何れであるかに応じて必要な処理がなされることとなる。
燃料集合体の番号は、左上の升目が１であり、第１行の右端の燃料集合体まで昇順に付し、第２行においても左端から右端の燃料集合体まで第１行から連番で昇順に付し、以下最後の行まで同様に付している。
また、負の整数も、一番上の行の水反射体から右方に（マイナスを無視すると）昇順に付し、以下の行においても連番で昇順に付していることを示す。
【００７５】
なお、図３の右に示す分割された２つのブロック（領域）にも、それら各ブロック内における各升目を識別する整数であるブロック内番号が左上から右下方向に同じ規則で昇順に付されている。また、マイナスと０の意味は、左側の正方形（１／４炉心図）と同じである。さらに、番号付与の簡単化のため、分割された領域はかならず凸型となる様にしている。
正方形内の升目と、分割された各領域（ブロック）内の升目とは必ず１対１に対応する。即ち、例えば左の正方形内の第１番目と第１５番目の升目は、各々右に示すプロセッサ０用のブロックの第１の升目と第８の升目に対応し、同じく正方形の第２番目の升目は、プロセッサ２用のブロックの１の升目に対応する。この対応の様子を、点線で示す。
【００７６】
このため、分割されたブロックの形状とブロック内の各升目が分割前の正方形のどの升目に対応するかの関係を示すマップ配列（ブロックナンバーとブロック内番号の対応を示すデータアレイ）を作成し、このマップ配列を図２に示す様に各プロセッサに持たせておけば、後はＭＰＩ−ＩＯの不規則分散配列機能により、各プロセッサは必要なデータを正しく入出力することが可能になる。
ただし、前記のごとくあるメッシュを計算するためには、隣接するメッシュのデータも必要なことが多いため、読み出しについては隣接するメッシュもなされるか、あるいは分割された領域に隣接する他の領域の境界部のメッシュも読み出されるようにプログラムされていてもよい。ただし、このプログラム自体は作成が容易であるため、説明は省略する。
【００７７】
図４に、以上の方法により、プロセッサ０、同１が、リスタートファイルのＡｒｒａｙ＜ＢｕｒｎｕｐＰａｒａｍ＞にアクセスし、必要なデータを各々のメモリに読み込む様子と、各々が読み込んだデータをその内部のブロックオブジェクトの参照情報と対応させている様子を示す。なお、他のＡｒｒａｙからの読み込みもそれらのＡｒｒａｙに対応したマップ配列を使用して同様に行われる。
この処理の際、各升目に付す番号は左上から右下方向への、行（上下）を列（左右）より優先した昇順であるため、手順の錯誤も生じない。
【００７８】
次に、ファイルアクセスについて説明する。
基本的には第１の実施の形態と同様であるが、マップ配列を使用する点が異なる。このため、ＭＰＩ_Ｆｉｌｅ_ｓｅｔ_ｖｉｅｗ  する前に、ＭＰＩ_Ｔｙｐｅ_ｃｒｅａｔｅ_ｉｎｄｅｘｅｄ_ｂｌｏｃｋ  で不規則配列の関するＭＰＩ_Tｙｐｅ  を作成しておくこととなる。ただし、実際には、第１の実施の形態では、プロセッサが１個であるため、メモリ上の番号とリスタートファイル中の番号が完全に一致するため、そのようなマップ配列を用意しており、このためファイルアクセス方法は同じである。
【００７９】
（第３の実施の形態）
本実施の形態は、リロード（燃料シャッフリング）に伴うリスタート時で複数のリスタートファイルからデータを読み込む場合、即ち燃焼済みの燃料を新燃料に取替えるだけでなく先行するサイクルまたは他の炉である程度燃焼された燃料を装荷し、さらに継続して燃やす燃料のシャッフリングを行う場合についての炉心計算を開始する場合である。
【００８０】
以下、図５を参照しつつ本実施の形態を説明する。図５の上左の正方形は、図３の左の正方形と同じく１／４炉心のブロックナンバーである。
また、上右の正方形は、次の運転サイクルにおいて炉内の何れの位置にどの様な燃料集合体が装荷されるのかを示す情報、即ちシャッフリング情報である。この情報の読み方について説明する。正方形の升目の内部の上側に記載されている「Ｎ−２」は、これから運転を開始するサイクルを第Ｎサイクルとしたとき、２つ前のサイクルの運転に使用され、当該サイクル終了後に炉外に搬出され、保管されていた燃料集合体、即ちＮ−２サイクル終了時の燃料集合体であることを示す。さらに、その下側に記載されている整数は、当該燃料集合体が第Ｎ−２サイクルに炉内で占めていた位置（ブロックナンバー）を示す。
【００８１】
同じく、「Ｎ−１」は１つ前のサイクル、即ち直前のサイクルに使用され、これから運転に入る第Ｎサイクルにも継続して使用される燃料集合体であることを示す。さらに、下側に記載されている整数は、当該燃料集合体が前回のサイクルで占めていた位置を示す。
また、Ｆは未使用の（新しい）燃料集合体であることを示す。なお、実際の炉心解析では、未使用の燃料集合体であっても、ＭＯＸ燃料であるか否か、バーナブルポイズンの有無や量等について相違があるが、発明の説明の煩雑化を避けるため、それらは無視する。
【００８２】
このため、シャッフリング情報の左上隅の升目における「Ｎ−２」と「６」は、次の第Ｎサイクルにおいては、この位置に第Ｎ−２サイクルの運転終了時（ＥＯＣ）に６のブロックナンバーにあった燃料集合体を装荷することを示す。また、その右の升目における「Ｎ−１」と「３」は、第Ｎサイクルにおいては、第Ｎ−１サイクルの運転終了時に３のブロックナンバーにあった燃料集合体を装荷することを示す。
【００８３】
本実施の形態では、２個のリスタートファイルから読み込むこととなるため、最初に不規則分散配列に基づき第Ｎ−２サイクルの燃料で保管していたもののデータを昇順に、次に同じく第Ｎ−１サイクルの燃料で継続して使用するもののデータを昇順に、一旦バッファに読み込み、しかる後バッファ内のデータを、また不規則分散配列に基づいて第Ｎサイクルの運転用のブロックナンバーに従ってメモリに読み込むこととなる。
この様子を、図５の下側に示す。シャッフリング情報に従って、バッファの最初の２個のアドレスに、最初に第Ｎ−２サイクルのリスタートファイルからブロックナンバー２と６の燃料集合体の運転終了時（ＥＯＣ）のデータがこの順に読み込まれる。次に、同じく第Ｎ−１サイクルのリスタートファイルからブロックナンバー３、４、５、９、１０、１２、１３、１４および１５の燃料集合体の運転終了時（ＥＯＣ）のデータが読み込まれる。
【００８４】
ついで、バッファ内に読み込まれたこれらのデータが、シャッフリング情報を参照しつつ、プロセッサのメモリ内の所定の位置に読み込まれる。なお、メモリ内のブロックナンバー５、９、１４および１５に相当するアドレス内には、新燃料についてのデータ（図５上右のシャッフリング情報におけるＦ）が読み込まれる。
以上の下で、これらのデータを初期条件として、第Ｎサイクルの運転時の炉心解析計算が開始されることとなる。
【００８５】
なお、実際にはファイル毎に処理するため、先ず第Ｎ−２サイクルの必要なデータを読み込み、実際の配列に並び替えてメモリ内にコピーし、次に第Ｎ−１サイクルも同様の処理をすることとなる。
さらに、第Ｎ−２サイクルの燃料集合体は、パラメータによっては、第Ｎ−１サイクルの運転中に多少変化していることもあり得るが、これは第Ｎサイクルの計算開始時に必要な処理がなされる。
【００８６】
なお、ファイルアクセスであるが、２つのリスタートファイルから読み込むため、バッファ領域を確保して（バッファを使用して）不規則分散配列アクセスによりデータを読み込む点と、読み込んだデータを実際の配列に正してメモリにコピーする点を除いて、第１の実施の形態と同じである。
【００８７】
（第４の実施の形態）
本実施の形態は、２つのプロセッサが複数のリスタートファイルからデータを読み込むものである。なお、プロセッサの個数と各々の各プロセッサが分担する領域は、第２の実施の形態と同じであり、また使用する２個のリスタートファイルとシャッフリング情報は第３の実施の形態と同じである。
図６を参照しつつ、本実施の形態を説明する。図６において、左上の正方形はシャッフリング情報であり、その内部の太線は２個のプロセッサが分担して計算を行うため、１／４炉心を２つに分割する境界線である。また、その右と右下寄りに分割された２個の領域のブロックナンバーを示す。上側はプロセッサ１の担当であり、下側はプロセッサ０の担当である。
【００８８】
プロセッサが２つあるため、バッファも２個在り、メモリも各プロセッサが備えているため２個ある。
プロセッサ０は、第３の実施の形態と同様に、バッファを使用して、第Ｎ−２サイクルのリスタートファイルと第Ｎ−１サイクルのリスタートファイルから必要なデータを読み込み、その後メモリ内に格納することとなる。
プロセッサ１も、バッファを使用して第Ｎ−１サイクルのリスタートファイルから必要なデータを読み込み、その後メモリ内に格納することとなる。
【００８９】
ファイルアクセスは、第３の実施の形態も不規則分散配列を用いているため、第３の実施の形態とほぼ同一である。
さらに、１対１対応のマップ配列を用意することにより、アルゴリズムも全く同様となっている。
【図面の簡単な説明】
【００９０】
【図１】リスタートファイルの構造、第１の実施の形態におけるリスタートファイルとメモリ空間の対応と各ファイルブロックが参照情報を保持している様子を示す図である。
【図２】不規則配列要素へファイルアクセスする１例を示す図である。
【図３】第２の実施の形態において、分割前の炉心と分割後の２つの部分炉心におけるブロックナンバーのつけ方を示す図である。
【図４】第２の実施の形態において、２個のプロセッサが並列計算を行うためにリスタートファイルに不規則配列アクセスを行い、必要なデータをメモリに読み込み、さらにブロックオブジェクトの参照情報と対応させている様子を示す図である。
【図５】第３の実施の形態において、１個のプロセッサがシャッフリング情報を用いて２つのリスタートファイルに不規則配列アクセスを行う様子を示す図である。
【図６】第４の実施の形態において、２個のプロセッサがシャッフリング情報を用いて２つのリスタートファイルに不規則配列アクセスを行う様子を示す図である。
【符号の説明】
【００９１】
１００          リスタートファイル
１１０          ヘッダー部
１２０          本体部
１２１〜１２７  レコードブロック
２０１、２０２  メモリ内のレコードブロックに対応するデータ
３１０、３２０  分割されたブロックオブジェクト
３１１、３１２  ブロックオブジェクトの参照情報
３２１、３２２  ブロックオブジェクトの参照情報
【図１】
2008176659.tif 000003
【図２】
2008176659.tif 000004
【図３】
2008176659.tif 000005
【図４】
2008176659.tif 000006
【図５】
2008176659.tif 000007
【図６】
2008176659.tif 000008