JP5045576B2 - マルチプロセッサシステム及びプログラム実行方法 - Google Patents

マルチプロセッサシステム及びプログラム実行方法 Download PDF

Info

Publication number
JP5045576B2
JP5045576B2 JP2008167373A JP2008167373A JP5045576B2 JP 5045576 B2 JP5045576 B2 JP 5045576B2 JP 2008167373 A JP2008167373 A JP 2008167373A JP 2008167373 A JP2008167373 A JP 2008167373A JP 5045576 B2 JP5045576 B2 JP 5045576B2
Authority
JP
Japan
Prior art keywords
cpu
load
execution process
new
new execution
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.)
Expired - Fee Related
Application number
JP2008167373A
Other languages
English (en)
Other versions
JP2010009288A (ja
Inventor
明 平田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008167373A priority Critical patent/JP5045576B2/ja
Publication of JP2010009288A publication Critical patent/JP2010009288A/ja
Application granted granted Critical
Publication of JP5045576B2 publication Critical patent/JP5045576B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のCPUの負荷を分散するマルチプロセッサシステム及びプログラム実行方法に関するものである。
従来、複数のCPU(Central Processing Unit)でシステムを構築する所謂マルチプロセッサシステムでは、対称型マルチプロセッサ(SMP)でシステムを構築し、SMP専用のオペレーティングシステム(OS)がCPUの負荷を均一にする機能によりプロセスの振り分けを行っていた。
また、CPU毎に機能を持たせて複数CPUで処理を行う非対称マルチプロセッサ(AMP)では各CPUにプログラムを固定して実行するため、CPU負荷の不均一が発生し、複数のCPUを有効に利用することができなかった。
特許文献1の「マルチプロセッサシステム」は、上記のようなAMPにおけるCPU負荷の不均一を改善することを示したもので、プロセス毎の実行負荷(処理指数)とプロセッサ毎の負荷状況(処理余力値)及び、プロセスの実行優先度から判断して、次に実行を開始するプロセス及び、割り当てるプロセッサを決定するというプログラム実行方式が用いられている。
特開2006−350622号公報
従来の技術では、AMPにおいて負荷の少ないCPUが新たに投入するプロセス処理することでCPU間の負荷分散が可能であるが、CPUの負荷状況及び新たに投入するプロセスの実行負荷のみでは、各CPUが個別の機能を持った機能分散型のマルチCPUでは処理できないプロセスが発生し得る等の問題があった。
本発明は、上記のような課題を解決するためになされたものであり、マルチCPU環境において、システム上に発生するプロセスを何れのCPUに割り当てるかを決定するため、システム上の各CPUの近い将来における負荷状況から判断する手段と、各CPUで動作するOSが持つ機能が投入するプロセスが必要とする機能を満たしていることを判断基準とする手段と、各CPUから利用可能なIOアクセスの論理的距離と投入するプロセスが必要とするIOの依存状況を判断基準とする手段を用いることで、特定のCPUに負荷が集中することを避けることを目的としたものである。
この発明に係るマルチプロセッサシステムは、CPU(Central Processing Unit)毎の重み付けがされたCPU候補テーブルと、
新たに発生した新規実行プロセスが使用するOS(Operating System)機能とこの新規実行プロセスが使用する周辺機器への依存度とが記録されたプロセス情報テーブルと、
前記新規実行プロセスが発生した時に負荷状況の問い合わせをし、負荷状況が送信されるとこの負荷状況を基に前記CPU候補テーブルを更新し、又前記プロセス情報テーブルの前記OS機能と前記周辺機器への依存度とを送信し、又送信された評価値を基に前記CPU候補テーブルを更新し、この更新CPU候補テーブルを基に前記新規実行プロセスを実行させるのに最も適した最適CPUを決定し、この最適CPUに処理を実行させる新規CPU決定手段とを有するCPUと、
前記新規CPU決定手段により負荷状況の問い合わせを受けると、それぞれ自らのCPUの負荷を算出し、前記CPUに負荷状況を送信する負荷状況算出手段と、
前記CPUにより送信された前記OS機能と前記周辺機器への依存度とを基に前記新規実行プロセスを実行した場合の前記評価値を算出し前記CPUに送信する情報管理手段とをそれぞれ有する複数のCPUと、を備えたものである。
この発明は、CPUが、複数の他のCPUから送信された各CPUの負荷状況と新規実行プロセスを実行した場合の評価値とを基に各CPU毎の重み付けがされたCPU候補テーブルを更新し、この更新CPU候補テーブルを基に前記新規実行プロセスを実行させるのに最も適した最適CPUを決定し、この最適CPUに処理を実行させることにより、特定のCPUに負荷が集中することを避けることができる。
実施の形態1.
図1は、本発明のマルチプロセッサシステムが利用される計算機システムの構成図である。
複数のCPU101〜103において、個別に同一のオペレーティングシステム(OS:Operating System)121〜123が動作する計算機システム100がある。CPU101〜103は同一アーキテクチャを持ち、それぞれ個別に周辺機器(IO:Input/Output)群111〜113が接続されている。
また、CPU101〜103は通信路106で接続され、CPU同士直接、或いは同じく通信路106に接続されるメモリ105、同じく通信路106に接続される記憶デバイス等のIO104、を介して互いに情報を伝達できるように構成されている。
各CPU101〜103で動作するOS121〜123は、各CPU個別の機能を実現するためOS構成は異なるが同一アーキテクチャを持つOSとする。例えば、CPU101で動作するOS121には、表示のIO111を制御するデバイスドライバと画面表示を行なうためのOS機能は実装されるが、オーディオ入出力のための機能は搭載していない構成のOSであり。一方、CPU102で動作するOS122は、OS121の構成とは異なり、オーディオ入出力の機能は持つが、画面表示機能は無いOS構成である。なお、複数個の同一構成を持つOSにより、システムを構成することも可能である。
全てのCPUで同一アーキテクチャのOSを動作させることで、何れかのCPUで発生するプロセスをどのCPUでも実行させることが可能となる。
図2は、本発明のマルチプロセッサシステムを構成するCPUの構成図であり、ここでは、計算機システム100のCPU103を例に、CPUで動作するソフトウェアの構成を示しており、オペレーティングシステム(OS)123とOS管理のもと動作するプロセス群(201、202)を表している。
このプロセス群のうち、CPU103で実行中のものを実行中プロセス201、CPU103で新たに発生したプロセスでシステムに未投入のものを新規投入プロセス202として表している。
新規投入プロセス202は、自身が動作中に使用するOS機能の一覧及び処理において使用するIOデバイスの依存度をプロセス情報テーブル311として持つ。
図3は、プロセス情報テーブル311の説明図である。図において、プロセス情報テーブル311は、新規投入プロセス202自身が動作中に使用するOS機能を列挙したOS−API(API:Application Program Interface)リスト411及びプロセスが動作中に使用するIOへの依存度を示したIOデバイス依存率リスト412を持つ。
ここで、OS−APIは、アプリケーションが動作する際に、利用するOSの機能(関数、システムコール等)を示すもので、本実施の形態で示すOSはシステム(CPU)において必要な機能のみを組み合わせることが出来るOSを想定している。
図4は、OS−APIリスト411の一例を示した説明図である。図において、OS−APIリスト411は、新規投入プロセス202を作成する際に、生成されるマップファイルやデバッグシンボル情報を持つプログラムデータベースより確認できる、新規投入プロセス202が動作する際に使用するOSのAPI一覧を情報として持つ。
図5は、IOデバイス依存率リスト412の一例を示した説明図である。図において、IOデバイス依存率リスト412は、新規投入プロセス202をOS123と共にCPU103へ実装する際にシステム設計者が任意に決定する依存度合いを数値として持つ。
図05に示したIO依存率は、数値が大きいほどそのIOへの依存度が高いことを示す。なお、このIO依存率は、単位時間中にIOへアクセスする頻度としてもよい。
図6は、図2に示したOS123が持つ機能一覧を表したOS機能テーブル312の説明図である。
図において、OS機能テーブル312は、OS123が持つ機能一覧を表すもので、ユーザアプリケーション(プロセス)からOS機能を利用する際に、コールされるAPIをテーブルとして持つものである。
また、OS機能テーブル312は、OS123を生成する際の情報から作成し、システム設計時に初期値を設定した状態で組み込み使用する。OS123の構成が動的に変更できるOSの場合には、初期値を設定したOS機能テーブル312の内容を動的に更新して使用する。
図7は、図2に示したIOアクセス・コストテーブル313の説明図である。
図において、IOアクセス・コストテーブル313は、あるCPUからIOにアクセスを行なう際に要する各IOデバイスへの論理的な距離を表し、自CPUに接続されるIOであればデバイスドライバ203を介して直接アクセスが可能であるため論理的距離は小さく、自CPUには無いIOに対し通信路106を介して他のCPU経由でアクセスする場合には論理的距離が大きいものとする。
また、IOアクセス・コストテーブル313は、最初にシステムを構築した際に、複数のCPUを組み合わせた構成において、各CPUから他CPUのIOへアクセスした場合のオーバヘッドを測定用ツール(ベンチマークプログラム)等で数値化し、予めテーブルとして作成したものを利用する。IOアクセスに要するオーバヘッドが動的に変わるシステムでは、IOアクセス・コストテーブル313の設定内容を更新して使用する。
図2に示したCPU情報マネージャ206は、OS機能テーブル312と、IOアクセス・コストテーブル313へのアクセスおよびテーブル情報の更新を行なう情報管理手段である。
一般的に、CPUで実行するプロセスには、一度投入された後は継続的に処理を行い条件により終了するプロセスと、与えられたデータに対し決められた一連の処理を行なった後、無条件に終了するプロセスがある。以降では、後者のようなプロセスの形態をシーケンシャル実行プロセス401と呼ぶ。
図8、図9は、シーケンシャル実行プロセス401について示した説明図である。
図8において、シーケンシャル実行プロセス401は、その処理中にチェックポイントを設け、チェックポイント通過を確認することで終了が近いことを判定できる。
また、図9において、シーケンシャル実行プロセス401は、チェックポイントを設ける代わりに、シーケンシャル実行プロセスの実行位置をプログラムカウンタ(PC)より確認することでも進捗状況を確認できる。
図2に示したシステムモニタ204は、シーケンシャル実行プロセス401が無条件に終了する特性を用い、自CPUにおける近い将来における負荷状況を算出する機能を持つ、負荷状況算出手段であり、他CPUから自CUPの負荷状況に対して問合せがあった際に、将来の負荷状況を回答するように動作する。
なお、CPUの負荷状況を判断するには、優先度が一番低いIDLE(待機)プロセスが一定期間中に動作している割合(時間)を用いるのが一般的で、OSが提供している場合もある。また、動作中のプロセスが一定期間中のCPU占有時間を観測することにより、特定プロセスが占めるCPU負荷を確認することもできる。
シーケンシャル実行プロセス401の終了が近いことと、実行中の各プロセスのCPU負荷が分かることから、現時点より所定の時刻T後のCPU負荷状況を算出することができる。
図10は、システムモニタ204を2つのCPU(CPU−1,CPU−2)に適用した場合の動作について示した説明図であり、各CPUにおけるプロセスの動作状態と対応する負荷状況について時系列で表している。
図において、CPU−1ではプロセス1A、1Bが、CPU−2ではプロセス2A、2Bが動作し、CPU−1、CPU−2の負荷状況を確認する要求があった時に、現時点ではCPU−1ではプロセス1A,1Bが動作し、CPU−2ではプロセス2A,2Bが動作しているが、CPU−1とCPU−2でそれぞれ動作するシステムモニタ204の機能を用い、時刻T後における負荷状況を予測することで、CPU−1の負荷が近い将来低くなることが確認できることが分かる。
図2に示した投入プロセスマネージャ205は、CPU103で発生する新規投入プロセス202を計算機システム100の何れのCPU(101〜103)に割り当てるかを決定するもので、通信路106を介して、他のCPUで動作するシステムモニタ204から得られる負荷状況、同じく他のCPUで動作するCPU情報マネージャ206から得られる情報を元に、何れのCPUへ新規投入プロセス202を投入するか決定する新規CPU決定手段である。
図2に示したCPU情報マネージャ206は、投入プロセスマネージャ205より伝えられる新規投入プロセス202のプロセス情報テーブル311と、自CPUにおけるOS機能テーブル312とIOアクセス・コストテーブル313を元に、自CPUで新たに新規投入プロセス202を実行した場合の評価値を、通信路106を介して新規投入プロセス202が発生したCPU103へ報告する。
次に、投入プロセスマネージャ205の処理動作について説明する。
図11は、投入プロセスマネージャ205の処理動作を示すフローチャートである。
投入プロセスマネージャ205は、システム起動時に処理を開始し、初期状態の投入先CPU候補テーブルを作成する(ステップS1)。この投入先CPU候補テーブルは、後述の図13に示すCPU候補テーブル601であり、計算機システム100に属するCPU毎に重み付けを行い、以降示す判断基準によりCPU毎の重み付けの値を修正し、新たに発生したプロセスを投入するCPUを決定するために使用するものである。
投入プロセスマネージャ205は、起動した後、自分自身が動作するCPU(以降、自CPUと記す)に新たに発生するプロセスを監視し、自CPUで新たにプロセスが発生したことを確認すると(ステップS2)、自CPUを含む計算機システム100に属するCPU(101〜103)の負荷状況を各CPUで動作するシステムモニタ204に問い合わせをし、この問い合わせに対し各CPUのシステムモニタ204から応答されたCPUの負荷状況を取得する(ステップS3)。
ここで、各CPUのシステムモニタ204は、投入プロセスマネージャ205からCPUの負荷状況の問い合わせを受けると、前述の判断方式により各々、自CPUの負荷を算出し、投入プロセスマネージャ205にCPUの負荷状況(負荷指数)として応答を返す。CPU間の情報伝達はバス106或いはメモリ105を介した方法等で行なう。
投入プロセスマネージャ205は、各CPUから受け取ったCPUの負荷状況を元に、負荷が高いCPUにはプロセスを割り当てる比率を低くなるように、また負荷が低いCPUにはプロセスを割り当てる比率が高くなるように投入先CPU候補テーブル601を更新する(ステップS4)。即ち、投入プロセスマネージャ205は、複数のCPUのシステムモニタ204により送信された負荷状況の中で負荷が高いCPUには新規実行プロセスを実行させる比率を低くなるように、又負荷が低いCPUには新規実行プロセスを実行させる比率を高くするようにCPU候補テーブル601を更新する。
続いて、投入プロセスマネージャ205は、新規投入プロセス202のプロセス情報テーブル311に含まれるOS−APIリスト411とIOデバイス依存率リスト412を読み出し(ステップS5)、自CPUを含む計算機システム100に属するCPU(101〜103)で動作するCPU情報マネージャ206にこれら情報を伝達する(ステップS6)。
各CPUのCPU情報マネージャ206は、受け取った情報を元に、各々のCPUで新規投入プロセス202を実行した場合の評価値を返す。なお、各CPUで動作するCPU情報マネージャ206の動作は後述する。
投入プロセスマネージャ205は、各CPUから返される前述の評価値を元に、評価値が低いCPUにはプロセスを割り当てる比率を低くなるように、評価値が高いCPUにはプロセスを割り当てる比率が高くなるように投入先CPU候補テーブル601を更新する(ステップS7)。即ち、投入プロセスマネージャ205は、複数のCPUのCPU情報マネージャ206により送信された評価値の中で評価値が高いCPUには新規実行プロセスを実行させる比率を高くなるように、又評価値が低いCPUには新規実行プロセスを実行させる比率を低くするようにCPU候補テーブル601を更新する。
投入プロセスマネージャ205は、以上の手順より作成した投入先CPU候補テーブル601から、新規投入プロセス202を実行させるのに最も適したCPUを決定し(ステップS8)、新規投入プロセス202の処理を担当させるCPUのOSに対してプロセスを実行するように要求する(ステップS9)。
次に、CPU情報マネージャ206の処理動作について説明する。
図12は、CPU情報マネージャ206の処理動作を示すフローチャートである。
CPU情報マネージャ206は、システム起動時に処理を開始し、自CPUで動作するOSが持つOS機能をOS機能テーブル312として作成(ステップS11)、さらに、自CPUから計算機システム100内に存在するIOデバイスに対してアクセスした場合のアクセスに要する手間の度合い(オーバヘッド)を表として持つIOアクセス・コストテーブル313を作成する(ステップS12)。
CPU情報マネージャ206は、OS機能テーブル312とIOアクセス・コストテーブル313を作成した後、自CPU或いは他のCPUで動作する投入プロセスマネージャ205からのリクエストを待ち、投入プロセスマネージャ205から、新規投入プロセス202の情報(プロセス情報テーブル311に含まれるOS−APIリスト411及びIOデバイス依存率リスト412)と共に、リクエストがあり(ステップS13)、新規投入プロセス202の評価依頼と共に送られる投入プロセスの情報(OS−APIリスト411及びIOデバイス依存率リスト412)を取得し(ステップS14)、新規投入プロセス202を自CPUで動作した場合の評価を以下の手順で行なう。
CPU情報マネージャ206は、新規投入プロセス202のOS−APIリスト411と、OS機能テーブル312に含まれる自CPUで動作するOSが持つOS機能とを比較し(ステップS15)、新規投入プロセス202が自CPUで動作するOSで実行可能か判断する。
OS−APIリスト411は、新規投入プロセス202が実行するために必要なOS機能の一覧を示したもので、このリストにある機能全てが、OS機能テーブル312に含まれている場合は、実行可能と判定し、OS−APIリスト411に或る機能のうちOS機能テーブル312に含まれないものが有る場合にはこのOSでは実行できないと判定する(ステップS16)。
前述の判定において実行可能と判断した場合、CPU情報マネージャ206は、OS機能テーブル312とIOアクセス・コストテーブル313を用いてIOアクセス・コストの算出を行なう。
IOアクセス・コストの算出は、新規投入プロセス202が実行中に使用するIOデバイスのアクセス頻度からなる重み付けを表すIOデバイス依存率リスト412に対し、自CPUから参照可能な計算機システム100中の各種IOへのアクセスに要するオーバヘッドからなるIOアクセス・コストテーブル313を掛け合わせ、評価値を算出する(ステップS17)。
なお、前述のOS機能テーブル312とOS−APIリスト411の比較結果から、自CPUで動作するOSでは実行不可と判断した場合には、自CPUへは新規投入プロセス202の割り当て不可という評価値とする(ステップS18)。
CPU情報マネージャ206は、以上の評価値を当CPU情報マネージャ206の結果として、ステップ13でリクエストされたCPUに対してリクエストに対する応答として返す(ステップS19)。
図13は、前述の処理手順に基づき、新規投入プロセス202を実行するCPUを決定する場合のCPU候補テーブル601の更新状況を示した説明図であり、新規投入プロセス202がCPU1で発生した場合を想定したものである。
(a)の初期値に対して、(b)に示すような、各CPUのシステムモニタ204から回答された各CPUの負荷状況(負荷指数)に従いCPU負荷判定を行い、(c)に示すようにCPU候補テーブル601の更新が行なわれる。この例では、各CPUのシステムモニタ204から回答された各CPUの負荷状況は、CPU1は負荷指数8で負荷状況が高い状態で、その他のCPUは負荷が低い状況である場合を示している。
次に、(d)に示すようなOS−APIリスト411とOS機能テーブル312の比較結果に従い、(c)のCPU候補テーブル601を(e)のCPU候補テーブル601に更新する。ここで、(d)のOS−APIリスト411とOS機能テーブル312の比較で、CPU3は搭載されているOSの機能が新規投入プロセス202の必要とする機能と一致しないため、(e)のCPU候補テーブル601におけるCPU3は評価値が0となる。
続いて、(f)に示すようなIOデバイス依存リスト412とIOアクセス・コストテーブル313の比較結果を(e)のCPU候補テーブル601に反映させ、最終的な結果としてCPU2で新規投入プロセス202を実行させることを決定したことを表している。
なお前述の処置手順の他に、各CPUにおける実行中のプロセス群201が使用するOS機能及び使用するIOデバイスの頻度をCPU情報マネージャ206が監視し、OS機能テーブル312の重み付けやIOアクセス・コストテーブル313における各IOの重み付けを動的に変更して、新規投入プロセス202との競合を考慮した形で判定を行なうことも可能である。
以上のように本実施の形態によれば、複数のCPUからなる計算機システムにおいて、複数あるCPU同士が互いの負荷状態を確認しながら、システム全体の負荷を均一化するように、処理を分担し合うことができるようにしたので、特定のCPUに負荷が集中することを避けることができ、この複数のCPUにより構成された計算機システムのスループットを向上させることができると共に、応答性能を向上させることができる。
また、複数あるCPU同士が互いの負荷状態を確認する際に、現時点での負荷状態の他に、近い将来に処理が完了することを判断する方式を用いることで、より効率的な負荷分散を実現することができる。
さらに、ある処理をあるCPUに割り当て実行させようとした場合、そのCPUで動作するOSの持つ機能が、割り当てられる予定であった処理が必要とする機能を搭載しない場合に、割り当てを取りやめる機能を搭載することにより、実行時に発生するシステム例外や、実行できなかったことによる、担当CPUの再検索を行なう手間を省くことができ、手戻りの無い有効な処理分散方式を提供することができる。
また、ある処理を何れかのCPUに割り当て実行させる際に、その処理が動作中に利用するIOの利用頻度を、その処理自身が情報として持つことにより、実行させる処理が最適に動作できる状態で実行できる機能を提供することができる。
さらにまた、ある処理を複数CPU環境の何れのCPUに割り当てるか判断する方法として、前述の判定方法を組合せ、さらに判定に用いるパラメータ(近い将来として使用する時間間隔、処理が必要とするIOの利用頻度等)をシステム動作中に動的に変更することにより、さらに効率的な処理分散を提供することができる。
また、ある処理を実行するためのOS機能が、担当するCPUに無い場合、その機能を持つ他のCPUへ遠隔処理要求(RPCやDCOM等を利用)することで、特定の処理は特定のCPUでのみ実行できる状態を回避することができ、更なる処理分散を実現することができる。
また、OS機能への依存度を処理自身が情報として持ち、各CPUが提供できるOS機能群の処理能力をパラメータとして提供することで、処理を担当するCPUを決定する判断基準を拡張することができる。
本発明のマルチプロセッサシステムが利用される計算機システムの構成図。 本発明の実施の形態のマルチプロセッサシステムを構成するCPUの構成図。 本発明の実施の形態におけるプロセス情報テーブル311の説明図。 本発明の実施の形態におけるOS−APIリスト411の説明図。 本発明の実施の形態におけるIOデバイス依存率リスト412の説明図。 本発明の実施の形態におけるOS機能テーブル312の説明図。 本発明の実施の形態におけるIOアクセス・コストテーブル313の説明図。 本発明の実施の形態におけるシーケンシャル実行プロセス401の説明図。 本発明の実施の形態におけるシーケンシャル実行プロセス401の説明図。 本発明の実施の形態においてシステムモニタ204をCPU−1、CPU−2に適用した場合の動作説明図。 本発明の実施の形態における投入プロセスマネージャ205の処理動作を示すフローチャート。 本発明の実施の形態におけるCPU情報マネージャ206の処理動作を示すフローチャート。 本発明の実施の形態において新規投入プロセス202を実行するCPUを決定した場合のCPU候補テーブル601の更新状態説明図。
符号の説明
100 計算機システム、101、102、103 CPU、104 IO、105 メモリ、106 通信路、111、112、113 IO、201 実行中プロセス、202 新規投入プロセス、203 デバイスドライバ、204 システムモニタ、205 投入プロセスマネージャ、206 CPU情報マネージャ、311 プロセス情報テーブル、312 OS機能テーブル、313 IOアクセス・コストテーブル、401 シーケンシャル実行プロセス、411 OS−APIリスト、412 IOデバイス依存率リスト、601 CPU候補テーブル。

Claims (5)

  1. CPU(Central Processing Unit)毎の重み付けがされたCPU候補テーブルと、
    新たに発生した新規実行プロセスが使用するOS(Operating System)機能とこの新規実行プロセスが使用する周辺機器への依存度とが記録されたプロセス情報テーブルと、
    前記新規実行プロセスが発生した時に負荷状況の問い合わせをし、負荷状況が送信されるとこの負荷状況を基に前記CPU候補テーブルを更新し、又前記プロセス情報テーブルの前記OS機能と前記周辺機器への依存度とを送信し、又送信された評価値を基に前記CPU候補テーブルを更新し、この更新CPU候補テーブルを基に前記新規実行プロセスを実行させるのに最も適した最適CPUを決定し、この最適CPUに処理を実行させる新規CPU決定手段とを有するCPUと、
    前記新規CPU決定手段により負荷状況の問い合わせを受けると、それぞれ自らのCPUの負荷を算出し、前記CPUに負荷状況を送信する負荷状況算出手段と、
    前記CPUにより送信された前記OS機能と前記周辺機器への依存度とを基に前記新規実行プロセスを実行した場合の前記評価値を算出し前記CPUに送信する情報管理手段とをそれぞれ有する複数のCPUと、を備えたことを特徴とするマルチプロセッサシステム。
  2. 前記負荷状況算出手段は、一定期間中の待機プロセスの動作時間又は一定期間中のCPU占有時間により自らのCPUの負荷を算出することを特徴とする請求項1記載のマルチプロセッサシステム。
  3. 前記新規CPU決定手段は、前記複数のCPUの前記負荷状況算出手段により送信された前記負荷状況の中で負荷が高いCPUには新規実行プロセスを実行させる比率を低くなるように、又負荷が低いCPUには新規実行プロセスを実行させる比率を高くするように前記CPU候補テーブルを更新することを特徴とする請求項1記載のマルチプロセッサシステム。
  4. 前記新規CPU決定手段は、前記複数のCPUの前記情報管理手段により送信された前記評価値の中で評価値が高いCPUには新規実行プロセスを実行させる比率を高くなるように、又評価値が低いCPUには新規実行プロセスを実行させる比率を低くするように前記CPU候補テーブルを更新することを特徴とする請求項1記載のマルチプロセッサシステム。
  5. 複数のCPUと、新規実行プロセスが発生した時に前記複数のCPUの中の最適CPUに新規実行プロセスの処理を実行させるCPUと、を備えたマルチプロセッサシステムによるプログラム実行方法であって、
    前記CPUは、前記新規実行プロセスが発生した時に前記複数のCPUにそれぞれ負荷状況の問い合わせをする問い合わせステップと、
    前記問い合わせステップに対応した負荷状況が送信されると、この負荷状況を基にCPU毎の重み付けがされたCPU候補テーブル601を更新する第1の更新ステップと、
    前記問い合わせステップに対応した負荷状況が送信されると、前記新規実行プロセスが使用するOS機能とこの新規実行プロセスが使用する周辺機器への依存度とを送信する第1の送信ステップと、
    前記送信ステップに対応した評価値が送信されると前記CPU候補テーブル601を更新する第2の更新ステップと、
    前記第2の更新ステップにより更新された前記CPU候補テーブル601を基に前記新規実行プロセスを実行させるのに最も適した最適CPUを決定する選択ステップと、
    前記選択ステップにより選択された最適CPUに処理を実行させる処理実行ステップとを備え、
    前記複数のCPUは、前記問い合わせステップにより負荷状況の問い合わせを受けると、それぞれ自らのCPUの負荷を算出する第1の算出ステップと、
    前記算出ステップにより算出された負荷状況を前記CPUに送信する第2の送信ステップと、
    前記第1の送信ステップにより送信された前記OS機能と前記周辺機器への依存度とを基に前記新規実行プロセスを実行した場合の前記評価値を算出する第2の算出ステップと、
    前記第2の算出ステップにより算出された前記評価値を前記CPUに送信する第3の送信ステップとを備えたことを特徴とするプログラム実行方法。
JP2008167373A 2008-06-26 2008-06-26 マルチプロセッサシステム及びプログラム実行方法 Expired - Fee Related JP5045576B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008167373A JP5045576B2 (ja) 2008-06-26 2008-06-26 マルチプロセッサシステム及びプログラム実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008167373A JP5045576B2 (ja) 2008-06-26 2008-06-26 マルチプロセッサシステム及びプログラム実行方法

Publications (2)

Publication Number Publication Date
JP2010009288A JP2010009288A (ja) 2010-01-14
JP5045576B2 true JP5045576B2 (ja) 2012-10-10

Family

ID=41589712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008167373A Expired - Fee Related JP5045576B2 (ja) 2008-06-26 2008-06-26 マルチプロセッサシステム及びプログラム実行方法

Country Status (1)

Country Link
JP (1) JP5045576B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10895865B2 (en) 2017-10-25 2021-01-19 Fanuc Corporation Numerical controller

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5786863B2 (ja) * 2010-10-28 2015-09-30 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム
CN103823712B (zh) * 2014-03-17 2017-05-10 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10895865B2 (en) 2017-10-25 2021-01-19 Fanuc Corporation Numerical controller

Also Published As

Publication number Publication date
JP2010009288A (ja) 2010-01-14

Similar Documents

Publication Publication Date Title
US8219997B2 (en) Execution the job that is divided into job tasks based on the estimated completion time
EP1750200A2 (en) System and method for executing job step, and computer product
US8725912B2 (en) Dynamic balancing of IO resources on NUMA platforms
US10554575B2 (en) Equitable sharing of system resources in workflow execution
JP4677813B2 (ja) サーバ性能計測方法及びサーバ性能計測システム並びにこれらに用いるコンピュータプログラム
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
CN105487930A (zh) 一种基于Hadoop的任务优化调度方法
JPWO2006100752A1 (ja) 分散処理管理装置、分散処理管理方法、分散処理管理プログラム
JP2002541581A (ja) レート単調リアルタイムシステムにおける動的貸し出し方法
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US20140298350A1 (en) Distributed processing system
CN114356587B (zh) 算力任务跨区域调度方法、系统及设备
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
JP2010224754A (ja) リソース割当装置、リソース割当方法、及びプログラム
GB2507294A (en) Server work-load management using request prioritization
US9195515B1 (en) Method and system for process load balancing
JP4150853B2 (ja) 資源競合制御システム及び制御方法並びにプログラム
JP4112511B2 (ja) タスク管理プログラムおよびタスク管理装置
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
CN110247802B (zh) 针对云服务单机环境的资源配置方法及装置
JP2010146382A (ja) 負荷分散システム、負荷分散方法、および負荷分散プログラム
Nain et al. Optimizing service stipulation uncertainty with deep reinforcement learning for internet vehicle systems
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
Li et al. SoDa: A serverless-oriented deadline-aware workflow scheduling engine for IoT applications in edge clouds

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

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: 20120619

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: 20120702

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5045576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

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

LAPS Cancellation because of no payment of annual fees