JP2007207072A - 処理制御装置およびその方法 - Google Patents

処理制御装置およびその方法 Download PDF

Info

Publication number
JP2007207072A
JP2007207072A JP2006026839A JP2006026839A JP2007207072A JP 2007207072 A JP2007207072 A JP 2007207072A JP 2006026839 A JP2006026839 A JP 2006026839A JP 2006026839 A JP2006026839 A JP 2006026839A JP 2007207072 A JP2007207072 A JP 2007207072A
Authority
JP
Japan
Prior art keywords
processing
node
unit
processing unit
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006026839A
Other languages
English (en)
Other versions
JP4773835B2 (ja
Inventor
Toru Iijima
徹 飯島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to JP2006026839A priority Critical patent/JP4773835B2/ja
Publication of JP2007207072A publication Critical patent/JP2007207072A/ja
Application granted granted Critical
Publication of JP4773835B2 publication Critical patent/JP4773835B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】マルチプロセッサシステムの複数のデータ処理装置に、効率的に処理を割り当てて実行させるように制御する処理制御装置およびその方法を提供する。
【解決手段】スレッド割り当てプログラム4は、新たなスレッド220の処理を要求するAPI200を受け取ると、それに含まれる選択基準を満たすノードを、候補ノードとして抽出し、さらに、候補ノードのいずれかを選択し、スレッド220を実行させる。スレッド割り当てプログラム4によるノードの選択は、以下の(1)〜(3)に示すように行われる。(1)新たなスレッド220が、既に候補ノードのいずれかに割り当てられたことがあるときには、そのノード3を選択する。(2)スレッド220の優先度が高いときには、候補ノードの内、その使用率が最低のいずれかを選択する。(3)スレッド220の優先度が低いときには、候補ノードの内、その使用率が中位のノード3を選択する。
【選択図】図7

Description

本発明は、複数の処理装置の1つ以上に、生起した処理を選択的に実行させるように制御する処理制御装置およびその方法に関する。
例えば、特許文献1は、マルチプロセッサシステムにおける資源管理方法を開示する。
また、特許文献2は、非均一メモリアクセス(NUMA; Non-uniform Memory Access)形式のコンピュータシステムにおけるタスクのディスパッチ方法を開示する。
また、非特許文献1は、NUMA形式のコンピュータの構成、および、複数のプロセッサそれぞれに、対称的にOS(Operating System)の処理を実行させる対称型マルチプロセッサ(Symmetric Multiprocessor;SMP)を開示する。
このようなマルチプロセッサシステムにおいては、システムを構成する複数の処理装置に、効率的に処理を割り当てて実行させると、その処理能力を高めることができる。
特開平6−259386 特表2005−508545 モダンオペレーティングシステム・原著第2版,pp.512 - p.523(A・S・タンネンバウム著(水野他訳),Pearson Education Japan刊,2004年10月,ISBN4-89471-537-6)
本発明は、上述した背景からなされたものであって、マルチプロセッサシステムに含まれる複数のデータ処理装置に、効率的に処理を割り当てて、実行させるように制御する改良された処理制御装置およびその方法を提供することを目的とする。
上記目的を達成するために、本発明にかかる処理制御装置は、処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて動作し、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御装置であって、前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択手段と、前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御手段とを有する。
好適には、前記選択手段は、前記生起した処理単位の処理要求の優先度が所定の値より低いときには、複数の処理装置の内、その使用率が所定の範囲内のもののいずれかを選択する
好適には、前記選択手段は、前記複数の処理装置それぞれの情報に基づいて、前記生起した処理単位を実行させる処理装置の1つ以上を抽出する抽出手段と、前記生起した処理単位の情報に基づいて、前記抽出された処理装置から、前記生起した処理単位を実行させる処理装置を選択する選択手段とを有する。
好適には、前記複数の処理装置は、前記処理のために用いられるデータを伝送する伝送路をさらに有し、前記処理装置それぞれは、1つ以上の演算処理装置と、記憶装置とを含み、前記処理装置それぞれの記憶装置は、他の前記処理装置それぞれから、前記伝送路を介してアクセスされる。
好適には、前記抽出手段は、前記生起した処理単位を実行させる処理装置を選択するための第1の基準と、前記処理装置それぞれを構成する資源の情報とを比較して、前記第1の基準を満たすデータ処理装置を、前記処理単位に割り当てられる処理装置の候補として抽出する。
好適には、前記第1の基準および前記資源の情報は、それぞれ、前記演算処理装置の使用率を示す基準、および、前記記憶装置の残り記憶量を示す基準のいずれかを含む。
好適には、前記生起した処理単位の処理要求は、この処理単位を実行させる処理装置を選択するための第2の基準を含み、前記選択手段は、前記抽出された処理装置から、前記生起した処理単位の処理要求に含まれる第2の基準を満たす処理装置を選択する。
好適には、前記制御手段は、前記生起した処理単位を、前記選択された処理装置によってのみ実行させるように制御する。
また、本発明にかかる処理制御方法は、処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御方法であって、前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択ステップと、前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御ステップとを含む。
また、本発明にかかる処理制御プログラムは、処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御プログラムであって、前記複数の処理装置は、全体として1つの構成されるコンピュータを構成し、前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択ステップと、前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御ステップとを前記コンピュータに実行させる。
本発明によれば、マルチプロセッサシステムに含まれる複数のデータ処理装置に、効率的に処理を割り当てて、実行させるように制御する改良された処理制御装置およびその方法が提供される。
以下、本発明の実施形態を説明する。
NUMA形式などのマルチプロセッサシステムにおいては、システムを構成する複数の処理装置(ノード)に、プロセスを構成し、処理の単位となるスレッドの処理を、効率的に行わせるためには、予め、各ノードの資源の構成や、処理実行中の各ノードの演算処理装置(CPU)およびメモリの使用率(平均使用率あるいは各時点における使用率)などの情報を集めておき、その情報を利用して、各ノードに処理を割り当てて実行させるとよい。
また、他よりも高い優先度が付されたスレッドを、確実に実行するためには、複数のノードの一部のCPU・メモリの使用率を低く保って、処理能力に余裕を残したノードを確保しておくことが望ましい。
また、さらに、スレッドの処理時間を短縮するためには、あるスレッドの処理が、あるノードに閉じて行われるように制御するとよい。
以下に説明する本発明にかかる処理制御方法は、これらのような観点から改良が加えられている。
なお、本発明にかかる処理制御方法は、NUMA型のコンピュータだけでなく、広く、マルチプロセッサ一般に応用可能であるが、以下、説明の具体化、および、明確化のために、本発明にかかる処理制御方法が、NUMA型のコンピュータに応用される場合を具体例とする。
[コンピュータ1]
図1は、本発明にかかる処理制御方法が適用されるコンピュータ1のハードウエア構成を例示する図である。
図1に示すように、コンピュータ1は、NUMA型のマルチプロセッサシステムであって、n個のノード3−1〜3−n(nは、2以上の整数、但し、nが常に同じ数であるとは限らない)には、一意な識別子が付されており、クロスバスイッチなどから構成されるノード間ネットワーク10を介して、相互に選択的なデータの読み出しおよび書き込みが可能なように接続されて構成される。
ノード間ネットワーク10には、必要に応じて、さらに、表示装置・キーボードなどの入出力装置、通信装置、および、HDD・CD装置などの記録装置などの周辺装置100が接続される。
なお、以下、ノード3−1〜3−nなど、複数ある構成部分のいずれかを示すときには、単に、ノード3などと略記することがある。
[ノード3]
図2は、図1に示したノード3のハードウエア構成を例示する図である。
図2に示すように、ノード3は、それぞれキャッシュ304を備えたn個(例えば4個)のCPU302と、ディレクトリ管理部306と、メモリ310とが、ローカルバス300を介して接続されて構成される。
ローカルバス300と、図1に示したノード間ネットワーク10とは、ネットワークインターフェース308を介して接続される。
図3は、図1に示したコンピュータ1において用いられるメモリアドレスを例示する図であり、図4は、図2に示したノード3におけるメモリ310のディレクトリを例示する図である(なお、図3,図4は、上記非特許文献1からの引用)。
図3に示すように、コンピュータ1においては、32ビットのメモリアドレスが用いられ、これら32ビットの内、第0ビット〜第7ビット(8ビット)は、ノードを識別するために用いられ、第8ビット〜第25ビット(18ビット)は、ノード3のメモリ310内のブロックを識別するために用いられ、第26ビット〜第31ビットは、ブロック内のオフセットを識別するために用いられる。
図4に示すように、ノード3のメモリ310は、それぞれ、図3に示したメモリアドレスの第8〜第25ビットにより識別される第0ブロック〜第218−1ブロックに分割され、各ブロックの中は、メモリアドレスの第26ビット〜第31ビットにより識別される。
メモリ310の各ブロックには、さらに、ミューティクス制御のためのビットが付加される。
あるノード3(アクセス元のノード3)が、図3に示したメモリアドレスを、ノード間ネットワーク10に対して出力すると、ノード間ネットワーク10は、アクセス元のノード3と、メモリアドレスの第0〜第7ビットにより識別されるアクセス先のノード3との間を接続する。
アクセス先のノード3とノード間ネットワーク10を介して接続されたアクセス元のノード3は、アクセス先のノード3のメモリ310からのデータの読み出し、および、メモリ310のデータの書き込みを行うことができる。
ディレクトリ管理部306は、メモリ310の各ブロックに設けられたミューティクス制御用のビットを用いて、メモリ310に対するアクセス制御を行う。
つまり、コンピュータ1において、ノード3は、互いに、ノード間ネットワーク10を介して、メモリ310内のデータに対してアクセスすることができる。
なお、図2では、ディレクトリ管理部306を用いて、各ノード内のメモリに対するアクセス制御をするとしたが、プローブ方式を採用すれば、ディレクトリ管理部306を用いなくてもよい。
プローブ方式では、すべてのメモリアクセスにおいて、CPU302に内蔵されたメモリコントローラが、全ノードに対して、メモリの番地の問い合わせを実施する。
すなわち、メモリコントローラが内蔵されたCPUを用いれば、ディレクトリ管理部306を用いなくても、メモリコントローラが全ノードに対して、そのノード内のメモリのアドレスの問い合わせをすることにより、各ノード内のメモリに対するアクセス制御をすることも可能である。
[ソフトウエア]
図5は、図1に示したコンピュータ1において実行されるソフトウエア(システムソフトウエア2)を、コンピュータ1のシステム全体の観点から見た図である。
図5に示すように、コンピュータ1には、例えば、記録媒体(図示せず)を介して、周辺装置100の記憶装置から、システムOS20およびプロセス22がロードされ、コンピュータ1のハードウエア資源を具体的に利用して実行される(以下、各プログラムについて同様)。
コンピュータ1は、対称型マルチプロセッサ(SMP)として動作し、システム全体の観点からは、ノード3およびノード間ネットワーク10が、全体として、1つのシステムOS20の機能を実現するための処理を行う。
このシステムOS20の上で、それぞれ処理の単位として1つ以上のスレッド220(図5)を含む1つ以上のプロセス22の処理が実行される。
図7を参照して後述するスレッド割り当てプログラム4は、1つ以上のプロセス22を含む。
図6は、図1に示したコンピュータ1において実行されるソフトウエア(ノードソフトウエア32)を、ノード3それぞれの観点から見た図である。
ノード3は、それぞれ、ノードOS320を実行し、各ノード3のノードOS320は、全体として、システムOS20(図5)の機能を実現する。
ノード3は、ノードOS320の上で、プロセス22(図5)を構成するスレッド220は、それぞれ、識別子などにより一意に識別され、スレッド220の内、スレッド割り当てプログラム4によって割り当てられたスレッド322を実行する。
つまり、原理的には、プロセス22を構成するスレッド220は、任意のノード3に、スレッド322として割り当てられ、ノードOS320の上で実行されうる。
このとき、スレッド割り当てプログラム4を構成するプロセス22に含まれるスレッド220もまた、ノード3により、ノードOS320上で、スレッド220として実行される。
図5,図6に示すように、プロセス22は、その実行が開始されるとき、および、その実行中に、新たなスレッド220を生起させる必要が生じたときには、そのスレッド220の生起および実行を要求するAPI(Application Program Interface)200を、システムOS20に対して発行する。
システムOS20は、新たなスレッド220のAPI200を、スレッド割り当てプログラム4に対して出力する。
システムOS20は、スレッド割り当てプログラム4などのプロセス22に対して、ノード3それぞれの以下の情報を、ノード3それぞれの識別子と対応付けて提供する。
但し、以下の情報は、コンピュータ1の構成・用途によって、いずれかのみが選択的にシステムOS20から提供されうる。
(1)ノード3それぞれの資源を示す情報(資源情報):
CPU302を示す情報(CPU302の種類および個数・クロック周波数など)およびメモリ310を示す情報(記憶容量・動作速度・冗長構成など)。
(2)ノード3それぞれの使用状態を示す情報(使用率情報):
CPU302およびメモリ310の使用率。
新たなスレッド220の処理を要求するAPI200には、以下の情報が含まれる。
但し、以下の情報の内、識別子以外の情報は、コンピュータ1の構成・用途によって、いずれかのみが選択的にAPI200に含まれうる。
(1)新たなスレッド220の識別子。
(2)新たなスレッド220のために割り当てられるべきノード3が満たすべき資源およびその使用状態の条件(選択基準情報)。
(3)新たなスレッド220が、他のスレッド220と比べてどの程度、優先的に実行されるべきかを示す優先度。
なお、以下、説明の具体化および明確化のために、優先度が「高」と「低」の2種類である場合を具体例とする。
[スレッド割り当てプログラム4]
図7は、図5に示したスレッド割り当てプログラム4の構成を示す図である。
図8は、図7に示した候補ノード抽出部42の構成を示す図である。
図9は、図7に示したノード選択部46の構成を示す図である。
図7に示すように、スレッド割り当てプログラム40は、ユーザインターフェース(UI)部400、要求受付部402、候補ノード抽出部42、ノード選択部46および割当制御部410から構成される。
スレッド割り当てプログラム4は、これらの構成部分により、システムOS20から入力されるAPI200に含まれる情報、ノード3の資源を示す情報、および、ノード3の資源の使用率などを用いて、新たなスレッド220(図5)を実行させるノード3のいずれかを選択する。
図8に示すように、候補ノード抽出部42は、構成取得部420、使用率取得部422、メモリ残量取得部424、基準取得部426およびノード抽出部430から構成される。
図9に示すように、ノード選択部46は、CPU条件取得部460、メモリ条件取得部462、優先度取得部464、ノード選択部466および割当情報記憶部468から構成される。
スレッド割り当てプログラム4は、選択したノード3に、新たなスレッド220を、スレッド322として割り当てるためのAPI324を、システムOS20(ノードOS320)に対して発行し、実行させる。
[候補ノード抽出部42]
候補ノード抽出部42(図7,図8)のUI部400は、コンピュータ1の周辺装置100(図1)に対して入力されるユーザの操作などを受け入れ、受け入れた操作を示す情報を、スレッド割り当てプログラム4の他の構成部分に対して出力し、それらの動作を制御する。
構成取得部420は、システムOS20から、ノード3それぞれの資源を示す情報を受けて、ノード抽出部430に対して出力する。
使用率取得部422は、システムOS20から、ノード3それぞれの資源の使用率の内、CPU302の使用率を示す情報(CPU使用率情報)を受けて、ノード抽出部430に対して出力する。
メモリ残量取得部424は、システムOS20から、ノード3それぞれの使用率を示す情報の内、メモリ310の使用率を示す情報(メモリ残量情報)を受けて、ノード抽出部430に対して出力する。
基準取得部426は、生起したスレッド220のAPI200から選択基準情報を取得し、あるいは、周辺装置100に対する操作により、ユーザが特定のAPI200について設定する選択基準情報を受け入れる。
基準取得部426は、これらの選択基準情報、あるいは、これらのいずれかの選択基準情報を、ノード抽出部430に対して出力する。
ノード抽出部430は、構成取得部420から入力されるノード3それぞれの資源情報、および、使用率取得部422およびメモリ残量取得部424から入力されるノード3それぞれの使用率情報と、基準取得部426から入力される新たなスレッド220の選択基準情報とを比較する。
ノード抽出部430は、資源とその使用率が、スレッド220に含まれるノード3の選択基準を満たすノード3を1つ以上、候補ノードとして抽出し、候補ノードを示す情報を、ノード選択部46に対して出力する。
図10は、図8に示したノード抽出部430が、生起したスレッド220に割り当てるノード3を抽出する処理(S10)を示すフローチャートである。
図10を参照して、ノード抽出部430の処理をさらに説明する。
図10に示すように、ステップ102(S102)において、基準取得部426は、生起したスレッド220(図5)の処理を要求するAPI200から、そのスレッド220の選択基準情報を取得する。
ステップ104(S104)において、構成取得部420、使用率取得部422およびメモリ残量取得部424は、システムOS20から、次に処理の対象とするノード3の資源情報および使用率情報を取得し、ノード抽出部430に対して出力する。
ステップ106(S106)において、ノード抽出部430は、使用率取得部422から入力されるCPU使用率情報が、API200に含まれる選択基準情報が示す基準を満たすか否かを判断する。
ノード抽出部430は、CPU使用率情報が基準を満たすときにはS108の処理に進み、これ以外のときにはS112の処理に進む。
ステップ108(S108)において、ノード抽出部430は、メモリ残量取得部424から入力されるメモリ残量情報が、API200に含まれる選択基準情報が示す基準を満たすか否かを判断する。
ノード抽出部430は、メモリ残量情報が基準を満たすときにはS110の処理に進み、これ以外のときにはS112の処理に進む。
ステップ110(S110)において、ノード抽出部430は、処理対象のノード3を、候補ノードとする。
ステップ112(S112)において、ノード抽出部430は、処理対象のノード3を、候補ノードから除外する。
ステップ114(S114)において、ノード抽出部430は、全てのノード3に対する処理を終了したか否かを判断する。
ノード抽出部430は、全てのノード3に対する処理を終了したときには、候補ノードとされたノード3を、ノード選択部46に通知して処理を終了し、これ以外のときにはS104の処理に戻る。
[ノード選択部46]
ノード選択部46(図7,図9)のCPU条件取得部460は、新たなスレッド220(図5)のAPI200から、これに含まれる資源情報の内、CPU302の個数の基準を指定する情報(CPU個数情報)を取得し、ノード選択部466に対して出力する。
メモリ条件取得部462は、新たなスレッド220のAPI200から、これに含まれる資源情報の内、メモリ310の記憶容量を示す情報(メモリ容量情報)を取得し、ノード選択部466に対して出力する。
優先度取得部464は、新たなスレッド220のAPI200から、その優先度を示す情報を取得し、ノード選択部466に対して出力する。
ノード選択部466は、CPU条件取得部460、メモリ条件取得部462および優先度取得部464から入力されるCPU個数情報、メモリ容量情報および優先度に基づいて、候補ノード抽出部42により抽出されたノード3から、新たなスレッド220を割り当てて実行させるいずれかを選択し、選択結果を、割当情報記憶部468および割当制御部410に対して出力する。
割当情報記憶部468は、いずれのノード3に、いずれのスレッド220が割り当てられたかを示す情報(割り当て情報)として、スレッド220の識別子とノード3の識別子とを対応付けて記憶する。
図11を参照して、ノード選択部466の処理をさらに説明する。
図11は、図9に示したノード選択部466が、候補ノードの中から、新たなスレッド220に割り当てるいずれかを選択する処理(S20)を示すフローチャートである。
図11に示すように、ステップ200(S200)において、ノード選択部466は、割当情報記憶部468に記憶された割り当て情報を処理し、新たに生起したスレッド220(図5)に、それ以前に、いずれかのノード3が割り当てられたか否かを判断する。
ノード選択部466は、新たに生起したスレッド220に、それ以前に、いずれかのノード3が割り当てられていたときにはS202の処理に進み、これ以外のときにはS204の処理に進む。
ステップ202(S202)において、ノード選択部466は、新たに生起したスレッド220に割り当てられるべきノード3として、それ以前にこのスレッド220に割り当てられたことがあるノード3を選択する。
ステップ204(S204)において、ノード選択部466は、候補ノード抽出部42から入力された候補ノードの内、そのCPU302の個数およびメモリ310の容量が、新たなスレッド220の基準を満たす1つ以上を選択する。
ステップ208(S208)において、ノード選択部466は、新たなスレッド220の優先度を判定する。
ノード選択部466は、新たなスレッド220の優先度が所定の値より高いときにはS212の処理に進み、これ以外のときには、S210の処理に進む。
ステップ210(S210)において、ノード選択部466は、候補ノードの内、CPU302およびメモリ310の使用率が、候補ノードの中で中位(CPU302およびメモリ310の使用率が所定の範囲内)のノード3のいずれかを選択する。
ステップ212(S212)において、ノード選択部466は、CPU302およびメモリ310の使用率が、候補ノードの中で最低のいずれかを選択する。
図12,図13は、図11に示したノード選択部466の処理の特徴を示す第1の図および第2の図である。
図12に示すように、あるスレッド220(例えばスレッド220−1)が、あるノード3(例えばノード3−1)に割り当てられ、実行されると、そのノード3−1のメモリ310ー1には、そのスレッド220−1に対応するスレッド322−1の処理のために、メモリ領域312−1が割り当てられる。
ここで、図13に示すように、その後、スレッド220−1が、例えば、スレッド322−1として、ノード3−nに割り当てられ、実行されると、そのノード3−nのメモリ310ーnには、そのスレッド220−1に対応するスレッド322−1の処理のために、さらに、メモリ領域312−nが割り当てられる。
つまり、図11に示したS200,S202の処理により、同じスレッド220(320)の処理のために、複数のノード3わたって、複数のメモリ領域312が割り当てられてしまうという不具合が回避される。
また、ノード選択部466の処理により、優先度の低いスレッド220(322;図5,図6)は、その資源の使用率が低くないノード3に割り当てられ、実行されるので、その資源の使用率が低いノード3は、優先度が高いスレッド220の生起まで温存され、優先度の高いスレッド220(322)の高速実行が常に保証される。
割当制御部410(図7)は、システムOS20に対してAPI324を発行し、ノード選択部46により選択されたノード3に対して、新たに生起したスレッド220を、スレッド322として割り当てて実行させる。
つまり、割当制御部410は、新たなスレッド220が、選択されたノード3において、スレッド322として実行されるために必要なプログラムおよびデータなどを、選択されたノード3に対してロードし、選択されたノード3において、スレッド322として実行させる。
[コンピュータ1の全体的な動作]
以下、コンピュータ1(図1,図2)の全体的な動作を説明する。
コンピュータ1においては、システム全体としては、図5に示したように、1つ以上のプロセス22(スレッド割り当てプログラム4を含む)が実行され、適宜、プロセス22により新たなスレッド220が生起させられ、その処理が、システムOS20に対するスレッド220として要求される。
スレッド割り当てプログラム4において、要求受付部402(図7)が、システムOS20を介して、新たなスレッド220のAPI200を受け取ると、候補ノード抽出部42(図7,図8)は、API200に含まれる選択基準を満たすノード3を、候補ノードとして抽出する(図10)。
ノード選択部46(図7,図9)は、候補ノード抽出部42により抽出された候補ノードから、新たなスレッド220を割り当てて実行させるいずれかを選択し、選択されたノード3を、割当制御部410(図7)に対して出力する(図11)。
割当制御部410は、ノード選択部46により選択されたノード3に対して、スレッド220(図5)を、スレッド322(図6)として割り当て、ノードOS320上で実行させる。
なお、ノード選択部46によるノード3の選択は、以下のように行われる。
図11およびここでは、まず、新たなスレッド220が、それ以前に割り当てられたことがあるか否かによりノード3が選択され、その次に、新たなスレッド220の優先順位が考慮されてノード3が選択される場合が例示されているが、コンピュータ1の用途および構成などに応じて、まず、優先順位を考慮したノード3の選択が行われ、次に、それ以前に割り当てられたことがあるか否かを考慮したノード3の選択が行われてもよい。
(1)新たなスレッド220が、既に候補ノードのいずれかに割り当てられたことがあるときには、そのノード3を選択する。
(2)スレッド220の優先度が高いときには、候補ノードの内、CPU302およびメモリ310の使用率が最低のノード3を選択する。
(3)スレッド220の優先度が低いときには、候補ノードの内、CPU302およびメモリ310の使用率が中位のノード3を選択する。
以上、プロセス割り当てプログラム4が、あるプロセスに実装され、システムOS20に呼び出される形態について記載したが、スレッド割り当てプログラム4の実施形態については、たとえば、図14〜図18を用いて後述するように、適宜、変更可能である。
図14は、スレッド割り当てプログラム4が、DLL(Dynamic Link Library)24を用いて実現される場合の形態を示す図である。
図14に示すように、スレッド割り当てプログラム4は、DLL24を用いて実現されうる。
スレッド割り当てプログラム4は、プロセス22から、スレッド220の生起および実行をするための要求を受け取る。
このスレッド割り当てプログラム4がプロセス22から受け取る要求には、前述したAPI200に含まれるスレッド220の情報と同じ情報が含まれる。
また、スレッド割り当てプログラム4は、前述したように、システムOS20から、ノード3それぞれの情報を、ノード3それぞれの識別子と対応付けて提供される。
スレッド割り当てプログラム4は、図7〜図11を用いて前述した処理を行い、プロセス22に結果情報を送る。
プロセス22は、システムOS20に対してAPI324を発行し、選択されたノード3に対して、新たに生起したスレッド220を、スレッド322として割り当てて実行させる。
図15は、スレッド割り当てプログラム4が、プロセス22自身の機能を用いて実現される場合の形態を示す図である。
図15に示すように、スレッド割り当てプログラム4は、プロセス22自身の機能を用いて実現されうる。
スレッド割り当てプログラム4は、プロセス22内の既に生成しているスレッド220から、別のスレッド220の生起および実行をするための要求を受け取る。
このスレッド割り当てプログラム4がスレッド220から受け取る要求には、前述したAPI200に含まれるスレッド220の情報と同じ情報が含まれる。
また、スレッド割り当てプログラム4は、前述したように、システムOS20から、ノード3それぞれの情報を、ノード3それぞれの識別子と対応付けて提供される。
スレッド割り当てプログラム4は、図7〜図11を用いて前述した処理を行い、プロセス22内の既に生成しているスレッド220に結果情報を送る。
プロセス22内の既に生成しているスレッド220は、システムOS20に対してAPI324を発行し、選択されたノード3に対して、新たに生起したスレッド220を、スレッド322として割り当てて実行させる。
図16は、スレッド割り当てプログラム4が、OS20に実装される場合の形態を示す図である。
図16に示すように、スレッド割り当てプログラム4は、OS20に実装されて、実現されうる。
スレッド割り当てプログラム4は、プロセス22から、スレッド220の生起および実行をするための要求を受け取る。
このスレッド割り当てプログラム4がプロセス22から受け取る要求には、前述したAPI200に含まれるスレッド220の情報と同じ情報が含まれる。
また、スレッド割り当てプログラム4は、前述したように、システムOS20から、ノード3それぞれの情報を、ノード3それぞれの識別子と対応付けて提供される。
スレッド割り当てプログラム4は、図7〜図11を用いて前述した処理を行い、プロセス22に結果情報を送る。
プロセス22は、システムOS20に対してAPI324を発行し、選択されたノード3に対して、新たに生起したスレッド220を、スレッド322として割り当てて実行させる。
図17は、スレッド割り当てプログラム4がOS20に実装され、プロセス22自身は制御に関わらない場合の形態を示す図である。
図17に示すように、スレッド割り当てプログラム4は、OS20に実装されて、プロセス22が制御に関わることなく実現されうる。
スレッド割り当てプログラム4は、プロセス生成プログラム26から、スレッド220の生起および実行をするための要求を受け取る。
このスレッド割り当てプログラム4がプロセス生成プログラム26から受け取る要求には、前述したAPI200に含まれるスレッド220の情報と同じ情報が含まれる。
また、スレッド割り当てプログラム4は、前述したように、システムOS20から、ノード3それぞれの情報を、ノード3それぞれの識別子と対応付けて提供される。
スレッド割り当てプログラム4は、図7〜図11を用いて前述した処理を行い、プロセス生成プログラム26に結果情報を送る。
プロセス生成プログラム26は、システムOS20に対してAPI324を発行し、選択されたノード3に対して、新たに生起したスレッド220を、スレッド322として割り当てて実行させる。
本発明は、マルチプロセッサシステムの各プロセッサに対するスレッドの割り当てなどに利用可能である。
本発明にかかる処理制御方法が適用されるコンピュータのハードウエア構成を例示する図である。 図1に示したノードのハードウエア構成を例示する図である。 図1に示したコンピュータにおいて用いられるメモリアドレスを例示する図である。 図2に示したノードにおけるメモリのディレクトリを例示する図である。 図1に示したコンピュータにおいて実行されるソフトウエア(システムソフトウエア)を、コンピュータのシステム全体の観点から見た図である。 図1に示したコンピュータにおいて実行されるソフトウエア(ノードソフトウエア)を、ノードそれぞれの観点から見た図である。 図5に示したスレッド割り当てプログラムの構成を示す図である。 図7に示した候補ノード抽出部の構成を示す図である。 図7に示したノード選択部の構成を示す図である。 図8に示したノード抽出部が、生起したスレッドに割り当てるノード3を抽出する処理(S10)を示すフローチャートである。 図9に示したノード選択部が、候補ノードの中から、新たなスレッドに割り当てるいずれかを選択する処理(S20)を示すフローチャートである。 図11に示したノード選択部466の処理の特徴を示す第1の図である。 図11に示したノード選択部466の処理の特徴を示す第2の図である。 スレッド割り当てプログラムが、DLLを用いて実現される場合の形態を示す図である。 スレッド割り当てプログラムが、プロセス自身の機能を用いて実現される場合の形態を示す図である。 スレッド割り当てプログラムが、OSに実装される場合の形態を示す図である。 スレッド割り当てプログラムがOSに実装され、プロセス自身は制御に関わらない場合の形態を示す図である。
符号の説明
1・・・コンピュータ,
10・・・ノード間ネットワーク,
100・・・周辺装置,
3・・・ノード,
300・・・ローカルバス,
302・・・CPU,
304・・・キャッシュ,
306・・・ディレクトリ管理部,
308・・・ネットワークインターフェース,
310・・・メモリ,
2・・・システムソフトウエア,
20・・・システムOS,
22・・・プロセス,
24・・・DLL,
26・・・プロセス生成プログラム,
220,322・・・スレッド,
200,324・・・API,
32・・・ノードソフトウエア,
320・・・ノードOS,
322・・・スレッド,
4・・・スレッド割り当てプログラム,
400・・・UI部,
402・・・要求受付部,
42・・・候補ノード抽出部,
420・・・構成取得部,
422・・・使用率取得部,
424・・・メモリ残量取得部,
426・・・基準取得部,
430・・・ノード抽出部,
46・・・ノード選択部,
460・・・CPU条件取得部,
462・・・メモリ条件取得部,
464・・・優先度取得部,
466・・・ノード選択部,
468・・・割当情報記憶部,

Claims (10)

  1. 処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて動作し、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御装置であって、
    前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択手段と、
    前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御手段と
    を有する処理制御装置。
  2. 前記選択手段は、前記生起した処理単位の処理要求の優先度が所定の値より低いときには、複数の処理装置の内、その使用率が所定の範囲内のもののいずれかを選択する
    請求項1に記載の処理制御装置。
  3. 前記選択手段は、
    前記複数の処理装置それぞれの情報に基づいて、前記生起した処理単位を実行させる処理装置の1つ以上を抽出する抽出手段と、
    前記生起した処理単位の情報に基づいて、前記抽出された処理装置から、前記生起した処理単位を実行させる処理装置を選択する選択手段と
    を有する請求項1に記載の処理制御装置。
  4. 前記複数の処理装置は、前記処理のために用いられるデータを伝送する伝送路をさらに有し、
    前記処理装置それぞれは、
    1つ以上の演算処理装置と、
    記憶装置と
    を含み、
    前記処理装置それぞれの記憶装置は、他の前記処理装置それぞれから、前記伝送路を介してアクセスされる
    請求項1に記載の処理制御装置。
  5. 前記抽出手段は、前記生起した処理単位を実行させる処理装置を選択するための第1の基準と、前記処理装置それぞれを構成する資源の情報とを比較して、前記第1の基準を満たすデータ処理装置を、前記処理単位に割り当てられる処理装置の候補として抽出する
    請求項3に記載の処理制御装置。
  6. 前記第1の基準および前記資源の情報は、それぞれ、
    前記演算処理装置の使用率を示す基準、および、前記記憶装置の残り記憶量を示す基準のいずれか
    を含む
    請求項5に記載の処理制御装置。
  7. 前記生起した処理単位の処理要求は、この処理単位を実行させる処理装置を選択するための第2の基準を含み、
    前記選択手段は、前記抽出された処理装置から、前記生起した処理単位の処理要求に含まれる第2の基準を満たす処理装置を選択する
    請求項6に記載の処理制御装置。
  8. 前記制御手段は、前記生起した処理単位を、前記選択された処理装置によってのみ実行させるように制御する
    請求項1に記載の処理制御装置。
  9. 処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御方法であって、
    前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択ステップと、
    前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御ステップと
    を含む処理制御方法。
  10. 処理を構成する処理単位の優先度を含み、生起した前記処理単位の処理を要求する処理要求に応じて、前記処理単位をそれぞれ実行する複数の処理装置に、前記生起した処理単位を割り当てて実行させる処理制御プログラムであって、前記複数の処理装置は、全体として1つの構成されるコンピュータを構成し、
    前記生起した処理単位の処理要求の優先度が所定の値より低い場合、複数の処理装置の内、使用率が最も低いものを除いたいずれかを選択する選択ステップと、
    前記選択されたデータ処理装置を制御して、前記生起した処理単位を実行させるように制御する制御ステップと
    を前記コンピュータに実行させる処理制御プログラム。
JP2006026839A 2006-02-03 2006-02-03 処理制御装置およびその方法 Expired - Fee Related JP4773835B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006026839A JP4773835B2 (ja) 2006-02-03 2006-02-03 処理制御装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006026839A JP4773835B2 (ja) 2006-02-03 2006-02-03 処理制御装置およびその方法

Publications (2)

Publication Number Publication Date
JP2007207072A true JP2007207072A (ja) 2007-08-16
JP4773835B2 JP4773835B2 (ja) 2011-09-14

Family

ID=38486472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006026839A Expired - Fee Related JP4773835B2 (ja) 2006-02-03 2006-02-03 処理制御装置およびその方法

Country Status (1)

Country Link
JP (1) JP4773835B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277171A (ja) * 2009-05-26 2010-12-09 Hitachi Ltd タスク割当装置、および、タスク割当方法
JP2011507085A (ja) * 2007-12-14 2011-03-03 コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883257A (ja) * 1994-09-13 1996-03-26 Hitachi Ltd 並列コンピュータシステムのプロセス実行最適化方法
JPH1078937A (ja) * 1996-07-12 1998-03-24 Nec Corp 複数コンピュータ間の業務分散システム、業務分散方法 および業務分散プログラムを記録した記録媒体
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
JP2006113827A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd Cpu余裕管理とトランザクション優先度による負荷分散方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883257A (ja) * 1994-09-13 1996-03-26 Hitachi Ltd 並列コンピュータシステムのプロセス実行最適化方法
JPH1078937A (ja) * 1996-07-12 1998-03-24 Nec Corp 複数コンピュータ間の業務分散システム、業務分散方法 および業務分散プログラムを記録した記録媒体
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
JP2006113827A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd Cpu余裕管理とトランザクション優先度による負荷分散方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507085A (ja) * 2007-12-14 2011-03-03 コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム
JP2010277171A (ja) * 2009-05-26 2010-12-09 Hitachi Ltd タスク割当装置、および、タスク割当方法

Also Published As

Publication number Publication date
JP4773835B2 (ja) 2011-09-14

Similar Documents

Publication Publication Date Title
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
JP6542909B2 (ja) ファイル操作方法及び装置
US8327370B2 (en) Dynamic policy manager method, system, and computer program product for optimizing fractional resource allocation
JP4702127B2 (ja) 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP5159884B2 (ja) 論理区分の間におけるネットワーク・アダプタ・リソース割振り
US8296771B2 (en) System and method for mapping between resource consumers and resource providers in a computing system
US8112524B2 (en) Recommending moving resources in a partitioned computer
US9336147B2 (en) Cache and memory allocation for virtual machines
WO2010052829A1 (ja) 資源割付方法、プログラム、及び資源割付装置
CN111542812B (zh) 基于虚拟节点资源的增强型高速缓存存储器分配
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
US20100229175A1 (en) Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems
JP2010282420A (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
US20180196603A1 (en) Memory Management Method, Apparatus, and System
JP2011039800A (ja) データベース管理方法およびシステム並びにその処理プログラム
US8352702B2 (en) Data processing system memory allocation
US20070240126A1 (en) System and method for event based resource selection
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
US20230100484A1 (en) Serverless function colocation with storage pools
CN113678104A (zh) 设备内符号数据移动系统
JP4773835B2 (ja) 処理制御装置およびその方法
JP6666553B2 (ja) 情報処理装置、ジョブ管理方法およびジョブ管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110602

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110624

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4773835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees