(57)【要約】【課題】  ＮＵＭＡ型計算機を複数接続して構成されたクラスタの従来の管理ソフトウェアは、パーティション分割の粒度が大きく、実用的な分割が行えない問題があった。【解決手段】  ＮＵＭＡサブノード１１〜１４は、１台以上のＣＰＵとローカルメモリを含み、ジョブスケジューラ４１はＮＵＭＡ型計算機１、２のＯＳより各サブノードの利用可能なリソース情報等を取得し、これらをパーティション毎の利用可能リソース情報に纏め、前記リソース情報を用いて、入力されるジョブの実行先のパーティションと開始タイミングを決定し、ジョブのディスパッチャ１６はジョブと実行先のパーティション情報を受け、ＯＳを通じジョブを構成するプロセスに、実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当て、プロセスを起動する。又前記パーティションをＮＵＭＡサブノード一つとすることもできる。【選択図】      図３
2006011913.tif 000002
【特許請求の範囲】
【請求項１】
複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、
各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、
前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、
前記リソース情報を用いて、入力されるジョブの実行先のパーティションと開始タイミングを決定する手段を備え、
前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする計算機クラスタシステム。
【請求項２】
更に、前記決定に基づき、開始するジョブのプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当て、プロセスを起動する手段も備えたことを特徴とする請求項１記載の計算機クラスタシステム。
【請求項３】
前記計算機クラスタシステムには、前記複数の計算機に通信接続された制御用計算機も含み、これに前記パーティション毎の利用可能リソース情報に纏める手段と、前記入力されるジョブの実行先のパーティションと開始タイミングを決定する手段を備えることを特徴とする請求項１記載の計算機クラスタシステム。
【請求項４】
複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、
各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、
ジョブスケジューラと、前記計算機のそれぞれで前記ジョブスケジューラと連携して動作するディスパッチャとＯＳとを備え、
前記ジョブスケジューラは、前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を前記ＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出した情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手段と、計算機上のディスパッチャに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手段とを有し、
前記ディスパッチャは、前記ＯＳを通じ、ジョブを構成するプロセスに、前記指定されたサブノード上の、プロセッサとローカルメモリの記憶域を割り当てる手段と、プロセスを起動する手段とを有し、
前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする計算機クラスタシステム。
【請求項５】
複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、
各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、
ジョブスケジューラと、前記計算機のそれぞれで前記ジョブスケジューラと連携して動作するディスパッチャとＯＳとを備え、
前記ＯＳは、自計算機の各サブノードの利用可能なリソース情報、或いはリソース使用状況を提示する手段と、指定されたプロセスに指定されたサブノードのプロセッサやプロセッサ集合を割り当て、プロセッサやプロセッサ集合の属するローカルメモリから記憶域を割り当てる手段を有し、
前記ジョブスケジューラは、前記各サブノードの利用可能なリソース情報或いはリソース使用状況を前記ＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出した情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手段と、計算機上のディスパッチャに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手段とを有し、
前記ディスパッチャは、ジョブを構成するプロセスに、前記指定されたサブノード上のプロセッサとメモリの割り当てを前記ＯＳに指示する手段と、そのプロセスを起動する手段とを有し、
前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする計算機クラスタシステム。
【請求項６】
前記計算機クラスタシステムには、前記複数の計算機に通信接続された制御用計算機も含み、これに前記ジョブスケジューラを備えることを特徴とする請求項４、又は５に記載の計算機クラスタシステム。
【請求項７】
ネットワーク接続された各計算機を構成する複数のサブノードのそれぞれについて利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、
前記リソース情報を用いて、入力され受け付けたジョブの実行先のパーティションと開始タイミングを決定する手順とを計算機に実行させるためのプログラム。
【請求項８】
ネットワーク接続された各計算機を構成する複数のサブノードのそれぞれについて、利用可能なリソース情報、或いはリソース使用状況を前記計算機のＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、
ユーザのジョブを受付け、これに必要なリソースを算出し、算出したリソース情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手順と、
前記計算機上のプログラムに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手順とを計算機に実行させるためのプログラム。
【請求項９】
ジョブと実行先のパーティション情報を受け、ジョブを構成するプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当てる手順と、
前記プロセスを起動する手順とを計算機に実行させるためのプログラム。
【請求項１０】
計算機を構成する複数のサブノードのそれぞれについて、利用可能なリソース情報、或いはリソース使用状況を管理し、要求に応じこれらを提示する手順と、
指定されたプロセスに対し、指定されたサブノードのプロセッサやプロセッサ集合を割り当て、プロセッサやプロセッサ集合の属するローカルメモリ上の記憶域を割り当てる手順とを計算機に実行させるためのプログラム。
【請求項１１】
複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続され、また各サブノードに、一つ以上のプロセッサとローカルメモリを含む、計算機クラスタシステムにおける管理方法であって、
前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、
前記リソース情報を用いて、入力されるジョブの実行先のパーティションと開始タイミングを決定する手順を備え、
前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする計算機クラスタシステムにおける管理方法。
【請求項１２】
更に、前記決定に基づき、開始するジョブのプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当て、プロセスを起動する手順も備えたことを特徴とする請求項１１記載の計算機クラスタシステムにおける管理方法。
【請求項１３】
複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続され、また各サブノードに、一つ以上のプロセッサとローカルメモリを含む、計算機クラスタシステムにおける管理方法であって
前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、
ユーザのジョブを受付け、これに必要なリソースを算出し、算出したリソース情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手順と、
パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手順と、
前記ジョブを構成するプロセスに、前記指定されたサブノード上の、プロセッサとローカルメモリの記憶域を割り当てる手順と、
プロセスを起動する手順とを有し、
前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする計算機クラスタシステムにおける管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機クラスタシステムとそれにおける管理方法、及びプログラムに関し、特に、ＮＵＭＡ型計算機のクラスタシステムとそれにおける管理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来のクラスタシステムは、少数（典型的には２〜８個程度）のプロセッサを搭載した多数のＳＭＰ（Ｓｙｍｍｅｔｒｉｃ−Ｍｕｌｔｉ−Ｐｒｏｃｅｓｓｏｒ）型計算機を接続して構築されるものが現状殆どであり、クラスタの管理手法や各種管理ソフトウェアもその様な構成を前提としている。
【０００３】
そのため、多くの管理項目は、粒度がマシン単位となっている。
【０００４】
即ち、クラスタ管理ソフトウェアは、複数の計算機を束ねたクラスタの各種のリソース（ＣＰＵ、メモリ等）を管理し、投入されるジョブへのリソースの割り当てを司り、１つのクラスタ内部で別々のジョブに対し、排他的なリソースの割り当てを実現するため、全体のクラスタを複数のパーティションに分割する機能を有している。
【０００５】
従来のクラスタ管理ソフトウェアでは、このパーティション分割は個々の計算機の粒度でしか行えない。
【０００６】
一方で、多プロセッサの共有メモリシステムは、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ−Ｍｅｍｏｒｙ−Ａｃｃｅｓｓ）型のものが多くなっている。
【０００７】
ＮＵＭＡアーキテクチャをベースに設計された計算機は、内部的には複数のＳＭＰの計算機を高速の接続機構を用いて接続している。従って、通常計算機一台に搭載するプロセッサ数がＳＭＰ構成の計算機に比べて多い。
【０００８】
又、ＮＵＭＡマルチプロセッサシステム用オペレーティングシステムとして、作業負荷を分散させる下記のオペレーティングシステム（ＯＳ）が示されている。
【０００９】
このＯＳは、各ジョブプロセッサに対応した複数のリーフ・ノードと、全てのプロセッサによって共有される少なくとも一つのシステム資源を表すルートノードと、ジョブプロセッサの異なる組み合わせによって共有される資源を表す複数の中間ノードとを有する階層ツリーを維持する。
【００１０】
そしてこのＯＳは、システム全体に分散されているアクティブなスレッド群の進展を監視し、衰退スレッド群を補助する中期スケジューラと、各々ジョブ・プロセッサの１つと関連付けられ、その状態を監視し、その実行スレッド群を得る複数のディスパッチャとを含み、更に複数のメモリ・プールおよびフレーム・トレジャリを用いて仮想および物理メモリを割り当てる（特許文献１参照。）。
【００１１】
【特許文献１】特開平９−２３７２１５（第１ページ）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記の様なＮＵＭＡ型計算機を複数接続して構成されたクラスタを従来のクラスタ管理ソフトウェアで管理する場合、パーティション分割の粒度が大きく、実用的な分割が行えない問題があった。
【００１３】
次に、上記のＮＵＭＡマルチプロセッサシステム用ＯＳは、ＮＵＭＡ型計算機１台の上で動作するＯＳであり、ＮＵＭＡ型計算機を複数接続したクラスタを対象としたものではない。
【００１４】
また、このディスパッチャはＯＳカーネル内部に存在するタスクスケジューラの一部であり、ＯＳの改変を必要最小限にしたいという目的にはそぐわない。
【００１５】
また、全体のリソースを一つのものとみなし、それをいかに多くのジョブで共有して有効にリソースを利用できる様にするかを目指したものである。
【００１６】
本発明の目的は、全体のリソースをまず複数に分割することによって相互に影響されないリソースを確保して、それぞれのリソースの中で独立したジョブのスケジューリングを実現することである。
【００１７】
又、分割の最小サイズをクラスタを構成する各計算機のサブノード一つに出来ることである。
【課題を解決するための手段】
【００１８】
本発明の第１の計算機クラスタシステムは、複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、前記リソース情報を用いて、入力されるジョブの実行先のパーティションと開始タイミングを決定する手段を備え、前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする。
【００１９】
本発明の第２の計算機クラスタシステムは、前記第１の計算機クラスタシステムであって、更に、前記決定に基づき、開始するジョブのプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当て、プロセスを起動する手段も備えたことを特徴とする。
【００２０】
本発明の第３の計算機クラスタシステムは、前記第１の計算機クラスタシステムであって、前記計算機クラスタシステムには、前記複数の計算機に通信接続された制御用計算機も含み、これに前記パーティション毎の利用可能リソース情報に纏める手段と、前記入力されるジョブの実行先のパーティションと開始タイミングを決定する手段を備えることを特徴とする。
【００２１】
本発明の第４の計算機クラスタシステムは、複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、ジョブスケジューラと、前記計算機のそれぞれで前記ジョブスケジューラと連携して動作するディスパッチャとＯＳとを備え、前記ジョブスケジューラは、前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を前記ＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出した情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手段と、計算機上のディスパッチャに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手段とを有し、前記ディスパッチャは、前記ＯＳを通じ、ジョブを構成するプロセスに、前記指定されたサブノード上の、プロセッサとローカルメモリの記憶域を割り当てる手段と、プロセスを起動する手段とを有し、前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする。
【００２２】
本発明の第５の計算機クラスタシステムは、複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続された計算機クラスタシステムであって、各サブノードは、一つ以上のプロセッサとローカルメモリを含み、前記ローカルメモリは前記プロセッサにローカルにアクセスされると共に、計算機内のサブノード間で分散共有する記憶域を含み、ジョブスケジューラと、前記計算機のそれぞれで前記ジョブスケジューラと連携して動作するディスパッチャとＯＳとを備え、前記ＯＳは、自計算機の各サブノードの利用可能なリソース情報、或いはリソース使用状況を提示する手段と、指定されたプロセスに指定されたサブノードのプロセッサやプロセッサ集合を割り当て、プロセッサやプロセッサ集合の属するローカルメモリから記憶域を割り当てる手段を有し、前記ジョブスケジューラは、前記各サブノードの利用可能なリソース情報或いはリソース使用状況を前記ＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手段と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出した情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手段と、計算機上のディスパッチャに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手段とを有し、前記ディスパッチャは、ジョブを構成するプロセスに、前記指定されたサブノード上のプロセッサとメモリの割り当てを前記ＯＳに指示する手段と、そのプロセスを起動する手段とを有し、前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする。
【００２３】
本発明の第６の計算機クラスタシステムは、前記第４、又は第５の計算機クラスタシステムであって、前記計算機クラスタシステムには、前記複数の計算機に通信接続された制御用計算機も含み、これに前記ジョブスケジューラを備えることを特徴とする。
【００２４】
本発明の第１のプログラムは、ネットワーク接続された各計算機を構成する複数のサブノードのそれぞれについて利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、前記リソース情報を用いて、入力され受け付けたジョブの実行先のパーティションと開始タイミングを決定する手順とを計算機に実行させる。
【００２５】
本発明の第２のプログラムは、ネットワーク接続された各計算機を構成する複数のサブノードのそれぞれについて、利用可能なリソース情報、或いはリソース使用状況を前記計算機のＯＳより取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出したリソース情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手順と、前記計算機上のプログラムに、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手順とを計算機に実行させる。
【００２６】
本発明の第３のプログラムは、ジョブと実行先のパーティション情報を受け、ジョブを構成するプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当てる手順と、前記プロセスを起動する手順とを計算機に実行させる。
【００２７】
本発明の第４のプログラムは、計算機を構成する複数のサブノードのそれぞれについて、利用可能なリソース情報、或いはリソース使用状況を管理し、要求に応じこれらを提示する手順と、指定されたプロセスに対し、指定されたサブノードのプロセッサやプロセッサ集合を割り当て、プロセッサやプロセッサ集合の属するローカルメモリ上の記憶域を割り当てる手順とを計算機に実行させる。
【００２８】
本発明の第１の計算機クラスタシステムにおける管理方法は、複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続され、また各サブノードに、一つ以上のプロセッサとローカルメモリを含む、計算機クラスタシステムにおける管理方法であって、前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、前記リソース情報を用いて、入力されるジョブの実行先のパーティションと開始タイミングを決定する手順を備え、前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする。
【００２９】
本発明の第２の計算機クラスタシステムにおける管理方法は、前記第１の計算機クラスタシステムにおける管理方法であって、更に、前記決定に基づき、開始するジョブのプロセスに、前記実行先のパーティションを構成するサブノードのプロセッサとローカルメモリの記憶域を割り当て、プロセスを起動する手順も備えたことを特徴とする。
【００３０】
本発明の第３の計算機クラスタシステムにおける管理方法は、複数の相互接続されたサブノードからなる計算機を複数台含み、これらがネットワーク接続され、また各サブノードに、一つ以上のプロセッサとローカルメモリを含む、計算機クラスタシステムにおける管理方法であって前記各サブノードの利用可能なリソース情報、或いはリソース使用状況を取得し、これらを計算機区画であるパーティション毎の利用可能リソース情報に纏める手順と、ユーザのジョブを受付け、これに必要なリソースを算出し、算出したリソース情報とジョブの優先度と各パーティションの利用可能リソース情報とに応じて、次に各パーティションで開始するジョブを選択する手順と、パーティションを構成するサブノードの情報を指定した上で前記選択したジョブの起動を指示する手順と、前記ジョブを構成するプロセスに、前記指定されたサブノード上の、プロセッサとローカルメモリの記憶域を割り当てる手順と、プロセスを起動する手順とを有し、前記パーティションの構成として、サブノード一つの構成も可能なことを特徴とする。
【発明の効果】
【００３１】
第１の効果は、ＮＵＭＡ型計算機で構成されたクラスタにおいて粒度の細かいリソースの分割ができることにある。
【００３２】
その理由は、ＯＳが提供する情報と制御するための機構をクラスタ管理ソフトが利用するためである。
【００３３】
第２の効果は、ＮＵＭＡ型計算機において、ジョブを構成するプロセスがより効率よく動作できることである。
【００３４】
その理由は、プロセスが利用するメモリが、ＮＵＭＡノードのローカルメモリから取得できる可能性を高くできるからである。
【発明を実施するための最良の形態】
【００３５】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００３６】
本発明では、パーティショニングの粒度の細分化を、ＮＵＭＡ型計算機向けのＯＳ機能と、クラスタ管理ソフトウェアが連携することによって実現する。
【００３７】
図１は、本発明の計算機クラスタシステムを含むブロック図である。図１を参照し、本発明の計算機クラスタシステムは、複数のＮＵＭＡサブノード１１〜１４と接続手段１５からなるＮＵＭＡ型計算機１を２台以上高速ネットワーク３等で結合したクラスタシステムである。
【００３８】
接続手段１５はクロスバスイッチ等の高速な接続手段である。
【００３９】
ＮＵＭＡ型計算機１、２には制御用計算機４が高速ＬＡＮ１００等で接続され、ネットワーク２００や通信端末５を通じ、ユーザ端末６−１〜６−ｎからのジョブを受け付ける。
【００４０】
それぞれのＮＵＭＡサブノードは、図２に示す様に、複数のＣＰＵ１１１〜１１３がバス１１５を通じ、システム制御部１１６に接続され、システム制御部１１６にはＣＰＵ１１１〜１１３が高速にアクセス出来るローカルメモリ１１７が接続されている。
【００４１】
ＣＰＵ１１１〜１１３はそれぞれキャッシュメモリ１１１１、・・、１１３１を備えている。
【００４２】
システム制御部１１６は、ＣＰＵ１１１〜１１３からのメモリアクセス要求のアドレスの上位部が、ローカルメモリ１１７を指していればこれにアクセスする。
【００４３】
前記上位部がＮＵＭＡサブノード１２〜１４の何れかのローカルメモリを指していれば、接続手段１５を通じて、対応のシステム制御部にメモリアクセス要求を送る。
【００４４】
ＮＵＭＡ型計算機１、２ではそれぞれＮＵＭＡサブノード１１、ＮＵＭＡサブノード２１が制御用計算機４との通信を担当しており、これらのシステム制御部にはＬＡＮ通信部１１８も接続されている。
【００４５】
同様にＮＵＭＡ型計算機１、２間の高速通信を担当しているＮＵＭＡサブノードのシステム制御部には高速通信部が接続されている。
【００４６】
それぞれのＮＵＭＡ型計算機上で動作するＯＳ（オペレーティングシステム）は、以下の機能を装備する。
（１）任意のプロセスを任意のプロセッサまたは任意のプロセッサ集合にバインドする機能。
（２）プロセスに対し、プロセスに割り付けられた、或いはプロセスが動作しているＮＵＭＡサブノードやこれの集合のメモリからメモリを割り当てる機能。
（３）各ＮＵＭＡサブノードにおける、全体のリソース量と現在のリソース（ローカルメモリ、プロセッサ）使用量をユーザプログラム乃至デーモンから取得できる様にする機能。
（４）ＮＵＭＡサブノード単位のメモリリソースの管理機構。
【００４７】
クラスタ管理ソフトウェアは、パーティショニングを実現するため、ジョブスケジューラとジョブのディスパッチャを有する。
【００４８】
ジョブスケジューラは、クラスタのパーティション毎にインスタンスを持ち、クラスタのジョブ実行における制約事項（必要リソース、ジョブの優先度、ＮＵＭＡ型計算機上の空きリソース等）に応じて、次に各々のパーティション上で実行を開始するジョブの選択を行う。
【００４９】
ここで、ジョブスケジューラは、ＮＵＭＡ型計算機向けＯＳの機能（３）によって、それぞれのＮＵＭＡサブノードにおける利用可能なリソース量、或いはリソース使用状況を取得し、これらを各パーティションの構成情報に従って合計し、各パーティションの利用可能なリソース量を把握している。
【００５０】
尚、パーティションとは、ＮＵＭＡ型計算機１及び２を一つ以上の区画に区切り、各区画を一つの計算機として扱うための計算機区画である。
【００５１】
１〜８台のＮＵＭＡサブノードを一つのパーティションに定義する。
【００５２】
例えば、ＮＵＭＡサブノード１１をパーティション＃１、ＮＵＭＡサブノード１２をパーティション＃２、ＮＵＭＡサブノード１３と１４をパーティション＃３とし、ＮＵＭＡ型計算機２も同様にする。
【００５３】
尚、ＮＵＭＡサブノード１１をパーティション＃１、ＮＵＭＡサブノード１２をパーティション＃２、ＮＵＭＡサブノード１３と１４及びＮＵＭＡサブノード２１〜２４をパーティション＃３とする例もある。
【００５４】
ジョブのディスパッチャは、各ＮＵＭＡ型計算機上で実行され、ジョブスケジューラによって選択されたジョブを、各ＮＵＭＡ型計算機上で必要な初期化動作を行った後実行を開始させる。
【００５５】
この際、ジョブのディスパッチャは、ジョブスケジューラの指示に従って動作プロセスを特定のＮＵＭＡサブノード上のプロセッサにＯＳの（１）の機能を利用してバインドする。
【００５６】
また、プロセスのメモリは、ＯＳの（２）と（４）の機能を利用して、動作予定ないし動作しているＮＵＭＡサブノード上から取得するよう設定を行うことにより、パーティション外部のメモリに影響を及ぼさない。
【００５７】
また、ジョブを構成する各プロセスをプロセッサにバインドする際、プロセス間の通信のパターンや通信トポロジ等に関するヒントがユーザによって与えられている場合、あるいはプロセスの動作からそれらの情報が自動的に判断できる場合、特に通信量の多いプロセス集合をあるＮＵＭＡサブノードに集中して配置して通信速度の最適化を図ることができる。
【００５８】
図３は、上記のＮＵＭＡ型計算機向けＯＳ１７、２７と、クラスタ管理ソフトウェアにおけるジョブスケジューラ４１及びジョブのディスパッチャ１６、２６の連携を示している。
【００５９】
尚、ＯＳ２７、ジョブのディスパッチャ２６は図示できてないが、ＮＵＭＡ型計算機２に搭載されている。
【００６０】
これらの連携によって、従来はＮＵＭＡ型計算機単位であったクラスタのパーティショニングの粒度を、計算機内部のＮＵＭＡサブノード単位で行うことが実現できる。
【００６１】
ＮＵＭＡ型計算機１は、複数のＮＵＭＡサブノード１１〜１４を持ち、ＮＵＭＡ型計算機１上で動作するＯＳ１７は各ＮＵＭＡサブノードのリソース情報１７１をユーザに見える様に公開している。
【００６２】
リソース情報１７１は、各ＮＵＭＡサブノードのリソース情報であり、利用可能な空きのリソース情報、若しくはリソースの使用状況（使用量、使用しているプロセス識別も含む）である。
【００６３】
ＮＵＭＡ型計算機２についても同様であるが、ＮＵＭＡサブノード数は必ずしもＮＵＭＡ型計算機１と同数でなくてもよい。
【００６４】
尚、本実施例ではＯＳ１７やジョブのディスパッチャ１６はＮＵＭＡサブノード１１の一部に搭載している。
【００６５】
このクラスタは、管理者によって複数のパーティションに分割されており、ユーザはＮＵＭＡ型計算機１、２からそれぞれ１ＮＵＭＡサブノードで構成されたパーティションでのジョブ実行を許可されているものとする。
【００６６】
クラスタの管理を行う制御用計算機４上ではユーザからのジョブの投入の受付と、ジョブのスケジューリングを行うジョブスケジューラ４１が動作している。
【００６７】
クラスタを構成するＮＵＭＡ型計算機１、２上では、ジョブスケジューラ４１により投入されたプログラムを実行を開始するためのジョブのディスパッチャ１６、１７がＮＵＭＡ型計算機１、２上のプロセスとして動作している。
【００６８】
ジョブスケジューラ４１は、ＯＳ１７、２７を通じ、パーティションを構成する全てのＮＵＭＡサブノードのリソース情報１７１、２７１を収集・総合し、次に実行開始するジョブを決定する。
【００６９】
次に、ジョブスケジューラ４１は、ＮＵＭＡ型計算機１、２上のジョブのディスパッチャ１６、２６に、パーティションを構成するＮＵＭＡサブノードの情報（識別）を指定した上で、ジョブの起動を指示する。
【００７０】
ジョブのディスパッチャ１６は、ジョブを構成するプロセスを、パーティションに属しているＮＵＭＡサブノード上のＣＰＵ上にバインドするようＯＳ１７に指示する。
【００７１】
前記プロセスへのメモリ割り当てをＯＳ１７に指示し、ＯＳ１７がパーティションを構成するＮＵＭＡサブノード（前記ＣＰＵが属するＮＵＭＡサブノード）上のメモリを割り当てる。
【００７２】
ジョブのディスパッチャ１６がそのプロセスを起動する。
【００７３】
これにより、ＮＵＭＡのノード単位でのパーティショニングの効果が得られる。
【００７４】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。図４は、本発明の実施形態の動作を示すフローチャートである。
【００７５】
ジョブスケジューラ４１は、通信端末５等を通じユーザ端末６−１から行われるジョブの投入を受け付けると（ステップＡ１）、ジョブが必要とするリソースを算出し（ステップＡ２）、これと優先度に応じて、スケジューリングを行う（ステップＡ３）。
【００７６】
ＯＳ１７から得られる、パーティション内部の空きリソースがジョブを実行するのに十分にあり、該当ジョブが実行可能な状態になったら（ステップＡ４）、ジョブスケジューラ４１は、ジョブのディスパッチャ１６にジョブを構成するプロセスを渡し、割り当てたリソースの情報を通知し、起動を指示する（ステップＡ５）。
【００７７】
ジョブのディスパッチャ１６は起動指示を受信し（ステップＢ２）、付随して受けたリソースの指定情報をＯＳ１７に渡しリソースを確保させる（ステップＢ３）。
【００７８】
リソースの確保後、ジョブのディスパッチャ１６はジョブの実行を開始する（ステップＢ４）。
【００７９】
ジョブの実行が完了したら（ステップＢ５）、ジョブの出力を収集しジョブスケジューラ４１に送信し（ステップＢ６）、確保したリソースを開放し（ステップＢ７）、ジョブのディスパッチャは次のジョブの起動指示を待つ。
【００８０】
ジョブスケジューラ４１は、受信したジョブの結果を出力する。例えばユーザ端末６−１に返信する（ステップＡ７）。
【００８１】
本実施例では、計算機のクラスタシステムに制御用計算機を含み、ジョブスケジューラ４１をこれに搭載しているが、計算機のクラスタシステムのＮＵＭＡサブノード１１の一つのプロセッサにジョブスケジューラ４１とジョブのディスパッチャ１６を搭載する例もある。
【００８２】
また、図１の例では、２台のＮＵＭＡ型計算機での例を説明したが、ＮＵＭＡ型計算機の台数は２台以上であれば  何台でも同様に実施可能である。
【００８３】
逆に、本発明は、ＮＵＭＡ型計算機１台の内部をパーティショニングして運用したいという場合にも適用可能である。
【産業上の利用可能性】
【００８４】
本発明は、ＮＵＭＡ型計算機クラスタシステムに適用できるが、ＳＭＰ型計算機向けＯＳにもＮＵＭＡ型計算機向けＯＳと同等の機能を実装することにより、より粒度の細かいリソース制御を実現する用途にも適用可能である。
【００８５】
例えば、ＣＰＵ１個単位でのパーティション分割が可能になる。
【図面の簡単な説明】
【００８６】
【図１】本発明の計算機クラスタシステムを含む全体のブロック図。
【図２】図１のＮＵＭＡサブノード１１の構成を示すブロック図。
【図３】ＮＵＭＡ型計算機向けＯＳと、クラスタ管理ソフトウェア（ジョブスケジューラ及びジョブのディスパッチャ）の連携を示す図。
【図４】本発明の実施形態の動作を示すフローチャート。
【符号の説明】
【００８７】
１、２    ＮＵＭＡ型計算機
１１〜１４、２１〜２４    ＮＵＭＡサブノード
１１１〜１１３    ＣＰＵ
１１１１、・・、１１３１    キャッシュメモリ
１１５    バス
１１６    システム制御部
１１７    ローカルメモリ
１１８    ＬＡＮ通信部／高速通信部
１５    接続手段
１６、２６    ジョブのディスパッチャ
１７、２７    ＯＳ
１７１    各ＮＵＭＡサブノードのリソース情報
３    高速ネットワーク
４    制御用計算機
４１    ジョブスケジューラ
５    通信端末
６−１〜６−ｎ    ユーザ端末
１００    高速ＬＡＮ
２００    ネットワーク
【図１】
2006011913.tif 000003
【図２】
2006011913.tif 000004
【図３】
2006011913.tif 000005
【図４】
2006011913.tif 000006