(57)【要約】  並列処理システム上で同時に動作する複数のプロセスに対する計算資源の割り当てを効率良く行う。並列計算システムは、複数の機能ノードと、機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する。機能ノードは、並列計算システムが有する複数の機能ノードの一部又は全部の機能ノードから構成される機能ノード群を、１つの群として管理する。ネットワークスイッチは、通信要求を入出力するためのポートである複数の入出力ポートと、入出力ポートから入力された通信要求を入出力ポートへ出力するスイッチと、を備え、機能ノード間の通信経路毎に通信帯域幅を管理しスイッチを制御する。
2010064661.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおいて、
前記機能ノードが、
情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、
前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、
前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理手段と、
を備え、
前記ネットワークスイッチが、
前記通信要求を入出力するためのポートである複数の入出力ポートと、
前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、
前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、
を備えていることを特徴とする並列計算システム。
【請求項２】
前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
前記機能ノード群管理手段が、
前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持手段と、
前記機能ノード管理情報保持手段が管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換手段と、
を備えることを特徴とする請求項１に記載の並列計算システム。
【請求項３】
前記機能ノードが、前記機能ノードの電源の投入及び遮断の制御、前記機能ノードの動作周波数の制御、前記機能ノードの動作電圧の制御の何れか又はこれらを組み合わせた制御を行う電源ｆｖ制御手段を、更に備えることを特徴とする請求項２に記載の並列計算システム。
【請求項４】
前記ローカル通信要求及び前記グローバル通信要求は、当該ローカル通信要求又は当該前記グローバル通信要求が特権的な通信要求であるか否かを示す情報である特権制御情報を有し、
前記機能ノードが、前記機能ノードが前記機能ノード入出力ポートから送出できる前記グローバル通信要求の前記特権制御情報の特権レベルの上限値を保持する特権レベル記憶手段を、
更に備えることを特徴とする請求項２又は３に記載の並列計算システム。
【請求項５】
前記帯域幅管理手段が、
前記ネットワークスイッチを前記通信経路の一部として含む前記通信経路と前記通信経路に割り当てられている通信帯域幅との対応付けを保持する帯域幅管理情報保持手段と、
前記帯域幅管理情報に従って前記ネットワークスイッチの前記スイッチを制御するスイッチ制御手段と、
を備えることを特徴とする請求項２乃至４の何れか１項に記載の並列計算システム。
【請求項６】
前記ネットワークスイッチは、
前記ネットワークスイッチの前記入出力ポートに対応する複数の入力ポート及び複数の出力ポートと、
複数の前記入力ポート毎に前記通信経路を制御し、前記複数の出力ポートに対応した出力を持つマルチプレクサと、
前記マルチプレクサの前記出力毎にグローバル通信要求を蓄積するためのバッファと、
複数の前記マルチプレク毎の前記出力ポートを出力先とする複数の前記バッファに蓄積されている前記グローバル通信要求を前記出力ポートに出力する帯域幅制御手段と、
を備えることを特徴とする請求項２乃至５の何れか１項に記載の並列計算システム。
【請求項７】
前記帯域幅制御手段は、当該帯域幅制御手段が前記グローバル通信要求を受け取る複数の前記バッファに対する処理を、前記通信経路毎に割り当てられている通信帯域幅に比例した頻度でラウンドロビン方式によって行うことを特徴とする請求項６に記載の並列計算システム。
【請求項８】
前記ネットワークスイッチが、前記ネットワークスイッチの電源の投入及び遮断の制御、前記ネットワークスイッチの動作周波数の制御、前記ネットワークスイッチの動作電圧の制御の何れか又はこれらを組み合わせた制御を行うネットワークスイッチ電源ｆｖ制御手段を、
更に備えることを特徴とする請求項２乃至７の何れか１項に記載の並列計算システム。
【請求項９】
前記機能ノードとして、前記通信路を構成する複数の前記ネットワークスイッチ電源ｆｖ制御手段を専用通信路を介して制御する電源ｆｖ制御ノードを備えることを特徴とする請求項８に記載の並列計算システム。
【請求項１０】
前記機能ノードとして複数の前記機能ノード群から共通にアクセスすることができ、記憶機能を共有することができるＭＭＵ（Memory Management Unit）付き記憶ノードを持つことを特徴とする請求項２乃至９の何れか１項に記載の並列計算システム。
【請求項１１】
前記ＭＭＵ付き記憶ノードは、
前記機能ノード群管理手段と、前記特権レベル記憶手段と、前記電源ｆｖ制御手段と、前記機能ノード入出力ポートと、に加え、
前記機能ノード入出力ポートから入力された前記グローバル通信要求から機能ノード群ＩＤを抽出するための機能ノード群ＩＤ抽出手段と、
物理アドレスと読み書き制御信号によってデータを読み書きできる記憶素子と、
前記機能ノード群管理手段によって前記グローバル通信要求から変換された前記ローカル通信要求から前記記憶要素に対するアクセス制御情報を抽出し、抽出された前記アクセス制御情報の論理アドレスによって前記記憶素子に対してデータの読み書き制御を行う記憶アクセス制御手段と、
前記機能ノード群毎に前記論理アドレスと前記記憶素子にアクセスするための物理アドレスの変換情報を保持する記憶管理情報保持手段と、
前記機能ノード群ＩＤ抽出手段で抽出された前記機能ノード群ＩＤと前記記憶管理情報を用いて前記記憶アクセス手段が出力する論理アドレスを物理アドレスに変換して前記記憶素子に入力するＭＭＵと、を備え、
前記記憶アクセス制御手段は、前記ローカル通信要求から抽出された前記アクセス制御情報のアクセスタイプが読み出しの場合、前記記憶素子から読み出されたデータと前記機能ノード群ＩＤとから前記読み出されたデータを転送すべき前記機能ノードへの前記ローカル通信要求を構成し前記機能ノード群管理手段に転送し、
前記機能ノード管理手段は、前記機能アクセス制御手段から転送された前記ローカル通信要求を前記グローバル通信要求に変換して前記機能ノード入出力ポートから送出することを特徴とする請求項１０に記載の並列計算システム。
【請求項１２】
情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理方法であって、
前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素を用意するステップと、
前記機能ノードが、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートを用意するステップと、
前記機能ノードが、前記並列計算方法が有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理ステップと、
前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートを用意するステップと、
前記ネットワークスイッチが、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチを用意するステップと、
前記ネットワークスイッチが、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理ステップと、
を備えていることを特徴とする並列計算方法。
【請求項１３】
前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
前記機能ノード群管理ステップにおいて、前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持ステップと、
前記機能ノード群管理ステップにおいて、前記機能ノード管理情報保持ステップにおいて管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換ステップと、
を更に備えることを特徴とする請求項１２に記載の並列計算方法。
【請求項１４】
前記機能ノードが、前記機能ノードの電源の投入及び遮断の制御、前記機能ノードの動作周波数の制御、前記機能ノードの動作電圧の制御の何れか又はこれらを組み合わせた制御を行う電源ｆｖ制御ステップを、更に備えることを特徴とする請求項１３に記載の並列計算方法。
【請求項１５】
前記ローカル通信要求及び前記グローバル通信要求は、当該ローカル通信要求又は当該前記グローバル通信要求が特権的な通信要求であるか否かを示す情報である特権制御情報を有しており、
前記機能ノードが、前記機能ノードが前記機能ノード入出力ポートから送出できる前記グローバル通信要求の前記特権制御情報の特権レベルの上限値を保持する特権レベル記憶ステップを、
更に備えることを特徴とする請求項１３又は１４に記載の並列計算方法。
【請求項１６】
前記帯域幅管理ステップにおいて、
前記ネットワークスイッチを前記通信経路の一部として含む前記通信経路と前記通信経路に割り当てられている通信帯域幅との対応付けを保持する帯域幅管理情報保持ステップと、
前記帯域幅管理情報に従って前記ネットワークスイッチの前記スイッチを制御するスイッチ制御ステップと、
を更に備えることを特徴とする請求項１３乃至１５の何れか１項に記載の並列計算方法。
【請求項１７】
前記ネットワークスイッチが、前記ネットワークスイッチの前記入出力ポートに対応する複数の入力ポート及び複数の出力ポートを用意するステップと、
前記ネットワークスイッチが、複数の前記入力ポート毎に前記通信経路を制御し、前記複数の出力ポートに対応した出力を持つマルチプレクサを用意するステップと、
前記ネットワークスイッチが、前記マルチプレクサの前記出力毎にグローバル通信要求を蓄積するためのバッファを用意するステップと、
複数の前記マルチプレク毎の前記出力ポートを出力先とする複数の前記バッファに蓄積されている前記グローバル通信要求を前記出力ポートに出力する帯域幅制御ステップと、
を更に備えることを特徴とする請求項１３乃至１６の何れか１項に記載の並列計算方法。
【請求項１８】
前記帯域幅制御ステップにおいて、当該帯域幅制御ステップが前記グローバル通信要求を受け取る複数の前記バッファに対する処理を、前記通信経路毎に割り当てられている通信帯域幅に比例した頻度でラウンドロビン方式によって行うことを特徴とする請求項１７に記載の並列計算方法。
【請求項１９】
前記ネットワークスイッチが、前記ネットワークスイッチの電源の投入及び遮断の制御、前記ネットワークスイッチの動作周波数の制御、前記ネットワークスイッチの動作電圧の制御の何れか又はこれらを組み合わせた制御を行うネットワークスイッチ電源ｆｖ制御ステップを、
更に備えることを特徴とする請求項１３乃至１８の何れか１項に記載の並列計算方法。
【請求項２０】
前記機能ノードとして、前記通信路を構成する複数の前記ネットワークスイッチ電源ｆｖ制御ステップにおける動作を専用通信路を介して制御する電源ｆｖ制御ノードを備えることを特徴とする請求項１９に記載の並列計算方法。
【請求項２１】
前記機能ノードとして、複数の前記機能ノード群から共通にアクセスすることができ、記憶機能を共有することができるＭＭＵ付き記憶ノードを持つことを特徴とする請求項１３乃至２０の何れか１項に記載の並列計算方法。
【請求項２２】
前記ＭＭＵ付き記憶ノードが、前記機能ノード群管理ステップと、前記特権レベル記憶ステップと、前記電源ｆｖ制御ステップと、前記機能ノード入出力ポートを用意するステップと、に加え、
前記ＭＭＵ付き記憶ノードが、前記機能ノード入出力ポートから入力された前記グローバル通信要求から機能ノード群ＩＤを抽出するための機能ノード群ＩＤ抽出ステップと、
前記ＭＭＵ付き記憶ノードが、物理アドレスと読み書き制御信号によってデータを読み書きできる記憶素子を用意するステップと、
前記ＭＭＵ付き記憶ノードが、前記機能ノード群管理ステップによって前記グローバル通信要求から変換された前記ローカル通信要求から前記記憶要素に対するアクセス制御情報を抽出し、抽出された前記アクセス制御情報の論理アドレスによって前記記憶素子に対してデータの読み書き制御を行う記憶アクセス制御ステップと、
前記ＭＭＵ付き記憶ノードが、前記機能ノード群毎に前記論理アドレスと前記記憶素子にアクセスするための物理アドレスの変換情報を保持する記憶管理情報保持ステップと、
前記ＭＭＵ付き記憶ノードが、前記機能ノード群ＩＤ抽出ステップで抽出された前記機能ノード群ＩＤと前記記憶管理情報を用いて前記記憶アクセスステップが出力する論理アドレスを物理アドレスに変換して前記記憶素子に入力するＭＭＵと、を備え、
前記記憶アクセス制御ステップにおいて、前記ローカル通信要求から抽出された前記アクセス制御情報のアクセスタイプが読み出しの場合、前記記憶素子から読み出されたデータと前記機能ノード群ＩＤとから前記読み出されたデータを転送すべき前記機能ノードへの前記ローカル通信要求を構成し前記機能ノード群管理ステップに転送し、
前記機能ノード管理ステップにおいて、前記機能アクセス制御ステップで転送された前記ローカル通信要求を前記グローバル通信要求に変換して前記機能ノード入出力ポートから送出することを特徴とする請求項２１に記載の並列計算方法。
【請求項２３】
情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理プログラムにおいて、
前記機能ノードが、
情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、
前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、
前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理手段と、
を備え、
前記ネットワークスイッチが、
前記通信要求を入出力するためのポートである複数の入出力ポートと、
前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、
前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、
を備えている並列計算システムとしてコンピュータを機能させることを特徴とする管理プログラム。
【請求項２４】
請求項２３に記載の管理プログラムにおいて、
前記並列通信システムを、
前記機能ノード群を構成する複数の前記機能ノード間の通信においては、前記機能ノード群を構成する複数の前記機能ノード間のみで相互に通信を行うための通信要求であるローカル通信要求を用い、
前記通信路における通信では、前記並列計算システムを構成する全ての前記機能ノード間で相互に通信を行うためのグローバル通信要求を用い、
前記機能ノード群管理手段が、
前記ローカル通信要求と前記グローバル通信要求の相互の変換のための情報を管理する機能ノード管理情報保持手段と、
前記機能ノード管理情報保持手段が管理する前記情報を用いて、前記機能要素が入出力する前記ローカル通信要求と前記機能ノード入出力ポートから入出力される前記グローバル通信要求とを相互に変換する通信要求変換手段と、
を備える並列計算システムとして機能させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算システムに関し、特に複数のアプリケーションやプロセスへのハードウェア資源の割り当て及び管理が可能な並列計算システム、その方法及びそのプログラムに関する。
【背景技術】
【０００２】
本発明に関連する並列処理システムの一例が、非特許文献１及び非特許文献２に記載されている。図１１に示すように、この並列計算システム２５００は、ハードウェアとソフトウェアの組合せによって構成されている。【０００３】
具体的には、ハードウェアとして、演算、ＩＯ（入出力）、記憶等の機能を行う機能ノード２４００を複数有している。そして、機能ノード２４００に加えて、これら機能ノード２４００間の通信のための通信路を有している。【０００４】
更に、ソフトウェアとして、仮想化層２３００、仮想マシン２２００及び仮想マシン上のプロセス２１００を有している。【０００５】
このような構成を有する本発明に関連する並列計算システム２５００は、次のように動作する。【０００６】
まず、仮想化層２３００は、各仮想マシン２２００に対して動的、または静的に機能ノード２４００を割り当てる。これにより、仮想マシン２２００は、それぞれ独立した機能ノードから構成される仮想的な並列計算システム２５００として動作することができる。各仮想マシン２２００は、物理的な機能ノード２４００の割り当てや、他の仮想マシン２２００の実行状態を感知することなく、自身に割り当てられた仮想並列マシン２２００の上でプロセス２１００を実行することが可能である。仮想マシン２２００上で動作するプロセス２１００は、通常のＯＳ（Operating System）であったり、アプリケーションそのものであったりする。物理的なハードウェアを構成する機能ノード２４００は、通信路を介して相互に通信しながら処理を行う。【０００７】
また、複数の機能ノードを備えた並列計算システムの他の例が、特許文献１に記載されている。特許文献１に記載の技術によれば、ソフトウェアによりオブジェクトを構成し、このオブジェクトに演算、ＩＯ（入出力）、記憶等の機能を実現させることができる。【０００８】
そして、このような構成をとることにより、複数の機能ノードを備えた並列計算システムを実現することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１５５６９２号公報
【非特許文献】
【００１０】
【非特許文献１】中田  秀基  著「仮想化技術の動向と仮想クラスタ管理システムの紹介」ＧｒｉｄＷｏｒｌｄ  ２００７  チュートリアル資料、２００７年５月３１日、ｐ．５
【非特許文献２】富士通株式会社「Ｌｉｎｕｘ仮想マシン機能」ホワイトペーパー、［online］、２００８年３月、ｐｐ．５−１４、［平成２０年１１月２１日検索］、インターネット〈ＵＲＬ：http://primeserver.fujitsu.com/primergy/software/linux/products/distribution/pdf/primergy-vm-wp.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述した特許文献１に記載の技術により、並列計算システムを実現することができるが、或るオブジェクト実行が、他のオブジェクト実行性能に影響を与えることがあるという問題がある。理由は、以下の通りである。【００１２】
特許文献１に記載の技術では、計算システムがハードウェアとして備える演算、ＩＯ（入出力）、記憶等の機能をＯＳの管理のもとに時分割で割り当てることにより実行する。つまり、複数のオブジェクトでハードウェアを共有することになる。そのため、或るオブジェクト実行が、他のオブジェクト実行性能に影響を与えるという事態が生じる。【００１３】
この点、上述したように、非特許文献１及び非特許文献２に記載されている並列処理システム２５００を用いることにより各仮想マシン２２００は物理的な機能ノード２４００の割り当てや、他の仮想マシン２２００の実行状態を感知することなく動作することが可能となる。しかし、非特許文献１及び非特許文献２に記載されている並列処理システム２５００には、以下のような問題点がある。【００１４】
第１の問題点は、処理のオーバーヘッドが大きいということである。その理由は、物理的なハードウェアと実際の処理を行うプロセスの間に仮想化層、仮想マシンというソフトウェアの階層が存在するためである。【００１５】
第２の問題点は、各仮想マシン及びその上で動くプロセス、に割り当てられた機能ノード間の通信帯域幅が保証されないということである。その理由は、物理的な機能ノード間の通信を介在する通信路に、仮想マシン毎や、または仮想マシン内の機能ノード間の通信帯域幅を保証する機能が存在しないためである。【００１６】
第３の問題点は、仮想マシンおよびその上で動くプロセス間の分離が完全ではないということである。その理由は、各仮想マシンの物理的なハードウェアへのマッピングは仮想化層というソフトウェアで行われるためである。【００１７】
そこで、本発明は１つの並列計算システム上でソフトウェア層のオーバーヘッドを少なく複数のプロセスが実行できる並列計算システム、その方法及びそのプログラムを提供することを目的とする。【００１８】
更に、本発明はプロセスに割り当てられた機能ノード間の通信帯域幅を保証できる並列計算システム、その方法及びそのプログラムを提供することを他の目的とする。【００１９】
更に、本発明は複数のプロセス間の分離をハードウェアで実現できる並列計算システム、その方法及びそのプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【００２０】
本発明の第１の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおいて、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理手段と、を備え、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートと、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、を備えていることを特徴とする並列計算システムが提供される。【００２１】
本発明の第２の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理方法であって、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素を用意するステップと、前記機能ノードが、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートを用意するステップと、前記機能ノードが、前記並列計算方法が有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理ステップと、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートを用意するステップと、前記ネットワークスイッチが、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチを用意するステップと、前記ネットワークスイッチが、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理ステップと、を備えていることを特徴とする並列計算方法が提供される。【００２２】
本発明の第３の観点によれば、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する複数の機能ノードと、前記機能ノード間で通信を行うための通信路の一部であり通信経路として機能する複数のネットワークスイッチとを有する並列計算システムにおける管理プログラムにおいて、前記機能ノードが、情報処理を行うための、演算機能、入出力機能及び記憶機能の何れか又はそれらを組合せた機能を有する機能要素と、前記機能ノード間で相互に通信を行うために前記機能ノード間で転送される通信要求を入出力するためのポートである機能ノード入出力ポートと、前記並列計算システムが有する複数の前記機能ノードの一部又は全部の前記機能ノードから構成される機能ノード群を、１つの群として管理する機能ノード群管理手段と、を備え、前記ネットワークスイッチが、前記通信要求を入出力するためのポートである複数の入出力ポートと、前記入出力ポートから入力された前記通信要求を前記入出力ポートへ出力するスイッチと、前記機能ノード間の前記通信経路毎に通信帯域幅を管理し前記スイッチを制御する帯域幅管理手段と、を備えている並列計算システムとしてコンピュータを機能させることを特徴とする管理プログラムが提供される。
【発明の効果】
【００２３】
本発明によれば、機能ノード群管理部によりＯＳや仮想化層の介在無しに直接機能ノード間が通信できることから、プロセスを構成する機能ノード間通信のオーバーヘッドの削減を実現することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態の基本的構成を示すブロック図である。
【図２】本発明が処理の対象とするプロセスの例を示す構成図である。
【図３】本発明の実施の形態の動作を説明するための２次元メッシュ構成の並列計算システムのブロック図である。
【図４】本発明の実施の形態の機能ノード間の通信の通信要求の構成例を示す図である。
【図５】本発明の実施の形態の機能ノードの構成例を示す図である。
【図６】本発明の実施の形態のネットワークスイッチの構成例を示す図である。
【図７】本発明の実施の形態のネットワークスイッチを構成するスイッチの構成例を示す図である。
【図８】本発明の実施の形態のネットワークスイッチによる帯域幅制御を説明する図である。
【図９】本発明の実施の形態のＭＭＵ付き記憶ノードの構成例を示す図である。
【図１０】本発明の実施の形態の電源ｆｖ制御ノードの構成例を示す図である。
【図１１】本発明に関連する仮想クロスタ技術について示すブロック図である。
【図１２】本発明の実施の形態の機能ノード３００の基本的動作について示すフローチャートである。
【図１３】本発明の実施の形態の機能ネットワークスイッチ４００の基本的動作について示すフローチャートである。
【発明を実施するための形態】
【００２５】
次に、本発明に係る並列計算システム、その方法及びそのプログラムの実施の形態について図面を参照して詳細に説明する。
【００２６】
図１に、本発明の第１の実施の形態を示す。本実施形態の並列計算システム１０００は、複数の機能ノード３００と、これら機能ノード３００間の通信を行うための通信路である通信路５００とを有している。
【００２７】
機能ノード３００は、演算機能、入出力機能、記憶機能等を提供するノードである。機能ノード３００は、演算機能、入出力機能、記憶機能等を提供する機能要素３１０と複数の機能ノード群を１つのまとまりとして管理するための機能ノード群管理部３２０とを有する。
【００２８】
また、通信路５００は、複数のネットワークスイッチ４００を有している。そして、ネットワークスイッチ４００は、機能ノード３００間の通信経路として機能するスイッチ４２０と機能ノード３００間の通信の帯域幅を管理するための帯域幅管理部４１０とを有する。
【００２９】
並列計算システム１０００では、複数のプロセス１００が実行される。なお、プロセス１００は、通常のＯＳであったり、アプリケーションそのものであったりする。プロセス１００のそれぞれに、複数の機能ノード３００からなる「機能ノード群」と、機能ノード３００間の通信の「帯域幅」が割り当てられる。
【００３０】
プロセスと機能ノード群の対応付け２００は、プロセス１００とプロセス１００に割り当てられた機能ノード群の対応付けである。この対応付けは、機能ノード３００の有する機能ノード群管理部３２０と、ネットワークスイッチ４００の有する帯域幅管理部４１０で行われる。
【００３１】
図２は、プロセス１００と、プロセス１００を構成するために割り当てられた機能ノード群の例である。機能ノード群は複数の機能ノード３００と、機能ノード３００間で通信を行うための通信経路５１０から構成される。図２のｎ１〜ｎ９は、機能ノードである。具体的には、ｎ１、ｎ６は入出力ノード、ｎ２、ｎ３、ｎ４及びｎ５は演算ノード、ｎ７、ｎ８及びｎ９は記憶ノードである。
【００３２】
通信経路５１０の構成は、プロセス１００で行われる処理に応じて異なる。プロセス１００が、ＯＳのような汎用的なプロセスである場合は、機能ノード３００間で完全結合が必要になる場合もある。一方、プロセス１００が特定の処理を行うためのプロセスである場合は、完全結合である必要はなく、一般的には完全結合よりはるかに少ない通信経路５１０で十分である。本実施形態は、機能ノード３００間の通信経路が完全結合を要求する場合でも対応できるが、プロセス１００に必要な特定の通信経路５１０を要求する場合に特に有効である。
【００３３】
プロセス１００を構成する機能ノード３００は、プロセス１００内でのみ有効な「ローカルノードＩＤ」により識別される。また同様に、通信経路５１０はプロセス１００内でのみ有効な「ローカル通信経路ＩＤ」で識別される。
【００３４】
図２では、ｎ１〜ｎ９がローカルノードＩＤ、ｌｎｋ１〜ｌｎｋ１９がローカル通信経路ＩＤである。機能ノード３００は、上述のローカルノードＩＤに加えて、「グローバルノードＩＤ」を持つ。ここで、グローバルノードＩＤとは並列計算システム１０００内でそれぞれの機能ノード３００を識別するためのＩＤである。図１に、グローバルノードＩＤであるＮ１〜Ｎｎを示す。
【００３５】
また、グローバルノードＩＤではなく、機能ノード３００間の通信路を識別するためのＩＤである「グローバル通信路ＩＤ」を使用することも可能である。グローバル通信路ＩＤは、個別のネットワークスイッチ４００に対応するＩＤではない。通信を行う、或る転送元機能ノード３００から或る転送先機能ノード３００へ至る通信経路は、その通信経路を構成する複数のネットワークスイッチ４００とそのネットワークスイッチ４００の接続状態として指定できる。グローバル通信経路ＩＤは、この接続状態を識別のために用いられるＩＤである。
【００３６】
プロセスと機能ノード群の対応付け２００は、プロセス１００を構成する各機能ノード３００のローカルノードＩＤと、グローバルノードＩＤの対応付けを管理することで実現する。
【００３７】
次に、機能ノード３００間で通信を行う場合について説明する。
【００３８】
機能ノード３００間で通信を行う場合は、まず転送元機能ノード３００の機能要素３１０がローカルノードＩＤやローカル通信経路ＩＤ等の「ローカル識別情報」を用いてローカル通信要求６００を作成する。そして、この作成したローカル通信要求６００を、転送先機能ノード３００への通信要求として機能ノード群管理部３２０に送出する。
【００３９】
機能ノード群管理部３２０は、受け取ったローカル通信要求６００のローカル識別情報を、グローバルノードＩＤやグローバル通信経路ＩＤ等の「グローバル識別情報」に変換することにより、グローバル通信要求７００を作成する。
【００４０】
そして、機能ノード群管理部３２０は、作成したグローバル通信要求７００を、通信路５００を構成するネットワークスイッチ４００に送出する。
【００４１】
ネットワークスイッチ４００は、グローバル通信要求７００に含まれるグローバル識別情報に基づきスイッチ４２０を制御することにより、グローバル通信要求７００が転送先機能ノード３００へ転送される。
【００４２】
以上の動作を行うことにより、機能ノード３００間での通信が実現できる。
【００４３】
ここで、ネットワークスイッチ４００が行うスイッチ４２０の制御について詳細に説明する。
【００４４】
ネットワークスイッチ４００の帯域幅管理部４１０には、予め通信経路とその通信経路に割り当てる帯域幅が登録されている。例えば、転送元グローバルノードＩＤと転送先グローバルノードＩＤと対応する通信経路へ割り当てる帯域幅情報を帯域幅管理部４１０に登録する。登録情報としては、他にも、グローバル通信経路ＩＤと対応する通信経路へ割り当てる帯域幅情報を登録することも可能である。ネットワークスイッチ４００では、グローバル通信要求７００に含まれるグローバル識別情報に基づきスイッチ４２０を制御するが、このとき、ネットワークスイッチ４００の帯域幅管理部４１０に予め登録されている帯域幅情報に応じて必要な帯域幅を割り当てることにより通信要求の要求する帯域幅を保証する。
【００４５】
次に、図１の本実施形態の全体の動作を詳細に説明する。ここでは、一般性を失うことなく、２次元メッシュ構造の通信路５００を持つ並列計算システムの構成を例に用いて説明を行う。
【００４６】
図３に２次元メッシュ構成の通信路５００を持つ場合の本実施形態の並列計算システム１０００の例を示す。図３では、機能ノード３００は２次元配列とされており、それぞれの機能ノード３００に対応して１つのネットワークスイッチ４００が接続されている。また、各ネットワークスイッチ４００は、２次元配列上の上下左右に隣接する他の４つのネットワークスイッチ４００と接続している。機能ノード３００は、演算、入出力、記憶、といった機能を提供する。なお、機能ノード３００として、複数のプロセス１００で記憶機能を共有するためのＭＭＵ（Memory Management Unit）付き記憶ノード３００−Ａを含んでも良い。また、ネットワークスイッチ４００の電源や動作周波数、動作電圧を制御するための電源ｆｖ制御ノード３００−Ｂを含んでも良い。
【００４７】
図４は、機能ノード３００間で通信を行うための通信要求及び識別情報のデータ構造の具体例を示す図である。
【００４８】
図４ａは、グローバル通信要求７００の構成例で、グローバル識別情報７１０と、ペイロード７４０とを有する。ペイロード７４０は、通信によって転送されるデータである。グローバル通信要求７００には、更に、機能ノード群ＩＤ７２０及び特権制御情報７３０を含んで構成することもできる。ここで、機能ノード群ＩＤ７２０は、機能ノード群を識別するためのＩＤである。また、特権制御情報７３０は、特権的な制御や、その他通信制御を行うための情報である。
【００４９】
更に、特権制御情報７３０は、グローバル通信要求７００の転送先を制御するための情報を保持することもできる。例えば、グローバル通信要求７００は、特権制御情報７３０を用いて、機能ノード３００だけでなく、ネットワークスイッチ４００にも転送することができる。図３の並列計算システム１０００では、機能ノード３００とネットワークスイッチ４００が１対１で対応している。したがって、機能ノード３００と対応するネットワークスイッチ４００へグローバル通信要求７００を転送する場合、グローバル通信要求７００に同じグローバル識別情報７１０を設定する。そして、それに加えて、転送先として機能ノード３００かネットワークスイッチ４００のどちらかを識別するフラグを特権制御情報７３０に設けることにより、区別して転送することが可能となる。
【００５０】
図４ｂは、ローカル通信要求６００の構成例でローカル識別情報６１０とペイロード７４０とを有する。ローカル通信要求６００には、グローバル通信要求７００と同様に機能ノード群ＩＤ７２０及び特権制御情報７３０を含んで構成することもできる。
【００５１】
図４ｃ１は、グローバル識別情報７１０の構成例で、転送先グローバルノードＩＤ８１０と、転送元グローバルノードＩＤ８２０を有する。
【００５２】
図４ｃ２は、ローカル識別情報６１０の構成例で転送先ローカルノードＩＤ９１０、転送元ローカルノードＩＤ９２０を有する。
【００５３】
図４ｄ１は、グローバル識別情報７１０の別の構成例で、グローバル通信経路ＩＤ８３０を有する。
【００５４】
図４ｄ２は、ローカル識別情報６１０の別の構成例で、ローカル通信経路ＩＤ９３０を有する。
【００５５】
図５は、機能ノード３００の構成例を示す図である。機能ノード３００は、機能要素３１０、機能ノード群管理部３２０、電源ｆｖ制御部３５０、特権レベル記憶部３６０、機能ノード入力ポート３７０及び機能ノード出力ポート３８０を有する。更に、機能ノード群管理部３２０は、通信要求変換部３３０及び機能ノード群管理情報保持部３４０を有する。
【００５６】
機能要素３１０は、演算機能、入出力機能、記憶機能のいずれかの機能を提供する。また機能要素３１０が、これらの機能に代えて、又は、これらの機能と共に、他の機能を提供するようにしても良い。
【００５７】
機能ノード群管理部３２０は、ネットワークスイッチ４００とのインタフェース部として機能する。
【００５８】
機能ノード３００は、ネットワークスイッチ４００と相互にグローバル通信要求７００をやり取りするために、機能ノード入力ポート３７０と機能ノード出力ポート３８０を持つ。
【００５９】
機能ノード群管理情報保持部３４０は、ローカル通信要求６００とグローバル通信要求７００を相互に変換するために必要な情報を保持する。機能ノード群管理情報保持部３４０が保持する情報の具体例としては、機能ノード３００が転送元機能ノード３００として通信を行う場合の、転送先機能ノード３００のローカルノードＩＤとグローバルノードＩＤの対応表が挙げられる。
【００６０】
次に、図１２のフローチャートを用いて、機能ノード３００が転送元機能ノード３００として動作する場合について説明する。
【００６１】
機能要素３１０は、図４ｃ２に例示したローカル識別情報６１０を用いてローカル通信要求６００を生成する（ステップＳ１１）。
【００６２】
通信要求変換部３３０は、このローカル通信要求６００のローカル識別情報６１０を構成する転送先ローカルノードＩＤ９１０を、機能ノード群管理情報保持部３４０を参照し、グローバルノードＩＤ８１０に変換する。また、同様に機能ノード群管理情報保持部３４０を参照し、転送元ローカルノードＩＤ９２０を、転送元グローバルノードＩＤ８２０に変換する。そして、これら変換後のＩＤを用いてグローバル識別情報７１０（図４ｃ１参照）とする（ステップＳ１３）。
【００６３】
通信要求変換部３３０は、図４ｃ１のグローバル識別情報７１０を含むグローバル通信要求７００を機能ノード出力ポート３８０からネットワークスイッチ４００に送出することにより、転送先機能ノード３００へ通信要求を転送する（ステップＳ１５）。
【００６４】
次に、機能ノード３００が転送先機能ノード３００として動作する場合について説明する。
【００６５】
ネットワークスイッチ４００から機能ノード入力ポート３７０を介して機能ノード３００に転送されたグローバル通信要求７００は、通信要求変換部３３０と機能ノード群管理情報保持部３４０によりローカル通信要求６００に変換され、機能要素３１０に転送される（ステップＳ１７）。
【００６６】
この転送の際に、機能要素３１０で転送元機能ノード３００を識別する必要がない場合は、通信要求変換部３３０では、グローバル通信要求７００からペイロード７４０を取り出し、ペイロード７４０だけを機能要素３１０に転送することもできる。この場合は、機能ノード群管理情報保持部３４０の参照は不要となり通信要求変換部３３０、機能ノード群管理情報保持部３４０を簡略化することができる。
【００６７】
グローバル通信要求７００に含まれるグローバル識別情報７１０、ローカル通信要求６００のローカル識別情報６１０がそれぞれ、グローバル通信経路ＩＤ８３０（図４ｄ１参照）、ローカル通信経路ＩＤ９３０（図４ｄ２参照）を用いて構成される場合も同様な手順でローカル通信要求６００、グローバル通信要求７００の相互の変換が可能である。
【００６８】
また、機能ノード群管理情報保持部３４０を書き換えて更新することにより、機能ノード群の構成を変更することができる。機能ノード群管理情報保持部３４０の書き変えは、他機能ノード３００からのグローバル通信要求７００で行う。具体的には、グローバル通信要求７００に含まれる特権制御情報７３０と、ペイロード７４０を用いて機能ノード群管理情報保持部３４０の書き変えと書き変えの内容を指示する。この点、機能ノード群管理情報保持部３４０を誤って書き変えると他の機能ノード群で実行中のプロセス１００に影響を与えることになる。そのため、誤って書き変えたり、悪意のあるプロセス１００によって書き変えられたりすることのないように、特権的なグローバル通信要求７００のみが書き換えを行えるようにすることが好ましい。そのために、グローバル通信要求７００に特権制御情報７３０を付加し、特権的な操作を要求することができる通信要求か否かを識別するために特権制御情報７３０を利用する。
【００６９】
機能ノード３００の特権レベル記憶部３６０は機能ノード３００の特権レベルを保持する。特権レベル記憶部３６０に格納された特権レベルに応じて、通信要求変換部３３０は、特権的な操作を指示するグローバル通信要求７００の送出を制御する。特権レベルが低い（非特権レベル）機能ノード３００の機能要素３１０が特権的な操作を指示するローカル通信要求６００を送出した場合、通信要求変換部３３０は、このローカル通信要求６００のグローバル通信要求７００への変換、および、ネットワークスイッチ４００への送出を遮断する。
【００７０】
特権レベル記憶部３６０に保持される特権レベルの書き変えも特権的なグローバル通信要求７００によって行う。一方、特権レベルが低い（又は、非特権レベルな）グローバル通信要求７００による書き換えは遮断する。
【００７１】
機能ノード３００の電源ｆｖ制御部３５０は機能ノード３００の電源ＯＮ／ＯＦＦの切り替え、動作周波数及び動作電圧の制御を行う。グローバル通信要求７００として機能ノード３００の電源ｆｖ制御を指定することができる。電源ＯＮ／ＯＦＦの切り替え、動作周波数の制御、動作電圧の制御の何れを行うかは、グローバル通信要求７００を構成する特権制御情報７３０と、ペイロード７４０を用いて指定することができる。
【００７２】
次に、図６を参照してネットワークスイッチ４００の構成について説明する。また、図１３を用いて動作について説明する。
【００７３】
ネットワークスイッチ４００は、スイッチ４１０、帯域幅管理部４２０、スイッチ制御部４３０、帯域幅管理情報保持部４４０及びネットワークスイッチ電源ｆｖ制御部４５０を有する。
【００７４】
また、ネットワークスイッチ４００は、図３を用いて上述したように、上下左右に隣接する他のネットワークスイッチ４００と接続を持つ。またネットワークスイッチ４００は１つの機能ノード３００と接続されている。ネットワークスイッチ４００は、これらそれぞれの接続に対応する入出力ポートを持つ。従ってネットワークスイッチ４００は、上下左右に隣接する４つのネットワークスイッチ４００と、隣接する１つの機能ノード３００からの入力のために５つの入力ポートを有する。図６及び以下の説明では、この５つの入力ポートを、４６０Ｕ、４６０Ｄ、４６０Ｌ、４６０Ｒ、４６０Ｎと表記する。同様に、上下左右に隣接する４つのネットワークスイッチ４００と、隣接する１つの機能ノード３００への出力のために５つの出力ポートを有する。図６及び以下の説明では、この５つのポートを、４７０Ｕ、４７０Ｄ、４７０Ｌ、４７０Ｒ、４７０Ｎと表記する。
【００７５】
まず、５つの入力ポート４６０Ｕ、４６０Ｄ、４６０Ｌ、４６０Ｒ、４６０Ｎの中の単数、複数若しくは全てにグローバル通信要求７００が入力される（ステップＳ２１）。
【００７６】
そして、帯域幅４２０のスイッチ制御部４３０がどの入力ポート４６０からどの出力ポート４７０にグローバル通信要求７００を転送するのかを決定する（ステップＳ２３）。
【００７７】
そしてスイッチ制御部４３０がスイッチ４１０を制御することにより、５つの入力ポート４６０Ｕ、４６０Ｄ、４６０Ｌ、４６０Ｒ、４６０Ｎからのグローバル通信要求７００は、５×５のスイッチ４２０を経由して５つの出力ポート４７０Ｕ、４７０Ｄ、４７０Ｌ、４７０Ｒ、４７０Ｎの何れかに転送され、出力される（ステップＳ２５）。転送先は、１つには限定されず、複数の転送先があってもよい。例えば、ノード群全体、即ちノード群に属する全てのノードに同一の通信要求を転送する場合や、ノード群に属するノードのうちのいくつかに同一の通信要求を転送する場合は、転送先が複数となる。
【００７８】
スイッチ４１０は、帯域幅管理部４２０のスイッチ制御部４３０によってどの入力ポート４６０からどの出力ポート４７０にグローバル通信要求７００を転送するのかを制御される。グローバル通信要求７００には、それぞれ必要とする転送の帯域幅が定められている。帯域幅管理情報保持部４４０は、このネットワークスイッチ５を経由する複数の通信経路５１０に関して、スイッチ４１０を制御するための情報を格納している。スイッチ４１０を制御するための情報の具体例としては、グローバル通信要求７００に含まれるグローバル識別情報７１０で識別される通信経路５１０毎に転送すべき出力ポート４７０と、要求された帯域幅とを対応付けた表が例示できる。スイッチ制御部４３０は、帯域幅管理情報保持部４４０に基づきスイッチ４１０を制御する。帯域幅管理情報保持部４４０は、このネットワークスイッチ４００を転送先として送られたグローバル通信要求７００の指示により書き変えることができる。
【００７９】
図７は、５×５のスイッチ４１０の構成例である。図７では、説明の簡略化のためネットワークスイッチ４００自身を転送先とする転送経路は省略しているが、ネットワークスイッチ４００自身を転送先とする転送経路については、出力ポート数を５から６に増やすことで容易に拡張できる。
【００８０】
スイッチ４１０は、図６に示すスイッチ制御部４３０からの制御信号を構成する経路制御信号４１４と帯域幅制御信号４１５とにより転送動作が指定される。
【００８１】
マルチプレクサ(multiplexer：図中及び以下の説明では、「ＭＵＸ」と表記する。)ＭＵＸ４１１は、入力ポート４６０から届いたグローバル通信要求７００を適切に出力ポート４７０に転送するための経路制御を行う。帯域幅制御部４１３は、グローバル通信要求７００の要求する帯域幅を保証した転送を行うための制御を行う。バッファ（buffer：図中及び以下の説明では、「ＢＵＦ」と表記する。）ＢＵＦ４１２は、ＭＵＸ４１１と帯域幅制御部４１３の間でグローバル通信要求７００を蓄積するためのＢＵＦである。
【００８２】
ＭＵＸ４１１は、経路制御信号４１４に基づき通信経路５１０毎に適切な出力先を予め設定される。ＭＵＸ４１１は、グローバル通信要求７００に含まれるグローバル識別情報７１０とから通信経路５１０を識別し、予め設定された出力先のＢＵＦ４１２にグローバル通信要求７００を転送する。
【００８３】
図８は、帯域幅制御の例について示す図である。図８では、出力ポート４７０を４つの通信経路５１０Ｌ１、５１０Ｌ２、５１０Ｌ３、５１０Ｌ４が共有している場合である。出力ポート４７０の帯域幅をＢ、４つの通信経路５１０Ｌ１、５１０２、５１０３、５１０４の要求する帯域幅をそれぞれＢ１、Ｂ２、Ｂ３、Ｂ４とすると、
【００８４】
【数１】
2010064661.tif 000003
の関係が成り立つ必要がある。ＢＵＦ４１２Ｕから出力ポート４７０への経路は、２つの通信経路５１０Ｌ１、５１０Ｌ２によって共有されており、この経路に必要な帯域幅は（Ｂ１＋Ｂ２）である。ＢＵＦ４１２Ｄ及びＢＵＦ４１２Ｒから出力ポート４７０への経路は、通信経路５１０が設定されていない。ＢＵＦ４１２Ｌから出力ポート４７０への経路は、通信経路５１０Ｌ３が設定されている。また、ＢＵＦ４１２Ｎから出力ポート４７０への経路は、通信経路５１０Ｌ４が設定されている。
【００８５】
帯域幅管理部４１３は、４つのＢＵＦ４１２Ｕ、ＢＵＦ４１２Ｄ、ＢＵＦ４１２Ｌ、ＢＵＦ４１２Ｒ、ＢＵＦ４１２Ｎのそれぞれに対して帯域幅として、Ｂ１＋Ｂ２、０、Ｂ３、０、Ｂ４を割り当てる。
【００８６】
ＢＵＦ４１２Ｕは、２つの通信経路５１０Ｌ１、５１０Ｌ２で共有されているがそれぞれの送信元機能ノード３００が、予め設定された帯域幅の範囲内のグローバル通信要求７００を送出するのであれば、それぞれの通信経路を区別することなく、ＢＵＦ４１２Ｕに対する帯域幅（Ｂ１＋Ｂ２）を保証すればよい。
【００８７】
また、グローバル通信要求７００が固定長の場合は、帯域幅制御部４１３は例えばラウンドロビンでそれぞれのＢＵＦ４１２にグローバル通信要求７００があるかどうか確認する。そして、グローバル通信要求７００がもしもあれば、グローバル通信要求７００を１つＢＵＦ４１２から取り出し出力ポート４７０に転送する。それぞれのＢＵＦ４１２毎に割り当てられている帯域幅が異なるので、割り当てられている帯域幅に比例した頻度でラウンドロビンを行うことでそれぞれの通信経路５１０の要求する帯域幅を保証した通信が実現できる。図８の例では、５つのＢＵＦ４１２Ｕ、ＢＵＦ４１２Ｄ、ＢＵＦ４１２Ｌ、ＢＵＦ４１２Ｒ、ＢＵＦ４１２Ｎに対して
【００８８】
【数２】
2010064661.tif 000004
に比例した頻度でラウンドロビンを行えばよい。ラウンドロビンの頻度は、帯域幅制御信号４１５によって設定される。
【００８９】
一方、グローバル通信要求７００が固定長でない場合は、グローバル通信要求７００の最大長を設定、その最大長の通信を保証するようにラウンドロビンを行えばよい。もっとも、このようにランドロビンを行う場合であって、グローバル通信要求７００の最大長と平均長の差が大きい場合は、最大長に満たない部分が無駄になる。そこで、グローバル通信要求７００の最大長をＬｍａｘとし転送すべきグローバル通信要求７００の長さをＬとすると（Ｌｍａｘ−Ｌ）の転送に要する時間だけ帯域幅制御部４１３のクロックを停止することにより無駄な消費電力を抑えることが可能である。
【００９０】
図６のネットワークスイッチ４００は、ネットワークスイッチ電源ｆｖ制御部４５０を更に有している。
【００９１】
そして、ネットワークスイッチ電源ｆｖ制御部４５０は、このネットワークスイッチ４００を転送先として送られたグローバル通信要求７００の指示により電源のＯＮ／ＯＦＦの切り替え、動作電圧及び動作周波数を制御する。
【００９２】
また、グローバル通信要求７００の指示ではなく、図３の電源ｆｖ制御ノード３００−Ｂからの専用通信路を経由した指示により電源のＯＮ／ＯＦＦの切り替え、動作電圧及び動作周波数を制御することも可能である。
【００９３】
図９は、ＭＭＵ付き記憶ノード３００−Ａの構成例である。機能ノード群管理部３２０、通信要求変換部３３０、機能ノード群管理情報保持部３４０、電源ｆｖ制御部３５０及び特権レベル記憶部３６０を有している点は、図５の機能ノード３００と同様である。加えて、ＭＭＵ付き記憶ノード３００−Ａは、機能ノード群ＩＤ抽出部３９０を有している。また、機能要素３１０として記憶要素３１０−Ａを有している。更に、記憶要素３１０−Ａは、記憶素子３１１−Ａ、ＭＭＵ３１２−Ａ、記憶アクセス制御部３１３−Ａ及び記憶管理情報３１４−Ａを有している。
【００９４】
機能ノード群ＩＤ抽出部３９０は、グローバル通信要求７００から機能ノード群ＩＤを抽出する。記憶要素３１０１はＭＭＵ付きの記憶要素として機能する。
【００９５】
機能ノード入力ポート３７０から届いたグローバル通信要求７００はローカル通信要求６００に変換され記憶アクセス制御部３１３−Ａに転送される。ローカル通信要求６００のペイロード７４０は記憶素子に対するアクセスの指示である。具体的には、ローカル通信要求６００のペイロード７４０は、アクセスが書き込みか読み出しかを指示するアクセスタイプと、論理アドレスを有している。アクセスタイプが書き込みの場合は、更に書き込み込みデータを有している。一方、アクセスタイプが読み出しの場合は、読み出したデータを転送すべき機能ノード３００のローカルノードＩＤを有している。
【００９６】
記憶アクセス制御部３１３−Ａは、ローカル通信要求６００からアクセスタイプと、論理アドレスを抽出する。ここで、アクセスタイプが書き込みであれば、データも抽出する。一方、アクセスタイプが読み出しであれば、読み出したデータを転送すべき機能ノード３００のローカルノードＩＤも抽出する。記憶アクセス制御部３１３−Ａは、抽出した情報に基づき記憶素子に対して読み書きの操作を行う。
【００９７】
記憶管理情報３１４−Ａは、このＭＭＵ付き記憶ノード３００−Ａにアクセスする機能ノード群と、各機能ノード群内で固有の論理アドレスと、記憶素子３１１−Ａの物理アドレスの変換に必要な情報を保持する。
【００９８】
ＭＭＵ３１２−Ａは、論理アドレスから物理アドレスへの変換を行う。ＭＭＵ付き記憶ノード３００−Ａに対するアクセス要求は複数の機能ノード群からグローバル通信要求７００として転送される。ＭＭＵ３１２−Ａは、機能ノード群ＩＤ抽出部３９０で抽出された機能ノード群ＩＤと記憶管理情報３１４−Ａに基づき論理アドレスを物理アドレスへ変換する。
【００９９】
機能ノード入力ポート３７０から届いたグローバル通信要求７００は、機能ノード管理部３２０でローカル通信要求６００に変換され記憶アクセス制御部３１３−Ａに転送される。
【０１００】
記憶アクセス制御部３１３−Ａは、アクセスタイプに従って記憶素子３１１−Ａに対するアクセス制御を行う。論理アドレスは、ＭＭＵ３１２−Ａにより物理アドレスに変換され記憶素子３１１−Ａのアドレス指定に使用される。記憶アクセス制御部３１３−Ａでは、アクセスタイプが書き込みの場合は、抽出したデータを記憶素子３１１−Ａに書き込む。一方、アクセスタイプが読み出しの場合は、記憶素子３１１−Ａから読み出されたデータと、データを転送すべき機能ノード３００のローカルノードＩＤと、機能ノード群ＩＤ抽出部３９０で抽出した機能ノード群ＩＤとからローカル通信要求６００を生成する。そして、生成したローカル通信要求６００を通信要求変換部３３０に転送する。
【０１０１】
通信要求変換部３３０では、ローカル通信要求６００をグローバル通信要求７００に変換して機能ノード出力ポート３８０に送出する。
【０１０２】
なお、記憶管理情報３１４−Ａの書き換えは、機能ノード入力ポート３７０からの特権的なグローバル通信要求７００によって行うことができる。
【０１０３】
図１０は、電源ｆｖ制御ノード３００−Ｂの構成例である。電源ｆｖ制御ノード３００−Ｂは専用通信路を経由して、ネットワークスイッチ４００の電源のＯＮ／ＯＦＦの切り替え、動作電圧及び動作周波数を制御する。
【０１０４】
電源ｆｖ制御ノード３００−Ｂが、機能ノード群管理部３２０、通信要求変換部３３０、機能ノード群管理情報保持部３４０、電源ｆｖ制御部３５０及び特権レベル記憶部３６０を有している点は、図５の機能ノード３００と同様である。また、電源ｆｖ制御ノード３００−Ｂは、機能要素３１０として電源ｆｖ制御用入出力要素３１０−Ｂを有している。
【０１０５】
電源ｆｖ制御用入出力要素３１０−Ｂは、機能ノード入力ポート３７０からのグローバル通信要求７００に含まれるペイロード７４０の指示に応じて、ネットワークスイッチ４００の電源ｆｖ制御部４５０と接続している専用通信路を介して、ネットワークスイッチ４００の電源ｆｖ制御を行う。
【０１０６】
次に、以上説明した本実施の形態の効果について説明する。
【０１０７】
第１の効果は、プロセスを構成する機能ノード間通信のオーバーヘッドを削減できることにある。その理由は、機能ノード群管理部によりＯＳや仮想化層の介在無しに直接機能ノード間が通信できるためである。
【０１０８】
第２の効果は、プロセスに割り当てられた機能ノード間の通信帯域幅を保証できることにある。その理由は、ネットワークスイッチの帯域幅管理部により予め設定しておいた機能ノード間の通信の帯域幅に応じた通信制御を行えるためである。
【０１０９】
第３の効果は、複数のプロセスがお互いに干渉することなく１つの並列処理システム上で実行できることにある。その理由は、機能ノード群管理部や、帯域幅管理部により各プロセスへ割り当てられた機能ノード、機能ノード間の通信帯域幅が他のプロセスと完全に分離して動作できるためである。
【０１１０】
第４の効果は、消費電力の削減が可能となることである。その理由は、各機能ノード３００は電源ｆｖ制御部３５０を持つように構成されているため、プロセスに割り当てられていない機能ノード３００の電源をＯＦＦにしたり、クロックを停止することにより、消費電力の削減が実現できるからである。また、機能ノード３００の処理性能に余裕がある場合は、クロック周波数を下げたり、電源電圧を下げることによっても消費電力の削減が可能である。
【０１１１】
更に、各ネットワークスイッチ４００はネットワークスイッチ電源ｆｖ制御部４５０を持つように構成されているため、通信経路５１０が割り当てられていないネットワークスイッチ４００の電源をＯＦＦしたりクロックを停止することにより消費電力の削減が可能である。また、ネットワークスイッチ４００に割り当てられている通信経路５１０の要求帯域幅に対してネットワークスイッチ４００の帯域幅に余裕がある場合は、クロック周波数を下げたり、電源電圧をさげることによっても消費電力の削減が可能である。
【０１１２】
第５の効果は、管理情報の操作は特権レベルの高いプロセス１００によってのみ行えるように設定可能となることである。その理由は、本実施の形態では、グローバル通信要求７００、ローカル通信要求６００は特権制御情報７３０を持つように構成できるため、機能ノード群管理情報保持部３４０、特権レベル記憶部３６０、電源ｆｖ制御部３５０、ネットワークスイッチ電源ｆｖ制御部４５０、記憶管理情報３１４−Ａ等の管理情報の操作は特権レベルの高いプロセス１００によってのみ行えるように設定可能とできるからである。これによって、他のプロセス１００への機能ノード３００や通信経路５１０等の資源の割り当て等を行うＯＳプロセスを構成することができる。
【０１１３】
第６の効果は、異なるプロセス１００間での通信も可能となることである。その理由は、記憶ノードとしてＭＭＵ付きの記憶ノード３００−Ａを持つことができ、ＭＭＵ付きの記憶のノード３００−Ａは複数のプロセス１００で同一の記憶素子３１１−Ａを共有する共有メモリの機能を安全に実現できるからである。
【０１１４】
なお、本発明の実施形態である並列計算システムは、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【０１１５】
例えば、上記の並列計算システムは、ハードウェアによって実現することもできるが、コンピュータをそのシステムとして機能させるためのプログラムを、コンピュータが記録媒体から読み出して、実行することによっても実現することができる。
【０１１６】
また、上記の並列計算方法は、ハードウェアによって実現することもできるが、コンピュータにその方法を実行させるためのプログラムを、コンピュータがコンピュータ読みと取り可能な記録媒体から読み出して、実行することによっても実現することができる。
【０１１７】
また、上述したハードウェア、ソフトウェア構成は特に限定されるものではなく、上述した各部の機能を実現可能であれば、いずれのものでも適用可能である。例えば、上述した各部の機能毎に個別に構成したものでも、各部の機能を一体的に構成したものでも、いずれでもよい。
【０１１８】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１９】
この出願は、２００８年１２月４日に出願された日本出願特願２００８−３０９８１３号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１２０】
本発明は、マルチコアシステムをリアルタイム性、低電力性が重要な組込み制御といった用途に適用できる。また、複数のプロセスをそれぞれ自動並列化コンパイラでそれぞれのプロセスごとに複数コア用に最適化して１つの並列計算システム上でお互いに干渉することなく実行する、といった用途にも適用可能である。
【符号の説明】
【０１２１】
１００、２１００  プロセス
２００  プロセスと機能ノード群の対応付け仮想マシン  ２２００
３００、２４００  機能ノード
３００−Ａ  ＭＭＵ付き記憶ノード
３００−Ｂ  電源ｆｖ制御ノード
３１０  機能要素
３１０−Ａ  記憶要素
３１１−Ａ  記憶素子
３１２−Ａ  ＭＭＵ
３１３−Ａ  記憶アクセス制御部
３１４−Ａ  記憶管理情報  ２１６  電源ｆｖ制御用入出力要素
３２０  機能ノード群管理部
３３０  通信要求変換部
３４０  機能ノード群管理情報保持部
３５０  電源ｆｖ制御部
３６０  特権レベル記憶部
３７０  機能ノード入力ポート
３８０  機能ノード出力ポート
３９０  機能ノード群ＩＤ抽出部４００  ネットワークスイッチ
４１０  スイッチ
４１１  ＭＵＸ
４１２、４１２Ｕ、４１２Ｄ、４１２Ｌ、４１２Ｒ、４１２Ｎ  ＢＵＦ
４１３  帯域幅制御部
４１４  経路制御信号
４１５  帯域幅制御信号
４２０  帯域幅管理部
４３０  スイッチ制御部
４４０  帯域幅管理情報保持部
４５０  ネットワークスイッチ電源ｆｖ制御部
４６０、４６０Ｕ、４６０Ｄ、４６０Ｌ、４６０Ｒ、４６０Ｎ  入力ポート
４７０、４７０Ｕ、４７０Ｄ、４７０Ｌ、４７０Ｒ、４７０Ｎ  出力ポート
５００  通信路
５１０、５１０Ｌ１、５１０Ｌ２、５１０Ｌ３、５１０Ｌ４  通信経路
６００  ローカル通信要求
６１０  ローカル識別情報
７００  グローバル通信要求
７１０  グローバル識別情報
７２０  機能ノード群ＩＤ
７３０  特権制御情報
７４０  ペイロード
８１０  転送先グローバルノードＩＤ
８２０  転送元グローバルノードＩＤ
８３０  グローバル通信経路ＩＤ
９１０  転送先ローカルノードＩＤ
９２０  転送元ローカルノードＩＤ
９３０  ローカル通信経路ＩＤ
１０００、２５００  並列計算システム
２３００  仮想化層
【図１】
2010064661.tif 000005
【図２】
2010064661.tif 000006
【図３】
2010064661.tif 000007
【図４】
2010064661.tif 000008
【図５】
2010064661.tif 000009
【図６】
2010064661.tif 000010
【図７】
2010064661.tif 000011
【図８】
2010064661.tif 000012
【図９】
2010064661.tif 000013
【図１０】
2010064661.tif 000014
【図１１】
2010064661.tif 000015
【図１２】
2010064661.tif 000016
【図１３】
2010064661.tif 000017
【国際調査報告】
2010064661.tif 000018
2010064661.tif 000019
2010064661.tif 000020
2010064661.tif 000021