JP6191361B2 - 情報処理システム、情報処理システムの制御方法及び制御プログラム - Google Patents

情報処理システム、情報処理システムの制御方法及び制御プログラム Download PDF

Info

Publication number
JP6191361B2
JP6191361B2 JP2013198140A JP2013198140A JP6191361B2 JP 6191361 B2 JP6191361 B2 JP 6191361B2 JP 2013198140 A JP2013198140 A JP 2013198140A JP 2013198140 A JP2013198140 A JP 2013198140A JP 6191361 B2 JP6191361 B2 JP 6191361B2
Authority
JP
Japan
Prior art keywords
information processing
job
information
jobs
identified
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.)
Active
Application number
JP2013198140A
Other languages
English (en)
Other versions
JP2015064746A (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.)
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 JP2013198140A priority Critical patent/JP6191361B2/ja
Priority to US14/331,594 priority patent/US9710311B2/en
Publication of JP2015064746A publication Critical patent/JP2015064746A/ja
Application granted granted Critical
Publication of JP6191361B2 publication Critical patent/JP6191361B2/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/505Allocation 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 load
    • 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
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution

Description

本発明は、情報処理システム、情報処理システムの制御方法及び制御プログラムに関する。
複数のユーザに共同で利用される並列計算機(例えばスーパーコンピュータ)においては、ユーザからのジョブの実行指示が特定の時間帯に集中すると、計算資源が不足し、ジョブを実行することができなくなる。そこで、従来の技術においては、並列計算機を管理するシステム内にスケジューラを設け、ジョブの実行予定をスケジューラに管理させることで、ジョブの実行中に計算資源が不足することを防いでいる。
但し、実際の運用中には、予め決定された実行予定には含まれていない、緊急で実行すべきジョブが生じる場合がある。例えば災害が発生した場合には、災害の影響を予測するジョブを、災害への対策を講じるために緊急で実行することになる。
上記の技術においては、スケジューラは、実行すべきジョブを新たに受け付けた場合、複数のCPUの中から、メモリの空き容量がそのジョブによるメモリの使用量より多いCPUを特定し、特定されたCPUにジョブを実行させる。しかし、この方法においては、メモリの空き容量をCPU毎に管理しているため、CPUの計算能力を十分に活用しきれないようなスケジューリングを行ってしまうことがある。
特開平7−249010号公報
従って、本発明の目的は、1つの側面では、ジョブを実行する並列計算機の計算資源を有効に利用するための技術を提供することである。
本発明に係る情報処理システムは、複数の情報処理装置と、複数の情報処理装置によるジョブの実行を管理する管理装置と、端末とを有する。そして、上で述べた管理装置は、複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信する第1処理部と、端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う第2処理部とを有する。
1側面では、ジョブを実行する並列計算機の計算資源を有効に利用できるようになる。
図1は、本実施の形態におけるシステムの概要を示す図である。 図2は、ユーザノードの機能ブロック図である。 図3は、管理ノードの機能ブロック図である。 図4は、ジョブデータ格納部に格納されるデータの一例を示す図である。 図5は、スケジュールデータ格納部に格納されるデータの一例を示す図である。 図6は、資源データ格納部に格納される空き空間リストの一例を示す図である。 図7は、管理ノードが実行する処理の処理フローを示す図である。 図8は、全計算ノードが占める空間及びジョブを実行中の計算ノードが占める空間を示す図である。 図9は、最大空き空間について説明するための図である。 図10は、管理ノードが実行する処理の処理フローを示す図である。 図11は、最大空き空間について説明するための図である。 図12は、ユーザノードが実行する処理の処理フローを示す図である。 図13は、緊急ジョブに対する計算ノードの割当について説明するための図である。 図14は、緊急ジョブに対する計算ノードの割当について説明するための図である。 図15は、複数の並列計算機が有る場合について説明するための図である。 図16は、コンピュータの機能ブロック図である。
図1に、本実施の形態におけるシステムの概要を示す。例えばインターネットであるネットワーク5には、ユーザによって操作されるユーザノード1と、管理ノード3とが接続されている。管理ノード3は、並列計算機10として動作する複数の計算ノードを管理する。ユーザノード1は、ジョブの実行要求を管理ノード3に送信する。管理ノード3は、実行要求において指定されたジョブのスケジューリングを行い、計算ノードに、スケジュールに従ってジョブを実行させる。並列計算機10は、複数のジョブを並列で実行することができる。
図2に、ユーザノード1の機能ブロック図を示す。ユーザノード1は、ジョブ特定部101と、第1問い合わせ処理部103及び第2問い合わせ処理部104を含む問い合わせ処理部102と、ジョブデータ格納部105とを含む。
ジョブ特定部101は、ジョブデータ格納部105に格納されているデータを用いて、実行すべきジョブを特定する処理を実行し、処理結果を問い合わせ処理部102に出力する。第1問い合わせ処理部103は、並列計算機10における計算ノードのうちジョブを実行していない(すなわち、空いている)計算ノードの数を管理ノード3に問い合わせる処理を実行し、管理ノード3から問い合わせに対する応答を受信する。第2問い合わせ処理部104は、ジョブ特定部101による処理結果に基づき、ジョブを実行することを要求する実行要求及びジョブを停止することを要求する停止要求を管理ノード3に送信する。
図3に、管理ノード3の機能ブロック図を示す。管理ノード3は、ジョブ管理部301と、ジョブスケジューラ302と、資源管理部303と、スケジュールデータ格納部304と、資源データ格納部305とを含む。
ジョブ管理部301は、ユーザノード1からジョブの実行要求を受信した場合、ジョブ実行要求をジョブスケジューラ302に出力する。また、ジョブ管理部301は、ユーザノード1から空いている計算ノードの数の問い合わせを受信した場合、その問い合わせを資源管理部303に出力する。ジョブスケジューラ302は、実行要求において指定されたジョブについて実行スケジュールを生成し、スケジュールデータ格納部304に格納する。資源管理部303は、スケジュールデータ格納部304に格納されているデータを用いて、実行スケジュールに従って、計算ノードをジョブに割り当てる処理を実行する。また、資源管理部303は、資源データ格納部305に格納されているデータを用いて、後で説明する最大空き空間を算出し、算出された最大空き空間の情報をジョブ管理部301に出力する。
図4に、ユーザノード1のジョブデータ格納部105に格納されるデータの一例を示す。図4の例では、ジョブの識別情報と、ジョブの実行に使用する計算ノードの数と、次元を表す数とが格納される。次元を表す数によって、ジョブの実行に使用する計算ノードによって形成される空間の形状が決定される。数が「2」である場合、計算ノードによって形成される空間の形状は面状である。数が「3」である場合、計算ノードによって形成される空間の形状は直方体である。なお、数が「1」である場合、ジョブの実行に使用する計算ノードによって形成される形状について制約は無い。数が「1」である場合、計算ノードが離散していてもよいが、計算ノードが離散していると、ジョブの実行に関係が無い計算ノードにおいて通信負荷が発生することがあるので、計算ノードは離散していないことが好ましい。
図5に、管理ノード3のスケジュールデータ格納部304に格納されるデータの一例を示す。図5の例では、各計算ノードについて、ジョブの実行スケジュールが格納される。例えば計算ノード2は、時刻tn−2、時刻tn−1及び時刻tにおいてジョブAを実行し、時刻tn+1及び時刻tn+2においてジョブBを実行する。
図6に、資源データ格納部305に格納される空き空間リストの一例を示す。図6の例では、空間の原点の座標と、各座標軸の方向のサイズとが格納される。資源データ格納部305に格納されるデータは、資源管理部303により生成される。資源管理部303は、例えば定期的に、計算ノードの状態を示す情報を受信し、ジョブを実行していない計算ノードを特定する。そして、ジョブを実行していない計算ノードが占める空間である空き空間を算出し、空き空間リストに登録する。
次に、図7乃至図15を用いて、図1に示したシステムにおいて行われる処理について説明する。まず、図7乃至図11を用いて、管理ノード3が実行する処理について説明する。
まず、管理ノード3におけるジョブ管理部301は、並列計算機10における計算ノードの空きについての問い合わせをユーザノード1から受信する(図7:ステップS1)。空きについての問い合わせには、次元を表す数が含まれる。ジョブ管理部301は、受信した問い合わせを資源管理部303に出力する。
資源管理部303は、空いている計算ノードが並列計算機10に有るか判断する(ステップS3)。ステップS3において、資源管理部303は、資源データ格納部305に格納されている空き空間リストに空き空間が登録されているか否かによって判断する。
空いている計算ノードが無い場合(ステップS3:Noルート)、資源管理部303は、空いている計算ノードが無いことを表すデータをユーザノード1に送信する(ステップS5)。なお、ステップS5の処理の後、並列計算機10において実行中のジョブの少なくとも一部を停止し、計算資源の空きを確保してもよい。
一方、空いている計算ノードが有る場合(ステップS3:Yesルート)、資源管理部303は、問い合わせに含まれる、次元を表す数が2以上であるか判断する(ステップS7)。
次元を表す数が2以上ではない(すなわち、1である)場合(ステップS7:Noルート)、資源管理部303は、空いている計算ノードの数をユーザノード1に送信する(ステップS9)。そして処理を終了する。
一方、次元を表す数が2以上である場合(ステップS7:Yesルート)、資源管理部303は、最大空き空間を計算する(ステップS11)。最大空き空間とは、空き空間リストに登録されている空き空間のうち、体積が最大である空き空間である。
図8に、並列計算機10における全計算ノードが占める空間と、ジョブを実行中の計算ノードが占める空間とを示す。図8の例では、直方体81が、並列計算機10における計算ノードが占める空間であり、模様が付されたブロックが、ジョブを実行中の計算ノードが占める空間である。次元が3である場合には、図8に示すように、ジョブを実行する計算ノードによって形成される空間が直方体になるように、ジョブに対して計算ノードを割り当てる。これは、ジョブを実行する計算ノードが離散していると、離散している計算ノードの間で通信を行う際に、そのジョブを実行しない計算ノードにも通信処理の負荷が生じることがあるためである。
図9を用いて、最大空き空間について説明する。図9の例では、ジョブE及びFが実行されており、それ以外の空間が、ジョブを実行していない計算ノードが占める空間である。最大空き空間は、ジョブを実行していない計算ノードが占める空間内において、体積が最大である直方体が占める空間である。よって、図9の例では、ドットが付されているブロック91が占める空間が最大空き空間である。最大空き空間を特定することによって、空いている計算ノードを最大限有効に活用できるようになる。
図7の説明に戻り、資源管理部303は、最大空き空間の情報(本実施の形態においては、最大空き空間に含まれる計算ノードの数)をユーザノード1に送信する(ステップS13)。そして処理を終了する。
以上のような処理を実行すれば、ユーザノード1においては、空いている計算ノードの数に応じて適切なジョブを選択できるようになる。
次に、図10を用いて、管理ノード3がユーザノード1から要求(ここでは、実行要求又は停止要求)を受信した場合に実行する処理について説明する。
まず、管理ノード3におけるジョブ管理部301は、ユーザノード1から要求を受信する(図10:ステップS21)。
ジョブ管理部301は、ステップS21において受信した要求が、ジョブを実行することを要求する実行要求であるか判断する(ステップS23)。実行要求には、ユーザノード1によって指定されたジョブの識別情報が含まれる。
実行要求である場合(ステップS23:Yesルート)、ジョブ管理部301は、実行要求をジョブスケジューラ302に出力する。これに応じ、ジョブスケジューラ302は、実行要求において指定されたジョブを空いている計算ノードに実行させるようにスケジューリングを行う(ステップS25)。
一方、実行要求ではない場合(ステップS23:Noルート)、ステップS21において受信した要求は、ジョブを停止することを要求する停止要求であるので、ジョブ管理部301は、停止要求を資源管理部303に出力する。そして、資源管理部303は、並列計算機10において実行中のジョブの少なくとも一部を停止する(ステップS27)。そして処理を終了する。
以上のような処理を実行すれば、ジョブの実行に十分な空き空間を確保できる場合には、ユーザノード1から指定された緊急で実行すべきジョブ(以下、緊急ジョブと呼ぶ)等を、実行中のジョブを停止することなく実行できるようになる。
実行中のジョブを停止する場合には、そのジョブのコンテキスト等をハードディスク等に保存し、緊急ジョブが終了した後に、コンテキストを復元してジョブを再開することになる。よって、本来であれば不要であった処理(すなわちオーバーヘッド)が生じることになるが、本実施の形態におけるステップS25の処理を実行すれば、オーバーヘッドは生じない。
また、実行中のジョブを停止することによって、緊急ジョブに使用する計算資源より多くの計算資源を確保してしまう場合がある。その場合、使用されない計算資源は無駄になる。しかし、本実施の形態の方法によれば、そのような無駄が生じることは無い。
また、たとえジョブの実行に十分な空き空間を確保できない場合であっても、ステップS27の処理によって空き空間を大きくすることで、緊急ジョブを実行できるようになる。
なお、例えば図9の例においてジョブFを停止した場合には、最大空き空間は図11に示すように広がる。図11においては、ジョブFを実行する計算ノードによって占められていた空間が最大空き空間に加えられている。このようにして最大空き空間を大きくすることで、例えば緊急ジョブをより多く実行できるようになる。
次に、図12乃至図14を用いて、ユーザノード1が実行する処理について説明する。ここでは、複数の緊急ジョブが生じたことを前提とする。
まず、ユーザノード1における第1問い合わせ処理部103は、ステップS9及びステップS13の処理によって管理ノード3から送信された、空いている計算ノードの数の情報を受信する(図12:ステップS30)。第1問い合わせ処理部103は、受信した情報をジョブ特定部101に出力する。
ジョブ特定部101は、複数の緊急ジョブのうち未処理の緊急ジョブを1つ特定する(ステップS31)。
ジョブ特定部101は、特定された緊急ジョブに使用する計算ノードの数をジョブデータ格納部105から特定する。そして、ジョブ特定部101は、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数より少ないか判断する(ステップS33)。
緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数以上である場合(ステップS33:Noルート)、その緊急ジョブに対して計算ノードを割り当てることはできないので、ステップS41の処理に移行する。一方、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数より少ない場合(ステップS33:Yesルート)、ジョブ特定部101は、割り当て済みの計算ノードが有るか判断する(ステップS35)。割り当て済みの計算ノードとは、空いている計算ノードのうち、緊急ジョブに割り当てることが既に決定されている計算ノードである。
割り当て済みの計算ノードが無い場合(ステップS35:Noルート)、ステップS31において特定された緊急ジョブに計算ノードを割り当てるため、ジョブ特定部101は、割り当て済みの計算ノードの数を、緊急ジョブに使用する計算ノードの数と同じ数に設定し(ステップS38)、ステップS41の処理に移行する。一方、割り当て済みの計算ノードが有る場合(ステップS35:Yesルート)、ジョブ特定部101は、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数以下であるか判断する(ステップS37)。すなわち、ステップS31において特定された緊急ジョブに対して割り当てることが可能な計算ノードが存在するか判断する。
緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数より大きい場合(ステップS37:Noルート)、ステップS31において特定された緊急ジョブに計算ノードを割り当てることができないのでステップS41に移行する。一方、緊急ジョブに使用する計算ノードの数が、空いている計算ノードの数から割り当て済みの計算ノードの数を差し引いた数以下である場合(ステップS37:Yesルート)、ジョブ特定部101は、割り当て済みの計算ノードの数を、緊急ジョブに使用する計算ノードの数を割り当て済みのノードの数に加えた数に設定する(ステップS39)。
ジョブ特定部101は、未処理の緊急ジョブが有るか判断する(ステップS41)。未処理の緊急ジョブが有る場合(ステップS41:Yesルート)、次の緊急ジョブについて処理するため、ステップS31の処理に戻る。
一方、未処理の緊急ジョブが無い場合(ステップS41:Noルート)、ジョブ特定部101は、割り当て済みの計算ノードが有るか判断する(ステップS43)。
割り当て済みの計算ノードが有る場合(ステップS43:Yesルート)、ジョブ特定部101は、その計算ノードが割り当てられる緊急ジョブの識別情報を第2問い合わせ処理部104に出力する。これに応じ、第2問い合わせ処理部104は、ジョブ特定部101から受け取った緊急ジョブの識別情報を含む実行要求を、管理ノード3に送信する(ステップS45)。そして処理を終了する。
一方、割り当て済みの計算ノードが無い場合(ステップS43:Noルート)、緊急ジョブの実行に十分な数の計算ノードが無い。そこで、第2問い合わせ処理部104は、並列計算機10において実行中のジョブの少なくとも一部を停止することを要求する停止要求を、管理ノード3に送信する(ステップS47)。そして処理を終了する。
以上のような処理を実行すれば、ジョブを実行していない計算ノードの数に応じて適切なジョブを実行できるので、並列計算機10における余剰の計算資源を有効に利用できるようになる。結果として、並列計算機10のスループットが向上する。
例えば、図13に示すように、緊急ジョブA乃至Cが有るとする。緊急ジョブAに使用する計算ノードの数は60であり、緊急ジョブBに使用する計算ノードの数は20であり、緊急ジョブCに使用する計算ノードの数は30である。これに対し、最大空き空間に含まれる計算ノードの数は100である。
このような状況において本実施の形態の処理を実行すると、例えば図14に示すように、最大空き空間に含まれる計算ノードが緊急ジョブに割り当てられる。図14の例では、緊急ジョブA及び緊急ジョブCに対して、最大空き空間に含まれる計算ノードが割り当てられ、利用されていない空き空間に含まれる計算ノードの数は10である。よって、緊急ジョブA及び緊急ジョブCが実行される。緊急ジョブBは、使用可能な計算ノードの数が足りないので、使用可能な計算ノードが20になるか又はステップS47の処理によって空きノードが確保されると実行される。
なお、ユーザノード1が利用できる並列計算機10が1つである例を示したが、図15に示すように、ユーザノード1が複数の並列計算機10を利用できるようにしてもよい。図15の例では、ユーザノード1は、3つの並列計算機10を利用できる。この場合には、ユーザノード1は、複数の管理ノード3の各々に対して問い合わせを行い、最も多くの緊急ジョブを処理することができる並列計算機10に処理を実行させることができる。また、複数の並列計算機10に緊急ジョブを実行させてもよい。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したユーザノード1及び管理ノード3の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、フローは一例であって、最適な組合せを選べるのであれば他の選定方法であってもよい。
なお、上で述べたユーザノード1、管理ノード3及び計算ノードは、コンピュータ装置であって、図16に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
但し、計算ノードは、CPU又はCPUコアであってもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る情報処理システムは、(A)複数の情報処理装置と、(B)複数の情報処理装置によるジョブの実行を管理する管理装置と、(C)端末とを有する。そして、上で述べた管理装置は、(b1)複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信する第1処理部と、(b2)端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う第2処理部とを有する。
このようにすれば、ジョブを実行していない情報処理装置の数に応じて適切なジョブを実行できるので、余剰の計算資源を有効に利用できるようになる。
また、上で述べた第1処理部は、(b11)ジョブを実行していない情報処理装置が占める空間から直方体の空間を特定し、特定された直方体の空間に含まれる情報処理装置の数の情報を、端末に送信してもよい。ジョブを実行する複数の情報処理装置が離散していると、離散している複数の情報処理装置の間で通信を行う際に、そのジョブを実行しない情報処理装置にも通信処理の負荷が生じることがある。そこで、上で述べたようにすれば、そのジョブを実行しない情報処理装置に通信負荷を生じさせることがないので、処理性能の低下を防ぐことができる。
また、上で述べた第1処理部は、(b12)ジョブを実行していない情報処理装置が占める空間から、直方体の空間のうち体積が最大である直方体の空間を特定してもよい。このようにすれば、情報処理装置の計算資源を最大限有効に利用できるようになる。
また、上で述べた端末は、(c1)管理装置から、複数の情報処理装置のうちジョブを実行していない情報処理装置の数の情報を受信する受信部と、(c2)ジョブを実行していない情報処理装置の数と、実行すべき複数のジョブの各々に使用する情報処理装置の数とに基づき、実行すべきジョブの中から、ジョブを実行していない情報処理装置に実行させるジョブを少なくとも1つ特定する特定部と、(c3)特定されたジョブの識別情報を、管理装置に送信する送信部とを有してもよい。このようにすれば、ジョブを実行していない情報処理装置の数に応じて適切なジョブを実行できるようになる。
また、上で述べた特定部は、(c21)ジョブに使用する情報処理装置の数の合計を、ジョブを実行していない情報処理装置の数を除した値が最大になるように、少なくとも1つのジョブを特定してもよい。このようにすれば、情報処理装置の計算資源を最大限有効に利用できるようになる。
また、上で述べた送信部は、(c31)ジョブを実行していない情報処理装置に実行させるジョブが無い場合、複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を管理装置に送信してもよい。このようにすれば、解放された情報処理装置の計算資源を利用して、実行すべきジョブを実行できるようになる。
本実施の形態の第1の態様に係る制御方法は、複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法である。そして、上で述べた管理装置が、(D)複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信し、(E)端末から、ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う処理を含む。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の情報処理装置と、
前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
端末と、
を有し、
前記管理装置は、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信する第1処理部と、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う第2処理部と、
を有する情報処理システム。
(付記2)
前記第1処理部は、
前記ジョブを実行していない情報処理装置が占める空間から直方体の空間を特定し、特定された前記直方体の空間に含まれる情報処理装置の数の情報を、前記端末に送信する
ことを特徴とする付記1記載の情報処理システム。
(付記3)
前記第1処理部は、
前記ジョブを実行していない情報処理装置が占める空間から、直方体の空間のうち体積が最大である直方体の空間を特定する
ことを特徴とする付記2記載の情報処理システム。
(付記4)
前記端末は、
前記管理装置から、前記複数の情報処理装置のうちジョブを実行していない情報処理装置の数の情報を受信する受信部と、
前記ジョブを実行していない情報処理装置の数と、実行すべき複数のジョブの各々に使用する情報処理装置の数とに基づき、前記実行すべきジョブの中から、前記ジョブを実行していない情報処理装置に実行させるジョブを少なくとも1つ特定する特定部と、
特定された前記ジョブの識別情報を、前記管理装置に送信する送信部と、
を有することを特徴とする付記1乃至3のいずれか1つ記載の情報処理システム。
(付記5)
前記特定部は、
ジョブに使用する情報処理装置の数の合計を、前記ジョブを実行していない情報処理装置の数を除した値が最大になるように、少なくとも1つのジョブを特定する
ことを特徴とする付記4の記載の情報処理システム。
(付記6)
前記送信部は、
前記ジョブを実行していない情報処理装置に実行させるジョブが無い場合、前記複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を前記管理装置に送信する
ことを特徴とする付記4又は5記載の情報処理システム。
(付記7)
複数の情報処理装置を管理する管理装置に実行させるための制御プログラムであって、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを、前記ジョブを実行していない情報処理装置が実行するようにスケジューリングを行う、
処理を実行させるための制御プログラム。
(付記8)
複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法であって、
前記管理装置が、
前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報を前記端末に送信し、
前記端末から、前記ジョブを実行していない情報処理装置に実行させる、少なくとも1のジョブの識別情報を受信した場合に、当該ジョブを前記ジョブを実行していない情報処理装置が実行するように、スケジューリングを行う、
処理を実行する制御方法。
1 ユーザノード 3 管理ノード
5 ネットワーク 10 並列計算機
101 ジョブ特定部 102 問い合わせ処理部
103 第1問い合わせ処理部 104 第2問い合わせ処理部
105 ジョブデータ格納部
301 ジョブ管理部 302 ジョブスケジューラ
303 資源管理部 304 スケジュールデータ格納部
305 資源データ格納部

