(57)【特許請求の範囲】
【請求項１】
複数の製品のそれぞれについて別途定められた生産計画を読み込み、該生産計画に基づいて製品の生産を実行するために必要な部品または原材料（以下、品目と呼ぶ）の要求量と、該品目の納期とを算出する資材所要量計算を、複数のＭＲＰ計算手段により並列に実行する資材所要量計算システムにおいて、
前記複数のＭＲＰ計算手段の各々の有するＭＲＰ計算プロセスの各々に対し、計算に必要なデータの一括読み込み指示、ＭＲＰ計算指示、負荷移動指示、一括書き込み指示、および終了指示を発行して、前記複数のＭＲＰ計算手段を、各品目の構成上の階層を表わすレベル毎に並列に動作させる制御を行う制御手段を備え、
前記複数の各ＭＲＰ計算プロセスは、
前記データの一括読み込み指示に従って、各々、当該ＭＲＰ計算プロセスで算出すべき品目であると予め割り当てられた品目に関して、少なくとも、ローレベルコード、所要量データ、前記品目を製造するために必要な部品表の子品目のデータ、各子品目を担当するＭＲＰ計算プロセスの識別番号、前記品目についての在庫データ、および注残データを読み込んで、前記品目ごとにまとめて、前記品目に対応する品目セルデータとして作成して、各ＭＲＰ計算手段が個別に備える記憶手段へ格納し、
前記各ＭＲＰ計算プロセスは、
ＭＲＰ計算過程において、処理対象の前記レベルのジョブキューに格納された計算可能な品目数を評価して、計算すべき品目が十分にあり、他のＭＲＰ計算プロセスに供給可能な第１の状態、他のＭＲＰ計算プロセスに提供するよりはそのまま自分で計算してしまった方が速い第２の状態、または計算すべき品目が残りわずかであり、他のＭＲＰ計算プロセスから供給を要求している第３の状態のいずれの状態であるかを前記制御手段へ報告を行い、
前記制御手段による前記負荷移動指示によって、前記第１の状態のＭＲＰ計算プロセスが、前記供給を要求している第３の状態のＭＲＰ計算プロセスに対して、前記第１の状態のＭＲＰ計算プロセスが保持する計算すべき品目の中より移動対象に選択された品目に対応する前記品目セルデータを送信して、前記第３の状態のＭＲＰ計算プロセスにおいて計算すべき品目とすること
を特徴とする資材所要量計算システム。
【請求項２】
前記複数のＭＲＰ計算プロセスは、各々、前記生産計画と、前記品目セルデータとに基づいて、親品目を生産するために必要な子品目の要求量と、該子品目の納期とを算出する算出手段と、
該必要な子品目に対応する品目セルデータを、自己のＭＲＰ計算手段の記憶手段が有するか、他のＭＲＰ計算手段の記憶手段が有するかを判定する判定手段と
を備え、
自己のＭＲＰ計算手段の記憶手段が有する場合には、該必要な子品目に対応する品目セルデータに、該子品目の要求量と、該子品目の納期とを追記し、
前記必要な子品目に対応する品目セルデータを、他のＭＲＰ計算手段の記憶手段が有する場合には、該他のＭＲＰ計算手段のＭＲＰ計算プロセスに、該他のＭＲＰ計算手段の記憶手段が有する、前記必要な子品目に対応する品目セルデータに、該子品目の要求量と、該子品目の納期とを追記するように指示することを特徴とする請求項１記載の資材所要量計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生産計画が入力されたとき、この生産計画に従って製品を生産するのに必要な各種部品、原材料の量と納期とを求める資材所要量計算方法およびシステムに関する。
【背景技術】
【０００２】
モータ等の一つの製品が指定された場合、この製品を作るのに必要な部品の種類とその個数とを自動的に算出する方法の一つとして、資材所要量計画（Material Requirements Planning、以下ＭＲＰと呼ぶ）が知られている。
【０００３】
ＭＲＰ及び従来のＭＲＰ計算方式は、例えば「図説ＭＲＰ用語５００選」（日刊工業新聞社：昭和５８年発行）等に記載があるが、以下、従来のＭＲＰ計算方式について簡単に説明する。
【０００４】
ＭＲＰ計算では、立案された製品レベルの生産計画（Master Production Schedule、以下ＭＰＳと呼ぶ）を基に、部品、原材料などの品目について”必要なものを（品目）、必要な時に（納期）、必要なだけ（所要量）”購買したり、製造したりするための手配計画を計算する。この計算では大きく以下の３つの情報を必要とする。
【０００５】
（１）ＭＰＳ
一般に、部品展開図でトップレベルにある品目（製品）の生産計画。基準生産計画。
【０００６】
（２）部品表
「品目データ」と呼ばれる品目に特有のデータと、「製品構成データ」と呼ばれる、製品と部品、部品と部品、部品と原材料といった品目と品目の関連を示したデータとの２つのマスターデータからなる一覧表。
【０００７】
品目データとして、例えば、その部品を製造したり、購買したりするときに必要となる時間（以下”リードタイム”と呼ぶ）等がある。また、製品構成データによって、例えば、ある品目を製造するのに必要な子品目は何で、製造する品目一つに対し、それぞれの子品目が幾つ必要になるか（これを各子品目の”員数”と呼ぶ）といった情報を得ることができる。
【０００８】
（３）在庫・注残
それぞれの品目について現時点での在庫や仕掛数、あるいは既に発注済みで将来納品される予定の品目の納期時期と予定数（注残情報）。
【０００９】
このような情報をもとに、ＭＲＰ計算では、各品目に関して以下の５つの計算を行なう。
【００１０】
（１）総所要量計算
その品目の所要量データを読み込み、要求されている量をある期間にまとめて、期間別の総所要量を算出する。以下、説明を簡単にするため、期間は１日として、日別の計画立案について説明する。
【００１１】
（２）正味所要量計算
算出された総所要量を基に、在庫や注残への引当を行ない、日別に必要な正味所要量を算出する。
【００１２】
（３）ロットまとめ
算出された日別の正味所要量を基に、品目に設定されているロットサイズを用いて、手配に最も適した数量にまとめる。
【００１３】
（４）リードタイム計算
ロットまとめされた数量の納期からリードタイムを差し引き、その発注日または着手日を算出してオーダを作成する。
【００１４】
（５）所要量展開
部品表を用いて下位品目へと、作成したオーダを展開する。具体的には、オーダの着手日の前日を要求日として、製品構成データの子品目と員数をもとに、各子品目の要求量を算出し、各品目の所要量データに書き込む。
【００１５】
上記の（１）から（５）までの計算を総称して以下、部品展開計算と呼ぶこととする。
【００１６】
ＭＲＰ計算は、ＭＰＳで設定された全ての製品に関し、その製品を製造する際に必要となる全ての品目の部品展開計算を行なう。ただし、各品目は、必要とされている総所要量を求めるために、自己の親品目の部品展開計算がすべて終了してから行わなければならない。
【００１７】
例えば、図１９の部品展開図に示すような構成の製品の場合、品目ＣＬは、品目ＨＣ及び品目ＲＣの子品目となっている。そのため品目ＣＬの総所要量は、品目ＨＣ及び品目ＲＣからの要求量の和となり、品目ＣＬの部品展開計算は、品目ＨＣ及び品目ＲＣの部品展開計算が終了してから行なわれなければならない。
【００１８】
この例では、一製品だけの比較的簡単な部品構成であったが、実際には数百から数千の製品が、数万に及ぶ品目で複雑に構成された状態での計算を行なう必要がある。そこで、従来のＭＲＰ計算では、ローレベルコードを導入し、キューを用いて各品目の部品展開計算の制御を行なっている。キューの代わりにアクティビティチェーンと呼ばれるポインタを使用するものも一般的であるが、制御の方式としては本質的に全く同じものであるので、以下、キューを用いた方式を例に従来のＭＲＰ計算について説明をする。
【００１９】
ここで、ローレベルコードについて簡単に説明する。図１９に示すようにある製品の部品展開図をもとに、各品目には部品構成上のどの階層に属するかでレベルコードを付与することができる。品目によっては、複数のレベルコードを持ちうるので、その中でも最も下位のレベルコードがローレベルコードである。ここで、下位とは、部品展開図上でより基本的な品目のレベルに進む方向を指す。
【００２０】
通常、レベルコードは、製品レベルを０レベルとして、基本的な品目に向かって階層が進むに従ってレベルコードの数が増える。従って、ローレベルコードは、その品目が持つレベルコードのうち最大の値のレベルコードとなっている。また、このことは、レベルコードとは異なりローレベルコードに関しては各品目においてそれぞれただ一つだけ定まるということである。
【００２１】
各品目のローレベルコードは、ＭＲＰ計算が始まる前に部品表の全ての品目を検索することで設定されており、品目特有の情報として品目データに書き込まれている。
【００２２】
このように、ローレベルコードを設定することで、あるレベルより上の品目の部品展開計算が全て終了していれば、次のレベルに属する品目は全て計算可能となっていることを保証できる。
【００２３】
そこで、従来のＭＲＰ計算は、ローレベルコードを利用し、レベル・バイ・レベルで各品目の部品展開計算の順番を決定している。具体的には、以下の手順で処理が進められる。
【００２４】
（１）ＭＰＳの読み込み
ＭＰＳの中の製品レベルの品目に対し、ＭＰＳから読み込んだ要求量を書き込む。また、この時、レベル０のキューにその品目名を入れる。
【００２５】
（２）レベル０のキューから計算開始
ＭＰＳの読み込みが全て終了した時点で、レベル０のキューから品目名を一つ取り出し、その品目の部品展開計算を行なう。終了すればキューから次の品目名を取り出す。ここで、部品展開計算の中の所要量展開時に、子品目名をその子品目のローレベルコードのキューに入れる。但し、既にキューに入っている場合は何もしない。
【００２６】
（３）レベル・バイ・レベルの展開
あるレベルのキューが空になったとき、次の下位のレベルのキューから品目名を一つ取り出し、その品目の部品展開計算を行なう。空になるまではそのレベルのキューから取り出し続ける。部品展開計算の所要量展開時に、子品目名をその子品目のローレベルコードのキューへ入れる。但し、既にキューに入っている場合は何もしない。
【００２７】
（４）ＭＲＰ計算の終了
全てのレベルのキューが空になった時点で計算終了。
【００２８】
また、上記のような従来のＭＲＰ計算方式の改良として、特開平３−２２６８４５号公報記載の「ツリー構造データ多重処理方式」がある。これは、部品表のようにレベルが設定されているツリー構造データを、一つの対象レベル制御部と複数のデータ処理部を用いて並列に処理するものである。対象レベル制御部は、全てのデータ処理部であるレベルの処理が終了するまで、次のレベルの計算指示を出さない。各データ処理部は、対象レベル制御部の指示があるまで、次のレベルの計算を始めない。このように、レベル毎に同期をとって並列処理の進行制御を行なうものであり、レベル毎に各品目の部品展開計算を複数のデータ処理部で行うことで処理の高速化を図っている。
【発明の開示】
【発明が解決しようとする課題】
【００２９】
複数のデータ処理部で、複数の品目の部品展開計算を同時に行う場合、各データ処理部に対して、負荷を分散させる必要がある。ここで、各データ処理部の負荷とは、そのデータ処理部で計算すべき品目の計算負荷量の合計を意味する。各品目の計算負荷量が同程度とすれば、各データ処理部の負荷の大きさは計算すべき品目の数で表すことができる。各データ処理部に負荷を分散させることとは、各データ処理部に計算する品目を割り当てることである。その負荷分散処理のタイミングとして、下記の３通り考えられる。
【００３０】
（１）負荷分散処理をＭＲＰ計算処理と同時に行う方法
例えば、特開平３−２２６８４５号公報記載の「ツリー構造データ多重処理方式」は、この方法である。計算する全ての品目を一括管理するデータ保持部が存在し、該データ保持部が、複数あるデータ処理部に計算すべき品目を割り当て、各データ処理部では、割り当てられた品目の計算を行う。該計算を終えたデータ処理部は、また一括管理するデータ保持部に計算品目の割り当て要求をする方法である。動的負荷分散方式、または、マスタ・スレーブ方式とも呼ばれ、処理の過程で負荷分散させる一般的な方法である。
【００３１】
（２）負荷分散処理をＭＲＰ計算処理の前に行う方法
ＭＲＰ計算を行う前に、各データ処理部に対し、それぞれが計算すべき品目を分配する。そして、ＭＲＰ計算時は、各データ処理部が、自分に分配された品目だけを処理する方法である。静的負荷分散方式と呼ばれる。
【００３２】
（３）（１）と（２）を組み合わせた方法
まず、（２）と同様にＭＲＰ計算を行う前に、各データ処理部に計算すべき品目を割り当てる。そして、ＭＲＰ計算時は、各データ処理部が、基本的には、自分にあらかじめ割り当てられた品目に従って処理を進める。しかし、各データ処理部の間の負荷バランスが崩れた場合には、負荷が重いデータ処理部から軽いデータ処理部へと、計算品目の割り当てを変更する方法である。
【００３３】
ここで、重要となるのはデータの保持方法である。（１）の場合、各品目のデータを管理するデータ保持部が１個所であり、データ処理部の数が増えるとデータアクセス競合が発生し、処理速度が低下するという問題がある。（２）の場合、各々の品目のデータにアクセスするデータ処理部はあらかじめ決まっているため、データ処理部と対になるデータ保持部を用意し、そこにデータを格納することでデータアクセス競合を低減することが可能である。しかしながら、ＭＲＰ計算においては、在庫引当等により各品目の計算負荷量が動的に変わる可能性がある。そのため、予め各データ保持部に計算すべき品目を均等に割り当てておいたとしても、計算の過程で各データ処理部間の負荷のバランスが崩れ、全体の処理速度が低下する可能性が高い。従って、上記の（３）が有望な方法である。ところが、（３）においても問題がある。（３）の場合、（１）のデータアクセス競合という問題を避けるために、（２）と同様にデータ保持部をデータ処理部ごとに持つことが基本である。ところが、処理の過程で、ある品目の計算を予め割り当てられたデータ処理部と別のデータ処理部で行う場合が発生する。このとき、その品目に関するデータ一式を、新たに処理することになったデータ処理部のデータ保持部へ移さなければならない。従来、各品目に関するデータは、部品表、在庫・注残情報、所要量情報と内容ごとに別々のテーブルで管理されている。そのため、ある品目に関するデータを、あるデータ保持部から別のデータ保持部へ移すために、それぞれのテーブルで検索し、転送することになる。このデータ検索・データ転送の処理時間のため、負荷バランスを保とうとする処理自体のオーバヘッドが大きく、結局、処理速度が低下する。一方、全データ処理部に、全品目のデータを保持させることも考えられるが、膨大なデータエリアが各データ処理部に必要という問題が生じる。
【００３４】
本発明は、上記（３）の方法における問題を解決し、部品展開計算の並列処理により、ＭＲＰ計算の処理時間を短縮し、種々の変動に対応して生産計画を高速に立案することをその目的とする。特にデータ処理部の数に応じた処理速度の向上を可能とし、更に計算の過程で計算負荷量が変動しても処理速度を低下させない、資材所要量計算方法およびシステムについて述べる。
【課題を解決するための手段】
【００３５】
上記の目的を達成するために本発明によれば、
製品の別途定められた生産計画を読み込み、該生産計画に基づいて製品の生産を実行するために必要な部品または原材料（以下、品目と呼ぶ）の要求量と、該品目の納期とを算出する資材所要量計算を、複数のＭＲＰ計算手段により並列に実行する資材所要量計算システムにおいて、
前記複数のＭＲＰ計算手段の各々の有するＭＲＰ計算プロセスの各々に対し、計算に必要なデータの一括読み込み指示、ＭＲＰ計算指示、負荷移動指示、一括書き込み指示、および終了指示を発行して、前記複数のＭＲＰ計算手段を、各品目の構成上の階層を表わすレベル毎に並列に動作させる制御を行う制御手段を備え、
前記複数の各ＭＲＰ計算プロセスは、
前記データの一括読み込み指示に従って、各々、当該ＭＲＰ計算プロセスで算出すべき品目であると予め割り当てられた品目に関して、少なくとも、ローレベルコード、所要量データ、前記品目を製造するために必要な部品表の子品目のデータ、各子品目を担当するＭＲＰ計算プロセスの識別番号、前記品目についての在庫データ、および注残データを読み込んで、前記品目ごとにまとめて、前記品目に対応する品目セルデータとして作成して、各ＭＲＰ計算手段が個別に備える記憶手段へ格納し、
前記各ＭＲＰ計算プロセスは、
ＭＲＰ計算過程において、処理対象の前記レベルのジョブキューに格納された計算可能な品目数を評価して、計算すべき品目が十分にあり、他のＭＲＰ計算プロセスに供給可能な第１の状態、他のＭＲＰ計算プロセスに提供するよりはそのまま自分で計算してしまった方が速い第２の状態、または計算すべき品目が残りわずかであり、他のＭＲＰ計算プロセスから供給を要求している第３の状態のいずれの状態であるかを前記制御手段へ報告を行い、
前記制御手段による前記負荷移動指示によって、前記第１の状態のＭＲＰ計算プロセス（以下、第１のＭＲＰ計算プロセス）が、前記供給を要求している第３の状態のＭＲＰ計算プロセス（以下、第２のＭＲＰ計算プロセス）に対して、前記第１のＭＲＰ計算プロセスが保持する計算すべき品目の中より移動対象に選択された品目に対応する前記品目セルデータを送信して、前記第２のＭＲＰ計算プロセスにおいて計算すべき品目とすることを特徴とする。
【００３６】
また、前記複数のＭＲＰ計算プロセスは、各々、前記生産計画と、前記品目セルデータとに基づいて、親品目を生産するために必要な子品目の要求量と、該子品目の納期とを算出する算出手段と、
該必要な子品目に対応する品目セルデータを、自己のＭＲＰ計算手段の記憶手段が有するか、他のＭＲＰ計算手段の記憶手段が有するかを判定する判定手段と
を備え、
自己のＭＲＰ計算手段の記憶手段が有する場合には、該必要な子品目に対応する品目セルデータに、該子品目の要求量と、該子品目の納期とを追記し、
前記必要な子品目に対応する品目セルデータを、他のＭＲＰ計算手段の記憶手段が有する場合には、該他のＭＲＰ計算手段のＭＲＰ計算プロセスに、該他のＭＲＰ計算手段の記憶手段が有する、前記必要な子品目に対応する品目セルデータに、該子品目の要求量と、該子品目の納期とを追記するように指示することもできる。
【発明の効果】
【００３８】
複数のＭＲＰ計算部もしくは部品展開計算部により、複数品目の部品展開計算を同時に行うことができる。各ＭＲＰ計算部間で計算可能品目の数に不均衡が発生した際には、計算可能品目の品目ごとにまとめられた品目セルデータを移すことで不均衡を解消するので、大きなオーバヘッドをかけることなく負荷を移動させることができ、これにより、従来の逐次的なＭＲＰ計算と同等の計算結果を、短時間で得ることが可能となる。
【００３９】
このため、営業、設計、資材、現場からの日々発生する変更事項を即座に生産計画に反映させ、変更によって生じる問題の抽出、対処を速やかに行なうことができる。
【発明を実施するための最良の形態】
【００４０】
以下、図面を用いて、本発明の実施の形態を説明する。
【００４１】
図１に、本発明によるデータ保持方式を有するシステムの全体ブロック図を示す。
【００４２】
このシステムにおいては、システム全体の制御を行なう一つの作業指示部８に、複数のＭＲＰ計算部が接続されている。これらのＭＲＰ計算部のうちの一つをＭＲＰ計算部７として、ＭＲＰ計算部７の構成について説明する。
【００４３】
ＭＲＰ計算部７は、このＭＲＰ計算部７の初期処理を行なう初期処理部１と、ＭＲＰ計算に必要なデータを管理するデータ管理部２とを有する。データ管理部２は、ＭＲＰ計算に必要なデータを品目毎に格納するデータ保持部３２と、ＭＲＰ計算をすることができる品目を抽出する計算可能品目抽出部３３とを有する。また、ＭＲＰ計算部７は、ＭＲＰ計算をすることができる品目の数と該品目に関するデータが保持されているデータ保持部３２内のアドレスとを保持する計算可能品目管理部３と、部品展開計算を行なう部品展開計算部４と、部品展開計算部４で算出された結果を他のＭＲＰ計算部へ送信したり、他のＭＲＰ計算部の部品展開計算部で算出された結果を受信したり、データ保持部３２に格納されたデータを他のＭＲＰ計算部へ送信したり、他のＭＲＰ計算部のデータ保持部に格納されたデータを受信したりするための処理を行なう要求量送受信部５と、メッセージ送受信を管理するメッセージ管理部６とを有する。
【００４４】
各ＭＲＰ計算部のデータ保持部においては、後で詳述するように、ＭＲＰ計算に必要なデータを品目毎に格納する点が、従来のデータ保持部における格納方法と異なっている。
【００４５】
また、各ＭＲＰ計算部においては、主として自己の管理している品目の計算を行ない、自己の管理している品目の中に計算することができる品目がない場合には、他のＭＲＰ計算部から、計算することができる品目の品目毎に格納されているデータを送信してもらうことで、部品展開計算を並列に進めることを特徴としている。
【００４６】
次に、図１に示すシステムにおける動作を説明する。
【００４７】
ＭＲＰ計算部７は、メッセージ管理部６で作業指示部８からＭＲＰ計算開始指示を受けると、初期処理部１に処理開始指示を送る。初期処理部は、データ管理部２に対し、各種製品の要求量であるＭＰＳデータ、部品表データ、在庫・注残データの内容を、読み込み、データ管理部２内のデータ保持部３２に品目毎に用意されたテーブルである「品目セル」の当該データエリアに書き込むよう指示する。そして、データ管理部２内の計算可能品目抽出部３３に対し、レベル０の全ての品目セルのデータアドレスを計算可能品目管理部３へ送るよう指示する。
【００４８】
計算可能品目管理部３は、データ管理部２内の計算可能品目抽出部３３からデータアドレスを受け取ると、それを計算可能品目として、レベル０のキューに登録する。その後、キューからデータアドレスを取り出し、部品展開計算部４へ送る。部品展開計算部４は、計算可能品目管理部３から計算可能な品目のデータアドレスを受け取ると、該品目の部品展開計算を行なう。該部品展開計算で算出された子品目の要求量は、該子品目が同じＭＲＰ計算部７の計算対象ならデータ管理部２へ、他のＭＲＰ計算部の計算対象ならば要求量送受信部５へ送られる。
【００４９】
データ管理部２は、各品目の要求量をデータ保持部３２へ送り、該当品目のセルの所要量のデータエリアに書き込む。要求量送受信部５は、各品目の要求量を送信バッファに書き込む。送信バッファが一杯になると、その都度メッセージ管理部６を経て、他のＭＲＰ計算部へ送信バッファに格納された内容を送る。送信先のＭＲＰ計算部では、要求量送受信部がメッセージ管理部を経て、送信バッファの内容を受信すると、その内容を各品目の要求量として自己のデータ管理部へ送る。
【００５０】
データ管理部２は、各品目の要求量をデータ保持部３２へ送り、該当品目の所要量のデータエリアに書き込む。データ管理部２は、計算可能品目抽出部３で親子品目間の要求量授受を管理し、親品目からの要求量が、所要量のデータエリアに書き込まれた品目があれば、該品目を計算可能品目とし、該品目のデータアドレスをローレベルコードとともに計算可能品目管理部３へ送る。但し、これは一番最初に書き込まれた時にのみ行う。計算可能品目管理部３は、品目のデータアドレスとローレベルコードを受け取ると、それを計算可能品目として、そのローレベルコードのキューに登録する。計算可能品目管理部３から送られたレベル０のデータアドレスの品目の部品展開計算を終えた部品展開計算部４は、要求量送受信部５の送信バッファの内容を全て送信し、その後、作業指示部８へメッセージ管理部６を介してレベル０の計算終了報告を行う。その報告を受けた作業指示部８は、すべてのＭＲＰ計算部からレベル０の終了報告を受けると、すべてのＭＲＰ計算部へ再開指示を送る。計算可能品目管理部３は、メッセージ管理部６を介して再開指示を受け取ると、次のレベルのキューからデータアドレスを取り出し、部品展開計算部４へ送る。以後、レベルごとに同様に行う。全てのＭＲＰ計算部から最後のレベルの計算終了報告を受けた作業指示部８は、終了指示を全てのＭＲＰ計算部に送る。これにより、ＭＲＰ計算が終了する。
【００５１】
ここで、各レベルにおいて、各計算可能品目管理部はキューに入っている品目の数を管理する。品目の数によって、各ＭＲＰ計算部の状態をブルー、イエロー、レッドと３種類に分ける。ブルーは計算すべき品目が十分にあり、他のＭＲＰ計算部に供給可能な状態、イエローは他のＭＲＰ計算部に提供するよりはそのまま自分で計算してしまった方が速い状態、レッドはキューに入っている品目が残りわずかであり、他のＭＲＰ計算部から供給を要求している状態である。各計算可能品目管理部は、レベルの最初、及び状態が変化した際に、自分の最新状態をメッセージ管理部を介して作業指示部８に報告する。
【００５２】
作業指示部８は、これらの報告を受け、各ＭＲＰ計算部の最新状態を常に保持する。特に、あるＭＲＰ計算部がレッド状態になったという報告を受けると、ブルー状態のＭＲＰ計算部を一つ選択し、当該ＭＲＰ計算部に対し、レッド状態のＭＲＰ計算部へ負荷を送るよう指示する。指示を受けたＭＲＰ計算部は、キューに入っている品目から複数個を選択し、キューから取り除くと同時に、当該品目のセルを、レッド状態のＭＲＰ計算部に送る。
【００５３】
当該品目のセルを受け取ったＭＲＰ計算部は、当該セルを自己のデータ保持部にそのまま格納し、当該品目名をキューにいれ、処理の対象とする。
【００５４】
これにより、まず、基本的に各データ処理部がアクセスするデータは対となっている各データ保持部より獲得可能であるため、データアクセス競合が発生せず、データ処理部の数を増やすことで処理速度の向上を実現できる。また、処理の過程で負荷のバランスが崩れた場合、各データ処理部で計算する予定だった品目を他のデータ処理部で行わせることが可能である。その際、各データ保持部で品目に関するデータを転送する時に、その品目に関する情報が既に一個所でまとめられて管理されているため、当該品目の検索は一回で済み、データ転送の際も、その品目について情報がまとまっており、さらにそれを数個分という形で容易にまとめて送ることが可能であるため、データ転送のオーバヘッドを低減することが可能である。その結果、計算の過程で、各ＭＲＰ計算部間で負荷のバランスが崩れても、処理速度を低下させないことが可能である。
【００５５】
分散メモリ型並列計算機は、図２のようにＣＰＵとメモリをそれぞれ１つずつ備えたＰＥ（Processor Element）が複数存在し、それらがネットワークによっ
て結合されたものである。この様な分散メモリ型並列計算機で、複数の品目の部品展開計算を各ＰＥに生成されるＭＲＰ計算プロセスで同時に行う。ここで、本実施例が前提とする割り当て処理について簡単に説明する。
【００５６】
割り当て処理は、部品表から品目を読み込み、各ＰＥに割り当て、品目番号をキーとし、割り当てられたＰＥ番号を示すテーブルに結果を格納する。割当ＰＥを決定する方法としては、様々な方法がある。例えば、最も簡単な割当決定方法は、部品表の品目を順番に各ＰＥに割り当てるというものである。このような割当決定方法を用いて、全ての品目に関して割当ＰＥを決定した後、品目に関するＭＰＳ、部品表、在庫・注残等のデータを、各品目の割当ＰＥ番号に従って分散配置し、終了する。
【００５７】
分散メモリ型並列計算機での本発明の構成は、図３のようにＰＥ毎にＭＲＰ計算部７に相当するＭＲＰ計算プロセス９を配置し、この複数あるＭＲＰ計算プロセスの処理状態を管理し、ＭＲＰ計算の開始・終了指示等を行なう作業指示部８を備えた制御プロセス１０を一つ用意する。ＭＲＰ計算プロセスは、データ管理部でメモリ上のデータの入出力を管理する。メモリ上には部品表データ、在庫・注残データ等を品目毎にまとめなおした品目セル１１を持つ。計算可能品目管理部は、計算可能な品目の品目セル先頭アドレスをローレベル別に格納するジョブキュー１５とローレベル別のジョブキューに入っているジョブ数を表すジョブカウンタ１４を備える。また、計算中のローレベルを表すレベルカウンタ１６をも持つ。要求量送受信部には、他のＭＲＰ計算プロセスに割り当てられた品目へ要求量を送るための送信バッファである要求量キャリア１７、及び負荷を移動させるために品目セルデータを送るための品目セルキャリア１８を、それぞれ他のＭＲＰ計算プロセス分だけ設ける。制御プロセス１０には、各ＭＲＰプロセスの状態を保持する状態テーブル４０を用意する。
【００５８】
次に、分散メモリ型並列計算機での本発明の具体的な処理の流れを図面を用
いて説明する。
【００５９】
図４は制御プロセスの処理を示すフローチャートである。制御プロセスは、まず最初に各ＰＥにＭＲＰ計算プロセスを生成し（ステップ４０２）、生成したＭＲＰ計算プロセスから、該ＭＲＰ計算プロセスのＰＥ番号とプロセス番号を受信する（ステップ４０４）。すべてのＭＲＰ計算プロセスから受信したか否かを判定し（ステップ４０６）、未受信のものがある場合には、ステップ４０４へ戻る。すべてのＭＲＰ計算プロセスからＰＥ番号とプロセス番号とを受信したら、受信した情報から、ＭＲＰ計算プロセスが存在するＰＥの名前とＭＲＰ計算プロセス番号の一覧表を作成し、全ＭＲＰ計算プロセスに配布する（ステップ４０８）。ＭＲＰ計算プロセスは、この配布した一覧表をもとに要求量キャリア及び品目セルキャリアを作成する。制御プロセスは、一覧表を配布した後、全てのＭＲＰ計算プロセスに対してＭＲＰ計算に必要な部品表等のデータの一括読み込み指示を行い（ステップ４１０）、ＭＲＰ計算プロセスからの一括読み込み終了報告を待つ（ステップ４１２）。全てのＭＲＰ計算プロセスから一括読み込み終了報告を受けると（ステップ４１４）、次に、全てのＭＲＰ計算プロセスに対してＭＲＰ計算指示を行い（ステップ４１６）、ＭＲＰ計算プロセスからの状態報告もしくはレベル終了報告を待つ（ステップ４１８）。
【００６０】
ここで、各ＭＲＰプロセスの状態の定義を説明する。各ＭＲＰプロセスの状態は、現在計算中のローレベルのキューに入っている品目の数で決まる。状態は、品目の数の多い順に、ブルー、イエロー、レッドの３種類に別れる。ブルーとイエローの境界となる品目の数は、例えば、他ＭＲＰプロセスに渡すよりは自分で計算してしまった方が早い限界値を用いる。これは、品目セルデータの移動に時間がかかるため、各ＭＲＰプロセスでのキューの品目数の差がある一定値より小さければ、品目セルデータを移動させて、キュー内の品目数を均等にするよりも、品目数に差があったまま各ＭＲＰ計算プロセスで計算を続行した方が早くなる場合があるためである。イエローとレッドの境界となる品目の数は、例えば、他のＭＲＰ計算プロセスから品目セルのデータが欲しいとリクエストを出してから、実際に届くまでの間の時間に処理できる品目の数を用いる。これにより、各ＭＲＰ計算プロセスが処理すべき品目をすべて完了して、何もせずに遊ぶ状態を減らすことが可能となる。これら、各状態の境界となる品目の数は、並列計算機の性能によって異なるため、実験等をもとに決定する。まとめると、ブルー状態であれば他に負荷を提供可能、レッド状態では他から負荷を要求、イエロー状態は、他に提供もできず他からも要求しないという状態である。
【００６１】
図４のステップ４１８において、ＭＲＰ計算プロセスから受信したメッセージが状態報告であった場合には、ステップ４２６へ進み、状態報告対応処理を行なう。
【００６２】
図５に制御プロセスにおける状態報告対応処理のフローチャートを示す。制御プロセスがあるＭＲＰ計算プロセスから状態報告を受け取ると、図６に示す状態テーブル４０の該当欄を更新する（ステップ５０２）。図６に示すように、状態テーブル４０は、ＰＥ番号と、該ＰＥ番号を有するＰＥで実行されているＭＲＰ計算プロセス番号と、該ＭＲＰ計算プロセス番号を有するＭＲＰ計算プロセスで実行されているジョブ数と、該ＭＲＰ計算プロセスの状態とを、各ＰＥについて対にして格納している。
【００６３】
状態報告がレッド状態になったか否かを判定し（ステップ５０４）、状態報告がレッド状態になったというものの場合、ブルー状態で、かつ、キュー内の品目数が最も多いＭＲＰ計算プロセスを検索する（ステップ５０６）。検索結果、該当するＭＲＰ計算プロセスが存在するか否かを判定し（ステップ５０８）、該当するＭＲＰ計算プロセスに対して、状態報告をしてきたＭＲＰ計算プロセスへのExport_MSGを送信する（ステップ５１０）。これは、検索結果の該当ＭＲＰプロセスに対して、レッド状態になったＭＲＰプロセスへ負荷を移動させるよう指示するということである。ステップ５０８でブルー状態のＭＲＰ計算プロセスがない場合には、Arrived_MSGを状態報告をしてきたＭＲＰ計算プロセスへ送る（ス
テップ５１２）。ステップ５０４で、レッド状態になったという状態報告以外の状態報告を受けたと判定された場合も、Arrived_MSGを当該ＭＲＰ計算プロセス
へ送る（ステップ５１２）。
【００６４】
図４のフローチャートに戻る。ステップ４１８でレベル終了報告を受信したと判定され、ステップ４２０で全てのＭＲＰ計算プロセスからそのレベルの計算品目についてレベル終了報告を受けたと判定されると、今度は、全てのＭＲＰ計算プロセスに対して、次のレベルの計算を行うようＭＲＰ計算指示を行う（ステップ４２２）。全レベルを終了したか否かを判定し（ステップ４２４）、全レベルを終了した場合、ＭＲＰ計算結果である各品目の所要量データ等の一括書き込み指示を行い（ステップ４２８）、ＭＲＰ計算プロセスからの一括書き込み終了報告を待つ（ステップ４３０）。全てのＭＲＰ計算プロセスから一括書き込み終了報告を受けたか否かを判定し（ステップ４３２）、全てのＭＲＰ計算プロセスから一括書き込み終了報告を受けると、最後に全てのＭＲＰ計算プロセスに対してＭＲＰ計算終了指示を行い（ステップ４３４）、制御プロセスも終了する。
【００６５】
図７はＭＲＰ計算プロセスの処理を示すフローチャートである。ＭＲＰ計算プロセスは、制御プロセスにより生成された後、該ＭＲＰ計算プロセスが存在するＰＥのＰＥ番号と、該ＭＲＰ計算プロセスのプロセス番号を制御プロセスに送信し（ステップ７０２）、制御プロセスからＭＲＰ計算プロセス番号一覧表を受信する（ステップ７０４）。受信した一覧表から、他のＭＲＰ計算プロセスへ割り当てられた子品目へ要求量を送信するための要求量キャリア、及び負荷を移動させるための品目セルキャリアを、自分以外のＭＲＰ計算プロセス毎に作成する（ステップ７０６）。そして、制御プロセスからの作業指示メッセージ受信待ち状態になり（ステップ７０８）、ステップ７１０で受信した作業指示メッセージのタイプを判定し、制御プロセスの作業指示に従って、以下の４つの処理を行う。  
【００６６】
（１）一括読み込み処理（ステップ７１２）
一括読み込み処理は、一括読み込み指示を受けて行う処理である。ハードディスクから、割り当てられた品目に関するＭＰＳ、部品表等のＭＲＰ計算に必要なデータを、一括してメモリに展開する。この時、品目に関する部品表、在庫・注残、等のデータは、各品目毎に品目セル１１を作成し、図８に示すような該品目セルの各データエリアに格納する。ここで、品目セルの各データエリアについて説明する。図８に示すように、品目セルには、品目番号、親品目カウンタ１３、ローレベルコード、所要量データ２０、品目データ、部品表データ２３、在庫データ、注残データ、ロットデータ、次の品目セルを格納しているアドレス、を格納するためのデータエリアが用意されている。各品目セルは、当該品目セルに格納される品目の品目番号をキーとして、該キーを、よく知られているHash関数によりキー変換して得られるHashテーブル［０］から［ｎ］までのうちの該当テーブルに格納されている。
【００６７】
また、レベルカウンタ他各種カウンタを０に初期化する。その後、ＭＰＳデータを、一件ずつ読み込み、該当品目の所要量データに書き込む。この時、所要量データを書き込んだ品目については、計算可能品目管理部内の当該品目のローレベルコードのジョブキューに品目セルアドレスを登録し、ローレベル毎のキューに品目がそれぞれいくつ登録されているかを示す、ジョブカウンタをインクリメントする。全てのデータをメモリに展開した後は、制御プロセスに一括読み込み終了報告を行い（ステップ７１４）、ステップ７０８へ戻って作業指示メッセージ受信待ち状態になる。
【００６８】
（２）ＭＲＰ計算処理（ステップ７１６）
ＭＲＰ計算処理は、ＭＲＰ計算指示を受けて行う処理である。図９にこの処
理のフローチャートを示す。図８の品目関連データ構造、図１０のジョブカウンタ及びジョブキューのデータ構造も用いて説明する。図１０に示すように、ジョブカウンタ１４は、レベル毎に用意され、当該レベルの計算可能な品目の数を格納する。また、ジョブキュー１５は、当該レベルの計算可能な品目の、データ管理部内の品目セルを格納しているアドレスを格納する。ジョブキュー１５は、具体的には、図１０に示すようなList構造になっており、ジョブキュー１５の最初のハコには、当該レベルの計算可能なジョブの先頭アドレスとして、次のハコのアドレスを格納し、該次のハコのアドレスには、当該レベルの計算可能な品目の品目セルアドレスと該ハコの次のハコのアドレスとを格納する。以下、各ハコには、順次、当該レベルの計算可能な品目の品目セルアドレスと該ハコの次のハコのアドレスとを格納する。
【００６９】
図９のフローチャートの説明をすると、まず、最初に、送信メッセージカウンタを０に初期化する（ステップ９０２）。レベルカウンタの示すレベルのジョブカウンタの値を参照し、ブルー、イエロー、レッドの状態判定をした後、カウンタの値と共に状態報告を制御プロセスに対して行う。そして送信メッセージカウンタをインクリメントする（ステップ９０４）。
【００７０】
それから、メッセージ受信チェックを行う（ステップ９０６）。メッセージ受信チェックで、要求量キャリアからの読み込みを促すCarry_MSGを受信していた
場合、「Carry_MSG対応処理」を行う（ステップ９０８）。品目セルキャリアか
らの読み込みを促すCell_MSGを受信していた場合、「Cell_MSG対応処理」を行う（ステップ９１０）。負荷の移動指示を示すExport_MSGを受信していた場合、「Export_MSG対応処理」を行う（ステップ９１２）。送信したメッセージが無事届いたことを示すArrived_MSGを受信していた場合、送信メッセージカウンタをデ
クリメントする（ステップ９１４）。これらのメッセージ対応の処理が終了後、ジョブカウンタの値を参照し、ブルー、イエロー、レッドの状態判定をし（ステップ９１６）、もし、状態が変化していれば、ジョブカウンタの値と共に状態報告を制御プロセスに対して行い、送信メッセージカウンタをインクリメントする（ステップ９１８）。もし、状態が変化していなければ、ステップ９２０へ進む。
【００７１】
次に、ジョブカウンタの値が０であるか否かを判定する（ステップ９２０）。ジョブカウンタの値が０の場合、空の要求量キャリア以外は、届け先ＭＲＰプロセス名称を付けてCarry_MSGによりすべて送信し、送信メッセージカウンタを送
信したキャリアの数だけインクリメントする（ステップ９２２）。送信した要求量キャリアは初期化する（ステップ９２４）。要求量キャリアがすべて空の場合は何もしない。その後、更に、送信メッセージカウンタが０であるか否かを判定し（ステップ９２６）、送信メッセージカウンタが０の場合、レベル終了報告を制御プロセスに行い、レベルカウンタをインクリメントして（ステップ９２８）、ステップ９０６の作業指示メッセージ受信待ち状態に戻る。ステップ９２６で送信メッセージカウンタが１以上の場合、ステップ９０６のメッセージ受信チェックへ戻る。
【００７２】
ステップ９２０においてジョブカウンタが０でない場合、ジョブキューから計算可能品目の品目セルアドレスを取り出し（ステップ９３０）、「部品展開計算処理」を行う（ステップ９３２）。そして、ジョブカウンタをデクリメントし（ステップ９３４）、ステップ９０６のメッセージ受信チェックに戻る。
【００７３】
図１１は「部品展開計算処理」のフローチャートである。図８の品目関連データ構造も用いて説明する。部品展開計算処理は、「従来の技術」で「図説ＭＲＰ用語５００選」を例に説明した通り、総所要量計算、正味所要量計算、ロットまとめ、リードタイム計算、所要量展開の順で各処理を行う。
【００７４】
従来のＭＲＰと違うところは、「複数ＰＥで処理を行う」為、それに関連する処理が所要量展開に加わる。要求量授受が複数ＰＥにまたがるか否かの判定、複数ＰＥにまたがる場合の処理、そして所要量を算出後に、ジョブキューに登録品目があるか否かの判定と登録品目がない場合の要求量キャリアの送信処理が加わる。具体的には図１１に示すように、子品目の割当ＰＥ番号２３が親品目と同一のＰＥであれば、該子品目の品目セルを検索し、全ロットに対する納期と要求量を算出し、「品目セル書き込み処理」を行う。該子品目が親品目と違う割当ＰＥ番号の場合は、「要求量キャリア書き込みデータエリア決定処理」を行う。そして、同一ＰＥと同様に全ロットに対する納期と要求量を算出し、要求量キャリアのその品目の欄に書き込む。
【００７５】
図１１に示した処理を、一つづつ順に説明する。まず、ステップ１１０２で、総所要量計算、正味所要量計算、ロットまとめ、リードタイム計算を行ない、ステップ１１０４以降で所要量展開を行なう。ステップ１１０４では、全子品目について所要量展開を行なったか否かを判定する。全子品目について所要量展開を行なった場合には、処理を終了する。全子品目について所要量展開を行なっていない場合には、ステップ１１０６へ進み、当該子品目が該ＰＥの割当て品目か否かを判定する。
【００７６】
当該子品目が該ＰＥの割当て品目である場合には、ステップ１１０８へ進み、当該子品目の品目セルを検索する。当該子品目の全ロットについて納期と要求量とを算出したか否かを判定し（ステップ１１１０）、全ロットについて納期と要求量とを算出した場合には、ステップ１１１８へ進み、次の子品目を当該子品目として、ステップ１１０４へ戻る。ステップ１１１０で、全ロットについて納期と要求量とを算出していない場合には、当該ロットについて納期と要求量とを算出し（ステップ１１１２）、子品目セル書き込み処理を行なって（ステップ１１１４）、次ロットを当該ロットとして（ステップ１１１６）、ステップ１１１０へ戻る。
【００７７】
ステップ１１０６で、当該子品目が該ＰＥの割当て品目でない場合には、ステップ１１２０へ進み、要求量キャリア書き込みデータエリア決定処理を行う。当該子品目の全ロットについて納期と要求量とを算出したか否かを判定し（ステップ１１２２）、全ロットについて納期と要求量とを算出した場合には、ステップ１１１８へ進み、次の子品目を当該子品目として、ステップ１１０４へ戻る。ステップ１１２２で、全ロットについて納期と要求量とを算出していない場合には、当該ロットについて納期と要求量とを算出し（ステップ１１２４）、要求量キャリアに納期、要求量を追加して（ステップ１１２６）、次ロットを当該ロットとして（ステップ１１２８）、ステップ１１２２へ戻る。
【００７８】
図１２は「要求量キャリア書き込みデータエリア決定処理」のフローチャートである。図８の品目関連データ構造、図１３の要求量キャリアデータ構造と併せて説明する。図１３に示すように、要求量キャリアは、行先ＰＥ番号２６と、行先プロセス番号２７と、品目番号２８と、該品目番号を有する品目の納期と要求量とを格納することができる。
【００７９】
要求量キャリア書き込みデータエリア決定処理は、まず、要求量キャリアの行先ＰＥ番号２６が、子品目データの割当ＰＥ番号２３と同じ要求量キャリアを検索する（ステップ１２０２）。そして、該要求量キャリアに同じ子品目の要求量が、既に書き込まれているか否かのチェックを行う（ステップ１２０４）。書き込まれていれば、そのデータエリアを該子品目の書き込みエリアとする（ステップ１２０６）。書き込まれていなければ、新規のデータエリアを該子品目の書き込みエリアとする。このとき、要求量キャリアがいっぱいで、新規のデータエリアが得られないか否かを判定し（ステップ１２０８）、新規のデータエリアが得られなければ、該要求量キャリアに格納された内容をメッセージ管理部を介して送信する（ステップ１２１０）。その際、送信メッセージカウンタをインクリメントする。送信後、該要求量キャリアを初期化し（ステップ１２１２）、新規データエリアを該子品目の書き込みエリアとする（ステップ１２１４）。ステップ１２０８において、要求量キャリアに空きがあり、新規のデータエリアが得られる場合には、ステップ１２１４へ進み、新規データエリアを該子品目の書き込みエリアとする。
【００８０】
図１４は「子品目セル書き込み処理」のフローチャートである。図８の品目関連データ構造も用いて説明する。子品目セル書き込み処理は、子品目の納期と要求量を、該子品目の品目セルの所要量データに追加する（ステップ１４０２）。そして、該要求量が最終ロットのものであるか否かを判定し（ステップ１４０４）、該要求量が最終ロットのものでなければ終了する。該要求量が最終ロットのものである場合には、該子品目の親品目カウンタ１３をインクリメントし（ステップ１４０６）、インクリメントした結果、親品目カウンタ１３の値が１であるか否かを判定する（ステップ１４０８）。親品目カウンタ１３の値が１であれば、該品目セルのアドレスを該品目のレベルコードのジョブキューに登録し（ステップ１４１０）、そのレベルコードのジョブカウンタをインクリメントして（ステップ１４１２）終了する。ステップ１４０８で、親品目カウンタ１３の値が１でないと判定された場合には、終了する。
【００８１】
図１５は「Carry_MSG対応処理」のフローチャートである。図８の品目関連デ
ータ構造、図１３の要求量キャリアデータ構造も用いて説明する。Carry_MSG対
応処理では、受信した要求量キャリアから、格納された全ての子品目の納期、要求量を読み込む。そして、納期と要求量は該子品目の品目セルに書き込む。また、親品目カウンタ１３をインクリメントし終了する。インクリメントした結果、カウンタの値が１であれば、該品目セルのアドレスを該品目のレベルコードの計算可能ジョブキューに登録し、ジョブカウンタをインクリメントする。これを要求量キャリア内の全品目について行う。その後、要求量キャリア送信元のＭＲＰプロセスに対し、Arrived_MSGを送る。
【００８２】
図１５に示す処理を、一つづつ説明する。まず、ステップ１５０２で、受信した要求量キャリアから、格納された全ての子品目の納期、要求量を読み込んだか否かを判定する。全ての子品目の納期、要求量を読み込んだと判定された場合には、Carry_MSG送信元のＭＲＰプロセスに対し、Arrived_MSGを送信して（ステップ１５１４）終了する。全ての子品目の納期、要求量を読み込んではいないと判定された場合には、要求量キャリアから、一品目分の納期、要求量を読み込み、品目セルに書き込む（ステップ１５０４）。また、当該品目セルの親品目カウンタ１３をインクリメントする（ステップ１５０６）。次に、前記親品目カウンタ１３の値が１であるか否かを判定する（ステップ１５０８）。前記親品目カウンタ１３の値が１でない場合には、ステップ１５０２へ戻る。前記親品目カウンタ１３の値が１である場合には、当該品目セルのアドレスを該品目のレベルコードの計算可能ジョブキューに登録し（ステップ１５１０）、ジョブカウンタをインクリメントする（ステップ１５１２）。そして、ステップ１５０２へ戻る。
【００８３】
図１６は、「Cell_MSG対応処理」のフローチャートである。Cell_MSG対応処理では、受信した品目セルキャリアの各品目セルの内容を新たに品目セルとして登録し、当該品目セルのアドレスを、レベルカウンタの示すレベルのキューに登録し、ジョブカウンタをインクリメントする。品目セルキャリアのすべての品目について行った後、送信メッセージカウンタをデクリメントし、品目セルキャリア送信元のＭＲＰ計算プロセスに対し、Arrived_MSGを送る。
【００８４】
図１７に、品目セルキャリアのデータ構造を示す。図１７に示すように、品目セルキャリアは、行先ＰＥ番号２９と、行先プロセス番号３０と、品目セル３１とを格納することができる。
【００８５】
図１６に示す処理を、一つづつ説明する。まず、ステップ１６０２で、品目セルキャリアから、全品目データを読み込んだか否かを判定する。品目セルキャリアから、全品目データを読み込んだと判定された場合には、送信メッセージカウンタをデクリメントし（ステップ１６０９）、Cell_MSG送信元のＭＲＰ計算プロセスに対し、Arrived_MSGを送信して（ステップ１６１０）終了する。品目セル
キャリアから、全品目データを読み込んではいないと判定された場合には、品目セルキャリアから一品目分の品目セルデータをデータ保持部に移す（ステップ１６０４）。そして、当該品目セルのアドレスを、レベルカウンタの示すレベルのキューに登録し（ステップ１６０６）、ジョブカウンタをインクリメントする（ステップ１６０８）。この後、ステップ１６０２へ戻る。
【００８６】
図１８は、「Export_MSG対応処理」のフローチャートである。図８の品目関連データ構造、図１７の品目セルキャリアデータ構造も用いて説明する。Export_MSG対応処理では、まず、ジョブカウンタの値を参照し、ブルー、イエロー、レッドの状態判定を行う（ステップ１８０２）。これは、制御プロセスが管理している状態テーブルの状態と、今、現在の状態がずれていることがありうるために行うものである。状態がブルーであるか否かを判定し（ステップ１８０４）、ブルー以外の状態の場合、届け先のＭＲＰ計算プロセスに対し、Arrived_MSGを送り
（ステップ１８１４）、終了する。これにより、レッドになったＭＲＰプロセスにジョブは供給されないことを意味する。
【００８７】
Export_MSGを受けたＭＲＰプロセスがブルー状態の場合、キューから、品目
セルキャリアに搭載可能な個数の品目セルアドレスを取り出し（ステップ１８０６）、当該品目セルの内容を品目セルキャリアに移し（ステップ１８１０）、届け先のＭＲＰ計算プロセスに送る（ステップ１８１２）。その際、ジョブカウンタを取り出した分だけデクリメントし（ステップ１８０８）、送信メッセージカウンタをインクリメントする。
【００８８】
（３）一括書き込み処理
一括書き込み処理は、メモリ上にあるＭＲＰ計算の出力結果である各品目の所要量データを、一括してハードディスクに書き込む（図７のステップ７１８）。書き込みを行った後は、制御プロセスに一括書き込み終了報告を行い（ステップ７２０）、作業指示メッセージ受信待ち状態になる。
【００８９】
（４）終了処理
プロセスの終了処理を行う。
【００９０】
以上、分散メモリ型並列計算機の実施例を説明した。しかし、本発明は、この情報処理環境だけでなく、従来のシングルＣＰＵの計算機においても、共有メモリ型並列計算機においても実現可能である。
【図面の簡単な説明】
【００９１】
【図１】全体のブロック図である。
【図２】分散メモリ型並列計算機の説明図である。
【図３】分散メモリ型並列計算機上での本発明の構成図である。
【図４】制御プロセスのフローチャートの説明図である。
【図５】状態報告対応処理フローチャートの説明図である。
【図６】状態テーブルのデータ構造である。
【図７】ＭＲＰ計算プロセスのフローチャートの説明図である。
【図８】品目関連データを格納するデータ構造の説明図である。
【図９】ＭＲＰ計算処理のフローチャートの説明図である。
【図１０】ジョブカウント及びジョブキューのデータ構造の説明図である。
【図１１】部品展開計算処理のフローチャートの説明図である。
【図１２】要求量キャリア書き込みデータエリア決定処理のフローチャートの説明図である。
【図１３】要求量キャリアのデータ構造の説明図である。
【図１４】子品目セル書き込み処理のフローチャートの説明図である。
【図１５】Carry_MSG対応処理のフローチャートの説明図である。
【図１６】Cell_MSG対応処理フローチャートの説明図である。
【図１７】品目セルキャリアのデータ構造の説明図である。
【図１８】Export_MSG対応処理フローチャートの説明図である。
【図１９】部品展開図とローレベルコードの説明図である。
【符号の説明】
【００９２】
１    …  初期処理部
２    …  データ管理部
３    …  計算可能管理部
４    …  部品展開計算部
５    …  要求量送受信部
６    …  メッセージ管理部
７    …  ＭＲＰ計算部
８    …  作業指示部
９    …  分散メモリ型並列計算機上でのＭＲＰ計算プロセス
１０  …  分散メモリ型並列計算機上での制御プロセス
１１  …  品目セル
１３  …  親品目カウンタ
１４  …  ジョブカウンタ
１５  …  ジョブキュー
１６  …  レベルカウンタ
１７  …  要求量キャリア
１８  …  品目セルキャリア
２０  …  品目セルの要求量データ
２２  …  品目セルのローレベルコード
２３  …  品目セル子品目データの割当ＰＥ番号
２６  …  要求量キャリアの行先ＰＥ番号
２７  …  要求量キャリアの行先プロセス番号
２８  …  要求量キャリアの品目番号
２９  …  品目セルキャリアの行先ＰＥ番号
３０  …  品目セルキャリアの行先プロセス番号
３１  …  品目セルキャリアの品目セル
４０  …  状態テーブル
【図１】
0004477649.tif 000002
【図２】
0004477649.tif 000003
【図３】
0004477649.tif 000004
【図４】
0004477649.tif 000005
【図５】
0004477649.tif 000006
【図６】
0004477649.tif 000007
【図７】
0004477649.tif 000008
【図８】
0004477649.tif 000009
【図９】
0004477649.tif 000010
【図１０】
0004477649.tif 000011
【図１１】
0004477649.tif 000012
【図１２】
0004477649.tif 000013
【図１３】
0004477649.tif 000014
【図１４】
0004477649.tif 000015
【図１５】
0004477649.tif 000016
【図１６】
0004477649.tif 000017
【図１７】
0004477649.tif 000018
【図１８】
0004477649.tif 000019
【図１９】
0004477649.tif 000020