JP2018194875A - 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム - Google Patents

並列処理装置、ジョブ管理方法、およびジョブ管理プログラム Download PDF

Info

Publication number
JP2018194875A
JP2018194875A JP2017095200A JP2017095200A JP2018194875A JP 2018194875 A JP2018194875 A JP 2018194875A JP 2017095200 A JP2017095200 A JP 2017095200A JP 2017095200 A JP2017095200 A JP 2017095200A JP 2018194875 A JP2018194875 A JP 2018194875A
Authority
JP
Japan
Prior art keywords
job
node
nodes
execution
area
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
JP2017095200A
Other languages
English (en)
Other versions
JP6885193B2 (ja
Inventor
良輔 小久保
Ryosuke Kokubo
良輔 小久保
剛 橋本
Takeshi Hashimoto
剛 橋本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017095200A priority Critical patent/JP6885193B2/ja
Priority to US15/964,424 priority patent/US11023281B2/en
Publication of JP2018194875A publication Critical patent/JP2018194875A/ja
Application granted granted Critical
Publication of JP6885193B2 publication Critical patent/JP6885193B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

【課題】複数のノードを含むシステムの実行稼働率を向上させること。【解決手段】並列処理装置101は、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとに基づいて、各ジョブJの実行規模Sを算出する。並列処理装置101は、複数のノードNが配置されたノードエリアARを区分けして複数のエリアAに分割する。並列処理装置101は、算出した実行規模Sが大きいジョブJから順に、ノードエリアARを区分けして分割された複数のエリアAのうち、故障可能性が高い問題ノードの数が少ないエリアAからジョブJを割り当てる。【選択図】図1B

Description

本発明は、並列処理装置、ジョブ管理方法、およびジョブ管理プログラムに関する。
従来、コンピュータシステムを用いて科学技術計算などの大規模な計算を行う場合、複数の計算機を用いた並列計算が行われる。並列計算が可能なコンピュータシステムは、並列計算機システムと呼ばれる。大規模な並列計算機システムは、並列計算を行う多数の計算機と、管理用計算機とが含まれる。管理用計算機は、計算機に実行させるジョブを管理する。以下の説明では、並列計算を行う計算機を「計算ノード」と表記し、管理用計算機を「管理ノード」と表記する場合がある。
大規模な並列計算機システムにおいては、複数の計算ノードを管理し並列に動作させることで、システム全体の演算性能を高めている。システム全体の演算性能を向上するためには、大量の計算ノードが必要となる。また、大規模な並列計算機システムの管理ノードでは、ジョブスケジューラ機能が、計算ノード群にユーザのジョブを割り当てる制御を実施する。
先行技術としては、例えば、障害影響度の高いジョブをリスク度の低い実行サーバで実行し、障害影響度の高いジョブを実行中または実行が予定されている実行サーバの多重度を下げて、高負荷状態にせずに障害リスク度が低い状態に保つものがある。また、ジョブに関する情報を基にジョブの形状毎の影響度を求め、影響度が高い順に所定数のジョブの形状を計算対象形状として決定し、計算対象形状及び影響度を基に、計算ノードそれぞれへのジョブの割り当て方であるジョブの事前配置を決定する技術がある。投入されたジョブが計算対象形状のいずれかに一致する場合、事前配置にしたがい投入されたジョブが計算ノードへ割り当てられる。
特開2011−215661号公報 特開2015−69577号公報
しかしながら、従来技術では、大規模な並列計算機システムの実行稼働率を低下させないように、ジョブを計算ノードに割り当てることが難しい場合がある。
一つの側面では、本発明は、複数のノードを含むシステムの実行稼働率を向上させることを目的とする。
1つの実施態様では、実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、並列処理装置が提供される。
本発明の一側面によれば、複数のノードを含むシステムの実行稼働率を向上させることができる。
図1Aは、実施の形態にかかるジョブ管理方法の一実施例を示す説明図(その1)である。 図1Bは、実施の形態にかかるジョブ管理方法の一実施例を示す説明図(その2)である。 図2は、並列計算機システム200のシステム構成例を示す説明図である。 図3は、並列処理装置101のハードウェア構成例を示すブロック図である。 図4は、ノード管理テーブル220の記憶内容の一例を示す説明図である。 図5は、ジョブ管理テーブル230の記憶内容の一例を示す説明図である。 図6は、問題ノード一覧情報600の具体例を示す説明図である。 図7は、並列処理装置101の機能的構成例を示すブロック図である。 図8は、ノード管理テーブル220の記憶内容の更新例を示す説明図である。 図9は、ジョブ管理テーブル230の記憶内容の更新例を示す説明図である。 図10は、並列処理装置101のジョブ管理処理手順の一例を示すフローチャートである。 図11は、ジョブ割当処理の具体的処理手順の一例を示すフローチャート(その1)である。 図12は、ジョブ割当処理の具体的処理手順の一例を示すフローチャート(その2)である。
以下に図面を参照して、本発明にかかる並列処理装置、ジョブ管理方法、およびジョブ管理プログラムの実施の形態を詳細に説明する。
(実施の形態)
図1Aおよび図1Bは、実施の形態にかかるジョブ管理方法の一実施例を示す説明図である。図1において、並列処理装置101は、複数のノードNに実行させるジョブを管理するコンピュータ(いわゆる、管理ノード)である。ノードNは、並列計算機システムの構成要素であり、並列計算を行うコンピュータ(いわゆる、計算ノード)である。ジョブは、ユーザがコンピュータに依頼する仕事の単位である。ジョブとしては、例えば、科学技術計算などの大規模な計算を行うジョブが挙げられる。
ここで、大規模な並列計算機システムにおけるジョブは、特定1ノードに割り当てられるのではなく、同時に複数のノードを占有して実行する場合が多い。また、メッシュないしトーラスネットワークを持つシステムでは、1ジョブへの割り当て範囲の部分ネットワークが、サブメッシュないしサブトーラス(n次元直方体状)であることが必要な場合が多い。例えば、トーラスネットワークを有する並列計算機システムのジョブスケジューラでは、計算ノードにジョブを「n次元直方体の形に割り当てる」のように割り当てる。
一方で、大規模な並列計算機システムでは、計算ノードの台数増加に比例して計算ノードの故障率が高くなる傾向がある。例えば、ユーザのジョブを実行している計算ノードがハードウェア故障により停止してしまうと、該当ノード上で実行されているジョブは異常終了してしまう。
このため、大規模な並列計算機システムにおいては、各計算ノードのシステムログとしてハードウェア故障を予見するログが出力されたことを事前検知し、該当計算ノードをジョブ実行で利用しないよう運用から動的に切り離すシステム監視機能が知られている。システム監視機能により運用から切り離された計算ノードは、管理ノードのジョブスケジューラ機能により、当該計算ノードに新規にジョブを割り当てないよう制御される。
ところが、ハードウェアが故障する確率が高い計算ノードを特定できたとしても、必ず故障する計算ノードを特定するのは困難である。故障確率が高いとはいえ、まだ健全な計算ノードを運用から切り離してしまうと、並列計算機システムの実行稼働率(スループット)が低下してしまう。なお、並列計算機システムの実行稼働率は、例えば、下記式(1)によって表すことができる。
並列計算機システムの実行稼働率=Σ(各計算ノードで正常終了したジョブが実行されていた時間)/Σ(各計算ノードの電源が投入されていた時間)・・・(1)
そこで、本実施の形態では、故障確率が高いノードNを避けながら、できるだけ並列計算機システムの実行稼働率を向上させるジョブ管理方法について説明する。以下、並列処理装置101の処理例について説明する。ここでは、複数のノードNとして、「ノードN1〜N60」を例に挙げて説明する。また、実行待ちのジョブとして、「ジョブJ1〜J3」を例に挙げて説明する。また、本実施の形態では、複数のノードNが配置された領域として、2次元の領域を例に挙げて説明するが、3次元以上のn次元の領域にも適用可能である。
(1)並列処理装置101は、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとに基づいて、各ジョブJの実行規模Sを算出する。ここで、実行ノード数Cは、実行待ちの各ジョブJの実行に使用されるノード数である。実行予定時間Tは、各ジョブの実行にかかる予定時間である。ジョブJの実行ノード数Cおよび実行予定時間Tは、例えば、ジョブJを投入するユーザにより指定される。
また、実行規模Sは、ジョブJが異常終了した際に並列計算機システムの実行稼働率に与える影響度合いが高いほど大きくなる指標である。例えば、実行ノード数Cが多いジョブJほど、実行中に多くのノードNを占有することになり、異常終了した際に実行稼働率に与える影響度合いは高いといえる。また、実行予定時間Tが長いジョブJほど、実行中に長い時間ノードNを占有することになり、異常終了した際に実行稼働率に与える影響度合いは高いといえる。
このため、並列処理装置101は、例えば、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとを乗算することにより、各ジョブJの実行規模Sを算出してもよい。図1Aの例では、各ジョブJ1〜J3の実行規模S1〜S3が算出された結果、各ジョブJ1〜J3が実行規模S1〜S3の大きい順にソートされている(J1⇒J2⇒J3)。
(2)並列処理装置101は、複数のノードNが配置された領域を区分けして複数のエリアAに分割する。ここで、領域は、複数のノードNが配置された平面あるいは空間のことである。以下の説明では、複数のノードNが配置された領域を「ノードエリアAR」と表記する場合がある。
具体的には、例えば、並列処理装置101は、ノードエリアARを四角形(あるいは、n次元直方体形状)に均等に区分けして複数のエリアAに分割する。分割数は、例えば、並列計算機システムのシステムサイズに応じて設定される。図1Aの例では、ノードエリアARがエリアA1〜A4に分割されている。また、エリアA1〜A4内に存在する問題ノードの数が少ない順にエリアA1〜A4がソートされている。
問題ノードとは、故障可能性が高いノードNである。問題ノードは、例えば、ハードウェア故障を予見するログが出力されたノードNであってもよく、また、複数のノードNのうち使用年数等をもとに相対的に故障可能性が高いと判断されたノードNであってもよい。なお、図1Aおよび図1B中、問題ノードは、白抜きの四角で表す。
(3)並列処理装置101は、算出した実行規模Sが大きいジョブJから順に、ノードエリアARを区分けして分割された複数のエリアAのうち、問題ノードの数が少ないエリアAからジョブJを割り当てる。具体的には、例えば、並列処理装置101は、ジョブJの割り当てを行う際に、問題ノードを含まないノードN群を選択してジョブJの割り当てを行う。
図1Bの例では、まず、ジョブJ1〜J3のうち実行規模Sが最大のジョブJ1が、問題ノードの数が最小のエリアA2内の空き領域に割り当てられる。つぎに、2番目に実行規模Sが大きいジョブJ2が、問題ノードの数が2番目に少ないエリアA1内の空き領域に割り当てられる。最後に、実行規模Sが最小のジョブJ3が、問題ノードの数が3番目に少ないエリアA3内の空き領域に割り当てられる。
なお、各ジョブJの割当先となる空き領域は、例えば、四角形(あるいは、n次元直方体形状)のサブトーラスを形成するノードN群であって、他のジョブJの実行に使用されていない未使用のノードNを、少なくとも各ジョブJの実行ノード数C分含むノードN群を含む領域である。
このように、並列処理装置101によれば、実行に使用されるノード数が多く、実行に時間がかかるジョブJに、故障可能性が高い問題ノードができるだけ割り当てられないように、ジョブJを実行するノードNを効率よく選定することができる。このため、異常終了時の影響度合いが大きいジョブJが問題ノードに割り当たる確率を下げて、並列計算機システムの実行稼働率(スループット)を向上させることができる。また、ノードエリアARを分割したエリア単位でジョブJの割当先となるノードN群を探索することができるため、ジョブJの割当先を決める際の処理時間を短縮して、ジョブJの開始時間が遅延するのを防ぐことができる。
(並列計算機システム200のシステム構成例)
つぎに、図1に示した並列処理装置101を含む並列計算機システム200のシステム構成例について説明する。
図2は、並列計算機システム200のシステム構成例を示す説明図である。図2において、並列計算機システム200は、並列処理装置101と、ノードN1〜Nn(n:2以上の自然数)と、クライアント装置201と、を含む。並列計算機システム200において、並列処理装置101、ノードN1〜Nnおよびクライアント装置201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
並列処理装置101は、ノード管理テーブル220およびジョブ管理テーブル230を有し、ノードN1〜Nnに実行させるジョブを管理する。ノード管理テーブル220およびジョブ管理テーブル230の記憶内容については、図4および図5を用いて後述する。並列処理装置101は、例えば、サーバである。
ノードN1〜Nnは、並列計算を行うコンピュータである。各ノードN1〜Nnは、例えば、サーバである。ノードN1〜Nnは、例えば、ノード間の高速通信を可能にするトーラスネットワークを形成する。図1Aに示したノードN1〜N60は、例えば、ノードN1〜Nnに相当する(n=60)。
以下の説明では、ノードN1〜Nnのうちの任意のノードを「ノードN」と表記する場合がある。また、ノードN1〜Nnが配置された領域を「ノードエリアAR」と表記する場合がある。
クライアント装置201は、並列計算機システム200のユーザ(管理者を含む)が使用するコンピュータである。クライアント装置201は、例えば、PC(Personal Computer)である。なお、図2の例では、クライアント装置201を1台のみ表記したが、これに限らない。例えば、クライアント装置201は、並列計算機システム200のユーザごとに設けられる。
(並列処理装置101のハードウェア構成例)
図3は、並列処理装置101のハードウェア構成例を示すブロック図である。図3において、並列処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、並列処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したノードN1〜Nn、クライアント装置201)に接続される。そして、I/F303は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、並列処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、図2に示したノードN1〜Nnおよびクライアント装置201についても、並列処理装置101と同様のハードウェア構成により実現することができる。ただし、クライアント装置201は、上述した構成部のほかに、入力装置、ディスプレイを有する。
(ノード管理テーブル220の記憶内容)
つぎに、並列処理装置101が有するノード管理テーブル220の記憶内容について説明する。ノード管理テーブル220は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
図4は、ノード管理テーブル220の記憶内容の一例を示す説明図である。図4において、ノード管理テーブル220は、ノードID、位置(x、y)、エリアID、故障可能性フラグおよび使用中フラグのフィールドを有する。各フィールドに情報を設定することで、ノード管理情報(例えば、ノード管理情報400−1〜400−n)がレコードとして記憶される。
ここで、ノードIDは、並列計算機システム200に含まれるノードNを一意に識別する識別子である。位置(x、y)は、ノードNの位置を示す座標である。なお、ここではノードエリアARとして2次元の領域を例に挙げて説明するが、ノードエリアARが3次元以上のn次元の空間の場合には、位置フィールドには、n次元座標系におけるノードNの位置を示す座標が設定される。
エリアIDは、ノードNが属するエリアAを一意に識別する識別子である。エリアAは、ノードN1〜Nnが配置されたノードエリアARを区分けして分割されたエリアである。故障可能性フラグは、ノードNが、故障可能性が高い問題ノードであるか否かを示すフラグである。故障可能性フラグ「0」は、ノードNが問題ノードではないことを示す。故障可能性フラグ「1」は、ノードNが問題ノードであることを示す。
使用中フラグは、ノードNが、ジョブJの実行に使用されているか否かを示すフラグである。使用中フラグ「0」は、ノードNがジョブJの実行に使用されていない空きノードであることを示す。使用中フラグ「1」は、ノードNがジョブJの実行に使用されている使用中ノードであることを示す。
(ジョブ管理テーブル230の記憶内容)
つぎに、並列処理装置101が有するジョブ管理テーブル230の記憶内容について説明する。ジョブ管理テーブル230は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
図5は、ジョブ管理テーブル230の記憶内容の一例を示す説明図である。図5において、ジョブ管理テーブル230は、ジョブID、実行ノード数、実行予定時間および実行規模のフィールドを有し、各フィールドに情報を設定することで、ジョブ管理情報(例えば、ジョブ管理情報500−1〜500−3)をレコードとして記憶する。
ここで、ジョブIDは、実行待ちのジョブJを一意に識別する識別子である。実行ノード数は、ジョブJの実行に使用されるノード数である。実行予定時間は、ジョブJの実行にかかる予定時間である。実行規模は、ジョブJが異常終了した際に並列計算機システム200の実行稼働率に与える影響度合いを表す指標である。
(問題ノード一覧情報600の具体例)
つぎに、並列処理装置101が用いる問題ノード一覧情報600の具体例について説明する。
図6は、問題ノード一覧情報600の具体例を示す説明図である。図6において、問題ノード一覧情報600は、ノードN1〜Nnのうちの故障可能性が高い問題ノードを識別するノードIDを示す情報である。問題ノード一覧情報600は、例えば、並列処理装置101において作成されてもよく、また、並列処理装置101とは異なる他のコンピュータにおいて作成されることにしてもよい。
(並列処理装置101の機能的構成例)
図7は、並列処理装置101の機能的構成例を示すブロック図である。図7において、並列処理装置101は、取得部701と、受付部702と、算出部703と、分割部704と、割当制御部705と、を含む構成である。取得部701〜割当制御部705は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。より具体的には、各機能部は、例えば、並列処理装置101のジョブスケジューラにより実現することができる。
取得部701は、ノードNの位置情報を取得する。ここで、ノードの位置情報は、ノードNの位置を示す情報であり、例えば、ノードエリアARにおけるノードNの位置を示す座標である。ノードNの位置情報には、例えば、ノードNを識別するノードIDが含まれる。ノードIDとしては、例えば、ノードNのMAC(Media Access Control)アドレスを用いることができる。
具体的には、例えば、取得部701は、ネットワーク210(図2参照)を介して、他のコンピュータ(例えば、クライアント装置201)からノードNの位置情報を受信することにより、ノードNの位置情報を取得することにしてもよい。また、取得部701は、例えば、不図示の入力装置を用いたユーザの操作入力により、ノードNの位置情報を取得することにしてもよい。
取得されたノードNの位置情報は、例えば、図4に示したノード管理テーブル220に記憶される。ここで、ノード管理テーブル220の記憶内容の更新例について説明する。
図8は、ノード管理テーブル220の記憶内容の更新例を示す説明図である。図8の(8−1)において、ノード管理テーブル220のノードIDおよび位置(x、y)の各フィールドに情報が設定された結果、ノード管理情報(例えば、ノード管理情報400−1〜400−3)がレコードとして記憶される。ただし、この時点では、各ノード管理情報のエリアIDフィールドは「−(Null)」である。また、各ノード管理情報の故障可能性フラグおよび使用中フラグの各フィールドは初期状態「0」である。
図7の説明に戻り、取得部701は、問題ノードを示す情報を取得する。ここで、問題ノードは、故障可能性が高いノードNである。具体的には、例えば、取得部701は、ネットワーク210を介して、他のコンピュータ(例えば、クライアント装置201)から問題ノード一覧情報600を受信することにより、問題ノードを示す情報を取得することにしてもよい。また、取得部701は、例えば、不図示の入力装置を用いたユーザの操作入力により、問題ノード一覧情報600を取得することにしてもよい。
また、取得部701は、各ノードNのシステムログを監視して、問題ノード一覧情報600を作成することにしてもよい。より詳細に説明すると、取得部701は、例えば、ノードNのシステムログとしてハードウェア故障を予見するログを検出すると、当該ノードNを問題ノードとして問題ノード一覧情報600に登録する。
問題ノードを示す情報が取得されると、例えば、ノード管理テーブル220内の対応するノード管理情報の故障可能性フラグが「1」に更新される。例えば、問題ノード一覧情報600が示すノードID「N15」を例に挙げると、図8の(8−2)に示すように、ノード管理情報400−15の故障可能性フラグが「1」に更新される。
受付部702は、ジョブJの実行ノード数Cと実行予定時間Tとを受け付ける。ここで、実行ノード数Cは、ジョブJの実行に使用されるノード数である。実行予定時間Tは、ジョブの実行にかかる予定時間である。実行予定時間Tの単位は、任意に設定可能であり、例えば、「分」や「時間」に設定される。
具体的には、例えば、並列計算機システム200のユーザが、クライアント装置201において、ジョブJを投入する際に、ジョブJの実行ノード数Cと実行予定時間Tとを指定する。この場合、受付部702は、クライアント装置201において指定されたジョブJの実行ノード数Cと実行予定時間Tとを受け付ける。また、受付部702は、例えば、不図示の入力装置を用いたユーザの操作入力により、ジョブJの実行ノード数Cと実行予定時間Tとを受け付けることにしてもよい。
受け付けられたジョブJの実行ノード数Cと実行予定時間Tは、例えば、図5に示したジョブ管理テーブル230に記憶される。ここで、ジョブ管理テーブル230の記憶内容の更新例について説明する。
図9は、ジョブ管理テーブル230の記憶内容の更新例を示す説明図である。図9の(9−1)において、ジョブ管理テーブル230のジョブID、実行ノード数および実行予定時間の各フィールドに情報が設定された結果、ジョブ管理情報(例えば、ジョブ管理情報500−1〜500−3)がレコードとして記憶される。ただし、この時点では、各ジョブ管理情報の実行規模フィールドは「−」である。
図7の説明に戻り、算出部703は、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとに基づいて、各ジョブJの実行規模Sを算出する。ここで、実行規模Sは、ジョブJが異常終了した際に並列計算機システム200の実行稼働率に与える影響度合いを表す指標である。
具体的には、例えば、算出部703は、ジョブ管理テーブル230を参照して、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとを乗算することにより、各ジョブJの実行規模Sを算出する。算出された各ジョブJの実行規模Sは、例えば、図9の(9−2)に示すように、各ジョブJのジョブIDと対応付けて、ジョブ管理テーブル230の実行規模フィールドに記憶される。
分割部704は、ノードN1〜Nnが配置されたノードエリアARを区分けして複数のエリアAに分割する。例えば、ノードエリアARが2次元の平面の場合、各エリアAは、四角形の領域となる。例えば、ノードエリアARがn次元の空間の場合、各エリアAは、n次元直方体の領域となる。具体的には、例えば、分割部704は、ノードエリアARを四角形(あるいは、n次元直方体形状)に均等に区分けして複数のエリアAに分割する。分割数は、例えば、並列計算機システム200のシステムサイズに応じて適宜設定される。
また、分割部704は、各エリアAの探索開始位置を設定する。ここで、探索開始位置とは、各エリアAにおいて、ジョブJを割り当てる空き領域を探索する際の開始位置となる位置である。空き領域とは、ジョブJの実行に使用されていない未使用のノードN群を含む領域である。各エリア内のどの位置を探索開始位置とするかは任意に設定可能である。具体的には、例えば、分割部704は、ノードエリアARを四角形に区分けした各エリアAの左下の位置を探索開始位置に設定することにしてもよい。
一例として、図1Aに示したようにノードエリアARを4分割する場合、ノードエリアARの左下を原点とすると、左下のエリアA1の探索開始位置は、「(x、y)=(0、0)」となる。また、右下のエリアA2の探索開始位置は、「(x、y)=(x軸最大値÷2、0)」となる。また、左上のエリアA3の探索開始位置は、「(x、y)=(0、y軸最大値÷2)」となる。また、右上のエリアA4の探索開始位置は、「(x、y)=(x軸最大値÷2、y軸最大値÷2)」となる。
また、分割部704は、ノードNが属するエリアAを特定する。具体的には、例えば、分割部704は、ノード管理テーブル220を参照して、各ノードNが属するエリアAを特定する。特定された結果(エリアAのエリアID)は、例えば、図8の(8−3)に示すように、各ノードNのノードIDと対応付けて、ノード管理テーブル220のエリアIDフィールドに記憶される。
割当制御部705は、実行待ちのジョブJを割り当てる制御を行う。具体的には、例えば、割当制御部705は、ノード管理テーブル220を参照して、各エリアAの問題ノード数pを算出する。問題ノード数pは、各エリアAに属する問題ノードの数である。一例として、エリアA1の問題ノード数p1を算出するとする。この場合、割当制御部705は、エリアIDフィールドに「A1」が設定されたノード管理情報のうち、故障可能性フラグに「1」が設定されたノード管理情報の数を、エリアA1の問題ノード数p1として算出する。
そして、割当制御部705は、ジョブ管理テーブル230を参照して、算出された実行規模Sが大きいジョブJから順に、複数のエリアAのうち、算出した問題ノード数pが少ないエリアAからジョブJを割り当てる。この際、割当制御部705は、例えば、問題ノードを含まないノードN群を選択してジョブJの割り当てを行う。
より詳細に説明すると、例えば、まず、割当制御部705は、ジョブ管理テーブル230を参照して、実行待ちのジョブJ1〜J3を実行規模Sが大きい順にソートする。ここで、実行規模S1〜S3の大小関係を「S1>S2>S3」とする。この場合、ジョブJ1〜J3を実行規模Sが大きい順にソートすると、{J1,J2,J3}となる。なお、実行規模Sが同一のジョブJが存在する場合には、割当制御部705は、例えば、それらジョブJについて、キューに入れられた順にソートすることにしてもよい。
また、割当制御部705は、複数のエリアAを問題ノード数pが少ない順にソートする。ここで、複数のエリアAを「エリアA1〜A4」とし、エリアA1〜A4の問題ノード数p1〜p4の大小関係を「p4>p3>p1>p2」とする。この場合、エリアA1〜A4を問題ノード数pが少ない順にソートすると、{A2,A1,A3,A4}となる。なお、問題ノード数pが同一のエリアAが存在する場合には、割当制御部705は、例えば、それらエリアAについて、探索開始位置に近い問題ノードの数が少ないエリアを上位にソートすることにしてもよい。
つぎに、割当制御部705は、{J1,J2,J3}から、実行規模Sが最大のジョブJ1を選択する。また、割当制御部705は、{A2,A1,A3,A4}から、問題ノード数pが最小のエリアA2を選択する。そして、割当制御部705は、ノード管理テーブル220を参照して、選択したエリアA2から、問題ノードを含まない、ジョブJ1を割り当て可能なノードN群を探索する。
ここで、ジョブJ1を割り当て可能なノードN群は、例えば、サブトーラスを形成するノードNの集合であって、他のジョブJの実行に使用されていない未使用のノードNを、少なくともジョブJ1の実行ノード数C1分含むノードNの集合である。
具体的には、例えば、割当制御部705は、エリアA2の探索開始位置から徐々に範囲を広げながら、問題ノードを含まない、ジョブJ1を割り当て可能なノードN群を探索する。この際、割当制御部705は、例えば、ノード単位、あるいは、シャーシ単位で範囲を広げることにしてもよい。シャーシとは、サブトーラスを形成するノードNの集合である。そして、ノードN群の探索に成功すると、割当制御部705は、探索したノードN群を選択してジョブJ1を割り当てる。
一方、ノードN群の探索に失敗すると、割当制御部705は、{A2,A1,A3,A4}から、問題ノード数pが次に少ないエリアA1を選択する。そして、割当制御部705は、選択したエリアA2から、問題ノードを含まない、ジョブJ1を割り当て可能なノードN群を探索する。割当制御部705は、ノードN群の探索に成功する、あるいは、未選択のエリアAがなくなるまで、上述した一連の処理を繰り返す。
また、ジョブJ1の割り当てが完了すると、割当制御部705は、{J1,J2,J3}から、実行規模Sが次に大きいジョブJ2を選択して、ジョブJ1と同様の処理を行う。そして、ジョブJ2の割り当てが完了すると、割当制御部705は、{J1,J2,J3}から、実行規模Sが次に大きいジョブJ3を選択して、ジョブJ1,J2と同様の処理を行う。
ただし、複数のエリアAの全てについて、問題ノードを含まないノードN群を選択したジョブJの割り当てができないときがある。この場合、割当制御部705は、問題ノード数pが少ないエリアAから、問題ノードの数が最小となるようにノードN群を選択してジョブJの割り当てを行うことにしてもよい。
すなわち、割当制御部705は、問題ノードを含むことを許容して、ジョブJを割り当て可能なノードN群を探索する。この際、割当制御部705は、例えば、問題ノードの数が最小となるように、ジョブJを割り当て可能なノードN群をエリアAから探索する。そして、ノードN群の探索に成功すると、割当制御部705は、探索したノードN群を選択してジョブJを割り当てる。ただし、複数のエリアAの全てについて、問題ノードを含むことを許容してもノードN群の探索に失敗した場合、割当制御部705は、ジョブJをキューに戻すことにしてもよい。
なお、ジョブJの割り当てが完了すると、割当制御部705は、ジョブJを割り当てたノードNに対応する、ノード管理テーブル220内の使用中フラグを「1」に変更する。また、ジョブJの実行が終了すると、割当制御部705は、ジョブJが割り当てられていたノードNに対応する、ノード管理テーブル220内の使用中フラグを「0」に変更する。
(並列処理装置101のジョブ管理処理手順)
つぎに、並列処理装置101のジョブ管理処理手順について説明する。ジョブ管理処理は、例えば、定期的に実行されることにしてもよく、新たなジョブJが投入される、あるいは、投入済みのいずれかのジョブJの実行が完了したことに応じて実行されることにしてもよい。また、ノードNの位置情報は、ノード管理テーブル220に記憶されているとする。
図10は、並列処理装置101のジョブ管理処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、並列処理装置101は、問題ノード一覧情報600を取得する(ステップS1001)。そして、並列処理装置101は、取得した問題ノード一覧情報600に基づいて、ノード管理テーブル220内の故障可能性フラグを更新する(ステップS1002)。
つぎに、並列処理装置101は、ジョブJの実行ノード数Cと実行予定時間Tとを受け付ける(ステップS1003)。受け付けられたジョブJの実行ノード数Cと実行予定時間Tは、ジョブ管理テーブル230に記憶される。
そして、並列処理装置101は、ジョブ管理テーブル230を参照して、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとを乗算することにより、各ジョブJの実行規模Sを算出する(ステップS1004)。算出された各ジョブJの実行規模Sは、ジョブ管理テーブル230に記憶される。
つぎに、並列処理装置101は、ジョブ管理テーブル230を参照して、実行待ちのジョブJを実行規模Sが大きい順にソートする(ステップS1005)。そして、並列処理装置101は、ノードN1〜Nnが配置されたノードエリアARを区分けして複数のエリアAに分割する(ステップS1006)。この際、並列処理装置101は、各エリアAの探索開始位置を設定する。
つぎに、並列処理装置101は、ノード管理テーブル220を参照して、各ノードNが属するエリアAを特定する(ステップS1007)。特定された結果(エリアAのエリアID)は、ノード管理テーブル220に記憶される。そして、並列処理装置101は、ノード管理テーブル220を参照して、各エリアAの問題ノード数pを算出する(ステップS1008)。
つぎに、並列処理装置101は、複数のエリアAを問題ノード数pが少ない順にソートする(ステップS1009)。つぎに、並列処理装置101は、実行規模Sが大きい順にソートした実行待ちのジョブJの先頭から未選択のジョブJを選択する(ステップS1010)。
そして、並列処理装置101は、選択したジョブJを割り当てるジョブ割当処理を実行する(ステップS1011)。ジョブ割当処理の具体的な処理手順については、図11および図12を用いて後述する。つぎに、並列処理装置101は、実行規模Sが大きい順にソートした実行待ちのジョブJのうち選択されていない未選択のジョブJがあるか否かを判断する(ステップS1012)。
ここで、未選択のジョブJがある場合(ステップS1012:Yes)、並列処理装置101は、ステップS1010に戻る。一方、未選択のジョブJがない場合(ステップS1012:No)、並列処理装置101は、本フローチャートによる一連の処理を終了する。これにより、実行待ちのジョブJの割り当てを行うことができる。
つぎに、ステップS1011のジョブ割当処理の具体的な処理手順について説明する。
図11および図12は、ジョブ割当処理の具体的処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、並列処理装置101は、問題ノード数pが少ない順にソートした複数のエリアAの先頭から未選択のエリアAを選択する(ステップS1101)。
つぎに、並列処理装置101は、選択したエリアAから、問題ノードを含まない、選択したジョブJを割り当て可能なノードN群を探索する(ステップS1102)。なお、ジョブJを割り当て可能なノードN群は、例えば、サブトーラスを形成するノードNの集合であって、未使用のノードNを実行ノード数C分含むノードNの集合である。
そして、並列処理装置101は、ノードN群が探索されたか否かを判断する(ステップS1103)。ここで、ノードN群が探索された場合(ステップS1103:Yes)、並列処理装置101は、探索したノードN群を選択してジョブJを割り当てて(ステップS1104)、ジョブ割当処理を呼び出したステップに戻る。
一方、ノードN群が探索されなかった場合(ステップS1103:No)、並列処理装置101は、問題ノード数pが少ない順にソートした複数のエリアAのうち、ステップS1101において選択されていない未選択のエリアAがあるか否かを判断する(ステップS1105)。
ここで、未選択のエリアAがある場合(ステップS1105:Yes)、並列処理装置101は、ステップS1101に戻る。一方、未選択のエリアAがない場合には(ステップS1105:No)、並列処理装置101は、図12に示すステップS1201に移行する。
図12のフローチャートにおいて、まず、並列処理装置101は、問題ノード数pが少ない順にソートした複数のエリアAの先頭から未選択のエリアAを選択する(ステップS1201)。そして、並列処理装置101は、選択したエリアAから、問題ノードを含むことを許容して、問題ノードの数が最小となるように、ジョブJを割り当て可能なノードN群を探索する(ステップS1202)。
つぎに、並列処理装置101は、ノードN群が探索されたか否かを判断する(ステップS1203)。ここで、ノードN群が探索された場合(ステップS1203:Yes)、並列処理装置101は、探索したノードN群を選択してジョブJを割り当てて(ステップS1204)、ジョブ割当処理を呼び出したステップに戻る。
一方、ノードN群が探索されなかった場合(ステップS1203:No)、並列処理装置101は、問題ノード数pが少ない順にソートした複数のエリアAのうち、ステップS1201において選択されていない未選択のエリアAがあるか否かを判断する(ステップS1205)。
ここで、未選択のエリアAがある場合(ステップS1205:Yes)、並列処理装置101は、ステップS1201に戻る。一方、未選択のエリアAがない場合には(ステップS1205:No)、並列処理装置101は、選択したジョブJをキューに入れて(ステップS1206)、ジョブ割当処理を呼び出したステップに戻る。
これにより、実行規模Sが大きいジョブJに、故障可能性が高い問題ノードができるだけ割り当てられないように制御することができる。
以上説明したように、実施の形態にかかる並列処理装置101によれば、実行待ちの各ジョブJの実行ノード数Cと実行予定時間Tとに基づいて、各ジョブJの実行規模Sを算出することができる。そして、並列処理装置101によれば、実行規模Sが大きいジョブJから順に、ノードN1〜Nnが配置されたノードエリアARを区分けして分割された複数のエリアAのうち、問題ノード数pが少ないエリアAからジョブJを割り当てることができる。
これにより、実行に使用されるノード数が多く、実行に時間がかかるジョブJに、故障可能性が高い問題ノードができるだけ割り当てられないように、ジョブJを実行するノードNを効率よく選定することができる。このため、異常終了時の影響度合いが大きいジョブJが問題ノードに割り当たる確率を下げて、並列計算機システム200の実行稼働率(スループット)を向上させることができる。また、ジョブJの割当先を決める際の処理時間を短縮することができ、ジョブJの開始時間が遅延するのを防ぐことができる。
また、並列処理装置101によれば、ジョブJの割り当てを行う際に、問題ノードを含まないノードN群を選択してジョブJの割り当てを行うことができる。これにより、実行中のジョブJが異常終了してしまうのを防ぐことができ、無駄な処理が生じて並列計算機システム200の実行稼働率が低下するのを抑制することができる。
また、並列処理装置101によれば、複数のエリアAの全てについて問題ノードを含まないノードN群を選択したジョブJの割り当てができないときは、問題ノードの数が最小となるようにノードN群を選択してジョブJの割り当てを行うことができる。これにより、問題ノードを避けたジョブJの割り当てができない場合は、問題ノード数を最小化することで、実行中のジョブJが異常終了する確率を下げることができる。
また、並列処理装置101によれば、問題ノード数pとして、各ノードNで記録されるシステムログからハードウェア故障が予見されたノードNの数を計数することができる。これにより、ハードウェア故障の可能性が高い問題ノードにジョブJができるだけ割り当てられないように、ジョブJを実行するノードNを効率よく選定することができる。
これらのことから、並列処理装置101によれば、トーラスネットワークを有するような大規模な並列計算機システム200において、実行稼働率を下げないように、部分ネットワーク(例えば、2次元平面状やn次元直方体状のサブトーラス)にジョブJを割り当てることが可能となる。
なお、本実施の形態で説明したジョブ管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ジョブ管理プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ジョブ管理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
制御部を有することを特徴とする並列処理装置。
(付記2)前記制御部は、
前記ジョブの割り当てを行う際に、前記問題ノードを含まないノード群を選択して前記ジョブの割り当てを行う、
ことを特徴とする付記1に記載の並列処理装置。
(付記3)前記制御部は、
前記複数のエリアの全てについて前記問題ノードを含まないノード群を選択した前記ジョブの割り当てができないときは、前記問題ノードの数が最小となるようにノード群を選択して前記ジョブの割り当てを行う、
ことを特徴とする付記2に記載の並列処理装置。
(付記4)前記複数のノードは、トーラスネットワークを形成するノードである、ことを特徴とする付記1〜3のいずれか一つに記載の並列処理装置。
(付記5)前記問題ノードは、前記複数のノードそれぞれで記録されるシステムログからハードウェア故障が予見されたノードである、ことを特徴とする付記1〜4のいずれか一つに記載の並列処理装置。
(付記6)実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
処理をコンピュータが実行することを特徴とするジョブ管理方法。
(付記7)実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
処理をコンピュータに実行させることを特徴とするジョブ管理プログラム。
101 並列処理装置
200 並列計算機システム
201 クライアント装置
210 ネットワーク
220 ノード管理テーブル
230 ジョブ管理テーブル
300 バス
301 CPU
302 メモリ
303 I/F
304 ディスクドライブ
305 ディスク
600 問題ノード一覧情報
701 取得部
702 受付部
703 算出部
704 分割部
705 割当制御部
A エリア
AR ノードエリア
N ノード