Claims (8)

  1. 複数の情報処理装置と、
    前記複数の情報処理装置によるジョブの実行を管理する管理装置と、
    端末と、
    を有し、
    前記管理装置は、
    前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報である第1の情報を前記端末に送信する第1処理部と、
    前記第1の情報と複数のジョブの各々に使用される情報処理装置の数の情報とに基づき、特定された前記情報処理装置に実行させる1又は複数のジョブを前記複数のジョブの中から特定した前記端末から、前記1又は複数のジョブの識別情報を受信した場合に、特定された前記情報処理装置が前記1又は複数のジョブを実行するようにケジューリングを行う第2処理部と、
    を有する情報処理システム。
  2. 前記第1処理部は、
    前記ジョブを実行していない情報処理装置のうち、当該情報処理装置が占める空間における直方体の空間含まれる情報処理装置を特定する
    ことを特徴とする請求項1記載の情報処理システム。
  3. 前記第1処理部は、
    前記ジョブを実行していない情報処理装置のうち、当該情報処理装置が占める空間における直方体うち体積が最大である直方体の空間に含まれる情報処理装置を特定する
    ことを特徴とする請求項2記載の情報処理システム。
  4. 前記端末は、
    前記管理装置から、前記第1の情報を受信する受信部と、
    前記第1の情報と、前記複数のジョブの各々に使用される情報処理装置の数の情報とに基づき、前記複数のジョブの中から、特定された前記報処理装置に実行させる前記1又は複数のジョブを定する特定部と、
    特定された前記1又は複数のジョブの識別情報を、前記管理装置に送信する送信部と、
    を有することを特徴とする請求項1乃至3のいずれか1つ記載の情報処理システム。
  5. 前記特定部は、
    前記1又は複数のジョブに使用される情報処理装置の数の合計が、前記第1の情報が示す数以下であり且つ最大になるように、前記複数のジョブの中から前記1又は複数のジョブを特定する
    ことを特徴とする請求項4の記載の情報処理システム。
  6. 前記送信部は、
    特定された前記報処理装置に実行させるジョブが無い場合、前記複数の情報処理装置において実行されているジョブの少なくとも一部を停止することを要求する停止要求を前記管理装置に送信する
    ことを特徴とする請求項4又は5記載の情報処理システム。
  7. 複数の情報処理装置と当該複数の情報処理装置を管理する管理装置と端末とを有する情報処理システムにおける前記管理装置に実行させるための制御プログラムであって、
    前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報である第1の情報前記端末に送信し、
    前記第1の情報と複数のジョブの各々に使用する情報処理装置の数の情報とに基づき、特定された前記情報処理装置に実行させる1又は複数のジョブを前記複数のジョブの中から特定した前記端末から、前記1又は複数のジョブの識別情報を受信した場合に、特定された前記情報処理装置が前記1又は複数のジョブを実行するようにケジューリングを行う、
    処理を実行させるための制御プログラム。
  8. 複数の情報処理装置と、当該複数の情報処理装置を管理する管理装置と、端末とを含む情報処理システムの制御方法であって、
    前記管理装置が、
    前記複数の情報処理装置のうちジョブを実行していない情報処理装置を特定し、特定された当該情報処理装置の数の情報である第1の情報を前記端末に送信し、
    前記第1の情報と複数のジョブの各々に使用する情報処理装置の数の情報とに基づき、特定された前記情報処理装置に実行させる1又は複数のジョブを前記複数のジョブの中から特定した前記端末から、前記1又は複数のジョブの識別情報を受信した場合に、特定された前記情報処理装置が前記1又は複数のジョブを実行するようにケジューリングを行う、
    処理を実行する制御方法。
