JP2018151968A - 管理装置、分散システム、管理方法、及びプログラム - Google Patents

管理装置、分散システム、管理方法、及びプログラム Download PDF

Info

Publication number
JP2018151968A
JP2018151968A JP2017048917A JP2017048917A JP2018151968A JP 2018151968 A JP2018151968 A JP 2018151968A JP 2017048917 A JP2017048917 A JP 2017048917A JP 2017048917 A JP2017048917 A JP 2017048917A JP 2018151968 A JP2018151968 A JP 2018151968A
Authority
JP
Japan
Prior art keywords
state
tasks
nodes
node
task
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.)
Pending
Application number
JP2017048917A
Other languages
English (en)
Inventor
貴弘 濱田
Takahiro Hamada
貴弘 濱田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2017048917A priority Critical patent/JP2018151968A/ja
Publication of JP2018151968A publication Critical patent/JP2018151968A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)

Abstract

【課題】分散システムにおいて、タスク数の変化に対応して、省電力化を達成しつつ、処理能力の低下を抑制する、管理装置、それを備えた分散システム、管理方法、及びプログラムを提供する。【解決手段】分散システム10は、ジョブを分散して実行する複数のノード300と、ノード300を管理するための管理装置200とを備える。管理装置200は、ジョブを複数のタスクに分割し、ノード300にタスクの実行を要求する、ジョブ制御部220と、分割によって得られたタスクの数の変化を特定する、タスク数管理部240と、タスク数の変化に応じて、電源状態が起動状態にあるノード300の必要数を決定し、決定した必要数に応じて、ノード300の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部230とを備えている。【選択図】図1

Description

