(57)【要約】【課題】プロセッサの有効活用を図りながら、障害発生時の信頼性及びリアルタイムなフォールトトレラント機能を有する計算機を提供する。【解決手段】障害発生時の信頼性及びリアルタイムフォールトトレラント機能が要求される処理を逐次実行部１２１、１２２が実行し、その他の処理を並列処理部１２３が実行する。逐次実行部では各プロセッサが常用系１２５、待機系１２６に配置され、常用系及び待機系で対応するプロセッサ（１０１と１０３及び１０２と１０４）において同一の処理を実行させる。逐次実行部プロセッサの常用系故障発生時には待機系プロセッサが常用系に切り換ることでホットスタンバイを実現する。さらに故障したプロセッサが復旧した場合、待機系として動作する。また、並列処理部プロセッサによってタスクを並列処理させ、並列処理部プロセッサの故障発生時には他の並列処理部プロセッサが故障したプロセッサのタスクを実行する。【選択図】図１
2009003537.tif 000002
【特許請求の範囲】
【請求項１】
常用系プロセッサと、常用系プロセッサの障害発生時に常用系プロセッサを代替する待機系プロセッサとを備える第一の処理部と、
二以上の並列処理プロセッサを備え、二以上の並列処理プロセッサが協働して分散並列処理を行う第二の処理部と、
前記第二の処理部に含まれる二以上の並列処理プロセッサのうち前記第一の処理部に含まれるプロセッサとの通信を伴う処理を実行していたいずれかの並列処理プロセッサに障害が発生した際に、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、前記障害プロセッサ実行処理において前記障害並列処理プロセッサの通信先であった常用系プロセッサ及び待機系プロセッサの少なくともいずれかに前記引継ぎ並列処理プロセッサを通知するプロセッサ管理部とを有することを特徴とする計算機。
【請求項２】
前記プロセッサ管理部は、
常用系プロセッサと、常用系プロセッサの障害発生時に常用系プロセッサを代替する待機系プロセッサとを備え、
常用系プロセッサ及び待機系プロセッサの少なくともいずれかが、
前記第一の処理部に含まれるプロセッサとの通信を伴う処理を実行していたいずれかの並列処理プロセッサに障害が発生した際に、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、前記障害プロセッサ実行処理において前記障害並列処理プロセッサの通信先であった常用系プロセッサ及び待機系プロセッサの少なくともいずれかに前記引継ぎ並列処理プロセッサを通知することを特徴とする請求項１に記載の計算機。
【請求項３】
前記第二の処理部に含まれる一以上の並列処理プロセッサが、
前記プロセッサ管理部として動作し、前記第一の処理部に含まれるプロセッサとの通信を伴う処理を実行していたいずれかの並列処理プロセッサに障害が発生した際に、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、前記障害プロセッサ実行処理において前記障害並列処理プロセッサの通信先であった常用系プロセッサ及び待機系プロセッサの少なくともいずれかに前記引継ぎ並列処理プロセッサを通知することを特徴とする請求項１又は２に記載の計算機。
【請求項４】
前記プロセッサ管理部は、
前記障害並列処理プロセッサが実行していた障害プロセッサ実行処理に他のいずれかの並列処理プロセッサとの通信が含まれる場合に、前記障害プロセッサ実行処理において前記障害並列処理プロセッサの通信先であった並列処理プロセッサに前記引継ぎ並列処理プロセッサを通知することを特徴とする請求項１〜３のいずれかに記載の計算機。
【請求項５】
前記第一の処理部の常用系プロセッサ、前記第二の処理部に含まれる一部の並列処理プロセッサ、及び前記プロセッサ管理部の常用系プロセッサは、常用系電源に接続され、前記常用系電源から電力を供給され、
前記第一の処理部の待機系プロセッサ、前記第二の処理部に含まれる残りの並列処理プロセッサ、及び前記プロセッサ管理部の待機系プロセッサは、待機系電源に接続され、前記待機系電源から電力を供給され、
前記常用系電源に障害が発生した際に、前記第一の処理部の常用系プロセッサが実行していた処理を前記第一の処理部の待機系プロセッサが引き継いで実行し、前記第二の処理部に含まれる一部の並列処理プロセッサが実行していた処理を前記第二の処理部に含まれる残りの並列処理プロセッサが引き継いで実行し、前記プロセッサ管理部の常用系プロセッサが実行していた処理を前記プロセッサ管理部の待機系プロセッサが引き継いで実行することを特徴とする請求項２に記載の計算機。
【請求項６】
前記プロセッサ管理部は、
並列処理プロセッサによる分散並列処理の実行時間の上限許容値を実行時間閾値として取得し、
並列処理プロセッサの数を一つ増加させた際の実行時間の短縮幅に対する下限許容値を短縮時間閾値として取得し、
並列処理プロセッサの数を一つずつ増加させながら特定のタスクを分散並列処理により実行する際の予測実行時間を算出し、各々の予測実行時間と実行時間閾値とを比較するとともに、各々の予測実行時間から並列処理プロセッサを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較し、予測実行時間と実行時間閾値との比較結果及び予測実行時間の短縮幅と短縮時間閾値との比較結果に基づき、前記特定のタスクを割り当てる並列処理プロセッサの数を決定することを特徴とする請求項１〜５のいずれかに記載の計算機。
【請求項７】
前記プロセッサ管理部は、
予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値未満の場合に、当該予測実行時間の並列処理プロセッサの数を、前記特定のタスクを割り当てる並列処理プロセッサの数として決定し、
予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値以上の場合に、並列処理プロセッサの数を一つ増加させた予測実行時間と実行時間閾値とを比較し、比較の結果、当該予測実行時間が実行時間閾値以下である場合に、当該予測実行時間の並列処理プロセッサの数を、前記特定のタスクを割り当てる並列処理プロセッサの数として決定し、当該予測実行時間が実行時間閾値を超える場合に、当該予測実行時間から並列処理プロセッサを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較することを特徴とする請求項６に記載の計算機。
【請求項８】
協働して分散並列処理を行う二以上の並列処理プロセッサと、
特定のタスクを割り当てる並列処理プロセッサの数を決定するプロセッサ管理部とを有し、
前記プロセッサ管理部は、
並列処理プロセッサによる分散並列処理の実行時間の上限許容値を実行時間閾値として取得し、
並列処理プロセッサの数を一つ増加させた際の実行時間の短縮幅に対する下限許容値を短縮時間閾値として取得し、
並列処理プロセッサの数を一つずつ増加させながら特定のタスクを分散並列処理により実行する際の予測実行時間を算出し、各々の予測実行時間と実行時間閾値とを比較するとともに、各々の予測実行時間から並列処理プロセッサを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較し、予測実行時間と実行時間閾値との比較結果及び予測実行時間の短縮幅と短縮時間閾値との比較結果に基づき、前記特定のタスクを割り当てる並列処理プロセッサの数を決定することを特徴とする計算機。
【請求項９】
前記プロセッサ管理部は、
予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値未満の場合に、当該予測実行時間の並列処理プロセッサの数を、前記特定のタスクを割り当てる並列処理プロセッサの数として決定し、
予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値以上の場合に、並列処理プロセッサの数を一つ増加させた予測実行時間と実行時間閾値とを比較し、比較の結果、当該予測実行時間が実行時間閾値以下である場合に、当該予測実行時間の並列処理プロセッサの数を、前記特定のタスクを割り当てる並列処理プロセッサの数として決定し、当該予測実行時間が実行時間閾値を超える場合に、当該予測実行時間から並列処理プロセッサを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較することを特徴とする請求項８に記載の計算機。
【請求項１０】
前記プロセッサ管理部は、
前記特定のタスクを、決定した並列処理プロセッサの数で分割するとともに、各並列処理プロセッサの負荷状況を調査し、負荷が少ない並列処理プロセッサから順に、分割したタスクを割り当てることを特徴とする請求項８又は９に記載の計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、イベント入力に対する処理速度が要求され、処理の遅延が容認されないシステムにおけるリアルタイム性及び抗たん性の確保を主目的とした分散並列処理技術に関するものである。
【背景技術】
【０００２】
一般的に、分散処理と冗長処理の両方を要求されるシステムでは、計算リソース有効活用の観点から常用系／待機系の方式はとらず、全ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて分散処理を実施する。
処理性能向上と信頼性向上を同時に実現するための発明として、例えば特開２００２−３４２３００号公報（名称：分散処理システム及び分散処理方法並びに分散処理制御プログラム）（以下、特許文献１という）が開示されている。
【０００３】
特許文献１記載の技術は、冗長化されたコンピュータモジュール資源を利用して、分散処理と冗長処理を組み合わせて実施することで処理性能向上と信頼性向上とを同時に実現する。
具体的には、故障発生時に、重要度の低いタスクから先に停止させて機能／性能を縮退させることで、重要なタスクに関する信頼性や機能／性能を維持可能とし、限られた資源を最も重要な目的に振り分けることができるとしている。
従って、特許文献１に記載の技術は、タスクに重要度の高いものと低いものとがある場合に大きな効果を発揮する。
【０００４】
ところが、処理時間に制限のあるタスクを実行中のＣＰＵが故障した場合、他ＣＰＵに処理を割り振り、再度計算を実施しなければならないため実行時間の制限を確保できない可能性がある。
また、イベント入力による処理であるため計算結果を保証できない可能性も含み、これらを許容できないシステムの計算機としては致命的な問題となる。
【０００５】
上記問題を許容できないシステムの例として戦闘システムの計算機が挙げられるが、当該計算機では射撃システムからの脅威目標入力時等のイベント入力に対するリアルタイム性及び冗長性の確保のため、複数搭載しているＣＰＵを常用系／待機系に２分割しホットスタンバイ方式（常時、常用系及び待機系が動作し、イベント入力に対して常用系及び待機系の両方で計算を実施）の構成としていた。
【０００６】
上記の計算機では、計算機のＣＰＵを常用系／待機系に分割する構成とし、常用系及び待機系では対応するＣＰＵが同一の処理を行う。
任意の常用系ＣＰＵに異常が発生した場合、全てのＣＰＵが常用系から待機系に切り換わる。
このようなシステムではフォールトトレラントの機能を重視しているため、計算機が高負荷となる状況においても半数のＣＰＵは有効を活用することができない。
また、常用系の１ＣＰＵが故障した場合、全ての常用系ＣＰＵが待機系に移行するため、常用系の正常なＣＰＵは計算に使用することができなくなるという課題がある。
【特許文献１】特開２００２−３４２３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１のシステムではＣＰＵを有効に活用できるが故障発生時のリカバリ時間及び信頼性における課題があり、上記の常用系／待機系構成とするシステムではフォールトトレラント機能を重視しているため、半数のＣＰＵを有効に活用できないという課題が存在する。
【０００８】
そこで、本発明は、故障発生時の切換え時間／信頼性を重視しながら、計算機に搭載されるＣＰＵを効果的に利用する計算機構成を提供することを主な目的の一つとする。
【課題を解決するための手段】
【０００９】
本発明に係る計算機は、
常用系プロセッサと、常用系プロセッサの障害発生時に常用系プロセッサを代替する待機系プロセッサとを備える第一の処理部と、
二以上の並列処理プロセッサを備え、二以上の並列処理プロセッサが協働して分散並列処理を行う第二の処理部と、
前記第二の処理部に含まれる二以上の並列処理プロセッサのうち前記第一の処理部に含まれるプロセッサとの通信を伴う処理を実行していたいずれかの並列処理プロセッサに障害が発生した際に、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、前記障害プロセッサ実行処理において前記障害並列処理プロセッサの通信先であった常用系プロセッサ及び待機系プロセッサの少なくともいずれかに前記引継ぎ並列処理プロセッサを通知するプロセッサ管理部とを有することを特徴とする。
【発明の効果】
【００１０】
第一の処理部に含まれるプロセッサとの通信を伴う処理を実行していた並列処理プロセッサに障害が発生した際にも、プロセッサ管理部が、引継ぎ並列処理プロセッサを通信相手であった第一の処理部のプロセッサに通知するので、フォールトトレラント機能を有する第一の処理部とプロセッサ資源の有効活用のために分散並列処理を行う第二の処理部とを並存させる構成が可能となり、プロセッサ資源の有効活用を図りながら、障害発生時の信頼性及びリアルタイムなフォールトトレラント機能を確保することができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、実施の形態１に係る計算機１のプロセッサ構成の概要を示すシステム構成図である。
従来システムとの差を明確にするため、従来システムの構成を図８に示す。
図１において１０１〜１１０は計算機１に搭載されるネットワーク１３０で接続されているＣＰＵである。
ＣＰＵは、逐次実行部１２１、１２２、並列処理部１２３及び並列管理部１２４に分類される。
逐次実行部として動作するＣＰＵは、逐次実行部ＣＰＵ又は逐次実行部プロセッサと表記する。
並列処理部として動作するＣＰＵは、並列処理部ＣＰＵ又は並列処理部プロセッサと表記する。
並列管理部として動作するＣＰＵは、並列管理部ＣＰＵ又は並列管理部プロセッサと表記する。
また、ＣＰＵは、逐次実行部１２１、１２２及び並列管理部１２４については、常用系１２５と待機系１２６にも分類される。
常用系に分類されているＣＰＵは、常用系ＣＰＵ又は常用系プロセッサと表記する。
待機系に分類されているＣＰＵは、待機系ＣＰＵ又は待機系プロセッサと表記する。
【００１２】
逐次実行部１２１、１２２は、常用系プロセッサ１０１、１０２と、常用系プロセッサの障害発生時に常用系プロセッサを代替する待機系プロセッサ１０３、１０４とを備える。逐次実行部１２１、１２２は、第一の処理部の例である。
並列処理部１２３は、二以上の並列処理部プロセッサ（並列処理プロセッサ）１０５〜１０８を備え、二以上の並列処理部プロセッサ１０５〜１０８が協働して分散並列処理を行う。並列処理部１２３は、第二の処理部の例である。
並列管理部１２４は、常用系プロセッサ１０９と、常用系プロセッサの障害発生時に常用系プロセッサを代替する待機系プロセッサ１１０とを備える。並列管理部１２４は、プロセッサ管理部の例である。
また、並列管理部１２４では、並列処理部１２３に含まれる二以上の並列処理部プロセッサ１０５〜１０８のうち逐次実行部１２１、１２２に含まれるプロセッサとの通信を伴う処理を実行していたいずれかの並列処理部プロセッサに障害が発生した際に、常用系プロセッサ１０９又は待機系プロセッサ１１０が、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、障害プロセッサ実行処理において障害並列処理プロセッサの通信先であった逐次実行部１２１、１２２の常用系プロセッサ及び待機系プロセッサの少なくともいずれかに引継ぎ並列処理プロセッサを通知する。
【００１３】
本実施の形態では、障害発生時の信頼性及びリアルタイムフォールトトレラント機能を要求される処理を逐次実行部１２１、１２２によって実行し、その他の処理を並列処理部１２３によって実行する。逐次実行部１２１、１２２では各プロセッサが常用系１２５又は待機系１２６に配置され、常用系及び待機系で対応するプロセッサ（１０１と１０３及び１０２と１０４）において同一の処理を実行させる。逐次実行部プロセッサの常用系故障発生時には待機系プロセッサが常用系に切り換ることでホットスタンバイを実現する。さらに故障したプロセッサが復旧した場合、待機系として動作する。また、並列処理部プロセッサによってタスクを並列処理させ、並列処理部プロセッサの故障発生時には他の並列処理部プロセッサが故障したプロセッサのタスクを実行する。
このような構成により、システム全体の処理性能が求められるシステムにおいて、特定の処理に対する障害発生時の信頼性及びリアルタイムなフォールトトレラント機能を有する計算機１が実現される。
【００１４】
また、図１において、１１１〜１１４は、逐次実行部ＣＰＵ１０１〜１０４に静的に配置され実行されるタスクを示す。
また、１１５〜１１８は、並列処理部ＣＰＵ１０５〜１０８にて動的に割り振られ実行されるタスクを示す。
１１９〜１２０は、並列管理部ＣＰＵ１０９、１１０にて処理される並列処理部１２３を管理するためのタスク（並列処理部の稼動状況監視、負荷状況監視、並列処理部ＣＰＵ数の計算及び並列処理部タスク管理）及び計算機内の通信を管理するためのタスクを示す。
【００１５】
計算機１に搭載されるＣＰＵ数及び逐次実行部／並列処理部／並列管理部の構成数は図１の通りでなくて良いが、以下に示す構成とする必要がある。
逐次実行部１２１、１２２の常用系ＣＰＵ数と待機系ＣＰＵ数は同じとし、１以上とする。
並列処理部１２３のＣＰＵ数は、２以上とする。
並列管理部１２４のＣＰＵ数は、１以上でかつ常用系／待機系で同数とし１ＣＰＵを推奨とする。また、並列管理部１２４は、常用系／待機系という冗長構成になっていることが望ましいが、これは必須ではなく、並列管理部１２４が単一のＣＰＵで構成されていてもよい。
図１における常用系及び待機系は電源系統を別に持っている。常用系、待機系で独立した電源としなくても良いが、図４に示す電源系統異常時の冗長性が失われる。図４については、後に詳述する。
【００１６】
図１に示す構成において、ＣＰＵ故障時の切換え時間及び計算結果の保証を要求されるタスクを逐次実行部１２１、１２２で実行する。
逐次実行部１２１、１２２では静的なタスク配置を行い常用系／待機系の対応するＣＰＵで同じ処理を常時実施させることで、障害時の高速な切換えを実現する。
逐次実行部１２１、１２２に入力されるイベントは全て常用系及び待機系両方に入力し処理する。
逐次実行部ＣＰＵにおける静的なタスク割り当ては、障害時のＣＰＵ切換えによる通信相手の変更を考慮し、可能な限り他の逐次実行部ＣＰＵと通信しないようにすることが望ましい。
【００１７】
図２、図３は、図１に示す構成のシステムにおけるＣＰＵ障害時のＣＰＵ及び通信の切換え動作例である。
図２は、逐次実行部と並列処理部で通信を行っていない場合のＣＰＵ切り換え動作例、図３は逐次実行部と並列処理部で通信中におけるＣＰＵ切り換え動作例を示す。
図１と同様に、１０１〜１０４は逐次実行部ＣＰＵ、１０５〜１０８は並列処理部ＣＰＵ、１０９及び１１０は並列管理部ＣＰＵを示す。
また、２１１、２１２及び３１１、３１２は障害発生前におけるＣＰＵ間通信例、２１３、２１４及び３１３、３１４は障害発生後のＣＰＵ間通信例である。
【００１８】
図２において、逐次実行部ＣＰＵ１０１が故障した場合、対応する逐次実行部ＣＰＵ１０３の処理結果をシステムとして使用する。このときＣＰＵ１０２は常用系として処理を続行し、ＣＰＵ１０２の通信相手はＣＰＵ１０１からＣＰＵ１０３に変更される。
ＣＰＵ１０４はＣＰＵ１０２の待機リソースである。ＣＰＵ１０１が故障から復旧した場合、ＣＰＵ１０３の処理結果を使用するが、ＣＰＵ１０３が故障した場合には再度ＣＰＵ１０１の計算結果を利用する。
【００１９】
図２において、並列処理部１０８が故障した場合、並列処理部１０９は正常動作しているＣＰＵ１０５〜１０７で運用を継続する。
つまり、ＣＰＵ１０８が故障した時、並列管理部ＣＰＵ１０９が故障を検知し、ＣＰＵ１０８に割り振っているタスクをＣＰＵ１０５〜１０７のいずれかのＣＰＵに割り振る。
図２の例では、並列管理部ＣＰＵ１０９は、ＣＰＵ１０５をＣＰＵ１０８の処理の割り振り先として指定している。故障が発生したＣＰＵ１０８が障害並列処理プロセッサの例であり、ＣＰＵ１０８の処理を割り振られたＣＰＵ１０５が引継ぎ並列処理プロセッサの例である。
そして、ＣＰＵ１０８と故障前に通信していたＣＰＵ１０７は、並列管理部ＣＰＵ１０９の指示によりＣＰＵ１０８のタスクを割り当てられたＣＰＵ１０５と通信を再開する。
【００２０】
図３は、逐次実行部と並列処理部にまたがった通信状態でＣＰＵ故障が発生した場合における動作例である。
逐次実行部ＣＰＵ１０１と並列処理部ＣＰＵ１０７が通信３１１を行っている状態で逐次実行部ＣＰＵ１０１が故障した場合、ＣＰＵ１０７の通信相手は並列管理部ＣＰＵ１０９の指示によりＣＰＵ１０３に切り換わり３１３の通信を行う。
同様に、逐次実行部ＣＰＵ１０２と並列処理部ＣＰＵ１０８が通信３１２を行っている状態で並列処理部ＣＰＵ１０８が故障した場合、ＣＰＵ１０８のタスクは並列管理部ＣＰＵ１０９により並列処理部ＣＰＵ１０５〜１０７のいずれかに割り振られ、ＣＰＵ１０２の通信相手は並列管理部ＣＰＵ１０９の指示により、ＣＰＵ１０８のタスクを割り当てられたＣＰＵ１０５に切り換り、３１４の通信を行う。また、この場合、ＣＰＵ１０２の待機系として動作しているＣＰＵ１０４にも、ＣＰＵ１０８のタスクが割り当てられたＣＰＵ１０５が通知される。
図３においても、故障が発生したＣＰＵ１０８が障害並列処理プロセッサの例であり、ＣＰＵ１０８の処理を割り振られたＣＰＵ１０５が引継ぎ並列処理プロセッサの例である。
【００２１】
このように、本実施の形態では、並列管理部ＣＰＵ１０９、１１０は、並列処理部ＣＰＵ１０５〜１０８のうち逐次実行部ＣＰＵ１０１〜１０４との通信を伴う処理を実行していたいずれかの並列処理部ＣＰＵに障害が発生した際に、障害が発生した並列処理部ＣＰＵが実行中であった処理を引き継いで実行する並列処理部ＣＰＵを指定し、障害が発生した並列処理部ＣＰＵの通信先であった逐次実行部ＣＰＵの常用系ＣＰＵ及び待機系ＣＰＵの双方（常用系ＣＰＵ又は待機系ＣＰＵの一方に障害が発生している場合は、他方のみ）に障害が発生した並列処理部ＣＰＵの処理を引継ぐ並列処理部ＣＰＵを通知する。
【００２２】
次に、図９及び図１０を参照して、本実施の形態に係る計算機１の動作例を説明する。
【００２３】
図９及び図１０は、実施の形態１においてＣＰＵ異常が発生した場合のタスク及び通信切換えの動作を示すフローチャートである。
異常発生ＣＰＵ（以下ＣＰＵ（１）と呼ぶ）が逐次実行部ＣＰＵ、並列処理部ＣＰＵまたは並列管理部ＣＰＵであるかによって動作が異なる（ステップ９０１）。
【００２４】
ＣＰＵ（１）が逐次実行部ＣＰＵである場合、待機系ＣＰＵが稼動中であれば（ステップ９０２でＹＥＳ）、待機系ＣＰＵが常用系ＣＰＵに切り換る（ステップ９０３）。このとき、逐次実行部ＣＰＵに対する通信は常用系及び待機系ＣＰＵ両方に対して実施することとしており、また逐次実行部ＣＰＵからの送信では待機系ＣＰＵはメッセージを送信しないが、待機系ＣＰＵは通信相手を知っていることから通信切換処理は発生しない。つまり、逐次実行部ＣＰＵに故障が発生した場合は、待機系ＣＰＵが稼動中であれば、並列管理部ＣＰＵが介在することなく、待機系ＣＰＵが常用系ＣＰＵの処理を引き継ぐ。また、逐次実行部ＣＰＵの待機系ＣＰＵは、通信相手である並列処理部ＣＰＵを知っているため、待機系ＣＰＵは、故障した常用系ＣＰＵと通信中であった並列処理部ＣＰＵに対してメッセージを送信することができ、並列管理部ＣＰＵが並列処理部ＣＰＵに通信相手を通知する必要がない。
一方、ステップ９０２において待機系ＣＰＵが停止している場合、常用系ＣＰＵの処理を切換えるＣＰＵが存在しないため、当該ＣＰＵの機能がなくなった状態での縮退運転となる。
【００２５】
ステップ９０１において、ＣＰＵ（１）が並列処理部ＣＰＵである場合、以下のフローを全て並列管理部ＣＰＵが処理する。
ステップ９０４にて、ＣＰＵ（１）のタスクを割り当てるＣＰＵ（以下ＣＰＵ（２）と呼ぶ）を並列管理部ＣＰＵが決定する。
次に、ステップ９０５で、ＣＰＵ（１）のタスクが他ＣＰＵとの通信処理を含むかどうか並列管理部ＣＰＵが判断する。
当該タスクが通信を含まない場合（ステップ９０５でＮＯ）、ステップ９０４で選定したＣＰＵ（２）にＣＰＵ（１）のタスクを割り当てる（ステップ９０６）。
一方、ＣＰＵ（１）のタスクに通信が含まれる場合（ステップ９０５でＹＥＳ）、通信相手ＣＰＵ（以下ＣＰＵ（３）と呼ぶ）が逐次実行部ＣＰＵ、並列処理部ＣＰＵまたは並列管理部ＣＰＵであるかによって処理が異なる（ステップ９０７）。
このとき、当該タスクに含まれる通信が逐次実行部ＣＰＵ、並列処理部ＣＰＵまたは並列管理部ＣＰＵの組み合わせとなる場合、タスク切換え処理を除く全ての通信相手毎のフロー（ステップ９０８〜９１３）を実施した後、タスク切換え処理を実施する（ステップ９０６または９２１）。
なお、並列管理部ＣＰＵは、並列処理部ＣＰＵへのタスク割り当て時に、割り当てしたタスクが通信を含むかどうかを判定し、通信を含む場合は通信相手属性を記録する。各タスクが通信を含むかどうか及び通信相手の属性は、並列管理部ＣＰＵが、確認できるように事前にパラメータを設定する。
このため、並列管理部ＣＰＵは、ステップ９０５においてＣＰＵ（１）のタスクに通信処理が含まれるか否かを判断することができ、ステップ９０７において通信相手ＣＰＵ（３）の属性を判断することができる。
【００２６】
ＣＰＵ（３）が並列処理部ＣＰＵである場合、ＣＰＵ（３）に通信相手の変更（ＣＰＵ（１）からＣＰＵ（２））を並列管理部ＣＰＵが通知し（ステップ９０８）、ＣＰＵ（２）にＣＰＵ（１）のタスクを割り当てる（ステップ９０６）。
ＣＰＵ（３）が逐次実行部ＣＰＵである場合、並列管理部ＣＰＵは、ＣＰＵ（３）に該当する常用系ＣＰＵ及び待機系ＣＰＵが稼動中であるか確認する（ステップ９０９）。
常用系及び待機系とも稼動中である場合（ステップ９０９でＹＥＳ）、ＣＰＵ（３）に該当する常用系ＣＰＵ及び待機系ＣＰＵの両方に通信相手の変更（ＣＰＵ（１）からＣＰＵ（２））を通知し（ステップ９１０）、ＣＰＵ（２）にＣＰＵ（１）のタスクを割り当てる（ステップ９０６）。
ＣＰＵ（３）の常用系ＣＰＵ又は待機系ＣＰＵの一方が停止している場合（ステップ９０９でＮＯ、ステップ９１１でＹＥＳ）、稼動中のＣＰＵ（３）に通信相手の変更（ＣＰＵ（１）からＣＰＵ（２））を通知し（ステップ９１２）、ＣＰＵ（２）にＣＰＵ（１）のタスクを割り当てる（ステップ９０６）。
ＣＰＵ（３）が常用系／待機系ともに停止している場合（ステップ９０９でＮＯ、ステップ９１１でＮＯ）、ＣＰＵ（３）との通信に同期通信を含むかどうか確認し（ステップ９１３）、同期通信を含まない場合、ＣＰＵ（２）にＣＰＵ（１）のタスクを割り当て（ステップ９０６）、同期通信を含む場合、ＣＰＵ（１）のタスクを破棄する（ステップ９１４）。
ＣＰＵ（３）との通信に同期通信が含まれる場合には、ＣＰＵ（３）が常用系／待機系ともに停止している状況で、ＣＰＵ（２）にタスクを割り振ると、ＣＰＵ（２）は稼動を停止しているＣＰＵ（３）からのメッセージを待ち続けることになり、ＣＰＵ（２）がデッドロックの状態に陥ってしまうことから、これを防止するため、同期通信が含まれる場合には、ＣＰＵ（１）のタスクを破棄することとしている。
ＣＰＵ（３）が並列管理部ＣＰＵである場合、並列管理部ＣＰＵは並列処理部ＣＰＵの通信を管制しているため、通信切換え処理は不要であり、ステップ９２１のタスク切換え処理を行う。
【００２７】
また、ステップ９０１においてＣＰＵ（１）が並列管理部ＣＰＵである場合、並列管理部の待機系ＣＰＵが稼動中であれば（ステップ９１４でＹＥＳ）、待機系ＣＰＵが常用系ＣＰＵに切り換り（ステップ９１５）、並列管理部ＣＰＵが並列処理部ＣＰＵの全てに対して並列管理部ＣＰＵの切換えを通知する（ステップ９１６）。
他方、ステップ９１４において、並列管理部ＣＰＵが常用系及び待機系ともに停止状態である場合、並列管理部では稼動状態のＣＰＵは存在せず、並列処理部ＣＰＵは並列管理部ＣＰＵと通信しない限り、タスク処理を続行する（ステップ９１７）。
並列処理部ＣＰＵが並列管理部ＣＰＵとの通信が必要になった場合（ステップ９１８でＹＥＳ）、並列処理部ＣＰＵの一方が再起動するまで待機状態となる（ステップ９１９）。
ステップ９１９において並列管理部ＣＰＵの一方が再起動した場合、再起動した並列管理部ＣＰＵが、並列処理部ＣＰＵの全てに再起動通知を実施（ステップ９１６）し、処理を継続する。
【００２８】
図４は、図１に示す構成のシステムにおける電源系異常時のＣＰＵ切換え動作例を示す。
ＣＰＵ１０１、１０２、１０５、１０６、１０９で構成される常用系４１３とＣＰＵ１０３、１０４、１０７、１０８、１１０で構成される待機系４１４は、独立した電源系である電源１（４１１）及び電源２（４１２）を持つ。
なお、図４の常用系４１３、待機系４１４の区別は、電源系統における区別であり、図１の常用系１２５及び待機系１２６とは必ずしも一致していない。
具体的には、図１では、並列処理部ＣＰＵであるＣＰＵ１０５〜１０８は、常用系／待機系に区別されていないが、図４では電源系統として、ＣＰＵ１０５、１０６は常用系に区別され、ＣＰＵ１０７、１０８は待機系に区別されている。
常用系電源である電源１（４１１）に異常が発生した場合、常用系ＣＰＵ１０１、１０２、１０５、１０６、１０９の処理が待機系ＣＰＵ１０３、１０４、１０７、１０８、１１０での処理に切り換る。
つまり、常用系電源である電源１（４１１）に障害が発生した際に、逐次実行部の常用系ＣＰＵ１０１、１０２が実行していた処理を逐次実行部の待機系ＣＰＵ１０３、１０４が引き継いで実行し、並列処理部ＣＰＵ１０５、１０６が実行していた処理を並列処理部ＣＰＵ１０７、１０８が引き継いで実行し、並列管理部の常用系ＣＰＵ１０９が実行していた処理を並列管理部の待機系ＣＰＵ１１０が引き継いで実行する。
例えば、電源１の障害発生前には周期処理Ｃを行っていたＣＰＵ１０７及びＣＰＵ１０８は、電源１の障害発生によりＣＰＵ１０５及びＣＰＵ１０６が行っていた周期処理Ａ及び周期処理Ｂを引き継ぎ、電源１の障害発生後は、周期処理Ａ〜Ｃを行うこととなる。
なお、常用系４１３から待機系４１４への切換は、図９に示す処理による。具体的には、図９のステップ９０１のＣＰＵ（１）の対象を逐次実行部ＣＰＵ、並列処理部ＣＰＵ、並列管理部ＣＰＵの全てとし、逐次実行部ＣＰＵ１０１、１０２については、ステップ９０２移行の処理を行い、並列処理部ＣＰＵ１０４、１０６については、ステップ９０４移行の処理を行い、並列管理部ＣＰＵ１０９については、ステップ９１４の処理を行うことにより、常用系４１３から待機系４１４への切換が行われる。
【００２９】
次に、並列管理部による並列処理部へのタスク割り当ての動作例を示す。
並列処理部へのタスク割り当ては分散／並列処理分野における一般的な方法で良いが、ここではタスクの実行時間予測を用いて並列処理させるＣＰＵを計算し、負荷の低いＣＰＵに割り当てる方式とする。
【００３０】
図５は、ユーザの要求を満たす範囲で可能な限り少ないＣＰＵでタスクを実行する方式である。
なお、以下では、障害発生前の並列管理部ＣＰＵによる並列処理部ＣＰＵのタスク割り当てを前提として説明するが、図５に示す方式を障害発生後の並列処理部ＣＰＵのタスク割り当てに適用してもよい。
【００３１】
先ず、ユーザにて実行時間閾値Ｘ及び短縮時間閾値Ｙを定義する（Ｘ及びＹは０より大きい値とする）。
実行時間閾値Ｘは、ひとつの処理に許容できる実行時間を入力し、Ｘを下回る実行時間で処理可能な最少のＣＰＵで実行させる。つまり、実行時間閾値Ｘは、並列処理部プロセッサによる分散並列処理の実行時間の上限許容値を示す。
短縮時間閾値Ｙは、ＣＰＵ使用数を１増加させた場合に要求する実行時間の短縮時間であり、Ｙを満たさない場合、Ｘを下回る処理時間でなくともＣＰＵ数を増加させずに処理させる。つまり、短縮時間閾値Ｙは、並列処理部プロセッサの数を一つ増加させた際の実行時間の短縮幅に対する下限許容値を示す。
【００３２】
並列管理部ＣＰＵは、計算機１に搭載されるＣＰＵ数をＮとし、タスクの実行時間Ｐ（１）〜Ｐ（Ｎ）を予測する（ステップ５０１）。Ｐ（１）は、１つのＣＰＵによりタスクを実行した際の予測実行時間であり、Ｐ（Ｎ）は、Ｎ個のＣＰＵによる分散並列処理によりタスクを実行した際の予測実行時間である。
並列管理部ＣＰＵは、ＣＰＵ数１の時の予測実行時間（Ｐ（１））がＸ以下であるか判定（ステップ５０２、５０３）し、条件を満たす場合（ステップ５０３でＹＥＳ）は並列処理部ＣＰＵにおいて最も負荷率が低いＣＰＵにタスクを割り当てる。
ステップ５０３で条件を満たさなかった場合（ステップ５０３でＮＯ）、並列管理部ＣＰＵは、ＣＰＵ使用数を１増加させた場合にユーザが定義した実行時間短縮要求（短縮時間閾値Ｙ）を満足するか判定し（ステップ５０４）、条件を満足する場合（ステップ５０４でＹＥＳ）はＣＰＵを１増加した場合（ステップ５０５）におけるステップ５０３の判定を実施し、最大ＣＰＵ数となるまで繰り返す。
ステップ５０４の条件を満足しない場合（ステップ５０４でＮＯ）、又は最大ＣＰＵ数における割り振り判定が合格した場合（ステップ５０６でＹＥＳ）、並列管理部ＣＰＵは、並列処理部の負荷状況を参照し（ステップ５０７）、タスクをｎ個のＣＰＵで実行するために分割する（ステップ５０８）。
そして、並列管理部ＣＰＵは、分割したタスクを負荷率の低いＣＰＵから順に割り当てる（ステップ５０９）。ただし最大ＣＰＵ数で実行する場合には負荷状況の参照は省き全ＣＰＵに分割したタスクを割り当てる。
【００３３】
図５に示す処理の具体例を図１１に示す。
図１１（Ａ）において、ＣＰＵ数ｎ＝１の場合、予測実行時間Ｐ（１）は、実行時間閾値Ｘよりも大きく、また、Ｐ（２）−Ｐ（１）における短縮幅は、短縮時間閾値Ｙよりも大きい。
このため、並列管理部ＣＰＵは、ＣＰＵ数を一つ増加させて、ＣＰＵ数ｎ＝２とする。この場合、予測実行時間Ｐ（２）は、実行時間閾値Ｘよりも大きく、また、Ｐ（３）−Ｐ（２）における短縮幅は、短縮時間閾値Ｙよりも大きい。
このため、並列管理部ＣＰＵは、ＣＰＵ数を一つ増加させて、ＣＰＵ数ｎ＝３とする。この場合、予測実行時間Ｐ（３）は、実行時間閾値Ｘよりも小さいので、並列管理部ＣＰＵは、３つのＣＰＵで当該タスクを実行することを決定する。
【００３４】
図１１（Ｂ）では、ＣＰＵ数ｎ＝１の場合、予測実行時間Ｐ（１）は、実行時間閾値Ｘよりも大きく、また、Ｐ（２）−Ｐ（１）における短縮幅は、短縮時間閾値Ｙよりも大きい。
このため、並列管理部ＣＰＵは、ＣＰＵ数を一つ増加させて、ＣＰＵ数ｎ＝２とする。この場合、予測実行時間Ｐ（２）は、実行時間閾値Ｘよりも大きいが、Ｐ（３）−Ｐ（２）における短縮幅が、短縮時間閾値Ｙよりも小さいので、並列管理部ＣＰＵは、２つのＣＰＵで当該タスクを実行することを決定する。
【００３５】
このように、並列管理部ＣＰＵは、並列処理部ＣＰＵによる分散並列処理の実行時間の上限許容値を実行時間閾値としてユーザから取得し、並列処理部ＣＰＵの数を一つ増加させた際の実行時間の短縮幅に対する下限許容値を短縮時間閾値としてユーザから取得し、並列処理部ＣＰＵの数を一つずつ増加させながら特定のタスクを分散並列処理により実行する際の予測実行時間を算出し、各々の予測実行時間と実行時間閾値とを比較するとともに、各々の予測実行時間から並列処理部ＣＰＵを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較し、予測実行時間と実行時間閾値との比較結果及び予測実行時間の短縮幅と短縮時間閾値との比較結果に基づき、特定のタスクを割り当てる並列処理部ＣＰＵの数を決定する。
具体的には、並列管理部ＣＰＵは、予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値未満の場合に、当該予測実行時間の並列処理部ＣＰＵの数を、特定のタスクを割り当てる並列処理部ＣＰＵの数として決定し、予測実行時間の短縮幅と短縮時間閾値とを比較した結果、短縮幅が短縮時間閾値以上の場合に、並列処理部ＣＰＵの数を一つ増加させた予測実行時間と実行時間閾値とを比較し、比較の結果、当該予測実行時間が実行時間閾値以下である場合に、当該予測実行時間の並列処理部ＣＰＵの数を、特定のタスクを割り当てる並列処理部ＣＰＵの数として決定し、当該予測実行時間が実行時間閾値を超える場合に、当該予測実行時間から並列処理部ＣＰＵを一つ増加させた際の予測実行時間までの短縮幅と短縮時間閾値とを比較する。
【００３６】
このように、実施の形態１に示す計算機構成とすることで、特定タスクの実行時間の保証及び計算機全体の抗たん性の確保を実現し、かつ障害発生時における処理性能の低下を最低限に抑えることを可能とする。
【００３７】
本実施の形態では、複数のプロセッサから構成され、処理を分散処理する分散処理システムであって、各々のプロセッサが選択的に常用系及び待機系として稼動し、前記システムに入力される処理の一部のタスクを並列処理するための手段と、前記分散並列処理に故障許容処理を併せて行わせる故障許容処理手段を含む分散並列処理装置について説明した。
【００３８】
また、本実施の形態では、故障許容手段の一部は、分散並列処理を実施しない管理プロセッサに設けられ、分散並列処理及び故障許容手段を併せて実行するプロセッサと、並列分散処理を実行するプロセッサと、故障許容処理を実行するプロセッサから構成される分散並列処理装置について説明した。
【００３９】
また、本実施の形態では、物理的に電源系統を複数持ち、それぞれの電源系統にプロセッサを配置する手段と、選択的に電源系統を選択し切り換える手段と、電源系統の異常を検出する手段と、電源系統異常時に別系統の電源系へ切り換える手段を含む分散並列処理装置について説明した。
【００４０】
実施の形態２．
図６は、実施の形態２に係る計算機１のプロセッサ構成の概要を示すシステム構成図である。
逐次実行部ＣＰＵ６０１〜６０４、並列処理部ＣＰＵ６０５〜６０８、計算機常用系６１３、待機系６１４の構成は、図１に示す実施の形態１と同一である。
実施の形態２では、図６に示す並列処理部のタスク６０９〜６１２が図１における並列処理部タスク１１５〜１１８と異なり、図１に示す並列管理部１２４が存在しない。
つまり、図１に示す並列管理部ＣＰＵのタスク１１９〜１２０の一部又は全てを図６の並列処理部タスク６０９〜６１２で処理する。
図１の並列管理部の処理全てを図６の並列処理部で処理しても良いが、ここでは処理負荷を考慮して並列処理部の負荷状況の監視及び図５に示す並列処理部ＣＰＵ数計算は実施しないこととする。
【００４１】
図６に示す逐次実行部ＣＰＵ及び並列処理部ＣＰＵにおいて障害が発生した場合の動作は、図２及び図３に示す実施の形態１と同様であるが、逐次実行部と並列処理部にまたがる通信の管制については、並列処理部ＣＰＵが実施する。
【００４２】
このように、本実施の形態では、並列処理部（第二の処理部）に含まれる並列処理部プロセッサが、実施の形態１で示した並列管理部（プロセッサ管理部）として動作し、実施の形態１で示した並列管理部と同様に、逐次実行部プロセッサとの通信を伴う処理を実行していたいずれかの並列処理部プロセッサに障害が発生した際に、障害が発生した障害並列処理プロセッサが実行中であった障害プロセッサ実行処理を引き継いで実行する引継ぎ並列処理プロセッサを指定し、障害プロセッサ実行処理において障害並列処理プロセッサの通信先であった常用系プロセッサ及び待機系プロセッサの少なくともいずれかに引継ぎ並列処理プロセッサを通知する。
【００４３】
並列処理部ＣＰＵにおいてＣＰＵ障害が発生した場合のタスク割り振りについては、特許文献１に示される方式等、一般的に公開されている方式で構わない。
ここでは図７に示すように、障害が発生したＣＰＵのタスクを割り当てるＣＰＵは、ＣＰＵ番号順に順次配置することとする。
図７の７０１〜７０８は並列処理部ＣＰＵであり、説明を容易にするため図２と構成を変更している。
並列処理部において１回目のＣＰＵ故障７０９が発生した場合、ＣＰＵ番号＃２のＣＰＵ７０１にＣＰＵ故障７０９が発生したＣＰＵ７０５のタスクを割り当てる。
次に、ＣＰＵ障害７１０が発生した場合は、ＣＰＵ番号＃３のＣＰＵ７０２にＣＰＵ障害７１０が発生したＣＰＵ７０３のタスクを割り当てる。
さらに、ＣＰＵ障害７１１が発生した場合には、ＣＰＵ番号＃４であるＣＰＵ７０３は故障しているためＣＰＵ番号＃５のＣＰＵ７０４にＣＰＵ障害７１１が発生したＣＰＵ７０７のタスクを割り振る。
【００４４】
図７の方式の場合、各ＣＰＵが正常動作ＣＰＵ数（又は障害発生ＣＰＵ数）及び正常動作ＣＰＵ番号（又は障害発生ＣＰＵ番号）を認識できるよう、各ＣＰＵは自分の動作状況を定期的に他ＣＰＵに報告する。また各ＣＰＵで同一の並列タスク管理情報を共有し、かつ各ＣＰＵが全ての処理を実行することができるようにプログラム配置することで、障害発生ＣＰＵのタスクを別ＣＰＵが代行することが可能となる。
【００４５】
このように、実施の形態２（図６）に示す計算機構成とすることで、特定タスクの実行時間の保証及び計算機全体の抗たん性の確保を実現し、かつ障害発生時における処理性能の低下を最低限に抑えることを可能とする。
また、実施の形態１（図１）に示す構成に比較してＣＰＵ数を２以上減らすことが可能である。
【００４６】
以上、本実施の形態では、故障許容手段は、プロセッサの各々に設けられ、任意のプロセッサが故障した場合の常用系及び待機系の切り換え手段と、並列処理を実行しているプロセッサが故障した場合の他プロセッサへのタスク割り振り手段と、各々のプロセッサが分散並列処理と併せて、前記故障許容手段を処理させる手段を含む分散並列処理装置について説明した。
【００４７】
最後に、実施の形態１、２に示した計算機１のハードウェア構成例について説明する。
図１２は、実施の形態１、２に示す計算機１のハードウェア資源の一例を示す図である。
なお、図１２の構成は、あくまでも計算機１のハードウェア構成の一例を示すものであり、計算機１のハードウェア構成は図１２に記載の構成に限らず、他の構成であってもよい。
【００４８】
計算機１は、図１、図６等に示したように、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４９】
通信ボード９１５は、例えば、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００５０】
上記プログラム群９２３には、実施の形態１、２の説明において「逐次実行部」、「並列処理部」、「並列管理部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００５１】
ファイル群９２４には、実施の形態１、２の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の算出」、「〜の割り当て」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１、２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５２】
また、実施の形態１、２の説明において「〜部」の動作として説明しているものは、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
【００５３】
このように、実施の形態１、２に示す計算機１は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備え、所定の処理をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００５４】
【図１】実施の形態１における計算機の基本的な構成を示すブロック図である。
【図２】実施の形態１における計算機の障害発生時のプロセッサ切り換え動作の１例を示す図である。
【図３】実施の形態１における計算機の障害発生時のプロセッサ間通信の切り換え動作の１例を示す図である。
【図４】実施の形態１における計算機の電源系統異常時の切り換え動作の１例を示す図である。
【図５】実施の形態１における計算機の並列実行タスクのプロセッサへの割り振り動作を示すフローチャートである。
【図６】実施の形態２における計算機の基本的な構成を示すブロック図である。
【図７】実施の形態２における計算機の障害発生時のプロセッサ切り換え動作の１例を示す図である。
【図８】従来におけるフォールトトレラント機能を重視した分散システムの構成を示すブロック図である。
【図９】実施の形態１における計算機の障害発生時の動作例を示すフローチャート図である。
【図１０】実施の形態１における計算機の障害発生時の動作例を示すフローチャート図である。
【図１１】実施の形態１における計算機の並列実行タスクのプロセッサへの割り振りの具体例を示す図である。
【図１２】実施の形態１、２における計算機のハードウェア構成例を示す図である。
【符号の説明】
【００５５】
１  計算機、１２１  逐次実行部、１２２  逐次実行部、１２３  並列処理部、１２４  並列管理部、１２５  常用系、１２６  待機系、４１３  常用系、４１４  待機系、６１３  常用系、６１４  待機系。
【図１】
2009003537.tif 000003
【図２】
2009003537.tif 000004
【図３】
2009003537.tif 000005
【図４】
2009003537.tif 000006
【図５】
2009003537.tif 000007
【図６】
2009003537.tif 000008
【図７】
2009003537.tif 000009
【図８】
2009003537.tif 000010
【図９】
2009003537.tif 000011
【図１０】
2009003537.tif 000012
【図１１】
2009003537.tif 000013
【図１２】
2009003537.tif 000014