JP2013198140A 2013-09-25 2013-09-25 情報処理システム、情報処理システムの制御方法及び制御プログラム Active JP6191361B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013198140A JP6191361B2 (ja) 2013-09-25 2013-09-25 情報処理システム、情報処理システムの制御方法及び制御プログラム
US14/331,594 US9710311B2 (en) 2013-09-25 2014-07-15 Information processing system, method of controlling information processing system, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013198140A JP6191361B2 (ja) 2013-09-25 2013-09-25 情報処理システム、情報処理システムの制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2015064746A JP2015064746A (ja) 2015-04-09
JP6191361B2 true JP6191361B2 (ja) 2017-09-06

Family

ID=52692244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013198140A Active JP6191361B2 (ja) 2013-09-25 2013-09-25 情報処理システム、情報処理システムの制御方法及び制御プログラム

Country Status (2)

Country Link
US (1) US9710311B2 (ja)
JP (1) JP6191361B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169051B2 (en) 2013-12-05 2019-01-01 Blue Yonder GmbH Data processing device, processor core array and method for characterizing behavior of equipment under observation
CN106502787B (zh) * 2016-09-30 2019-11-26 华为技术有限公司 一种调度方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07249010A (ja) 1994-03-10 1995-09-26 Hitachi Ltd ジョブスケジューラおよびジョブスケジューリング方法
JPH08314736A (ja) 1995-05-23 1996-11-29 N T T Data Tsushin Kk バッチ処理の多重制御方式及び方法
CA2365729A1 (en) * 2001-12-20 2003-06-20 Platform Computing (Barbados) Inc. Topology aware scheduling for a multiprocessor system
US7716061B2 (en) * 2003-03-27 2010-05-11 International Business Machines Corporation Method and apparatus for obtaining status information in a grid
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US7984443B2 (en) * 2004-07-22 2011-07-19 Computer Associates Think, Inc. System and method for normalizing job properties
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US20060168584A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Client controlled monitoring of a current status of a grid job passed to an external grid environment
US7565657B1 (en) * 2005-04-19 2009-07-21 Sandia Corporation Allocating application to group of consecutive processors in fault-tolerant deadlock-free routing path defined by routers obeying same rules for path selection
US7926057B2 (en) * 2005-12-15 2011-04-12 International Business Machines Corporation Scheduling of computer jobs employing dynamically determined top job party
JP4926774B2 (ja) * 2007-03-20 2012-05-09 株式会社エヌ・ティ・ティ・データ グリッドシステム、グリッド処理方法、及び、コンピュータプログラム
US20080256549A1 (en) * 2007-04-10 2008-10-16 International Business Machines Corporation System and Method of Planning for Cooperative Information Processing
US8230432B2 (en) * 2007-05-24 2012-07-24 International Business Machines Corporation Defragmenting blocks in a clustered or distributed computing system
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US9465663B2 (en) * 2008-10-31 2016-10-11 Synopsys, Inc. Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
US8296419B1 (en) * 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
JP5402226B2 (ja) * 2009-05-13 2014-01-29 富士通株式会社 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法
US8332862B2 (en) * 2009-09-16 2012-12-11 Microsoft Corporation Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
JP5429382B2 (ja) * 2010-08-10 2014-02-26 富士通株式会社 ジョブ管理装置及びジョブ管理方法
US8762536B2 (en) * 2011-01-31 2014-06-24 Cray Inc. Compact node ordered application placement in a multiprocessor computer
US8972983B2 (en) * 2012-04-26 2015-03-03 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources

Also Published As

Publication number Publication date
US20150089507A1 (en) 2015-03-26
US9710311B2 (en) 2017-07-18
JP2015064746A (ja) 2015-04-09

Similar Documents

Publication Publication Date Title
US8996756B2 (en) Using process location to bind IO resources on NUMA architectures
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
EP2309388B1 (en) Network distributed system including an allocation control server and one or more clients carrying out parallel task processing by means of multicore processors.
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
WO2011142031A1 (ja) リソース管理方法、リソース管理装置およびプログラム
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
JP2008257572A (ja) 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
KR101695013B1 (ko) 적응형 자원 할당 및 관리 방법
CN111443870B (zh) 一种数据处理的方法、设备及存储介质
EP3274859B1 (en) Cluster computing service assurance apparatus and method
US9471387B2 (en) Scheduling in job execution
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
Babu et al. Interference aware prediction mechanism for auto scaling in cloud
CN111625339A (zh) 集群资源调度方法、装置、介质和计算设备
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP5515810B2 (ja) 負荷制御装置
CN111240824A (zh) 一种cpu资源调度方法及电子设备
JP2007102332A (ja) 負荷分散システム及び負荷分散方法
CN111143063A (zh) 任务的资源预约方法及装置
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
JP6059259B2 (ja) 計算機システム及び計算機リソースの割当方法
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150