処理を実行するとともに、前記処理の状態を制御する処理部を備えた演算処理部と、それぞれ前記演算処理部を備えた複数のノードと、を備え、前記複数のノードの各々は、自ノードが備える第1の演算処理装置に含まれる第1の処理部が該第1の処理部における処理の状態を第1の状態から第2の状態へと移行させる場合に、該第1の処理部を識別する識別情報を記憶する記憶部と、自ノード又は他ノードが備える第2の演算処理装置に含まれる第2の処理部から前記第1の演算処理装置に送信された識別情報を受信する受信部と、前記受信部が受信した識別情報と、前記記憶部が記憶する識別情報とが一致する場合に、該識別情報により識別される処理部が実行する処理の状態を前記第2の状態から前記第1の状態へと移行させる制御信号を出力する出力部と、を備えた、ことを特徴とする情報処理装置。前記複数のノードの各々は、所定のタイミングから経過した時間を計時する計時部をさらに備え、前記出力部は、前記計時部が所定時間を計時した場合に、前記受信部が識別情報を受信したか否かに関わらず、前記制御信号を生成して出力することを特徴とする請求項1に記載の情報処理装置。前記第1の処理部は、前記計時部により所定時間が計時された場合に前記出力部により出力された前記制御信号を受信すると、前記制御信号に応じて状態を移行させる対象である処理とは異なる処理を実行することを特徴とする請求項2に記載の情報処理装置。前記第1の処理部を識別する識別情報が前記記憶部に記憶されるよりも前に、前記第2の処理部へ当該識別情報を予め通知することを特徴とする請求項1、2又は3に記載の情報処理装置。前記第1の状態は、前記第1の処理部が処理を実行中の状態であり、前記第2の状態は、前記第1の処理部が処理を停止中の状態であり、前記第2の処理部は、前記第1の処理部が待ち合わせる前記第2の処理部が実行する処理が終了した場合に、予め通知された前記識別情報を前記自ノードへ送信することを特徴とする請求項4に記載の情報処理装置。前記受信部は、ノード間通信のインターフェースを介して前記識別情報を受信することを特徴とする請求項1~5の何れか一つに記載の情報処理装置。処理を実行するとともに、前記処理の状態を制御する処理部を備えた演算処理部と、それぞれ前記演算処理部を備えた複数のノードと、を備えた情報処理装置の制御方法であって、前記複数のノードの各々が、自ノードが備える第1の演算処理装置に含まれる第1の処理部が該第1の処理部における処理の状態を第1の状態から第2の状態へと移行させる場合に、該第1の処理部を識別する識別情報を記憶する記憶部へ記憶させ、自ノード又は他ノードが備える第2の演算処理装置に含まれる第2の処理部から前記第1の演算処理装置に送信された識別情報を受信し、受信した識別情報と、前記記憶部が記憶する識別情報とが一致する場合に、該識別情報により識別される処理部が実行する処理の状態を前記第2の状態から前記第1の状態へと移行させる制御信号を出力する、処理を実行することを特徴とする情報処理装置の制御方法。しかしながら、上述の従来技術では、第1のハードウェアスレッドにおいて処理を中断したにも関わらず第1の記憶装置にアクセスするポーリング処理を行う。このため、第1の演算処理装置において他のハードウェアスレッドと共有するシステムバスコントローラ等の複数のハードウェアスレッドで共用されるハードウェア資源が有効に活用されないという問題がある。また、上述の従来技術では、第1のハードウェアスレッドにおいて実行する処理の切り替えに伴うレジスタの待避及び復元の処理等のOSによるカーネル処理がオーバヘッドとなって処理の切り替えを迅速に行えないという問題がある。1つの側面では、本発明は、複数のノードが備える各演算処理装置が各々の処理部において実行する各処理間の同期を制御する際に、ハードウェア資源の有効活用を図ることを目的とする。開示の技術の一態様では、処理を実行するとともに、前記処理の状態を制御する処理部を備えた演算処理部と、それぞれ前記演算処理部を備えた複数のノードと、を備える情報処理装置である。情報処理装置は、前記複数のノードの各々は、自ノードが備える第1の演算処理装置に含まれる第1の処理部が該第1の処理部における処理の状態を第1の状態から第2の状態へと移行させる場合に、該第1の処理部を識別する識別情報を記憶する。また、情報処理装置は、自ノード又は他ノードが備える第2の演算処理装置に含まれる第2の処理部から前記第1の演算処理装置に送信された識別情報を受信する。また、情報処理装置は、受信した識別情報と、前記記憶部が記憶する識別情報とが一致する場合に、該識別情報により識別される処理部が実行する処理の状態を前記第2の状態から前記第1の状態へと移行させる制御信号を出力する。複数のノードが備える各演算処理装置が各々の処理部において実行する各処理間の同期を制御する際に、ハードウェア資源の有効活用を図ることができる。以下に、開示の技術に係る情報処理装置及び情報処理装置の制御方法の実施形態を図面に基づいて説明する。なお、以下の実施形態では、一例を示すに過ぎず、開示の技術を限定するものではない。また、各実施形態は、矛盾が生じない範囲内で適宜組み合わせてもよい。[第1の実施形態]第1の実施形態の情報処理装置の構成図1は、第1の実施形態に係る情報処理装置の構成を示すブロック図である。なお、以下では、SCはSystemControllerの略であり、CPUはCentralProcessingUnitの略であり、MACはMemoryAccessControllerの略である。また、IC-ctrlはInterConnect-Controllerの略であり、IC-IFはInterConnectInterfaceの略であり、SVPはServiceProcessorの略である。また、以下において、ノードとは、情報処理ユニットの単位をいう。SCは、各ノードに搭載されるCPUと、MACとの間のデータ転送などの処理を制御し、各ノード全体を制御する。MACは、DIMMDualInlineMemoryModule等の記憶装置であるローカルメモリ、共有メモリと、SCとの間に接続され、ローカルメモリ、共有メモリへのアクセスを制御する。また、IC-ctrlは、ノード間通信を制御する制御装置である。IC-IFは、IC-ctrlによるノード間通信のインターフェースである。SVPは、ノード毎に備えられ、各ノードのCPU等の演算処理装置とは独立して各ノードのハードウェア制御及び監視を行うプロセッサであり、他ノードが備えるSVPとLANLocalAreaNetwork等を介して通信を行って情報を送受信する。図1に示すように、第1の実施形態に係る情報処理装置1は、ノード10及び20を有する。ノード10は、SC11を有する。ノード10は、さらに、図1において一点鎖線で示すシステムバス12を介してSC11とそれぞれ接続されるCPU13a及び13b、MAC14、IC-ctrl15を有する。ノード10は、さらに、MAC14とそれぞれ接続されるローカルメモリ16a、共有メモリ16bを有する。ノード10は、さらに、IC-ctrl15とそれぞれ接続されるWAKEUP信号生成部17a及び17bを有する。ノード10は、さらに、SVP18を有する。SC11は、CPU13a及び13bによるローカルメモリ16a及び共有メモリ16bへのアクセス要求をMAC14へ転送する。また、SC11は、ノード20による共有メモリ16bへのアクセスをMAC14へ転送する。また、SC11は、CPU13a及び13bと、WAKEUP信号生成部17a及び17bとの間での情報の入出力を制御する。また、SC11は、CPU13a及び13bによるノード20へのアクセスをIC-ctrl15へ転送する。また、SC11は、CPU13a及び13bからWAKEUP信号生成部17a及び17bへのデータをWAKEUP信号生成部17a及び17bへそれぞれ入力する。また、IC-ctrl15は、ノード20からWAKEUP信号生成部17a及び17bへのデータをWAKEUP信号生成部17a及び17bへそれぞれ入力する。ノード20は、ノード10と同一の構成であり、参照符号が異なる同一名称の構成要素は、同一の構成及び機能を有する。ノード20は、SC21、システムバス22、CPU23a及び23b、MAC24、IC-ctrl25、ローカルメモリ26a、共有メモリ26b、WAKEUP信号生成部27a及び27b、SVP28を有する。ノード20におけるSC21、システムバス22、CPU23a及び23b、MAC24、IC-ctrl25は、ノード10におけるSC11、システムバス12、CPU13a及び13b、MAC14、IC-ctrl15にそれぞれ対応する。また、ノード20におけるローカルメモリ26a、共有メモリ26b、SVP28は、ノード10におけるローカルメモリ16a、共有メモリ16b、SVP18にそれぞれ対応する。また、ノード20におけるWAKEUP信号生成部27a及び27bは、ノード10におけるWAKEUP信号生成部17a及び17bにそれぞれ対応する。ノード10及び20は、IC-IF3を介してIC-ctrl15及びIC-ctrl25が接続されることにより、相互通信が可能である。また、ノード10のSVP18及びノード20のSVP28は、所定の通信回線を介して接続されることにより、相互通信が可能である。第1の実施形態のCPU及びWAKEUP信号生成部の構成CPU23aを代表させて、CPU13a、13b、23a及び23bの構成を説明する。すなわち、CPU13a、13b及び23bの構成は、CPU23aの構成と同一である。また、WAKEUP信号生成部27aを代表させて、WAKEUP信号生成部17a、17b、27a及び27bの構成を説明する。すなわち、WAKEUP信号生成部17a、17b及び27bの構成は、WAKEUP信号生成部27aの構成と同一である。図1に示すように、CPU23aは、例えばマルチコアCPUであり、マルチコアCPUに含まれる各CPUコアがハードスレッド23a-1及び23a-2に該当する。ハードスレッドは、ハードウェアスレッドの略である。ハードスレッド23a-1及び23a-2は、CPU23aの同一のコア上で、CPU23aのハードウェア資源を共有して各々が処理を実行する。また、CPU23aは、ハードスレッド23a-1及び23a-2がシステムバス22を介してCPU23aが行うデータの入出力を制御するインターフェースである、SC21に接続されるシステムバスコントローラ23a-3を有する。すなわち、システムバスコントローラ23a-3は、ハードスレッド23a-1及び23a-2により共有される入出力インターフェースである。また、図1に示すように、WAKEUP信号生成部27aは、SleepIDレジスタ27a-1及び27a-2、WAKEUPデータレジスタ27a-3、比較部27a-5及び27a-6、AND部27a-7及び27a-8を有する。SleepIDは、SleepIdentifierの略である。SleepIDは、各ハードスレッド23a-1及び23a-2を識別する識別情報である。SleepIDは、各ハードスレッド23a-1及び23a-2が処理の実行中にデータの入力待ちが発生して処理を中断する場合に、対応するWAKEUP信号生成部27a及び27bへそれぞれ出力される。なお、SleepIDレジスタ27a-1、比較部27a-5、AND部27a-7は、CPU23aのハードスレッド23a-1に対応して設けられる。同様に、SleepIDレジスタ27a-2、比較部27a-6、AND部27a-8は、CPU23aのハードスレッド23a-2に対応して設けられる。SleepIDレジスタ27a-1は、ハードスレッド23a-1によりWAKEUP信号生成部27aに対して出力されるSleepIDを記憶するレジスタである。ハードスレッド23a-1を識別するSleepIDは、ハードスレッド23a-1から出力され、システムバスコントローラ23a-3、SC21を経由するシステムバス22で伝送され、SleepIDレジスタ27a-1にセットされる。同様に、SleepIDレジスタ27a-2は、ハードスレッド23a-2によりWAKEUP信号生成部27aに対して出力されるSleepIDを記憶するレジスタである。ハードスレッド23a-2を識別するSleepIDは、ハードスレッド23a-2から出力され、システムバスコントローラ23a-3、SC21を経由するシステムバス22で伝送され、SleepIDレジスタ27a-2にセットされる。なお、ノード20が備えるCPU23a及び23bの各ハードスレッドを識別するそれぞれのSleepIDは、ノード20のシステム起動時に、SVP28により、ノード10のSVP18に予め通知される。SVP18は、SVP28から通知されたノード20のCPU23a及び23bの各ハードスレッドを識別するそれぞれのSleepIDを、図示しないメモリに記憶させ、ノード10のCPU13a及び13bの各ハードスレッドが利用できる状態にしておく。または、ノード20が備えるCPU23a及び23bの各ハードスレッドを識別するそれぞれのSleepIDは、各ハードスレッドが実行する処理ごとにノード10に通知されることとしてもよい。若しくは、各ハードスレッドが実行する処理にデータの入力待ちが発生した際に対応するSleepIDレジスタにセットされるSleepIDを出力する際に、ノード10に通知されることとしてもよい。通知されたSleepIDは、例えばSC11によりMAC14を介してローカルメモリ16a等に記憶され、ノード10のCPU13a及び13bの各ハードスレッドが利用できる状態にしておくこととしてもよい。WAKEUPデータレジスタ27a-3は、ノード10のCPU13a及び13bからIC-IF3及びIC-ctrl25を経由して通知されたWAKEUPデータが含むSleepIDがセットされるレジスタである。WAKEUPデータは、ノード10のCPU13a及び13bが実行する所定処理を完了したことをノード20のCPU23a及び23bへ通知するデータである。所定処理とは、例えば、ノード10のCPU13a又は13bのハードスレッドが、CPU23aのハードスレッド23a-1又は23a-2が待ち合わせるデータをノード10のローカルメモリ16aからノード20の共有メモリ26bへコピーする処理である。ノード20のCPU23a及び23bは、ハードスレッドを停止してCPU23a及び23bが実行する所定処理の完了を待ち合わせ、CPU13a及び13bからWAKEUPデータが通知されると、停止したハードスレッドを起動する。そして、CPU23a及び23bは、システムバスコントローラ23a-3、SC21を介して、共有メモリ26bにコピーされたデータを取得し、中断した処理を再開する。比較部27a-5は、WAKEUPデータレジスタ27a-3及びSleepIDレジスタ27a-1にセットされたSleepIDを比較する。そして、比較部27a-5は、WAKEUPデータレジスタ27a-3及びSleepIDレジスタ27a-1にセットされたSleepIDが一致する場合に、セレクト信号をAND部27a-7へ出力する。AND部27a-7は、比較部27a-5から出力されたセレクト信号と、ノード10のCPU13a及び13bからWAKEUPデータが通知されたタイミングでIC-ctrl25から出力されたパケット受信パルスとの論理積を取る論理ゲートである。パケット受信パルスは、WAKEUPパケットを受信したときに、IC-ctrl25により1パルス発生される。AND部27a-7は、セレクト信号と、パケット受信パルスとの論理積を示す信号をハードスレッド23a-1へ出力する。すなわち、AND部27a-7は、通知されたSleepIDと、SleepIDレジスタ27a-1にセットされたSleepIDとが一致する場合に、ハードスレッド23a-1へ停止を解除して起動し、処理を再開する指示を出力する。ハードスレッド23a-1は、この指示に応じて、停止を解除して起動し、処理を再開する。すなわち、パケット受信パルスと、セレクト信号の論理積から生成されるWAKEUP信号が1パルスだけONとなることで、ハードスレッド23a-1が停止状態を解除する。同様に、比較部27a-6は、WAKEUPデータレジスタ27a-3及びSleepIDレジスタ27a-2にセットされたSleepIDを比較する。そして、比較部27a-6は、WAKEUPデータレジスタ27a-3及びSleepIDレジスタ27a-2にセットされたSleepIDが一致する場合に、セレクト信号をAND部27a-8へ出力する。AND部27a-8は、比較部27a-6から出力されたセレクト信号と、ノード10のCPU13a及び13bからWAKEUPデータが通知されたタイミングでIC-ctrl25から出力されたパケット受信パルスとの論理積を取る論理ゲートである。AND部27a-8は、セレクト信号と、パケット受信パルスとの論理積を示す信号をハードスレッド23a-2へ出力する。すなわち、AND部27a-8は、通知されたSleepIDと、SleepIDレジスタ27a-2にセットされたSleepIDとが一致する場合に、ハードスレッド23a-2へ停止を解除して起動し、処理を再開する指示を出力する。ハードスレッド23a-2は、この指示に応じて、停止を解除して起動し、処理を再開する。第1の実施形態の処理のシーケンス図2は、第1の実施形態に係る処理を示すシーケンス図である。図2は、ノード20のハードスレッド23a-1が、処理を実行中にノード10が保持するデータを要し、そのデータがノード10のCPU13aによりノード20の共有メモリ26bへコピーされる処理が完了するまで待ち合わせる例を示す。しかし、図2は、一例を示すに過ぎず、ノード10又は20のハードスレッドが、処理の実行中に、ノード10又は20の他のCPUによる処理が完了するまで待ち合わせる場合であれば、同様の処理となる。先ず、例えば情報処理装置1又はノード20の起動時に、ノード20のSVP28は、ノード20が備える全てのハードスレッドのSleepIDを、ノード10のSVP18へ通知するステップS11。なお、ステップS11は、情報処理装置1又は各ノードの起動時等において、各ノードのSVPが自ノード内の各ハードスレッドの識別情報であるSleepIDを、各ハードスレッドにおける処理の実行に先立って他のノードへ予め通知する処理である。続いて、ノード20のハードスレッド23a-1は、ハードスレッド23a-1のSleepIDをWAKEUP信号生成部27aのSleepIDレジスタ27a-1へセットするステップS12。続いて、ハードスレッド23a-1は、スレッドを停止するステップS13。一方、ノード10のCPU13aは、ノード20のハードスレッド23a-1が入力を待ち合わせる、ノード10のローカルメモリ16aに記憶されるデータを、ノード20の共有メモリ26bへコピーする処理を行い、処理を完了するステップS14。続いて、CPU13aは、ハードスレッド23a-1のSleepIDと、ハードスレッド23a-1を備えるCPU23aのCPUIDとを含むWAKEUPコマンドを発行し、IC-ctrl15へ出力するステップS15。ステップS15の処理により、CPU13aは、処理が終了したことをノード20のハードスレッド23a-1へ通知する。続いて、ノード10のIC-ctrl15は、CPU13aが発行したWAKEUPコマンドに基づき、例えば図3に示すCPUID及びWAKEUPデータを有するWAKEUPパケットを生成し、ノード20のIC-ctrl25へ送信するステップS16。なお、CPUIDは、CentralProcessingUnitIdentifierの略であり、CPUを識別する情報である。WAKEUPパケットは、CPUIDにより、ネットワーク中継装置で送信先のCPUを備えるノードが判定され、目的のノードへと到達する。また、WAKEUPデータは、ステップS11でノード20のSVP28により予め通知されたハードスレッド23a-1のSleepIDを少なくとも含むデータである。IC-ctrl25は、IC-ctrl15からWAKEUPパケットを受信すると、WAKEUPデータが含むSleepIDをWAKEUPデータレジスタ27a-3に書き込み、パケット受信パルスをAND部27a-7へ出力するステップS17。続いて、WAKEUP信号生成部27aは、WAKEUP信号をハードスレッド23a-1へ出力するステップS18。続いて、ハードスレッド23a-1は、WAKEUP信号を受信すると、停止したスレッドを起動するステップS19。第1の実施形態の処理のタイムチャート図4は、第1の実施形態に係る処理を示すタイムチャートである。図4では、CPU23aのハードスレッド23a-1及び23a-2が、それぞれ実行する処理に要するデータの入出力に関して、システムバスコントローラ23a-3を交互に使用することを前提とする。それぞれ実行する処理に要するデータは、例えば、ローカルメモリ26aが記憶するプログラムのデータ、共有メモリ26bが記憶するデータである。図4は、ノード20のハードスレッド23a-1が、処理を実行中にノード10が保持するデータを要し、そのデータがノード10のCPU13aによりノード20の共有メモリ26bへコピーされる処理が完了するまで待ち合わせる例を示す。しかし、図4は、一例を示すに過ぎず、ノード10又は20の他のハードスレッドが、処理の実行中に、ノード10又は20の他のCPUによる処理が完了するまで待ち合わせる場合であれば、同様の処理となる。時刻t1において、ノード10のCPU13aは、ノード20のCPU23aのハードスレッド23a-1が処理に要するデータをノード20の共有メモリ26bへコピーする処理を開始する。時刻t2において、ハードスレッド23a-1は、CPU13aが共有メモリ26bへコピーするデータを要することとなるが、データのコピーが完了していないので処理を継続できず、データの待ち状態となる。そして、ハードスレッド23a-1は、スレッドを停止する。ハードスレッド23a-1がスレッドを停止すると、システムバスコントローラ23a-3は、ハードスレッド23a-1からアクセスされなくなり、他の処理を実行中であるハードスレッド23a-2のみからアクセスされる占有状態となる。そして、時刻t3において、CPU13aは、ハードスレッド23a-1が待ち合わせているデータのコピーが完了すると、WAKEUPコマンドを発行してハードスレッド23a-1を起動させる。ハードスレッド23a-1は、WAKEUPコマンドに応じて起動すると、処理を再開し、システムバスコントローラ23a-3を介して共有メモリ26bにコピーされたデータを取得する。第1の実施形態の処理のフローチャート図5は、第1の実施形態に係る処理を示すフローチャートである。図5は、ノード20のハードスレッド23a-1が、処理を実行中にノード10が保持するデータを要し、そのデータがノード10のCPU13aによりノード20の共有メモリ26bへコピーされる処理が完了するまで待ち合わせる例を示す。しかし、図5は、一例を示すに過ぎず、ノード10又は20のハードスレッドが、処理の実行中に、ノード10又は20の他のCPUによる処理が完了するまで待ち合わせる場合であれば、同様の処理となる。先ず、ノード10は、SVP18により、ノード20のSVP28から送信された、ノード20が備えるCPU23a及び23bの各ハードスレッドを識別するSleepIDを受信するステップS101。なお、ステップS101は、情報処理装置1又は各ノードの起動時等において、各ノードのSVPが自ノード内の各ハードスレッドの識別情報であるSleepIDを、各ハードスレッドにおける処理の実行に先立って他のノードへ予め通知する処理である。続いて、ノード10は、MAC14により、ノード10が保持する、CPU23aのハードスレッド23a-1がコピーを待ち合わせるデータを、ノード20の共有メモリ26bへコピーするプロセス処理を実行するステップS102。なお、ステップS102の処理は、MAC14に設けられた図示しないDMAコントローラにより実行されてもよい。続いて、ノード10は、CPU13aにより、ステップS102の処理が終了したか否かを判定するステップS103。ステップS102の処理が終了したと判定された場合ステップS103Yes、ノード10は、ステップS104へ処理を移す。一方、ステップS102の処理が終了したと判定されなかった場合ステップS103No、ノード10は、ステップS102へ処理を移し、MAC14或いは図示しないDMAコントローラ等によるステップS102のプロセス処理を継続する。続いて、ノード10は、CPU13aにより、CPUIDと、SleepIDとを指定してWAKEUPコマンドを発行するステップS104。ここでは、例えば、CPUIDとしてノード20のCPU23aのID、SleepIDとしてハードスレッド23a-1のSleepIDを指定する。続いて、ノード10は、CPU13aにより、ステップS104で発行したWAKEUPコマンドに応じたWAKEUPパケットを生成し、ノード20へ送信するステップS105。一方、ノード20は、SVP28により、ノード20が備えるCPU23a及び23bの各ハードスレッドを識別するSleepIDをノード10のSVP18へ送信するステップS201。なお、ステップS201は、情報処理装置1又は各ノードの起動時等において、各ノードのSVPが自ノード内の各ハードスレッドの識別情報であるSleepIDを、各ハードスレッドにおける処理の実行に先立って他のノードへ予め通知する処理である。続いて、ノード20は、CPU23a及び23bの各ハードスレッドにより、各々のプロセス処理を実行するステップS202。続いて、ノード20は、CPU23a及び23bの各ハードスレッドにより、ステップS202のプロセス処理の実行中において、ノード10におけるステップS102のプロセス処理が完了することを待ち合わせるか否かを判定するステップS203。ノード10におけるステップS102の処理が完了することを待ち合わせると判定された場合ステップS203Yes、ノード20は、ステップS204へ処理を移す。ノード10におけるステップS102のプロセス処理が完了することを待ち合わせると判定されなかった場合ステップS203No、ノード20は、ステップS202へ処理を移し、各ハードスレッドによりプロセス処理を継続する。ここでは、例えば、ノード10におけるステップS102のプロセス処理が完了することを待ち合わせると判定されたハードスレッドは、ハードスレッド23a-1である。続いて、ノード20は、ノード10におけるプロセス処理の完了を待ち合わせるハードスレッド23a-1により、SleepIDレジスタ27a-1へハードスレッド23a-1のSleepIDをセットするステップS204。続いて、ノード20は、ハードスレッド23a-1により実行中のプロセスを中断し中断したプロセスを、以下、中断プロセスと呼ぶ、スレッドを停止するステップS205。続いて、ノード20は、WAKEUP信号生成部27aにより、ノード10からWAKEUPパケットを受信したか否かを判定するステップS206。ノード10からWAKEUPパケットを受信したと判定された場合ステップS206Yes、ノード20は、ステップS207へ処理を移す。一方、WAKEUPパケットを受信したと判定されなかった場合ステップS206No、ノード20は、ステップS206を繰り返す。続いて、ノード20は、WAKEUP信号生成部27aにより、WAKEUPパケットのWAKEUPデータをWAKEUPデータレジスタ27a-3にセットするステップS207。続いて、ノード20は、比較部27a-5により、SleepIDレジスタ27a-1の値と、WAKEUPデータレジスタ27a-3のWAKEUPデータに含まれるSleepIDとが等しいか否かを判定するステップS208。SleepIDレジスタ27a-1の値と、WAKEUPデータレジスタ27a-3のWAKEUPデータに含まれるSleepIDとが等しいと判定された場合ステップS208Yes、ノード20は、ステップS209へ処理を移す。SleepIDレジスタ27a-1の値と、WAKEUPデータレジスタ27a-3のWAKEUPデータに含まれるSleepIDとが等しいと判定されなかった場合ステップS208No、ノード20は、ステップS206へ処理を移す。続いて、ノード20は、AND部27a-7によりWAKEUP信号を生成してハードスレッド23a-1へ出力するステップS209。続いて、ノード20は、ハードスレッド23a-1により、WAKEUP信号が出力されたことに応じて、ステップS205で停止されたハードスレッドを起動させステップS210、中断プロセスを再開するステップS211。第1の実施形態による効果CPU内において、システムバスコントローラを共有するハードスレッドの一部が停止中、所定周期でCPUの資源を使用するポーリング方式に比べ、他のハードスレッドがシステムバスコントローラ等のCPU資源を占有できる。よって、他のハードスレッドが処理をより多く実行できるようになる。また、割り込み方式に比べ、プロセス再開時のOS処理によるレジスタ待避及び復帰処理を要さないので、ハードスレッドの起動及びプロセスの再開に要する時間を短くできる。また、SleepIDをハードスレッドに対して固定にすることにより、プロセス間でSleepIDを通知せずともハードスレッドの起動を指示することができる。また、SleepIDを指定して、WAKEUP信号による通知を行うことにより、特定のハードスレッド上のプロセスを起動したり、停止したりできる。そのため、誤って他のプロセスが起動したり、停止したりすることを防止できる。さらに、CPUIDを指定することにより、ハードスレッドのプロセス起動を行うので、各CPU間の通信プロセスの同期制御を行うことができる。[第2の実施形態]第2の実施形態に係る情報処理装置の構成要素について、第1の実施形態に係る情報処理装置と同一の機能及び処理の構成要素には同一の名称及び参照符号を付与して説明を省略し、異なる機能及び処理の構成要素についてのみ説明を行う。第2の実施形態の情報処理装置の構成図6は、第2の実施形態に係る情報処理装置の構成を示すブロック図である。図6に示すように、第2の実施形態に係る情報処理装置2は、ノード30及び40を有する。ノード30は、第1の実施形態に係る情報処理装置1のノード10と比較して、WAKEUP信号生成部17aに代えてWAKEUP信号生成部37a及び38aを有する。また、ノード30は、WAKEUP信号生成部17bに代えてWAKEUP信号生成部37b及び38bを有する。ノード40は、ノード30と同一の構成であり、参照符号が異なる同一名称の構成要素は、同一の構成及び機能を有する。ノード40は、第1の実施形態に係る情報処理装置1のノード20と比較して、WAKEUP信号生成部27aに代えてWAKEUP信号生成部47a及び48aを有する。また、ノード40は、WAKEUP信号生成部27bに代えてWAKEUP信号生成部47b及び48bを有する。第2の実施形態のWAKEUP信号生成部の構成WAKEUP信号生成部47aを代表させて、WAKEUP信号生成部37a、37b、47a及び47bの構成を説明する。すなわち、WAKEUP信号生成部37a、37b及び47bの構成は、WAKEUP信号生成部47aの構成と同一である。図6に示すように、WAKEUP信号生成部47aは、SleepIDレジスタ27a-1、WAKEUPデータレジスタ27a-3、比較部27a-5、AND部27a-7、タイマ27a-9及びOR部27a-11を有する。WAKEUP信号生成部47aは、ハードスレッド23a-1に対応して設けられる。同様に、WAKEUP信号生成部48aは、ハードスレッド23a-1に対応して設けられる。同様に、WAKEUP信号生成部47b及び48bは、CPU23bに備えられる各ハードスレッドに対応して設けられる。CPU13a、13b、23a及び23bの各ハードスレッドは、それぞれに対応するWAKEUPデータレジスタの内容を読み出す。WAKEUP信号生成部37a~48bにおいて、受信したWAKEUPデータと、各WAKEUP信号生成部それぞれのSleepIDレジスタのSleepIDとが一致する場合に、このSleepIDが各WAKEUPデータレジスタに書き込まれる。これにより、複数のハードスレッドが処理待ち状態になったとき、各ハードスレッドが、対応するWAKEUPデータレジスタにアクセスし、自ハードスレッド宛のWAKEUPデータが受信されたことを確認できる。また、WAKEUPデータレジスタに書き込まれたWAKEUPデータが、対応するハードスレッドにより読み出される以前に、他のハードスレッド宛のWAKEUPデータでWAKEUPデータレジスタが更新されてしまうことを防ぐ。タイマ27a-9は、ハードスレッド23a-1が、処理の実行中にデータの入力待ちが発生して処理を中断する時にハードスレッド23a-1のSleepIDを出力する際に、システムバス22を経由してタイマ値をセットするタイマである。タイマ27a-9は、所定のタイマ値がセットされると、所定の時間間隔でタイマ値を減算し、タイマ値が0になるとON信号をOR部27a-11へ出力する。第2の実施形態では、AND部27a-7は、比較部27a-5から出力されたセレクト信号と、IC-ctrl25から出力されたパケット受信パルスとの論理積を示す信号をOR部27a-11へ出力する。OR部27a-11は、AND部27a-7から出力された論理積を示す信号と、タイマ27a-9から出力されたON信号との論理和を取る論理ゲートである。すなわち、OR部27a-11は、タイマ27a-9が所定の時間を計時した場合に、ハードスレッド23a-1へ停止を解除して起動し、処理を再開する指示を出力する。若しくは、OR部27a-11は、通知されたSleepIDと、SleepIDレジスタ27a-1にセットされたSleepIDとが一致する場合に、ハードスレッド23a-1へ停止を解除して起動し、処理を再開する指示を出力する。ハードスレッド23a-1は、この指示に応じて、停止を解除して起動し、処理を再開する。同様に、WAKEUP信号生成部48aが有するタイマは、ハードスレッド23a-2が、処理の実行中にデータの入力待ちが発生した際に処理を中断する時にハードスレッド23a-2のSleepIDを出力する際にタイマ値をセットするタイマである。WAKEUP信号生成部48aが有するタイマは、所定のタイマ値がセットされると、所定の時間間隔でタイマ値を減算し、タイマ値が0になるとON信号を、WAKEUP信号生成部48aが有するOR部へ出力する。第2の実施形態では、AND部27a-8は、AND部27a-7と同様に、比較部27a-6から出力されたセレクト信号と、IC-ctrl25から出力されたパケット受信パルスとの論理積を示す信号をOR部27a-12へ出力する。OR部27a-12は、AND部27a-8から出力された論理積を示す信号と、タイマ27a-10から出力されたON信号との論理和を取る論理ゲートである。すなわち、OR部27a-12は、タイマ27a-10が所定の時間を計時した場合に、ハードスレッド23a-2へ停止を解除して起動し、処理を再開する指示を出力する。若しくは、OR部27a-12は、通知されたSleepIDと、SleepIDレジスタ27a-2にセットされたSleepIDとが一致する場合に、ハードスレッド23a-2へ停止を解除して起動し、処理を再開する指示を出力する。ハードスレッド23a-2は、この指示に応じて、停止を解除して起動し、処理を再開する。第2の実施形態の処理図7は、第2の実施形態に係る処理を示すフローチャートである。図7は、ノード40のハードスレッド23a-1が、処理を実行中にノード30が保持するデータを要し、そのデータがノード30のCPU13aによりノード40の共有メモリ26bへコピーされる処理が完了するまで待ち合わせる例を示す。しかし、図7は、一例を示すに過ぎず、ノード30又は40のハードスレッドが、処理の実行中に、ノード30又は40の他のCPUによる処理が完了するまで待ち合わせる場合であれば、同様の処理となる。図7において、ノード30における処理は、図5に示す第1の実施形態のノード10における処理と同一であるので、説明を省略する。一方、ノード40は、SVP28により、ノード40が備えるCPU23a及び23bの各ハードスレッドを識別するSleepIDをノード30のSVP18へ送信するステップS401。なお、ステップS401は、情報処理装置2又は各ノードの起動時等において、各ノードのSVPが自ノード内の各ハードスレッドの識別情報であるSleepIDを、各ハードスレッドにおける処理の実行に先立って他のノードへ予め通知する処理である。続いて、ノード40は、CPU23a及び23bの各ハードスレッドにおいて各々のプロセス処理を実行するステップS402。続いて、ノード40は、CPU23a及び23bの各ハードスレッドにより、ステップS402のプロセス処理の実行中において、ノード30におけるステップS102のプロセス処理が完了することを待ち合わせるか否かを判定するステップS403。ノード30におけるステップS102の処理が完了することを待ち合わせると判定された場合ステップS403Yes、ノード40は、ステップS404へ処理を移す。ノード30におけるステップS102のプロセス処理が完了することを待ち合わせると判定されなかった場合ステップS403No、ノード40は、ステップS402へ処理を移し、各ハードスレッドによりプロセス処理を継続する。ここでは、例えば、ノード30におけるステップS102のプロセス処理が完了することを待ち合わせると判定されたハードスレッドは、ハードスレッド23a-1である。続いて、ノード40は、プロセス処理の完了を待ち合わせるハードスレッド23a-1により、SleepIDレジスタ27a-3へハードスレッド23a-1のSleepIDをセットし、タイマ27a-9にタイマ値をセットするステップS404。続いて、ノード40は、ハードスレッド23a-1により実行中のプロセスを中断し中断したプロセスを、以下、中断プロセスと呼ぶ、スレッドを停止するステップS405。続いて、ノード40は、WAKEUP信号生成部47aにより、図8を参照して後述するWAKEUP信号ON処理を実行するステップS406。続いて、ノード40は、WAKEUP信号生成部47aによりWAKEUP信号がONにされたか否かを判定するステップS407。WAKEUP信号がONにされたと判定された場合ステップS407Yes、ノード40は、ステップS405で停止されたハードスレッド23a-1を起動させるステップS408。WAKEUP信号がONにされたと判定されなかった場合ステップS407No、ノード40は、ステップS406へ処理を移す。続いて、ノード40は、ハードスレッド23a-1により、自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされているか否かを判定するステップS409。自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされていると判定された場合ステップS409Yes、ハードスレッド23a-1は、中断プロセスを再開するステップS410。自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされていると判定されなかった場合ステップS409No、ハードスレッド23a-1は、プロセス切り替え処理を行うステップS411。そして、ハードスレッド23a-1は、中断プロセスとは異なる別プロセスを実行するステップS412。続いて、ハードスレッド23a-1は、自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされているか否かを判定するステップS413。自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされていると判定された場合ステップS413Yes、ハードスレッド23a-1はプロセス切り替えを行いステップS414、中断プロセスを再開するステップS410。なお、自スレッドのSleepIDがWAKEUPデータレジスタ27a-3にセットされていると判定されなかった場合ステップS413No、ハードスレッド23a-1は、ポーリング処理によりステップS413を繰り返す。第2の実施形態のWAKEUP信号ON処理のフローチャート図8は、第2の実施形態に係るWAKEUP信号ON処理を示すフローチャートである。第2の実施形態に係るWAKEUP信号ON処理は、図7のステップS406に示す処理である。ノード40は、WAKEUP信号生成部47aにより、タイマ27a-9がタイムアウトしたか否かを判定するステップS406a。タイマ27a-9がタイムアウトしたと判定された場合ステップS406aYes、ノード40は、WAKEUP信号生成部47aによりWAKEUP信号をONにするステップS406e。一方、タイマ27a-9がタイムアウトしたと判定されなかった場合ステップS406aNo、ノード40は、WAKEUP信号生成部47aにより、ノード30からWAKEUPパケットを受信したか否かを判定するステップS406b。ノード30からWAKEUPパケットを受信したと判定された場合ステップS406bYes、ノード40は、ステップS406cへ処理を移す。一方、ノード30からWAKEUPパケットを受信したと判定されなかった場合ステップS406bNo、ノード40は、ステップS406aへ処理を移す。続いて、ノード40は、比較部27a-5により、SleepIDレジスタ27a-1の値と、受信したWAKEUPデータに含まれるSleepIDとが等しいか否かを判定するステップS406c。SleepIDレジスタの値と、受信したWAKEUPデータに含まれるSleepIDとが等しいと判定された場合ステップS406cYes、ノード40は、ステップS406dへ処理を移す。SleepIDレジスタの値と、受信したWAKEUPデータに含まれるSleepIDとが等しいと判定されなかった場合ステップS406cNo、ノード40は、ステップS406aへ処理を移す。続いて、ノード40は、WAKEUP信号生成部47aにより、受信したWAKEUPパケットのWAKEUPデータを、WAKEUPデータレジスタ27a-3にセットするステップS406d。続いて、ノード40は、WAKEUP信号生成部47aによりWAKEUP信号をONにし、ハードスレッド23a-1へ出力するステップS406e。ステップS406eの処理が終了すると、ノード40は、図7に示すステップS407へ処理を移す。第2の実施形態による効果OSは、あるプロセスの処理を一定時間実行すると、他のプロセスに実行を切り替えるため、長時間にわたってスレッドを停止させると、起動指示を受信してもプロセスがタイムアウトして、意図しない他のプロセスに自動的に切替えてしまうことがある。このため、タイマを使ってプロセス切り替え前にハードスレッドを起動させ、OSにより、実行中のプロセスが別のプロセスに切り替えられることを防ぐことができる。また、タイマとWAKEUPデータレジスタと併用し、実行中のプロセスから次に実行させたいプロセスへ意図的に実行するプロセスを切り替えることにより、プロセスがプロセス切り替え管理を行うことができる。上述の第1及び第2の実施形態では、ハードスレッドの停止状態を第1の状態とし、ハードスレッドの起動状態を第2の状態とした。そして、他のノードが保持するデータの書き込みが終了することを待ち合わせる、第1の状態にあるハードスレッドに対して、データの書き込みを行って終了した他のノードのハードウェアが終了を通知するとした。そして、その通知に応じて、ハードスレッドが第1の状態から第2の状態へ移行するとした。しかし、開示の技術は、第1の状態がハードスレッドの停止状態、第2の状態がハードスレッドの起動状態であることに限られない。すなわち、ハードスレッドが、自ノード又は他ノードのハードスレッドで動作するプロセスが期待の状態へ移行するまで第1の状態にある場合、ハードスレッドを指定して期待の状態への移行を通知して第1の状態から第2の状態へ移行させる技術に広く適用できる。なお、上述の第1及び第2の実施形態における情報処理装置1及び2が備えるノードの数、各ノードが備えるCPUの数、各CPUが備えるハードスレッドの数は、任意に変更可能である。また、各ハードスレッドに対応して設けられるWAKEUP信号生成部は、第1の実施形態のようにCPU毎に設けられてもよいし、第2の実施形態のようにハードスレッド毎に設けられてもよい。