Claims (5)

  1. 実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
    算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
    制御部を有することを特徴とする並列処理装置。
  2. 前記制御部は、
    前記ジョブの割り当てを行う際に、前記問題ノードを含まないノード群を選択して前記ジョブの割り当てを行う、
    ことを特徴とする請求項1に記載の並列処理装置。
  3. 前記制御部は、
    前記複数のエリアの全てについて前記問題ノードを含まないノード群を選択した前記ジョブの割り当てができないときは、前記問題ノードの数が最小となるようにノード群を選択して前記ジョブの割り当てを行う、
    ことを特徴とする請求項2に記載の並列処理装置。
  4. 実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
    算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
    処理をコンピュータが実行することを特徴とするジョブ管理方法。
  5. 実行待ちの各ジョブの実行に使用されるノード数と、前記各ジョブの実行にかかる実行予定時間とに基づいて、前記各ジョブの実行規模を算出し、
    算出した前記実行規模が大きいジョブから順に、複数のノードが配置された領域を区分けして分割された複数のエリアのうち、故障可能性が高い問題ノードの数が少ないエリアからジョブを割り当てる、
    処理をコンピュータに実行させることを特徴とするジョブ管理プログラム。
JP2017095200A 2017-05-12 2017-05-12 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム Active JP6885193B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017095200A JP6885193B2 (ja) 2017-05-12 2017-05-12 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US15/964,424 US11023281B2 (en) 2017-05-12 2018-04-27 Parallel processing apparatus to allocate job using execution scale, job management method to allocate job using execution scale, and recording medium recording job management program to allocate job using execution scale

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017095200A JP6885193B2 (ja) 2017-05-12 2017-05-12 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム

