(57)【要約】【課題】  マルチノードの同期を実現する。【解決手段】  本発明の情報処理装置は、所定の時間毎にＯＳに所定の処理を開始させる割り込み処理手段と、情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生する処理制御手段と、処理制御手段からの同期の成立の通知を基に、割り込み処理手段における、ＯＳに所定の処理を開始させるまでの時間を初期化する割り込み同期手段とを含む。【選択図】  図３
2016133930.tif 000002
【特許請求の範囲】
【請求項１】
所定の時間毎にＯＳに所定の処理を開始させる割り込み処理手段と、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生する処理制御手段と、
前記処理制御手段からの同期の成立の通知を基に、前記割り込み処理手段における、ＯＳに所定の処理を開始させるまでの時間を初期化する割り込み同期手段と
を含む情報処理装置。
【請求項２】
前記割り込み処理手段が、
初期値から値を減算するタイマカウンタと、
前記タイマカウンタに初期値を設定し、所定の周期で前記タイマカウンタの値を減算させ、前記タイマカウンタの値が０となった場合に、割り込みを発生するタイマ手段と、
前記タイマ手段からの割り込みを基に前記ＯＳに所定の処理を開始させるタイマ処理手段と
を含む請求項１に記載の情報処理装置。
【請求項３】
前記処理制御手段が、
前記マルチノードプログラム処理手段と他の情報処理装置のマルチノードプログラム処理手段との通信を仲介する
請求項１及び請求項２に記載の情報処理装置。
【請求項４】
請求項１ないし３に記載の複数の情報処理装置と、
前記複数の情報処理装置の前記処理制御手段の通信を仲介するインターコネクトスイッチと
を含む情報処理システム。
【請求項５】
前記インターコネクトスイッチが、
前記同期カウンタ
を含む請求項４に記載の情報処理装置。
【請求項６】
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する
情報処理方法。
【請求項７】
複数の情報処理装置とインターコネクトスイッチを含む情報処理システムにおいて、
前記情報処理装置が、
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化し、
前記インターコネクトスイッチが、
前記複数の情報処理装置の通信を仲介する
情報処理方法。
【請求項８】
所定の時間毎にＯＳに所定の処理を開始させる処理と
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生する処理と、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する処理と
をコンピュータに実行させるプログラム。
【請求項９】
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する
情報処理方法を情報処理装置に実行させるプログラムを含むコンピュータで読み取り可能な不揮発性記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理に関し、特に、処理を同期する情報処理装置、情報処理システム、及び、情報処理方法に関する。
【背景技術】
【０００２】
複数の情報処理装置（例えば、計算ノード）を含む情報処理システム（例えば、マルチノードシステム）において、情報処理装置（ノード）間の処理の同期が必要となる場合がある。
【０００３】
同期に関連する技術として、複数のＣＰＵ（Central Processing Unit）を含むシステムにおいて、各ＣＰＵに発生する割り込み処理を同期させる技術が存在する（例えば、特許文献１を参照）。
【０００４】
また、同期に関連する技術として、各装置を接続するインターコネクトから各装置に一斉に発行される同期メッセージを用いて、各装置で動作しているＯＳ（Operating System）の処理を同期させる技術が、存在する（例えば、特許文献２を参照）。
【０００５】
また、ＯＳの同期に関連する技術として、バリア同期を用いる技術がある（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２０９９３３号公報
【特許文献２】特開２０１０−１０８４０７号公報
【特許文献３】特開平１０−２６９１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載の技術は、全ＣＰＵが単一の時刻を参照できることを前提としている。そのため、特許文献１に記載の技術は、マルチノードシステムにおいて、全ノードから参照可能な単一の時刻を実現するための専用のハードウェアが必要となる問題点があった。
【０００８】
また、特許文献２に記載の技術は、インターコネクトに同期メッセージの発行機能を設けることが必要である。あるいは、特許文献２に記載の技術は、インターコネクトに、同期メッセージを発行する機能を持ったソフトウェア及びハードウェアを接続しなければならない。また、特許文献２に記載の技術は、各ノードが、アプリケーション処理実行中に、インターコネクトからの同期メッセージの受信処理が必要となる。この受信処理を実現するために、特許文献２に記載の技術のノードは、インターコネクトからの受信を処理するための割り込みを発生させる機能が必要となる。このように、特許文献２に記載の技術は、追加のハードウェア及びソフトウェアが必要となる問題点があった。
【０００９】
また、特許文献３に記載の技術は、タイマ割り込み処理のために、ＯＳにＯＳ間でのバリア同期を実現するための機能が必要である。つまり、特許文献３に記載の技術は、ＯＳでの追加の処理が必要であるという問題点があった。
【００１０】
本発明の目的は、上記問題点を解決し、同期のための上記のような専用のハードウェア及び専用のソフトウェアの追加を必要としないで、マルチノードの同期を実現する情報処理装置、情報処理システム、及び、情報処理方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一形態における情報処理装置は、所定の時間毎にＯＳに所定の処理を開始させる割り込み処理手段と、情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生する処理制御手段と、処理制御手段からの同期の成立の通知を基に、割り込み処理手段における、ＯＳに所定の処理を開始させるまでの時間を初期化する割り込み同期手段とを含む。
【００１２】
本発明の一形態における情報処理システムは、複数の上記情報処理装置と、複数の情報処理装置の処理制御手段の通信を仲介するインターコネクトスイッチとを含む。
【００１３】
本発明の一形態における情報処理方法は、所定の時間毎にＯＳに所定の処理を開始させ、情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生し、同期カウンタにおける同期の成立の通知を基に、ＯＳに所定の処理を開始させるまでの時間を初期化する。
本発明の一形態における情報処理方法は、複数の情報処理装置とインターコネクトスイッチを含む情報処理システムにおいて、情報処理装置が、所定の時間毎にＯＳに所定の処理を開始させ、情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生し、同期カウンタにおける同期の成立の通知を基に、ＯＳに所定の処理を開始させるまでの時間を初期化し、インターコネクトスイッチが、複数の情報処理装置の通信を仲介する。
本発明の一形態におけるプログラムは、所定の時間毎にＯＳに所定の処理を開始させる処理と情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生する処理と、同期カウンタにおける同期の成立の通知を基に、ＯＳに所定の処理を開始させるまでの時間を初期化する処理とをコンピュータに実行させる。
本発明の一形態におけるコンピュータで読み取り可能な不揮発性記憶媒体は、所定の時間毎にＯＳに所定の処理を開始させ、情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、同期の成立時に通知を発生し、同期カウンタにおける同期の成立の通知を基に、ＯＳに所定の処理を開始させるまでの時間を初期化する情報処理方法を情報処理装置に実行させるプログラムを含む。
【発明の効果】
【００１４】
本発明に基づけば、同期のための専用のハードウェア及び専用のソフトウェアを追加しないで、マルチノードの同期を実現するとの効果を奏することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１の実施形態に係る情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図３】図３は、第１の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図４】図４は、第１の実施形態に係る情報処理装置の別の構成の一例を示すブロック図である。
【図５】図５は、第１の実施形態に係る情報処理装置の別の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施形態について図面を参照して説明する。
【００１７】
なお、各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【００１８】
また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００１９】
まず、本発明の実施形態に説明の前に、一般的なマルチノードシステムにおける同期について説明する。
【００２０】
例えば、情報処理の分野の１つにＨＰＣ（High Performance Computing）分野がある。ＨＰＣ分野において、情報処理装置である計算ノード（以下、単に「ノード」と呼ぶ）がプログラム（例えば、計算プログラム）を実行している場合において、ノードにおけるタイマ割り込み等のＯＳの処理は、プログラムの実行に対しの外乱となる。つまり、上記のようなＯＳの処理（外乱）は、ノードにおけるプログラムの処理性能を低下させる。そのため、このような外乱に対する対策が望まれている。なお、この外乱は、「ＯＳジッタ」と呼ばれている。
【００２１】
特に、複数のノード（マルチノード）を用いて計算プログラムを実行するマルチノードプログラムの処理システム（以下、単に「マルチノードプログラムシステム」と呼ぶ）において、ＯＳジッタの影響は、大きくなる。これは、次のような理由のためである。
【００２２】
マルチノードプログラムシステムに含まれる各ノードは、計算処理と、計算結果を他のノードと交換する通信処理とを、交互に実行する。ここで、通信処理を実行するノードは、他ノードとの同期が、必要である。そのため、いずれかのノードにおいて、ＯＳジッタに基づく性能低下が発生すると、他ノードは、そのノードに対する通信処理において、待ち合わせが必要となる。その結果、マルチノードプログラムシステムとしての全体の性能が、低下する。
【００２３】
そして、マルチノードプログラムシステムに含まれるノードの数が増加した場合、システムに対するＯＳジッタに基づく性能低下の影響の程度は、さらに大きくなる。これは、ノードの数が増加した場合、ＯＳ処理を実行しているノードの数が多くなるため、マルチノードプログラムシステムに含まれるノードは、他ノードとの通信処理における同期において、ＯＳジッタの影響を受ける可能性が高くなるためである。
【００２４】
このＯＳジッタの影響への対策の１つとして、システムに含まれる全ノードにおけるＯＳの処理を同期することが、有効である。全ノードにおいてＯＳの処理が同期している場合、各ノードが、上記のプログラムを実行している時に、他のノードも、プログラムを実行している可能性が高くなる。つまり、ノードは、通信処理におけるＯＳジッタの影響を受ける頻度を減らすことできる。しかし、特許文献１ないし３に記載の技術は、既に記載のとおり、専用のハードウェア又は専用のソフトウェアの追加が必要であった。
【００２５】
＜第１の実施形態＞
本発明における第１の実施形態について、図面を参照して説明する。
【００２６】
図１は、第１の実施形態に係る情報処理装置１を含むマルチノードプログラムシステムである情報処理システム３の構成の一例を示すブロック図である。
【００２７】
情報処理システム３は、計算ノードとして動作する複数の情報処理装置１と、インターコネクトスイッチ２とを含む。
【００２８】
インターコネクトスイッチ２は、複数の情報処理装置１と接続され、情報処理装置１で実行されるプログラム間の接続を実現している。そして、インターコネクトスイッチ２は、同期カウンタ２１を含む。
【００２９】
同期カウンタ２１は、インターコネクトスイッチ２に接続されている全ての情報処理装置１から操作（減算）可能なカウンタである。同期カウンタ２１は、値を計測するカウンタと、同期成立フラグとを含む。同期カウンタ２１のカウンタの初期値は、情報処理システム３に含まれる全ての情報処理装置１の個数の値、つまり、マルチノードプログラムシステムに含まれる実行中のプログラムの数である。また、同期カウンタ２１の同期成立フラグの初期値は、同期不成立の値（例えば、「０」）である。
【００３０】
そして、同期カウンタ２１は、情報処理装置１からカウンタ値の減算の依頼を受信すると、カウンタの値を「１つ」減算する。そして、同期カウンタ２１は、カウンタの値が「０」になると、カウンタの値を初期値に戻す。そして、同期カウンタ２１は、同期成立フラグを同期成立の値（例えば、「１」）に変更（反転）する。すなわち、同期カウンタ２１は、情報処理装置１からの依頼の数が、情報処理システム３に含まれる情報処理装置１（又は、動作中のプログラム）の数と一致したときに、同期成立フラグを同期成立に設定する。つまり、同期カウンタ２１は、情報処理システム３に含まれる全ての情報処理装置１（又は、プログラム）からの依頼を受信したときに、同期成立フラグを同期成立の値に設定する。
【００３１】
なお、同期カウンタ２１のカウンタは、減算カウンタに限る必要はない。例えば、同期カウンタ２１は、カウンタの初期値を「０」とし、情報処理装置１からの依頼を基にカウンタを「１つ」加算する。そして、同期カウンタ２１は、カウンタの値が情報処理装置１（又はプログラム）の数と一致した場合に、同期成立フラグを同期成立の値に設定してもよい。
【００３２】
このように、情報処理装置１からの要求は、減算での加算でもよい。つまり、情報処理装置１からの要求は、同期カウンタ２１の値の変更の依頼である。
【００３３】
なお、以下の説明では、一例として、減算の場合について説明する。
【００３４】
情報処理装置１は、情報処理システム３の計算ノードとして、計算処理と通信処理とを実行する。そして、後ほど詳細に説明するが、情報処理装置１のマルチノードプログラム処理部１１は、同期カウンタ２１の同期成立フラグを用いて、情報処理装置１間の同期成立の待ち合わせ処理を実行する。そして、この待ち合わせ処理を基に、情報処理装置１は、同期を実現する。
【００３５】
次に、情報処理装置１について図面を参照して説明する。
【００３６】
図３は、第１の実施形態に係る情報処理装置１の構成の一例を示すブロック図である。
【００３７】
図３を参照すると、情報処理装置１は、マルチノードプログラム処理部１１と、割り込み同期部１２と、タイマ処理部１３と、タイマ部１４と、インターコネクト制御部１６とを含む。そして、タイマ部１４は、タイマカウンタ１５を含む。
【００３８】
ここで、情報処理装置１の各構成部は、ハードウェア回路で構成されても良い。
【００３９】
あるいは、情報処理装置１は、各構成部が、ネットワークを介して接続した複数の装置を用いて、構成されても良い。
【００４０】
また、情報処理装置１は、複数の構成部を１つのハードウェアで構成しても良い。
【００４１】
例えば、情報処理装置１は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含むコンピュータ装置として実現してもよい。情報処理装置１は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Input / Output Circuit）と、ネットワークインターフェース回路（ＮＩＣ：Network Interface Circuit）とを含むコンピュータ装置として実現しても良い。
【００４２】
図４は、情報処理装置１のハードウェア構成の一例を示すブロック図である。
【００４３】
図４に示す情報処理装置１は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【００４４】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図３に示す、マルチノードプログラム処理部１１と、割り込み同期部１２と、タイマ処理部１３と、タイマ部１４と、インターコネクト制御部１６としての各機能を実現する。
【００４５】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶として使用しても良い。
【００４６】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０に保存して、保存したプログラムを基に動作しても良い。
【００４７】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Programmable-ROM）又はフラッシュＲＯＭである。
【００４８】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【００４９】
内部記憶装置６４０は、情報処理装置１が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作しても良い。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）又はディスクアレイ装置である。
【００５０】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性（non-transitory）の記憶媒体である。一方、ＲＡＭ６３０は、揮発性（transitory）の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【００５１】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Universal Serial Bus）カードである。
【００５２】
入力機器６６０は、情報処理装置１の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【００５３】
表示機器６７０は、情報処理装置１の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【００５４】
ＮＩＣ６８０は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Local Area Network）カードである。
【００５５】
図３を用いた説明に戻る。
【００５６】
なお、情報処理装置１において、図示しないＯＳが、動作している。例えば、情報処理装置１は、図４に示すＣＰＵ６１０が、内部記憶装置６４０に保存されているＯＳ用のプログラムをＲＡＭ６３０に複製し、複製したＯＳプログラムを基に、図４に示す各構成を制御して、ＯＳとしての機能を実現してよい。
【００５７】
マルチノードプログラム処理部１１は、情報処理装置１に含まれるハードウェア構成（例えば、ＣＰＵ６１０及びＲＡＭ６３０）を用いて、計算ノードとしてのプログラムの処理を実行する。また、マルチノードプログラム処理部１１が処理するプログラムは、インターコネクト制御部１６を介して、他の情報処理装置１におけるプログラムと通信する。
【００５８】
割り込み同期部１２は、マルチノードプログラム処理部１１からの指示を基に、タイマ部１４に含まれるタイマカウンタ１５の値を操作する。より具体的には、割り込み同期部１２は、タイマカウンタ１５の値を初期値にリセットする。
【００５９】
タイマ処理部１３は、タイマ部１４からの割り込みを受信し、情報処理装置１におけるＯＳに所定の処理（例えば、ＯＳの割り込み処理）を開始させる。ここで、ＯＳの処理を開始させる手段は、特に制限はない。例えば、タイマ処理部１３は、ＯＳに割り込みを発生させてもよい。あるいは、タイマ処理部１３は、ＯＳに処理の開始を通知してもよい。また、タイマ処理部１３は、タイマ部１４に含まれるタイマカウンタ１５に、次の割り込みまでの時間を設定する。つまり、タイマ処理部１３は、ＯＳの処理の同期を実現する。なお、タイマカウンタ１５への設定は、タイマ処理部１３に限る必要はない。例えば、割り込み周期が一定の場合、タイマ部１４が、固定的にタイマカウンタ１５の値を設定してもよい。
【００６０】
タイマ部１４は、タイマカウンタ１５の値を、一定時間ごとに減算する。そして、タイマ部１４は、タイマカウンタ１５の値が０となった時に、タイマ処理部１３に対して割り込みを発生させる。そして、タイマ部１４は、タイマ処理部１３からの初期値を基に、タイマカウンタ１５の値を初期値にリセットする。
【００６１】
タイマカウンタ１５は、タイマ部１４に含まれるカウンタである。タイマカウンタ１５は、一定周期で、初期値から０まで値を減算する。上記のように、タイマ部１４は、タイマカウンタ１５の値が０となると、タイマ処理部１３に、割り込みを発生させる。そのため、タイマカウンタ１５の初期値は、情報処理装置１で動作するＯＳの割り込み処理のタイミング（周期）に等しい値である。なお、タイマカウンタ１５は、減算カウンタに限らず、加算カウンタでもよい。
【００６２】
このように、タイマカウンタ１５の値のリセットは、次にタイマ処理部１３がＯＳに所定の処理を開始させるまでの時間の設定に相当する。
【００６３】
つまり、タイマ部１４の処理は、所定の時間毎に、タイマ処理部１３に基づくＯＳの処理を開始させる処理に相当する。
【００６４】
そして、割り込み同期部１２におけるタイマカウンタ１５の値のリセット処理は、タイマ処理部１３におけるＯＳの処理開始までの時間の初期化に相当する。
【００６５】
インターコネクト制御部１６は、マルチノードプログラム処理部１１が処理するプログラムに対して、インターコネクトスイッチ２を介して他の情報処理装置１で実行されているプログラムとの通信を実現する。また、インターコネクト制御部１６は、マルチノードプログラム処理部１１からインターコネクトスイッチ２に含まれる同期カウンタ２１に対する減算の指示を仲介する。また、インターコネクト制御部１６は、マルチノードプログラム処理部１１における同期カウンタ２１からの同期成立フラグの値の受信を仲介する。
【００６６】
（動作の説明）
次に、情報処理装置１の動作ついて、図面を参照して説明する。
【００６７】
図２は、情報処理装置１の動作の一例を示すフローチャートである。
【００６８】
情報処理装置１は、他の情報処理装置１と、処理を同期するために、同期処理を開始する。
【００６９】
まず、マルチノードプログラム処理部１１は、インターコネクト制御部１６を介してインターコネクトスイッチ２の同期カウンタ２１に対して、減算の依頼を送信する（ステップＡ１）。つまり、情報処理装置１は、同期カウンタ２１を減算する。
【００７０】
そして、マルチノードプログラム処理部１１は、同期カウンタ２１の同期成立フラグが同期成立となるまでの待ち処理を開始する（ステップＡ２）
すなわち、マルチノードプログラム処理部１１は、同期成立となるまで、インターコネクト制御部１６を介して、同期カウンタ２１から同期成立フラグの読み込みを繰り返す（ステップＡ３）。
【００７１】
同期が成立後、マルチノードプログラム処理部１１は、同期が成立したことを、割り込み同期部１２に通知する（ステップＡ４）。
【００７２】
割り込み同期部１２は、通知を基に、タイマカウンタ１５の値を初期値にリセットする（ステップＡ５）。
【００７３】
このように、情報処理装置１は、インターコネクトスイッチ２の同期カウンタ２１における同期の成立を基に、タイマカウンタ１５を初期化する。つまり、インターコネクトスイッチ２に接続されている全ての情報処理装置１のタイマカウンタ１５が、ほぼ同時にリセットされる。この結果、全ての情報処理装置１において、次にタイマ処理部１３に対して発生するタイマ割り込みの同期が、実現される。その結果、情報処理装置１のタイマ処理部１３は、同期したタイミングでＯＳに割り込みを発生させることができる。
【００７４】
（効果の説明）
次に、本実施形態の効果について、説明する。
【００７５】
このように、本実施形態の情報処理装置１は、同期のための専用のハードウェア及び専用のソフトウェアを追加しないで、マルチノードの同期を実現するとの効果を得ることができる。
【００７６】
その理由は、次の通りである。
【００７７】
本実施形態の情報処理装置１のマルチノードプログラム処理部１１は、インターコネクト制御部１６を介して、インターコネクトスイッチ２に含まれる同期カウンタ２１のカウント値を減算する。そして、マルチノードプログラム処理部１１は、同期カウンタ２１における同期成立（具体的には、カウント値の「０」）に同期して、割り込み同期部１２に、タイマカウンタ１５のリセットを通知する。割り込み同期部１２は、通知を基に、タイマ割り込みを処理するタイマ処理部１３に割り込みを発生するタイマ部１４のタイマカウンタ１５をリセット、つまり、同期させる。この動作を基に、情報処理装置１におけるＯＳの動作が、同期される。したがって、情報処理装置１は、ＯＳジッタの影響を削減し、マルチノードプログラムの性能を向上させることができる。
【００７８】
このように、本実施形態は、全ノードから参照可能な単一の時刻を実現するためのハードウェアを必要としない。また、本実施形態は、インターコネクトスイッチ２に、同期メッセージを発行する構成を必要としない。また、本実施形態は、情報処理装置１が、インターコネクトスイッチ２を確認するため、インターコネクトからの割り込み処理を必要としない。また、本実施形態は、ＯＳに追加の処理を必要としない。つまり、本実施形態の情報処理装置１は、同期のための専用のハードウェア及び専用のソフトウェアを追加しないで、マルチノードの同期を実現するとの効果を得ることができる。
【００７９】
［変形例］
なお、タイマカウンタ１５は、ソフトウェアを用いて実現することもできる。その場合、タイマ処理部１３は、タイマ部１４を含んでもよい。
【００８０】
図５は、タイマ処理部１３及びタイマ部１４を含む割り込み処理部１７を含む情報処理装置１Ａの構成の一例を示すブロック図である。また、図５に示す処理制御部１８は、マルチノードプログラム処理部１１と、インターコネクト制御部１６とを含む、これらの構成の処理と制御とを実行する。例えば、処理制御部１８は、同期の成立の通知を発生する。
【００８１】
図５に示す情報処理装置１Ａにおいて、割り込み同期部１２は、処理制御部１８からの同期の成立の通知を基に、割り込み処理部１７にリセットを依頼する。
【００８２】
割り込み処理部１７は、通常は、定期的にＯＳに割り込み発生させる。ただし、割り込み処理部１７は、割り込み同期部１２からの通知を基に、割り込みを発生させるカウント処理をリセットする。つまり、割り込み処理部１７は、ＯＳの同期を実現する。
【００８３】
なお、図５は、本実施形態の最小構成である。
【００８４】
また、ここまでの説明では、情報処理装置１及び１Ａは、１つのマルチノードプログラム処理部１１を含む場合について説明した。しかし、情報処理装置１及び１Ａは、複数のマルチノードプログラム処理部１１を含んでもよい。つまり、情報処理装置１及び１Ａは、計算ノードとして動作するプログラムの数に制限はない。そして、情報処理装置１及び１Ａにおいて複数のプログラムが動作する場合、情報処理装置１及び１Ａは、各プログラムの動作に伴って、同期カウンタ２１に依頼を送信すればよい。
【００８５】
また、ここまでの説明では、インターコネクトスイッチ２が、同期カウンタ２１を含むとして説明した。しかし、同期カウンタ２１含む構成は、インターコネクトスイッチ２に限られない。例えば、図示しない独立した装置が、同期カウンタ２１を含んでもよい。ありは、いずれかの情報処理装置１又は１Ａが、同期カウンタ２１を含んでもよい。あるいは、情報処理装置１又は１Ａに含まれるマルチノードプログラム処理部１１が、他の情報処理装置１又は１Ａに含まれるマルチノードプログラム処理部１１との通信を用いて、同期カウンタ２１と同等の機能を実現してもよい。
【００８６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８８】
（付記１）
所定の時間毎にＯＳに所定の処理を開始させる割り込み処理手段と、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生する処理制御手段と、
前記処理制御手段からの同期の成立の通知を基に、前記割り込み処理手段における、ＯＳに所定の処理を開始させるまでの時間を初期化する割り込み同期手段と
を含む情報処理装置。
【００８９】
（付記２）
前記割り込み処理手段が、
初期値から値を減算するタイマカウンタと、
前記タイマカウンタに初期値を設定し、所定の周期で前記タイマカウンタの値を減算させ、前記タイマカウンタの値が０となった場合に、割り込みを発生するタイマ手段と、
前記タイマ手段からの割り込みを基に前記ＯＳに所定の処理を開始させるタイマ処理手段と
を含む付記１に記載の情報処理装置。
【００９０】
（付記３）
前記処理制御手段が、
前記マルチノードプログラム処理手段と他の情報処理装置のマルチノードプログラム処理手段との通信を仲介する
付記１及び付記２に記載の情報処理装置。
【００９１】
（付記４）
付記１ないし３に記載の複数の情報処理装置と、
前記複数の情報処理装置の前記処理制御手段の通信を仲介するインターコネクトスイッチと
を含む情報処理システム。
【００９２】
（付記５）
前記インターコネクトスイッチが、
前記同期カウンタ
を含む付記４に記載の情報処理装置。
【００９３】
（付記６）
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する
情報処理方法。
【００９４】
（付記７）
複数の情報処理装置とインターコネクトスイッチを含む情報処理システムにおいて、
前記情報処理装置が、
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化し、
前記インターコネクトスイッチが、
前記複数の情報処理装置の通信を仲介する
情報処理方法。
【００９５】
（付記８）
所定の時間毎にＯＳに所定の処理を開始させる処理と
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生する処理と、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する処理と
をコンピュータに実行させるプログラム。
【００９６】
（付記９）
所定の時間毎にＯＳに所定の処理を開始させ、
情報処理システムに含まれるマルチノードにて処理されるプログラムの数をカウントする同期カウンタに値の変更を依頼し、前記同期カウンタにおける同期の成立の状態を受信して同期の成立を判定し、前記同期の成立時に通知を発生し、
前記同期カウンタにおける同期の成立の通知を基に、前記ＯＳに所定の処理を開始させるまでの時間を初期化する
情報処理方法を情報処理装置に実行させるプログラムを含むコンピュータで読み取り可能な不揮発性記憶媒体。
【符号の説明】
【００９７】
１    情報処理装置
１Ａ    情報処理装置
２    インターコネクトスイッチ
３    情報処理システム
１１    マルチノードプログラム処理部
１２    割り込み同期部
１３    タイマ処理部
１４    タイマ部
１５    タイマカウンタ
１６    インターコネクト制御部
１７    割り込み処理部
１８    処理制御部
２１    同期カウンタ
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
７００    記憶媒体
【図１】
2016133930.tif 000003
【図２】
2016133930.tif 000004
【図３】
2016133930.tif 000005
【図４】
2016133930.tif 000006
【図５】
2016133930.tif 000007