本発明は、分散システムを構成するノードを管理するための管理装置、それを用いた分散システム、及び管理方法に関し、更には、これらを実現するためのプログラムに関する。
分散システムは、ネットワークを介して接続された複数のノード(コンピュータ)で構成され、計算処理を分散して行なうシステムである。分散システムによれば、単一のコンピュータでは得られない計算能力と記憶容量とを得ることが可能となる。よって、分散システムは、遺伝子解析、気象予測、暗号解読といった大規模な計算処理に用いられている。
但し、分散システムでは、多数のノードが一度に稼動するため、システム全体の消費電力は膨大となる。このため、分散システム全体の消費電力の抑制を図る技術が開示されている(例えば、特許文献1〜3参照)。
具体的には、特許文献1は、アイドル状態のノードにおいて節電を行なうシステムを開示している。特許文献1に開示されたシステムでは、各ノードのBIOSは、メモリの実行状態を保持したまま、CPU及びハードディスクの動作を停止して、ノードをサスペンド状態とする。但し、特許文献1に開示されたシステムでは、一度サスペンド状態などの停止状態に移行させたノードを再度利用する場合に、ノードに通電し、OSを起動する必要があるため、利用が可能になるまでの待ち時間が長くなってしまう。
また、特許文献2は、ジョブの実行予定に基づいて、停止ノードをあらかじめ復帰させてくことで、ノード復帰にかかる時間を隠蔽するシステムを開示している。スーパーコンピュータのようにジョブを実行キューにためて処理を行うようなシステムにおいては隠蔽効果がある。特に、1ジョブを数百ノードで協調動作して数十分以上のオーダーで処理する場合(並列処理)においては効果的である。
但し、特許文献2に開示されたシステムでは、分散ストレージシステムのようにシステムに対する処理要求が予想できない場合、及び、小さなジョブが多数あったり、大きなジョブを小さなタスクに分割して多くのノードに分配したりして処理する場合(分散処理)において、復帰にかかる時間を隠蔽できないという問題がある。
これらの問題に対して、特許文献3は、分散システム全体の消費電力を抑制しつつ、負荷が大きくなった際の処理性能の低下も抑制する、システムを開示している。具体的には、特許文献3に開示されたシステムは、タスクを完了したノードを停止させるに際して、停止レベル毎に、アイドル状態のノードの必要数又はアイドル状態のノードの割合を条件として予め設定する。そして、当該システムは、ある停止レベルの条件が満たされている場合に、その次の停止レベルで停止処理をする。
特開2003−162515号公報 特開2008−225639号公報 国際公開第2012/225639号
しかしながら、特許文献3に開示されたシステムには、タスク数の変化には対応できないという問題がある。この結果、タスク数が多いときにノード復帰に時間が必要となり、逆にタスク数が少ないときに省電力化の余地を残すことになる可能性がある。この方法を改善すれば省電力でありながら、効率性も求めることができる可能性がある。
本発明の目的の一例は、上記問題を解消し、分散システムにおいて、タスク数の変化に対応して、省電力化を達成しつつ、処理能力の低下を抑制し得る、管理装置、それを備えた分散システム、管理方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面における管理装置は、実行対象となるジョブを分散して実行する複数のノードを管理するための装置であって、
実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
を備えている、ことを特徴とする。
上記目的を達成するため、本発明の一側面における分散システムは、
実行対象となるジョブを分散して実行する複数のノードと、前記複数のノードを管理するための管理装置とを備え、
前記管理装置は、
実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
を備えている、ことを特徴とする。
また、上記目的を達成するため、本発明の一側面における管理方法は、実行対象となるジョブを分散して実行する複数のノードを管理するための方法であって、
(a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
(b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
(c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、実行対象となるジョブを分散して実行する複数のノードを管理するためのプログラムであって、
前記コンピュータに、
(a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
(b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
(c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
を実行させることを特徴とする。
以上のように、本発明によれば、分散システムにおいて、タスク数の変化に対応して、省電力化を達成しつつ、処理能力の低下を抑制することができる。
図1は、本発明の実施の形態における分散システム及び管理装置の概略構成を示すブロック図である。 図2は、本発明の実施の形態における分散システム及び管理装置の構成を具体的に示すブロック図である。 図3は、本発明の実施の形態における管理装置の構成を具体的に示すブロック図である。 図4は、本発明の実施の形態における分散システムの動作を示すシーケンス図である。 図5は、本発明の実施の形態における管理装置の電源制御判定処理時の動作を示すフロー図である。 図6は、本発明の実施の形態における管理装置を実現するコンピュータの一例を示すブロック図である。
(実施の形態)
以下、本発明の実施の形態における、管理装置、分散システム、管理方法、及びプログラムについて、図1〜図6を参照しながら説明する。
[システム構成]
最初に、図1を用いて、本実施の形態における分散システム及び管理装置の構成について説明する。図1は、本発明の実施の形態における分散システム及び管理装置の概略構成を示すブロック図である。
図1に示すように、本実施の形態における分散システム10は、実行対象となるジョブを分散して実行する複数のノード300と、ノード300を管理するための管理装置200とを備えている。
各ノード300と管理装置200とは、ネットワーク400を介して接続されている。また、管理装置200は、ジョブ制御部220と、タスク数管理部240と、ノード電源制御部230とを備えている。
ジョブ制御部220は、実行対象となるジョブを複数のタスクに分割し、複数のノード300の全部又は一部に、タスクの実行を要求する。タスク数管理部240は、ジョブ制御部220による分割によって得られたタスクの数の変化を特定する。
ノード電源制御部230は、タスク数管理部240によって特定されたタスクの数の変化に応じて、電源状態が起動状態にあるノードの必要数を決定し、決定した必要数に応じて、複数のノード300の全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる。
このように、本実施の形態における分散システム10は、タスク数の変化に応じて、起動状態にあるノードの必要数を決定している。この結果、負荷状況に応じて、タスクを処理可能な起動状態にあるノードの必要数が動的に変更されるので、分散システム10において、タスク数の変化に対応して、省電力化を達成しつつ、処理能力の低下を抑制する
続いて、図2を用いて、本実施の形態における分散システム10及び管理装置100の構成についてより具体的に説明する。図2は、本発明の実施の形態における分散システム及び管理装置の構成を具体的に示すブロック図である。
図2に示すように、本実施の形態では、分散システム10には、クライアントノード100が、ネットワーク400を介して接続されている。クライアントノード100は、実行対象となるジョブの実行を要求するノードである。クライアントノード100が発行したジョブ実行要求は、ネットワーク400を介して、管理装置200に入力される。
また、本実施の形態では、ネットワーク400は、アクセス経路決定手段(図2において図示せず)を有している。また、図2の例では、クライアントノード100及び管理装置200は、共に1つであるが、本実施の形態では、クライアントノード100及び管理装置200は共に複数であっても良い。なお、以降においては、ジョブを実行するノード300を、クライアントノード100と区別するために、「通常ノード300」と表記する。また、管理装置200もノードの1つである。
図2に示すように、本実施の形態では、管理装置200は、上述したジョブ制御部220、タスク数管理部240及びノード電源制御部230に加えて、ジョブ受信部210と情報記憶部250とを更に備えている。
ジョブ受信部210は、クライアントノード100が発行したジョブ実行要求を受け付ける。ジョブ制御部220は、本実施の形態では、ジョブ受信部210がジョブを受け付けると、受け付けたジョブを、各通常ノード300が実行できる単位のタスクに分割する。また、ジョブ制御部220は、通常ノード300に対して、タスク実行命令を発行してタスク実行を要求する。更に、ジョブ制御部220は、分割したタスクの数(タスク数)をタスク数管理部240に通知する。
タスク数管理部240は、本実施の形態では、ジョブ制御部220から受け付けたタスク数を複数回分保持し、タスク数の変化として、保持した複数回分のタスク数の平均値を算出する。また、タスク数管理部240が、タスクの数の変化に基づいて、複数の通常ノード300の稼動状況が予め定められているステージのうちのいずれに該当しているかを判定する。
具体的には、タスク数管理部240は、算出したタスク数の平均値と、予め設定されている閾値とを比較し、比較結果に応じて、ステージを判定する。また、ステージは、各通常ノード300の停止状態のレベルであり、例えば、分散システム10における省電力の状態に応じて、ステージ1(高負荷)、ステージ2(中負荷)ステージ3(低負荷)の3つのステージが設定されているとする。
また、ステージを判断するための閾値は、予め行なわれる実験等によって適宜設定される。但し、上記のステージ1とステージ2とを分ける閾値は、ステージ2とステージ3とを分ける閾値よりも大きな値に設定される。
また、ノード電源制御部230は、本実施の形態では、タスク数管理部240が判定したステージに応じて、通常ノード300の必要数を決定する。更に、本実施の形態では、ノード電源制御部230は、分散システム10において予め定義されている省電力のレベル毎に、必要数を決定する。分散システム10における省電力の状態の例としては、ACPI(Advanced Configuration and Power Interface)で規定される省電力の状態が挙げられる。この場合は、例えば、レベル1がACPIで規定されるS1(プロセッサ給電停止)に設定され、レベル2がACPIで規定されるS3(メモリのみ給電)に設定され、レベル3がACPIで規定されるS4(メモリ内容の退避、全電源供給停止)に設定される。
更に、本実施の形態では、省電力のレベル数は、上記の3つに限定されることはなく、3つ以外のレベルも含まれていても良い。例えば、通常ノード300がアイドル状態にある場合がレベル0として含まれていても良い。また、通常ノード300は、タスクを実行していないアイドル状態である場合、レベル1、レベル2、レベル3に移行することができる。なお、「アイドル状態」とは、起動状態にあるが、現在タスクを実行していない状態をいう。
加えた、ノード電源制御部230は、本実施の形態では、タスク数管理部240によって決定されたレベル毎の必要数に応じて、通常ノード300の電源状態(起動状態又は停止状態)を管理する。また、ノード電源制御部230は、各通常ノード300の電源状態を切り替える場合は、切り替え対象となる通常ノード300に対して、電源制御要求を発行する。
また、図2に示すように、通常ノード300は、、通信部310と、タスク実行部320と、復帰命令受信部330と、電源制御部340とを備えている。更に、各通常ノード300には、1ノードずつ個別のノード番号が付与されている。
通信部310は、管理装置200が発行したタスク実行命令を受信し、受信したタスク実行命令をタスク実行部320に渡す。タスク実行部320は、通信部310が受信したタスク実行命令に基づいてタスクを実行する。
復帰命令受信部330は、管理装置200によって発行された電源制御要求を受信する。そして、復帰命令受信部330は、電源制御要求が、停止状態から起動状態となることを要求している場合は、電源制御部340に対して復旧を指示する。
電源制御部340は、復帰命令受信部330から復旧が指示されると、通常ノード300が起動状態となるように電源制御を実行する。また、電源制御部340は、通信部310が管理装置200から停止命令を受信している場合は、通常ノード300が停止状態となるように電源制御を実行する。
続いて、図3を用いて、管理装置200の構成を更に詳細に説明する。図3は、本発明の実施の形態における管理装置の構成を具体的に示すブロック図である。
図3に示すように、本実施の形態では、管理装置200において、ジョブ制御部220は、更に、ジョブ分解部221と、タスク配置決定部222と、命令通知部223とを備えている。
ジョブ分解部221は、実行対象となるジョブを各通常ノード300が実行できる単位のタスクとして分割する。タスク配置決定部222は、ジョブ分解部221が分解したタスクを、どの通常ノード300に実行させるかを決定する。また、タスク配置決定部222は、決定後に、タスクを実行中にあるノードを特定するタスク配置情報を作成し、作成したタスク配置情報を情報記憶部250に格納させる。
命令通知部223は、タスク配置決定部222の決定に従って、各通常ノード300に対してタスク実行命令を発行し、対応する通常ノード300に、これを通知する。また、命令通知部223は、後述する電源制御ノード決定部231が、電源制御要求を発行した場合は、発行された電源制御要求を対応する通常ノード300に通知する。
また、図3に示すように、本実施の形態では、管理装置200において、ノード電源制御部230は、電源制御ノード決定部231を備えている。電源制御ノード決定部231は、タスク数管理部240によって決定されたレベル毎の必要数に応じて、通常ノード300の電源状態(起動状態又は停止状態)を管理する。
また、電源制御ノード決定部231は、情報記憶部250に格納されているタスク配置情報に基づいて、タスクを実行していない通常ノード300を特定する。更に、電源制御ノード決定部231は、情報記憶部250に格納されているノード状態情報に基づいて、特定した通常ノード300の電源状態を特定する。
ノード状態情報は、各通常ノード300が省電力状態として停止中であるか、起動中であるかを示す情報を含む。また、ノード状態情報は、状態ごとに該当する通常ノードの個数を示す情報も含む。
電源制御ノード決定部231は、各通常ノード300の電源状態を切り替える場合は、、電源制御要求を発行し、発行した電源制御要求を、切り替え対象となる通常ノード300に対して、命令通知部223を介して通知する。
そして、電源制御ノード決定部231は、各レベルに対応する必要数が満たされるように、電源状態を切り替えるべき通常ノードを選択し、命令通知部223を用いて、選択した通常ノード300の電源状態を切り替える。また、電源制御ノード決定部231は、電源状態の切り替えを指示した後、ノード状態情報を更新する。
なお、停止状態が指示された通常ノードであっても、復帰命令を受信する復帰命令受信部330には電力が供給されており、復帰命令受信部330は常に電源制御要求を受信しているものとする。また、上述したACPIで規定されているS1、S3、S4では省電力効果はS1、S3、S4の順に小さくなっており、省電力状態から復帰にかかる時間はS1、S3、S4の順に短くなっている。
[システム動作]
次に、本発明の実施の形態における分散システム10の動作について図4を用いて説明する。図4は、本発明の実施の形態における分散システムの動作を示すシーケンス図である。以下の説明においては、適宜図1〜図3を参酌する。また、本実施の形態では、分散システム10、特には管理装置200を動作させることによって、管理方法が実施される。よって、本実施の形態における管理方法の説明は、以下の分散システム10及び管理装置200の動作説明に代える。
図4に示すように、最初に、クライアントノード100が、ジョブ実行要求を管理装置200に送信する(ステップS1)。
次に、クライアントノード100からのジョブ実行要求を受信した管理装置200は、ジョブ分解部221において、受け付けたジョブを1つ以上のタスクに分解する(ステップS2)。
そして、ジョブ分解部221は、ステップS2の実行後、分解したタスク数をタスク数管理部240に通知する。これにより、タスク数管理部240は、ジョブ分解部221から受け付けたタスク数を保持する。
次に、ステップS2のジョブ分解処理が完了すると、管理装置200は、タスク配置決定部222において、分解したタスクをどの通常ノード300で実行するかを決定する(ステップS3)。
ステップS3におけるタスク配置決定処理では、タスク配置決定部222は、通常ノード300の一部が低消費電力状態で停止中である場合は、分解したタスクが起動中の通常ノード300で実行しきれるか否かを判定する。判定の結果、起動中の通常ノード300では実行しきれないと判断した場合、タスク配置決定部222は、低消費電力状態で停止中の通常ノード300の全部又は一部を復帰させる(ステップS4)。
また、ステップS4におけるノード復帰処理では、タスク配置決定部222は、ノード電源制御部230に対して、ノード起動要求と共に復帰させるべきノードの数を通知する。これにより、ノード電源制御部230は、復帰対象ノードを決定し、決定した復帰対象の通常ノード300宛にノード復帰命令を発行する(ステップS5)。
その後、復帰命令を受信した通常ノード300は、ノード復帰処理を行い、復帰後に、ノード復帰応答を管理装置200に返答する(ステップS6)。ここでの復帰処理とは、通常ノードが停止状態からアイドル状態に移行するように制御することである。
また、ノード復帰処理と同時に、タスク配置決定部222は、その時点で起動中の通常ノード300に対して、命令通知部223を通じてタスク実行命令を発行する(ステップS7)。
タスク実行命令を受信した通常ノード300は、タスク実行命令に従って、タスクを実行し、タスク実行完了後にタスク完了通知を管理装置200に送信する(ステップS8)。
次に、管理装置200は、通常ノードから、タスク完了通知を受信すると、電源制御判定処理を実行する(ステップS9)。ステップS9では、管理装置200は、タスクが完了した通常ノード300を低消費電力状態で停止させるか否かを判定する。
そして、判定の結果、通常ノードを低消費電力状態で停止させると判定した場合には、管理装置200は、該当する通常ノード300に対してノード停止命令を発行する。これにより、ノード停止命令を受信した通常ノード300は、低消費電力状態で停止する。一方、判定の結果、通常ノード300を低消費電力状態で停止させないと判定した場合には、管理装置200は、そのまま何もせず、該当する通常ノード300もアイドル状態で待機する。
ここで、図4に示した、管理装置200による、ジョブ分解処理(ステップS2)、タスク配置決定処理(ステップS3)、ノード復帰処理(ステップS4)、及び電源制御判定処理(ステップS9)について詳細に説明する。
[ジョブ分解処理]
ジョブ分解処理では、ジョブ分解部221は、実行対象となるジョブを1つ以上、「(全通常ノード300の数)−(タスク実行中の通常ノード300の数)」個以下のタスクに分解する。このときジョブ分解部221は、1つのタスクが通常ノード300が1台で処理できるタスクとなるように、ジョブを分解する。なお、本実施の形態において、ジョブ分解部221によるタスク分解の具体的な方法は特に限定されるものではない。
[タスク配置決定処理]
タスク配置決定処理では、タスク配置決定部222は、ジョブ分解処理で分解したタスクを実行する通常ノード300を決定する。
具体的には、タスク配置決定部222は、情報記憶部250に格納されているノード状態情報を参照し、タスク数が、アイドル状態の通常ノード300の数以下であるか否か判定する。
そして、判定の結果、タスク数がアイドル状態の通常ノード300の数以下である場合は、タスク配置決定部222は、アイドル状態の通常ノード300のうち、タスク数分の通常ノード300をタスク実行するノードとして選択する。
一方、判定の結果、タスク数がアイドル状態の通常ノード300の数より多い場合は、タスク配置決定部222は、アイドル状態の通常ノード300全てを、タスクを実行するノードとして選択する。加えて、タスク配置決定部222は、残りのタスク数((タスク数)−(アイドル状態の通常ノード数))分の通常ノード300を確保するため、停止状態のノードを、ノード復帰処理により起動し、起動したノードをタスクを実行する通常ノード300として選択する。
タスク実行ノードとして選択された通常ノード300は、アイドル状態であれば、タスク配置決定処理直後にタスク実行を開始する。また、タスク実行ノードとして選択された通常ノード300は、停止状態であれば、ノード復帰処理にてアイドル状態に移行した後に、タスク実行命令に従ってタスク実行を開始する。
なお、本実施の形態において、アイドル状態の通常ノード300のうち、どの通常ノード300を、タスクの実行を行なうノードとして選択するかについての決定方法は、特に限定されない。また、どのタスクをどの通常ノード300に配置するかについての決定方法も限定されない。
[ノード復帰処理]
ノード復帰処理では、タスク配置決定部222は、ノード電源制御部230に対して、ノード起動要求とともに起動するノード数を通知する。
[電源制御判定処理]
電源制御判定処理では、管理装置200は、レベル0、レベル1、レベル2、レベル3の順に、各レベルの必要ノード数が満たされるように、各通常ノード300の停止状態を決定する。レベル0(アイドル状態)、レベル1、レベル2の各状態において、必要ノード数が満たされている場合は、レベル0〜2にない通常ノード300の電源状態をレベル3に決定する。また、本実施の形態では、電源制御ノード決定部231は、初期値として、電源制御判定処理におけるレベル0〜レベル3の各レベル毎に、必要ノード数の設定値を保持している。
ここで、図5を用いて、電源制御判定処理について具体的に説明する。図5は、本発明の実施の形態における管理装置の電源制御判定処理時の動作を示すフロー図である。
図5に示すように、最初に、管理装置200において、ジョブ制御部220は、通常ノード300からタスク完了通知を受け付ける(ステップA1)。
次いで、ジョブ制御部220は、タスク完了通知を受け付けたことを、タスク数管理部240に通知する(ステップA2)。
次に、タスク数管理部240は、保持している複数回分のタスク数から平均値を算出し、算出した平均値がステージ1とステージ2との境界を示す第1の閾値より小さいかどうかを判定する(ステップA3)。
ステップA3の判定の結果、平均値が第1の閾値より小さい場合は、タスク数管理部240は、分散システム10の状態をステージ1と決定する(ステップA5)。
一方、ステップA3の判定の結果、平均値が第1の閾値以上である場合は、タスク数管理部240は、平均値が第2の閾値より小さいかどうかを判定する(ステップA4)。
ステップA4の判定の結果、平均値が第2の閾値より小さい場合は、タスク数管理部240は、分散システム10の状態をステージ2と決定する(ステップA6)。
一方、ステップA4の判定の結果、平均値が第2の閾値以上である場合は、タスク数管理部240は、分散システム10の状態をステージ3と決定する(ステップA7)。
次に、タスク数管理部240は、ステップA5〜A7で決定したステージを電源制御ノード決定部231(ノード電源制御部230)に通知する(ステップA8)。
続いて、電源制御ノード決定部231は、決定したステージに応じて、レベル毎の、通常ノード300の必要数を決定する(ステップA9)。具体的には、ステップA9では、電源制御ノード決定部231は、自身が保持している電源制御判定処理におけるレベル毎の必要ノード数の設定値をステージに応じて変更する。
例えば、電源制御ノード決定部231は、ステージ1であれば、レベル1の必要ノード数を少なく設定し、レベル3の必要ノード数を多く設定する。一方、ステージ3であれば、電源制御ノード決定部231は、レベル1の必要ノード数を多く設定し、レベル3の必要ノード数を少なく設定する。このように、ステップA9の実行により、動的に、各レベルの必要ノード数が変更され、タスク数の変化に対応できるようになる。
次に、電源制御ノード決定部231は、情報記憶部250に格納されているノード状態情報を更新する(ステップA10)。具体的には、電源制御ノード決定部231は、まず停止対象の通常ノード300の電源状態が停止状態を示すように、ノード状態情報を変更する。
その後、電源制御ノード決定部231は、命令通知部223を介して、停止対象の通常ノード300に停止命令を通知する(ステップA11)。ステップA11が実行されると、停止命令を受けた通常ノード300においては、通信部310が停止命令を受信する。これにより、通信部310は電源制御部340に停止命令を出力し、電源制御部340は、停止命令に従って、指定された停止レベルで通常ノード300が停止するように制御を行なう。
以上のように、本実施の形態では、タスク数の変化に応じて、分散システム10の稼動状況のステージが判定され、判定結果に応じて、タスクを実行する通常ノード300の必要数が決定される。本実施の形態によれば、分散システム10において、処理能力の低下を抑制すると共に、タスク数の変化に対応した省電力化を達成できる。
[プログラム]
本実施の形態におけるプログラムは、コンピュータに、図5に示すステップA1〜A11を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における管理装置200を実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、ジョブ制御部220、タスク数管理部240及びノード電源制御部230として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、ジョブ制御部220、タスク数管理部240及びノード電源制御部230のいずれかとして機能しても良い。
ここで、本実施の形態におけるプログラムを実行することによって、管理装置200を実現するコンピュータについて図6を用いて説明する。図6は、本発明の実施の形態における管理装置を実現するコンピュータの一例を示すブロック図である。
図6に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
なお、本実施の形態における管理装置200は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、管理装置200は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記12)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
実行対象となるジョブを分散して実行する複数のノードを管理するための装置であって、
実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
を備えている、ことを特徴とする管理装置。
(付記2)
前記タスク数管理部が、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
前記ノード電源制御部が、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
付記1に記載の管理装置。
(付記3)
前記タスク数管理部が、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
付記2に記載の管理装置。
(付記4)
実行対象となるジョブを分散して実行する複数のノードと、前記複数のノードを管理するための管理装置とを備え、
前記管理装置は、
実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
を備えている、ことを特徴とする分散システム。
(付記5)
前記タスク数管理部が、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
前記ノード電源制御部が、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
付記4に記載の分散システム。
(付記6)
前記タスク数管理部が、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
付記5に記載の分散システム。
(付記7)
実行対象となるジョブを分散して実行する複数のノードを管理するための方法であって、
(a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
(b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
(c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
を有する、ことを特徴とする管理方法。
(付記8)
前記(b)のステップにおいて、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
前記(c)のステップにおいて、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
付記7に記載の管理方法。
(付記9)
前記(b)のステップにおいて、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
付記8に記載の管理方法。
(付記10)
コンピュータによって、実行対象となるジョブを分散して実行する複数のノードを管理するためのプログラムであって、
前記コンピュータに、
(a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
(b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
(c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
を実行させるプログラム。
(付記11)
前記(b)のステップにおいて、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
前記(c)のステップにおいて、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
付記10に記載のプログラム。
(付記12)
前記(b)のステップにおいて、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
付記11に記載のプログラム。
以上のように、本発明によれば、分散システムにおいて、タスク数の変化に対応して、省電力化を達成しつつ、処理能力の低下を抑制することができる。本発明は、分散システムに有用である。
10 分散システム
100 クライアントノード
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
200 管理装置
210 ジョブ受信部
220 ジョブ制御部
221 ジョブ分解部
222 タスク配置決定部
223 命令通知部
230 ノード電源制御部
231 電源制御ノード決定部
240 タスク数管理部
250 情報記憶部
300 通常ノード
400 ネットワーク

Claims (8)

  1. 実行対象となるジョブを分散して実行する複数のノードを管理するための装置であって、
    実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
    前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
    特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
    を備えている、ことを特徴とする管理装置。
  2. 前記タスク数管理部が、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
    前記ノード電源制御部が、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
    請求項1に記載の管理装置。
  3. 前記タスク数管理部が、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
    請求項2に記載の管理装置。
  4. 実行対象となるジョブを分散して実行する複数のノードと、前記複数のノードを管理するための管理装置とを備え、
    前記管理装置は、
    実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ジョブ制御部と、
    前記ジョブ制御部による分割によって得られたタスクの数の変化を特定する、タスク数管理部と、
    特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ノード電源制御部と、
    を備えている、ことを特徴とする分散システム。
  5. 前記タスク数管理部が、前記タスクの数の変化に基づいて、前記複数のノードの稼動状況が予め定められているステージのうちのいずれに該当しているかを判定し、
    前記ノード電源制御部が、判定されたステージに応じて、電源状態が起動状態にあるノードの必要数を決定する、
    請求項4に記載の分散システム。
  6. 前記タスク数管理部が、前記タスク数の変化から、タスク数の平均値を算出し、算出した前記平均値に基づいて、予め定められているステージのうちのいずれに該当しているかを判断する、
    請求項5に記載の分散システム。
  7. 実行対象となるジョブを分散して実行する複数のノードを管理するための方法であって、
    (a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
    (b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
    (c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
    を有する、ことを特徴とする管理方法。
  8. コンピュータによって、実行対象となるジョブを分散して実行する複数のノードを管理するためのプログラムであって、
    前記コンピュータに、
    (a)実行対象となるジョブを複数のタスクに分割し、前記複数のノードの全部又は一部に、前記タスクの実行を要求する、ステップと、
    (b)前記(a)のステップによる分割によって得られたタスクの数の変化を特定する、ステップと、
    (c)前記(b)のステップで特定されたタスク数の変化に応じて、電源状態が起動状態にある前記ノードの必要数を決定し、決定した前記必要数に応じて、前記複数のノードの全部又は一部の電源状態を、起動状態から停止状態又は停止状態から起動状態へと変化させる、ステップと、
    を実行させるプログラム。
JP2017048917A 2017-03-14 2017-03-14 管理装置、分散システム、管理方法、及びプログラム Pending JP2018151968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017048917A JP2018151968A (ja) 2017-03-14 2017-03-14 管理装置、分散システム、管理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017048917A JP2018151968A (ja) 2017-03-14 2017-03-14 管理装置、分散システム、管理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2018151968A true JP2018151968A (ja) 2018-09-27

Family

ID=63679582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017048917A Pending JP2018151968A (ja) 2017-03-14 2017-03-14 管理装置、分散システム、管理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2018151968A (ja)

Similar Documents

Publication Publication Date Title
US10810051B1 (en) Autoscaling using file access or cache usage for cluster machines
JP4370336B2 (ja) 低消費電力ジョブ管理方法及び計算機システム
US10031574B2 (en) Apparatus and method for controlling multi-core processor of computing system
JP2008257578A (ja) 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US9117093B2 (en) Centralized, policy-driven maintenance of storage for virtual machine disks (VMDKS) and/or physical disks
US20150286492A1 (en) Optimized resource allocation and management in a virtualized computing environment
JP2008257572A (ja) 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
US9389921B2 (en) System and method for flexible device driver resource allocation
KR20040028805A (ko) 프로세서로 산출하기 위한 시스템
CN107743608B (zh) 至硬件加速器的动态功率路由
CN103744734A (zh) 一种任务作业处理方法、装置及系统
US11650650B2 (en) Modifying an operating state of a processing unit based on waiting statuses of blocks
US20190278355A1 (en) Context switches with processor performance states
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
JP2013222321A (ja) メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
KR20130137503A (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
US10928883B2 (en) System management device
JP2008217575A (ja) ストレージ装置及びその構成最適化方法
US20100269119A1 (en) Event-based dynamic resource provisioning
JP2018151968A (ja) 管理装置、分散システム、管理方法、及びプログラム
JP5786870B2 (ja) 分散システム、装置、方法及びプログラム
JP5692355B2 (ja) コンピュータシステム、制御システム、制御方法および制御プログラム
US8607245B2 (en) Dynamic processor-set management
JP6207342B2 (ja) 情報処理システムおよび情報処理システムの制御方法