Publications (2)

Publication Number Publication Date
JP2018194875A true JP2018194875A (ja) 2018-12-06
JP6885193B2 JP6885193B2 (ja) 2021-06-09

Family

ID=64097936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017095200A Active JP6885193B2 (ja) 2017-05-12 2017-05-12 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム

Country Status (2)

Country Link
US (1) US11023281B2 (ja)
JP (1) JP6885193B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112017007655T5 (de) * 2017-06-19 2020-03-05 Mitsubishi Electric Corporation Verteilte Zuweisungseinrichtung, verteiltes Zuweisungssystem, sowie verteiltes Zuweisungsverfahren
US10776160B2 (en) * 2017-12-28 2020-09-15 Mcgraw Hill Llc Management of sequenced execution of service tasks in a multi-service system
US11042416B2 (en) 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
CN110928659B (zh) * 2019-11-20 2022-12-06 哈尔滨工程大学 一种具有自适应功能的数值水池系统远程多平台接入方法
CN114489855A (zh) * 2022-01-27 2022-05-13 北京索为系统技术股份有限公司 流程节点控制方法、装置、计算机设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3959516B2 (ja) * 2001-08-06 2007-08-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、cpu資源プロバイダ、クライアント装置、処理サービスの提供方法、およびプログラム
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
JP4781089B2 (ja) * 2005-11-15 2011-09-28 株式会社ソニー・コンピュータエンタテインメント タスク割り当て方法およびタスク割り当て装置
JP4611922B2 (ja) * 2006-03-28 2011-01-12 富士通株式会社 制御プログラム、制御方法および制御装置
US7631169B2 (en) * 2007-02-02 2009-12-08 International Business Machines Corporation Fault recovery on a massively parallel computer system to handle node failures without ending an executing job
US8381220B2 (en) * 2007-10-31 2013-02-19 International Business Machines Corporation Job scheduling and distribution on a partitioned compute tree based on job priority and network utilization
EP2455863A4 (en) * 2009-07-16 2013-03-27 Hitachi Ltd MANAGEMENT SYSTEM FOR PROVIDING INFORMATION DESCRIBING A RECOVERY METHOD CORRESPONDING TO A FUNDAMENTAL CAUSE OF FAILURE
US8484354B2 (en) * 2009-11-02 2013-07-09 Beaumaris Networks, Inc. Distributed resource management
JP5325827B2 (ja) 2010-03-31 2013-10-23 株式会社日立製作所 ジョブスケジュールシステム、ジョブスケジュール管理方法及びプログラム。
JP6221588B2 (ja) * 2013-09-30 2017-11-01 富士通株式会社 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法

Also Published As

Publication number Publication date
US11023281B2 (en) 2021-06-01
US20180329752A1 (en) 2018-11-15
JP6885193B2 (ja) 2021-06-09

Similar Documents

Publication Publication Date Title
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP6643242B2 (ja) データ管理システム及び方法
EP2791806B1 (en) Working set swapping using a sequentially ordered swap file
CN113687941A (zh) 一种基于优先级的资源分配方法、装置和设备
US10817380B2 (en) Implementing affinity and anti-affinity constraints in a bundled application
US20190253489A1 (en) Command process load balancing system
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP2007249674A (ja) サーバシステム
JP2017016541A (ja) 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
US20180254999A1 (en) Multidimensional resource allocation in data centers
JP2010266996A (ja) データベース処理方法、データベース処理システム及びデータベースサーバ
US20200285510A1 (en) High precision load distribution among processors
CN107977275B (zh) 基于消息队列的任务处理方法及相关设备
JP2008090507A (ja) ジョブ実行のスケジューリングプログラム、ジョブ実行のスケジューリング方法、ジョブ実行のスケジューリング装置
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP5773493B2 (ja) 情報処理装置
US10394615B2 (en) Information processing apparatus and job management method
US8332595B2 (en) Techniques for improving parallel scan operations
JP6194875B2 (ja) キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
JP2008225686A (ja) 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム
US20200042634A1 (en) Methods and apparatus to partition a database
JP2020144510A (ja) ジョブ制御システム、方法、及びプログラム
JP4064033B2 (ja) 複数の記録媒体を利用したデータバックアップ装置およびプログラム記憶媒体
JP6020014B2 (ja) 分散データストア管理装置、分散並列処理実行装置、分散並列処理システム、分散データストア管理方法、分散並列処理実行方法、および、コンピュータ・プログラム
JP2015185003A (ja) スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210426

R150 Certificate of patent or registration of utility model

Ref document number: 6885193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150