(57)【特許請求の範囲】
【請求項１】
複数の所要量計算部によって資材所要量計算を並列に処理する際の負荷分散を決定する資材所要量計算の負荷分散装置において、
ＭＰＳ読み込み部と、共有品目配置部と、上記所要量計算部毎に設けられた展開計算部と、を備え、
上記ＭＰＳ読み込み部は、別途作成された生産計画に含まれている品目を読み込んで、各品目を配置する所要量計算部を決定し、当該所要量計算部に対応する展開計算部にその旨を通知するものであり、
上記共有品目配置部は、上記展開計算部から通知された品目を配置する所要量計算部を決定し、当該所要量計算部に対応する展開計算部にその旨を通知するものであり、
上記展開計算部は、上記ＭＰＳ読み込み部または上記共有配置部から上記通知を受けた品目を、自らに対応する所要量計算部に配置するものであり、
上記展開計算部は、さらに、自らに対応する所要量計算部に配置されている品目の子に相当する品目を確認する展開処理を実行し、該展開処理によって確認された子に相当する品目のうち、複数の品目に共有されている品目については上記共有品目配置部に通知し、一方、共有されていない品目については自らに対応する所要量計算部に配置するものであること、
を特徴とする資材所要量の負荷分散装置。
【請求項２】
展開制御部を備え、
上記展開計算部は、各品目間の親子関係を示す部品構成上のレベルごとに上記展開処理を行うものであって、あるレベルの展開処理が完了した場合にはその旨を上記展開制御部に通知するとともに上記展開制御部から展開処理の再開指示を受けるまでその展開処理を一時停止するものであり、
上記展開制御部は、上記展開計算部のすべてから上記展開処理の完了の通知を受け取った後、上記共有品目配置部に上記配置先決定の開始を指示するものであり、且つ、上記共有品目配置部からその時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した旨の通知を受けた後、上記展開計算部に展開処理再開を指示するものであり、
上記共有品目配置部は、上記展開制御部から上記開始の指示を受けた時点で、上記配置先の決定を開始するものであり、且つ、その時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した後は、その旨を上記展開制御部に通知するものであること、
を特徴とする請求項１記載の資材所要量計算の負荷分散装置。
【請求項３】
上記共有品目配置部は、上記展開計算部から通知された品目の親に相当する品目が配置されている所要量計算部のなかから、当該品目を配置する所要量計算部を決定するものであること、
を特徴とする請求項１または２記載の資材所要量の負荷分散装置。
【請求項４】
上記共有品目配置部は、上記展開計算部から通知された品目の親に相当する品目が配置されている所要量計算部のうち、その時点で配置されている品目数が最も少ないものを、当該品目の配置先として決定するものであること、
を特徴とする請求項３記載の資材所要量計算の負荷分散装置。
【請求項５】
上記所要量計算部と、既に当該所要量計算部に配置されている品目と、の対応関係を格納するための配置状況テーブルを備えた記憶部を有し、
上記共有品目配置部は、上記配置先の決まった品目の配置場所を上記配置状況テーブルに順次記載するとともに、該配置状況テーブルを参照することで上記品目の配置先を決定するものであること、
を特徴とする請求項３または４記載の資材所要量計算の負荷分散装置。
【請求項６】
複数の所要量計算部によって資材所要量計算を並列に処理する際の負荷分散を決定する、負荷分散装置が行う資材所要量計算の負荷分散方法において、
前記負荷分散装置は、前記複数の所要量計算部と、処理部とを備え、
前記複数の所要量計算部各々は、展開計算部と、記憶部とを備え、
前記処理部は、
あらかじめ作成された生産計画に含まれている品目を読み込んで、各品目を配置する前記所要量計算部を決定するとともに、前記展開計算部各々から送出された品目を配置する所要量計算部を決定し、前記決定した所要量計算部の前記展開計算部に当該品目を通知する通知ステップを行い、
前記展開計算部各々は、
前記通知ステップにおいて通知された前記品目の子品目を、あらかじめ定められた部品構成表に基づいて特定する展開ステップと、
前記展開ステップにおいて特定された子品目が、複数の品目で共有されている場合、前記処理部に当該子品目を送出するとともに、前記展開ステップにおいて特定された子品目が、複数の品目で共有されていない場合、当該子品目を前記記憶部に配置する配置ステップと、を行うこと
を特徴とする資材所要量計算の負荷分散方法。
【請求項７】
請求項６記載の資材所要量計算の負荷分散方法において、
前記展開計算部各々は、各品目間の親子関係を示す部品構成上のレベルごとに、前記展開ステップ行うこと
を特徴とする資材所要量計算の負荷分散方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は生産計画が入力されたとき、この計画の中の製品を生産するために必要な各種部品、原材料を求める資材所要量計算を、複数の計算機を用いて並列に処理する際、どの品目のデータをどの計算機にロードするか、もしくはどの品目をどの計算機で処理するかを決定する負荷分散方法及び装置に関する。
【０００２】
【従来の技術】
製品の種類と個数が指定された場合、これを作るのに必要な部品の種類とその個数とを自動的に算出する方法の一つとして資材所要量計画（Ｍａｔｅｒｉａｌ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  Ｐｌａｎｎｉｎｇ）が知られている。資材所要量計画については、例えば、「図説ＭＲＰ用語５００選」（日刊工業新聞社：昭和５８年発行）等に記載がある。
【０００３】
資材所要量計算は、従来、逐次処理で行なわれていた。この資材所要量計算はその処理量が膨大であるため、高速の計算機を用いてもその処理には長時間を要していた。
【０００４】
そのため、近年、並列処理の手法を適用することで処理の高速化を図った資材所要量計算システムが提案されている。このような並列処理を適用した資材所要量計算システムとしては、例えば、特開平３−２２６８４５号がある。
【０００５】
【発明が解決しようとする課題】
並列処理によって高速化を図るには、負荷をどのように分散させるかという点が重要になる。一般的な負荷分散方法としては、データ量が均一になるように適当に決定するという方法がある。しかしながら、一般的な負荷分散方式によって得られた配置では通信量が増大し、処理時間は却って増大する可能性もあった。にもかかわらず、従来提案されている並列システムにおいては、各品目のデータロードもしくは所要量計算をどの計算機上で行なうべきかという負荷分散は考慮していなかった。
【０００６】
本発明は、並列的に実行する資材所要量計算に適した資材所要量計算の負荷分散方法及び装置を提供することを目的とする。
【０００７】
さらには、負荷分散の計算自体を高速で行うことのできる資材所要量計算の負荷分散方法及び装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本願発明者は、上記目的を達成するために、資材所要量計算を並列して行う場合の通信について詳細に検討した。その結果、並列資材所要量計算では、親子関係にある品目の間でのみデータの授受が発生し、各品目間でランダムに発生することはない。従って、親子関係にある品目は同一の計算機もしくは近隣の計算機に配置することによって、計算機間の通信量を減らし、並列資材所要量計算の処理時間を短縮することが可能であることに気付いた。
【０００９】
本発明はこのような観点からなされたものである。本発明では、基準となる生産計画の対象品目を読み込み、複数の展開計算部に分配する手段と、各展開計算部において与えられた品目を部品構成表を用いて子部品展開し、共有品目以外については、その展開計算部で配置場所を決定する手段と、共有品目配置部において各展開計算部での品目配置状況に応じて、共有品目の配置場所を決定する手段と、各展開計算部で同期して処理を進められるように制御する手段と、を備えることで上記目的を達成した。
【００１０】
本発明の構成をより具体的に述べれば以下のとおりである。
【００１１】
本発明の第１の態様としては、複数の所要量計算部によって資材所要量計算を並列に処理する際の負荷分散を決定する資材所要量計算の負荷分散装置において、ＭＰＳ読み込み部と、共有品目配置部と、上記所要量計算部毎に設けられた展開計算部と、を備え、上記ＭＰＳ読み込み部は、別途作成された生産計画に含まれている品目を読み込んで、各品目を配置する所要量計算部を決定し、当該所要量計算部に対応する展開計算部にその旨を通知するものであり、上記共有品目配置部は、上記展開計算部から通知された品目を配置する所要量計算部を決定し、当該所要量計算部に対応する展開計算部にその旨を通知するものであり、上記展開計算部は、上記ＭＰＳ読み込み部または上記共有配置部から上記通知を受けた品目を、自らに対応する所要量計算部に配置するものであり、上記展開計算部は、さらに、自らに対応する所要量計算部に配置されている品目の子に相当する品目を確認する展開処理を実行し、該展開処理によって確認された子に相当する品目のうち、複数の品目に共有されている品目については上記共有品目配置部に通知し、一方、共有されていない品目については自らに対応する所要量計算部に配置するものであること、を特徴とする資材所要量の負荷分散装置が提供される。
【００１２】
この場合、展開制御部を備え、上記展開計算部は、各品目間の親子関係を示す部品構成上のレベルごとに上記展開処理を行うものであって、あるレベルの展開処理が完了した場合にはその旨を上記展開制御部に通知するとともに上記展開制御部から展開処理の再開指示を受けるまでその展開処理を一時停止するものであり、上記展開制御部は、上記展開計算部のすべてから上記展開処理の完了の通知を受け取った後、上記共有品目配置部に上記配置先決定の開始を指示するものであり、且つ、上記共有品目配置部からその時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した旨の通知を受けた後、上記展開計算部に展開処理再開を指示するものであり、上記共有品目配置部は、上記展開制御部から上記開始の指示を受けた時点で、上記配置先の決定を開始するものであり、且つ、その時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した後は、その旨を上記展開制御部に通知するものであることが好ましい。
【００１３】
上記共有品目配置部は、上記展開計算部から通知された品目の親に相当する品目が配置されている所要量計算部のなかから、当該品目を配置する所要量計算部を決定するものであることが好ましい。
【００１４】
上記共有品目配置部は、上記展開計算部から通知された品目の親に相当する品目が配置されている所要量計算部のうち、その時点で配置されている品目数が最も少ないものを、当該品目の配置先として決定するものであることがより好ましい。
【００１５】
上記所要量計算部と、既に当該所要量計算部に配置されている品目と、の対応関係を格納するための配置状況テーブルを備えた記憶部を有し、
上記共有品目配置部は、上記配置先の決まった品目の配置場所を上記配置状況テーブルに順次記載するとともに、該配置状況テーブルを参照することで上記品目の配置先を決定するものであることが好ましい。
【００１６】
本発明の第２の態様としては、複数の所要量計算部によって資材所要量計算を並列に処理する際の負荷分散を決定する資材所要量計算の負荷分散方法において、別途作成された生産計画に含まれている品目を読み込んで、各品目を配置する所要量計算部を決定するとともに、当該品目の子に相当する品目を確認する展開処理を行い、該子に相当する品目のうち、他の品目と共有されていない品目については当該所要量計算部に配置し、一方、共有されている品目については、その親に相当する品目が配置されている所要量計算部のうちのいずれかに配置すること、を特徴とする資材所要量計算の負荷分散方法が提供される。
【００１７】
子の場合、上記展開処理および該展開処理で確認された子に相当する品目の配置を、部品構成上のレベルごとに進めてもよい。
【００１８】
【作用】
以下においては、子に相当する品目を単に”子”，”子品目”と、親に相当する品目を単に”親”、”親品目”と呼ぶ場合がある。
【００１９】
ＭＰＳ読み込み部は、別途作成された生産計画に含まれている品目を読み込む。そして、該読み込んだ品目を配置する所要量計算部を決定し、その所要量計算部に対応する展開計算部にその旨を通知する。
【００２０】
展開計算部は、ＭＰＳ読み込み部から通知を受けた品目を、自らに対応する所要量計算部に配置する。さらに、展開処理を実行することで、自らに対応する所要量計算部に配置されている品目の子品目を確認する。そして、確認された子品目のうち、複数の品目に共有されている品目については共有品目配置部に通知する。一方、共有されていない品目については自らに対応する所要量計算部に配置する。
【００２１】
共有品目配置部は、展開計算部から通知された品目を配置する所要量計算部を決定する。例えば、展開計算部から通知された子品目の親品目が配置されている所要量計算部のなかから、配置先を選ぶようにすれば、資材所要量計算における通信量を少なくできる。さらには、この中でも配置されている品目数が少ない所要量計算部を選択するようにすれば、負荷の均一化を図ることができる。このような配置先の決定は、所要量計算部と、既に当該所要量計算部に配置されている品目と、の対応関係を格納するための配置状況テーブルを用意し、配置先の決まった品目の配置場所をこの配置状況テーブルに順次記載するとともに、配置先を決定する際にはこの配置状況テーブルを参照するようにすることで容易に可能である。
【００２２】
共有品目配置部は、このようにして決定した配置先（所要量計算部）に対応する展開計算部にその旨を通知する。展開計算部は、共有配置部から通知を受けた品目を、自らに対応する所要量計算部に配置する。
【００２３】
なお、上述した処理をレベルごとに進めていく場合には、展開制御部によって、各展開計算部間の同期をとるようにする。つまり、展開計算部は、あるレベルの展開処理が完了した場合にはその旨を展開制御部に通知する。そして、展開処理を一時停止するようにする。展開制御部は、展開計算部のすべてから展開処理の完了の通知を受け取った後、共有品目配置部に配置先決定の開始を指示する。共有品目配置部は、展開制御部から開始の指示を受けた時点で、配置先の決定を開始する。また、共有品目配置部は、その時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した後は、その旨を展開制御部に通知する展開制御部は、共有品目配置部からその時点で展開計算部から通知をうけていた全ての品目についてその配置先を決定した旨の通知を受けた後、展開計算部に展開処理の再開を指示する。該再開指示を受け取った展開計算部は、展開処理を再開する。
【００２４】
【実施例】
本発明の一実施例を図１から図８を用いて説明する。
【００２５】
本実施例の負荷分散装置は、図１に示すとおり、ＭＰＳ読み込み部１が１個、展開計算部２が４個、共有品目配置部３が１個、展開制御部４が１個から構成されている。この負荷分散装置が対象とする資材所要量計算装置は、図２に具体的ハードウエアを示したようなものであるとする。該ハードウエアは、４台の疎結合並列計算機からなり、資材所要量計算の負荷分散の決定処理を並列に実行できるようになっている。以下、並列計算機を構成する４つのＰＥ（Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）のそれぞれを区別して、”ＰＥ０”，”ＰＥ１”，”ＰＥ２”，”ＰＥ３”と呼ぶこととする。つまり、本実施例の負荷分散装置は、資材所要量計算における計算対象となる各品目のデータを、これら４つのＰＥ（これが、特許請求の範囲において言う”所要量計算部”に相当する。）のいずれに配置するかを決定するものである。本実施例における最大の特徴は、各品目の、ＰＥ０〜ＰＥ３への配置（あるいは割当て）の仕方にある。該配置の仕方は、直接的には、後述する品目配置テーブル５（図３）の内容に反映されるものである。
【００２６】
ＭＰＳ読み込み部１は、基準生産計画デ−タを読み込むとともに、その中に含まれている品目を各展開計算部２に割り当てるものである。割り当ての仕方にはいろいろな方法がある。最も簡単なのは、各展開計算部２に送信される品目数がほぼ同数になるように分ける方法である。基準生産計画データにおいて、各品目が、その品目の子品目の総数という情報を持っている場合がある。この場合には、各展開計算部２に配置される子品目の総数がほぼ同数になるように分ける方法もある。また、在庫情報を利用して割り当てる方法も可能である。
【００２７】
展開計算部２は、別途割り当てられた品目について、部品展開計算を実行するものである。部品展開計算とは、ある品目を構成する子品目を明らかにする処理である。この部品展開計算は、各品目間の親子関係を明記した部品構成表を参照すること等で行う。部品構成表とは、各部品（あるいは、品目）間での親子関係を記載したものであり、資材所要量計算で一般に用いられている。該部品構成表は、各展開計算部２の内部（あるいは、展開計算部２がアクセス可能な記憶装置）にあらかじめ格納されているものである。
【００２８】
また、展開計算部２のそれぞれは、レベルごとのキューと、各自の品目配置テーブル５（図３参照）と、を備えている。レベルごとのキューは、子部品展開計算をレベル・バイ・レベルで実行するために用いられる。さらに、各展開計算部２は、自らに対応するＰＥ（図２参照）に配置することが決定された品目を、自らの品目配置テーブル５に記載するようになっている。各展開計算部２は、図２における各ＰＥに一対一で対応している。従って、ここでは便宜上、該対応関係にあわせて各展開計算部２を”ＰＥ０”，”ＰＥ１”等と呼んで区別する場合がある。
【００２９】
なお、該展開計算部２は、後述する処理動作に際して、そのとき展開処理を行っているレベルを管理するためのレベルカウンタ、品目を管理するための品目カウンタを備えている。
【００３０】
展開制御部４は、各展開計算部２による展開計算をレベルバイレベルで進めるべく、各展開計算部２および共有品目配置部３の処理動作の同期をとるためのものである。各展開計算部２は、該展開制御部４からのメッセージを受けた後、一斉に展開計算を開始するようになっている。また、当該レベルの展開計算が完了した際も、該展開制御部４にメッセージを送るようになっている。共有品目配置部３も同様に、該展開制御部４からのメッセージを受けて共有品目の配置先を決定する処理を開始し、該処理の完了時に該展開制御部４へメッセージの送るようになっている。なお、該展開制御部４は、そのとき展開処理を行っているレベルを管理するためのレベルカウンタ、展開計算部を管理するための展開計算部カウンタを備えている。
【００３１】
共有品目配置部３は、複数の品目に共有される品目（共有品目）をいずれの展開計算部２に配置するかを決定するものである。該共有品目配置部３は、品目配置テーブル５（図３）、共有品目テーブル６（図６）、配置状況テーブル７（図７）を備えている。
【００３２】
共有品目テーブル６は、図６に示すとおり、ＰＥ名称をリストとして持つ品目番号のリストの先頭ポインタが要素となっている配列である。この共有品目テーブル６により、あるレベルにどのような共有品目があるか、またそれらの各共有品目は、どのＰＥで共有されているかを容易に知ることができる。該共有品目テーブル６の内容はあらかじめ用意されているものではない。後述する処理動作の過程において、適宜、作成・使用されるものである。
【００３３】
配置状況テーブル７は、図７に示すとおり、各ＰＥが各レベルで品目が何個配置されているかを示したものである。該配置状況テーブル７の内容はあらかじめ用意されているものではない。後述する処理動作によって、各レベルごとに得られる配置状況を、順次、該テーブル７に格納してゆくことで作られるものである。
【００３４】
品目配置テーブル５（図３参照）は、ＭＰＳ読み込み部１，展開制御部４等によってなされた配置結果を格納したものである。該品目配置テーブル５は、展開計算部２毎に設けられている。各展開計算部２が備える品目配置テーブル５には、当該展開計算部２（すなわち、該展開計算部２に対応するＰＥ（資材所要量計算部））に配置されている品目のみが記載されるようになっている。これに対し、共有品目配置部３が備える品目配置テーブル５には、全ての品目についていずれの部分に配置されているかが記載されるようになっている。
【００３５】
資材所要量計算を行う際には、各展開計算部２の有する品目配置テーブル５は、図２の各ＰＥが有する記憶手段（メモリ、ハードディスク）に格納されて、以下のような場合に用いられる。例えば、各ＰＥに独立したデ−タベースシステムを設けている場合には、資材所要量計算を行なう際に各品目のデ−タレコードがどのＰＥのデ−タベースに存在するかを確認するのに用いるものである。また、並列計算機上に分散デ−タベースシステムが構築され、各品目のデ−タレコードの場所をデ−タベースマネジメントシステムが管理している場合であっても、各ＰＥのメモリ上で資材所要量計算を行なうときは、各品目のデ−タを各ＰＥのメモリにロードしなければならない。その際に、どのＰＥにロードするかを確認するのに用いることができる。さらには、各品目の所要量計算を行わせるＰＥを指定するテーブルとしても利用可能である。なお、既に述べたとおり本発明の目的は、品目の最適な配置を決定することにある。従って、最適な配置が記載された品目配置テーブル５を得ることが、本発明の目的とも言える。特許請求の範囲の記載における、”各品目を配置する所要量計算部の決定”とは、本実施例では、品目配置テーブル５上、各品目をいずれのＰＥに対応づけて記載するかということに相当する。
【００３６】
本実施例の負荷分散方法および装置自体も、図２の如き並列型の計算機によって並列的な処理として実現されるものである。
【００３７】
なお、本明細書中、”レベル”とは、品目（あるいは、部品）間の親子関係を階層化して樹系図のごとく描いた場合における、階層を指す。
【００３８】
次に動作概要を説明する。
【００３９】
図１において、まず、ＭＰＳ読み込み部１は、基準生産計画デ−タを読み込む。そして、読み込んだ基準生産計画の中にある品目を各展開計算部２に割り当てる。各展開計算部２は、割り当てられた品目を、自らの有する品目配置テーブル５に、自らが対応づけられているＰＥと対応づけて記載する。さらに、この時割り当てられた品目の子品目を確認する。但し、この時確認するのは、ＭＰＳ読み込み部によって割り当てられた品目のレベルよりも、１つ下のレベルまでである。その結果、見つかった子品目を、自らの品目配置テーブル５に記載する。但し、見つかった子品目が他の品目と共有されるものであった場合には、共有品目配置部３に当該子品目に関する情報を送る。共有品目配置部３は、全ての展開計算部２から共有品目に関する情報が届いた後、それらの共有品目を配置する展開計算部２を決定する。ある共有品目が配置されることが決定された展開計算部２は、その時点で、初めて自らの品目配置テーブル５に当該共有品目を記載する。
【００４０】
このようにして当該レベルに属する品目すべての配置を決めた後、今度は、それら（当該レベルに属する品目）を構成する子品目を確認する。この場合も同様に、該確認は当該レベルよりも一つ下のレベルまでとする。これ以後も同様に、レベルバイレベルで処理を進めてゆく。これにより、最終的には全ての品目の配置を決定できる。
【００４１】
上述した動作を図面を用いてさらに詳細に説明する。
【００４２】
図１において、まず、ＭＰＳ読み込み部１が、基準生産計画デ−タを読み込む。ＭＰＳ読み込み部１は、読み込んだ基準生産計画の中に含まれている品目を、各展開計算部２（すなわち、当該展開計算部２に対応するＰＥ）に割り当てる（配置する）べく、各品目の品目番号とローレベルコードを、”ｓｅｔ＿ｑｕｅｕｅ（品目番号，ローレベルコード）”というメッセージとして、割り当て先の各展開計算部２に送る。ＭＰＳ読み込み部１は、基準生産計画の中にある品目すべてについて、このメッセージを送信した後、展開制御部４に向け”ｒｅａｄｙ”メッセージを送り、その動作を終了する。
【００４３】
ＭＰＳ読み込み部１が”ｒｅａｄｙ”メッセージを送信した後は、各展開計算部２及び共有品目配置部３によって、資材所要量計算で必要とされる品目すべての配置が決定される。以下、この後続いて行われる各展開計算部２、共有品目配置部３、展開制御部４の処理を図４、図５、図８を用いて説明する。
【００４４】
図４は展開計算部２の実行する処理を示したフローチャートである。図５は共有品目配置部３の実行する処理を示したフローチャートである。図８は展開制御部４の実行する処理を示したフローチャートである。
【００４５】
上述した各部は、互いに密接に連携をとって動作するものである。そのため、ここでは、該実際の配置を決定する手順に従って、上記各図を互いに参照しつつ説明することとする。
【００４６】
処理が開始されると、展開制御部４および展開計算部２は、レベルカウンタおよび品目カウンタを０にし（図８ステップ８００、図４ステップ４００）、そのままメッセージの受信を待って待機状態となっている（図８ステップ８０１、図４ステップ４０１）。また、共有品目配置部３も同様に、処理開始後、メッセージの受信を待って待機状態となっている（図５ステップ５０１）。
【００４７】
この待機状態においてＭＰＳ読み込み部１から上述の”ｒｅａｄｙ”メッセージを受信すると、展開制御部４は、各展開計算部２に”ｓｔａｒｔ”メッセージを送る（図８ステップ８０２）。展開制御部４はこの後、ステップ８０１へ戻りメッセージを待って再び待機状態となる。
【００４８】
該”ｓｔａｒｔ”メッセージを受け取った展開計算部２は、レベルカウンタによって指定されているレベルのキューから、品目番号を１つ取り出す（ステップ４０４）。そして、その品目番号と、自分の対応しているＰＥの名称（ＰＥ名称）とを、自分が備えている品目配置テーブル５に書き込む。さらに、品目カウンタをインクリメントする（ステップ４０５）。
【００４９】
つづいて、その品目の子品目を、部品構成表を参照することで確認する。そして、この時、見つかった子品目のうちの一つを取り出す（ステップ４０６）。そして、取り出した子品目の品目番号とローレベルコードを求め、それが共有品目であるか否かを調べる（ステップ４０７）。その品目が共有品目であるか否か、（逆に言えば、その品目が複数の親品目において使用されているか否か）は、部品構成表を調べることで容易にわかる。当該品目が共有品目でなかった場合には、その品目のローレベルコードが指しているレベルのキューにその品目番号を入れ（ステップ４０８）、ステップ４０６へ戻る。なお、このようにしてキューに加えられた品目は、後ほど再び行われるステップ４０５において、当該展開計算部２の品目配置テーブル５に書き込まれることになる。
【００５０】
一方、ステップ４０７において当該品目が共有品目であった場合には、”ｓｈａｒｅｄ＿ｐａｒｔ（品目番号，ローレベルコード，自分のＰＥ名称）”というメッセージを共有品目配置部３に送り（ステップ４０９）、ステップ４０６へ戻る。
【００５１】
該”ｓｈａｒｅｄ＿ｐａｒｔ（品目番号，ローレベルコード，自分のＰＥ名称）”というメッセージを受信すると、共有品目配置部３は共有品目テーブル６（図６参照）を更新する（図５ステップ５０２）。該更新は、以下のようにして行う。まず、共有品目テーブル６上、上記メッセージ（ｓｈａｒｅｄ＿ｐａｒｔ）内に記載されていたローレベルコードの示すレベルの欄において、上記メッセージ（ｓｈａｒｅｄ＿ｐａｒｔ）に記載されていた品目番号が、既に共有品目テーブル６に記載されているか否かを調べる。その結果、当該メッセージ内に記載されていた品目番号がまだ記載されていなかった場合には、当該欄の配列の最後に、メッセージに記載されていた品目番号を追加する。この場合、該品目番号には、メッセージに記載されていたＰＥ名称を付加しておく。一方、メッセージ内に記載されていた品目番号が、既に共有品目テーブル６に記載されていた場合には、その品目に繋がっているＰＥ名称の中に、メッセージに記載されていたＰＥ名称が含まれているか否かを調べる。その結果、含まれていなかった場合には、メッセージに記載されていたＰＥ名称を、新たな要素として当該品目番号に追加する。該ステップ５０２の後は、共有品目配置部３は、ステップ５０１へ戻り再び待機状態となる。
【００５２】
ところで、図４のステップ４０８あるいはステップ４０９の後、ステップ４０６に戻った展開計算部２は同様の処理を繰り返すことで、その時処理対象となっている品目の全ての子品目（但し、共有品目は除く）を、品目配置テーブル５に格納することができる。共有品目については、上述したとおり、共有品目配置部３へメッセージを送ることで共有品目テーブル６へ記載させる。
【００５３】
ステップ４０６において子品目が残っておらず取り出すことができなかった場合には、展開計算部２はステップ４０４へ戻り同様の処理を繰り返す。これにより、その時処理対象となっているレベルに属する品目のうち、自ら（展開計算部２）が担当している品目の全てについて、上述した子品目の確認等を行うことができる。
【００５４】
ステップ４０４でキューが空になっており、品目番号が取り出せなかった場合（すなわち、その時処理対象となっているレベルに属する品目のうち、自ら（展開計算部２）が担当している品目の全てについて、上述した子品目の確認等を完了していた場合）、展開計算部２は、”ｆｉｘｅｄ＿ｐａｒｔ（品目カウンタ，レベルカウンタ，自分のＰＥ名称）”というメッセージを共有品目配置部３に送る。また、”ｆｉｎｉｓｈｅｄ”というメッセージを展開制御部４に送る（ステップ４１０）。そして、処理対象とするレベルを一段下げるべくレベルカウンタをインクリメントするとともに、品目カウンタを初期状態（＝０）にして（ステップ４１１）、ステップ４０１へ戻る。
【００５５】
図４ステップ４１０において送信された”ｆｉｘｅｄ＿ｐａｒｔ（品目カウンタ，レベルカウンタ，自分のＰＥ名称）”というメッセージを受信すると、共有品目配置部３は、当該メッセージの内容に従って、配置状況テーブル７を更新する（図５ステップ５０３）。該更新は、以下のようにして行う。配置状況テーブル７上、該メッセージ（ｆｉｘｅｄ＿ｐａｒｔ）内のＰＥ名称、ローレベルコードで指定される欄に既に品目数が記載されている場合には、メッセージ（ｆｉｘｅｄ＿ｐａｒｔ）に記載されていた品目カウンタの値をそれに加えて新しい値とする。そして、この新しい値を改めて、当該欄に書き込む。
【００５６】
図４ステップ４１０において送信された”ｆｉｎｉｓｈｅｄ”というメッセージを受信すると、展開制御部４は、展開計算部カウンタをインクリメントするとともに、該展開計算部カウンタのカウント値を確認することで、該メッセージ（ｆｉｎｉｓｈｅｄ）がすべての展開計算部２から届いているか否かを調べる（図８ステップ８０３）。その結果、すべての展開計算部２からはメッセージが届いていなかった場合は、そのままステップ８０１へ戻る。一方、すべての展開計算部２からメッセージが届いていた場合は、レベルカウンタのカウント値が最大値未満であるか否かを確認する（ステップ８０４）。なお、該最大値は、上述の部品構成表を参照することで確認可能である。最大値未満であった場合（すなわち、更に下位のレベルが存在している場合）には、処理対象とするレベルを１段下げるべくレベルカウンタをインクリメントする。また、展開計算部カウンタを初期状態（＝０）にする（ステップ８０５）。さらに、共有品目配置部３に”ｓｅｔ＿ｓｈａｒｅｄ（レベルカウンタ）”というメッセージを送り（ステップ８０６）、ステップ８０１へ戻る。
【００５７】
該”ｓｅｔ＿ｓｈａｒｅｄ（レベルカウンタ）”というメッセージを受け取ると、共有品目配置部３は、そのレベルの共有品目を共有品目テーブル６から一つ取り出して（図５ステップ５０４）、取り出した共有品目の配置先を決定する（ステップ５０５）。この配置は以下のようにして決定する。つまり、取り出した共有品目に繋がっているＰＥ（すなわち、この共有品目の親が配置されているＰＥ）に配置されている品目の数（品目数）を、配置状況テーブル７を参照することで確認する。そして、この品目数の少ないＰＥに、その共有品目を配置することを決定する。以下、ここで配置先として決定されたＰＥを”配置ＰＥ”という。この場合の品目数の比較は、配置状況テーブル７において、メッセージ（ｓｅｔ＿ｓｈａｒｅｄ）に記載されていたローレベルコードの指しているレベルに配置されている品目の数（品目数）どうしで行ってもよい。あるいは、レベル０からそのローレベルコードの指しているレベルまでに配置されている品目の総数で比較しても良い。さらには、配置状況テーブル７だけでなく、その時点までに決定した共有品目の配置状況も加味して、次の共有品目の配置を決定しても良い。
【００５８】
この後は、配置先の決定された共有品目について、共有品目テーブル６においてつながっているＰＥ名称を取り出し（ステップ５０６）、それが配置ＰＥと一致するか否かを調べる（ステップ５０７）。配置ＰＥと一致していた場合、該当する展開計算部２に対し、”ｓｅｔ＿ｑｕｅｕｅ（品目番号，ローレベルコード）”というメッセージを送り（ステップ５０８）、ステップ５０６へ戻る。
【００５９】
該”ｓｅｔ＿ｑｕｅｕｅ（品目番号，ローレベルコード）”というメッセージを受信すると、展開計算部２は、メッセージ（ｓｅｔ＿ｑｕｅｕｅ）に記載されていた品目番号を、該メッセージに記載されていたローレベルコードの指しているレベルのキューに入れる（図４ステップ４０２）。この後は、ステップ４０１へ戻る。なお、このようにしてキューに書き加えられた品目（共有品目）も、当該展開計算部２が、次のレベル（その時処理対象となっているレベルよりも１段下位のレベル）についての展開処理を行う際に、ステップ４０５において品目配置テーブルに書き込まれることになる。
【００６０】
一方、ステップ５０７において、配置ＰＥと一致していなかった場合、共有品目配置部３は、そのＰＥに該当する展開計算部２に対して、”ａｄｄ＿ｔａｂｌｅ（品目番号，配置ＰＥ名称）”というメッセージを送り（ステップ５０９）、ステップ５０６へ戻る。
【００６１】
該”ａｄｄ＿ｔａｂｌｅ（品目番号，配置ＰＥ名称）”というメッセージを受信すると、展開計算部２は、該メッセージの内容を、品目配置テーブル５に追加し（図４ステップ４０３）、ステップ４０１へ戻る。これにより、当該展開計算部２は、当該共有品目に関するデータをいずれの展開計算部が有しているかをしることができる。
【００６２】
ところで、図５のステップ５０８あるいは５０９の後、ステップ５０６に戻った共有品目配置部３は、同様の処理を繰り返すことで、その時処理対象となっている共有品目の親品目が配置されている展開計算部２の全てに対し、ａｄｄ＿ｔａｂｌｅメッセージとｓｅｔ＿ｑｕｅｕｅメッセージとのうちのいずれかを送ることができる。
【００６３】
ステップ５０６において、すべてのＰＥ名称を取りだし終わっていた場合には、その共有品目を共有品目テーブル６から消去し（ステップ５１０）、その後ステップ５０４へ戻る。さらに、ステップ５０４ですべての品目を取り出し終わっていた場合、すなわち、当該レベルに存在していた共有品目の全てについて、その配置先を決定し終わっていた場合には、展開制御部４へ”ｒｅａｄｙ”というメッセージを送り、ステップ５０１へ戻る（ステップ５１１）。
【００６４】
”ｒｅａｄｙ”というメッセージを受信すると、展開制御部４は、次のレベルに対して、上述した一連の処理を再び繰り返すことになる。
【００６５】
ところで、図８ステップ８０４で、レベルカウンタが最大値以上であった場合（すなわち、処理対象としているレベルが最下位のレベルであった場合）、展開制御部４は各展開計算部２に”ｓｔｏｐ”メッセージを送り（ステップ８０７）、その動作を終了する。
【００６６】
該”ｓｔｏｐ”メッセージを受け取った展開計算部２は、”ａｌｌ＿ｆｉｘｅｄ”というメッセージ及び各自の品目配置テーブル５の内容を共有品目配置部３に送り（図４ステップ４１２）、自らの動作を終了する。
【００６７】
さらに、該”ａｌｌ＿ｆｉｘｅｄ”というメッセージを受け取った共有品目配置部３は、展開計算部２から送信されてきた品目配置テーブル５の内容を受信する（図５ステップ５１２）。そして、すべての展開計算部２から品目配置テーブル５の内容を受信したか否かを判定する（ステップ５１３）。該判定の結果、すべての展開計算部２から受け取っていた場合には、その内容に従って資材所要量計算の対象となる全ての品目に関する品目配置テーブル５を作成し（ステップ５１４）、自らの動作を終了する。なお、ステップ５１３における判定の結果、全ての展開計算部２からは受け取っていない場合には、ステップ５０１に戻り待機状態となる。
【００６８】
以上説明した実施例の負荷分散装置によれば、資材所要量計算に際しての通信量が少なくなるような負荷分散を図ることができる。また、負荷の均一化を図ることができる。従って、資材所要量計算の高速化に寄与するものである。
【００６９】
なお、資材所要量計算の手法に応じて、上記実施例の構成を適宜修正しても構わない。例えば、並列資材所要量計算が、オンメモリ上で計算をし、データのあるＰＥでその品目の所要量計算をするタイプの場合には、図５のステップ５１４で共有品目配置部が作成する全ての品目に関する品目配置テーブル５がなくても問題ない。この場合には、並列資材所要量計算において、まず、最初に各ＰＥが、各自の品目配置テーブル５に従って必要なデータを自分のメモリ上にロードする。更に、基準生産計画データから、自らに配置することが指定されている品目のデータを読み込み、以後、レベル・バイ・レベルで部品展開計算を進める。そのＰＥで展開計算を行う際にデータ送信を必要とする品目については、各自の品目配置テーブル５でその所在をすべて調べることが可能である。
【００７０】
また、別のタイプの並列資材所要量計算において、各ＰＥで全品目に関する品目配置テーブル５を必要とする場合には、各自の持つ品目配置テーブル５を廃棄し、図５のステップ５１４で作成された品目配置テーブル５を各ＰＥにコピーすればよい。あるいは、各自の持つ品目配置テーブル５をお互いに教えあって、各自で並列に全品目に関する品目配置テーブル５を作成することも可能である。
【００７１】
本実施例では、資材所要量計算が疎結合並列計算機で行なわれることとして説明したが、密結合並列計算機であっても、ネットワーク上の複数の計算機であっても可能である。
【００７２】
本実施例では、装置として説明したが、前記の資材所要量計算と同じ、並列もしくは分散計算機環境で作動するシステムとしても可能である。
【００７３】
【発明の効果】
以上、説明したように本発明によれば、部品構成上親子関係にある品目同士（すなわち、資材所要量計算においてデータ授受が発生する品目同士）を、原則として同一の計算機において処理するようにしている。また、複数の親に共有される品目については、負荷が全体として均等になるようにとの観点から、その処理を担当する計算機を決めている。そのため、各計算機間での通信量を少なくできる。これにより処理時間の短縮が図られる。
【００７４】
また、この負荷分散計算を行なう際、各展開計算部が並列に処理を進められるため、短時間で処理が終了できる。
【図面の簡単な説明】
【図１】本発明の一実施例を示すブロック図である。
【図２】具体的ハードウエア構成の一例である疎結合並列計算機を示す図である。
【図３】品目配置テーブル５を示す図である。
【図４】展開計算部２の処理を示すフローチャートである。
【図５】共有品目配置部３の処理を示すフローチャートである。
【図６】共有品目テーブル６を示す図である。
【図７】配置状況テーブル７を示す図である。
【図８】展開制御部４の処理を示すフローチャートである。
【符号の説明】
１…ＭＰＳ読み込み部、２…展開計算部、３…共有品目配置部、４…展開制御部、５…品目配置テーブル、６…共有品目テーブル、７…配置状況テーブル。
【図１】
0003621467.tif 000002
【図２】
0003621467.tif 000003
【図３】
0003621467.tif 000004
【図４】
0003621467.tif 000005
【図５】
0003621467.tif 000006
【図６】
0003621467.tif 000007
【図７】
0003621467.tif 000008
【図８】
0003621467.tif 000009