JP2009104373A - 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム - Google Patents

並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム Download PDF

Info

Publication number
JP2009104373A
JP2009104373A JP2007275006A JP2007275006A JP2009104373A JP 2009104373 A JP2009104373 A JP 2009104373A JP 2007275006 A JP2007275006 A JP 2007275006A JP 2007275006 A JP2007275006 A JP 2007275006A JP 2009104373 A JP2009104373 A JP 2009104373A
Authority
JP
Japan
Prior art keywords
job
processes
calculation
computing system
execution program
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
JP2007275006A
Other languages
English (en)
Inventor
Tetsuya Hirose
哲也 広瀬
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 JP2007275006A priority Critical patent/JP2009104373A/ja
Publication of JP2009104373A publication Critical patent/JP2009104373A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】実行プログラムの特性と、データの特性と、計算システムの特性と、を基にジョブに最適なプロセス数を決定する。
【解決手段】本発明の並列計算機システムにおいて、ジョブ管理ノードは、利用者端末から投入されたジョブを計算システムで処理させるとともに、ジョブの基となった実行プログラムの特性、ジョブが用いたデータの特性、およびジョブを処理させた計算システムの特性の識別情報と、ジョブの分割数であるプロセス数およびジョブの処理時間の情報と、をジョブ処理時間表に記録するジョブ実行部と、ジョブ処理時間表の情報を基に、実行プログラムの特性と、データの特性と、計算システムの特性と、をジョブの処理条件としたときのプロセス数を更新し、最適プロセス数表に記録する最適プロセス数更新部と、投入されたジョブの処理条件を基に最適プロセス数表を参照し、ジョブのプロセス数を決定する実行プロセス数決定部と、を有する。
【選択図】図2

Description

本発明は、ジョブのプロセス数を最適化することで効率の良いジョブ管理を行う並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラムに関する。
近年、計算機システムとして、汎用プロセッサの性能向上と高性能な通信ネットワークの普及により、計算ノードである複数のPC(Personal Computer)サーバを通信ネットワークで接続したPCクラスタシステムが普及してきている。
特に、HPC(High Performance Computing)分野では、シミュレーションなどの膨大な計算量を必要とするため、計算機システムの中でも、実行プログラムを並列して処理する並列計算機システムの利用が進んでいる。
並列計算機システム上では、実行プログラムはジョブを単位として処理される。並列計算機システムは、ジョブを複数のプロセスに分割し、プロセスを各計算ノードに振り分ける。各計算ノードは、自ノードに振り分けられたプロセスを、そのプロセスの計算に必要なデータを用いて、実行する。
このように、並列計算機システムでは、ジョブを複数の計算ノードで分割して処理するため、ジョブの処理時間の短縮化を図ることができる。また、ハードウェア的制約から単一計算ノードではメモリ量が不足する場合にも有効である。なお、本明細書では、ジョブの分割数をプロセス数と呼ぶ。
並列計算機システムは、基本的には、ジョブを2並列(プロセス数2)で処理すれば2倍の処理速度、N並列(プロセス数N)ではN倍の処理速度というように、プロセス数を増やすにつれて処理速度の向上を狙うものである。
しかし、並列計算機システムでは、実際には単純にプロセス数が多ければ多い程、ジョブを効率良く処理できるという訳ではない。
以下に、並列計算機システムにおけるプロセス数と計算性能の関係について図9〜図11を用いて説明する。
図9に示すように、計算性能は、実際にはプロセス数Xで理想直線から外れ、プロセス数Y以降は上がらないという特性を示すのが一般的である。
図9の結果は、ジョブを最も効率良く処理するには、単純にプロセス数を多くすればよい訳ではなく、最適なプロセス数が存在することを意味している。
一般的な並列計算機システムでは、プロセス数は、特許文献1に記載されているように利用者によって任意に指定されるか、あらかじめ並列計算機システムに規定されているため、必ずしも最適なプロセス数でジョブを処理しているとは言えない。
また、図9において、ジョブが用いるデータの規模(データの量)と実行プログラムの特性(実行プログラムの処理内容やプログラムコードの記述内容)によっては、プロセス数が多すぎると逆に計算性能が低下する場合もある。
図10に示すように、データの規模によって計算性能が飽和するプロセス数が異なる。データの規模が大きいものではプロセス数Qに至るまで性能飽和はしないが、データの規模が小さくなるにつれ、計算性能が飽和するプロセス数はP、Oと少なくなっているのがわかる。これより、データの規模などのデータの特性によって最適なプロセス数が変化することがわかる。
また、実行プログラムの特性によって最適なプロセス数が変化することを考慮し、例えば、特許文献2に記載の技術では、ジョブの基となる実行プログラムの特性を解析して、プロセス数を決定している。
図11に示すように、各計算ノードを接続する通信ネットワークの性能によって性能曲線が異なる。これより、並列計算機システムに含まれる通信ネットワークのネットワーク性能によっても、最適なプロセス数が変化することがわかる。
その他にも、最適なプロセス数は、計算ノードの計算性能によっても決まる。例えば、特許文献3に記載の技術では、各計算ノードの計算性能と余剰能力を基にプロセス数を決定し、各計算ノードで独立に実行されたプロセスの実行結果を、センターシステムが取りまとめてジョブの処理結果としている。
このように、並列計算機システムにおいては、最も効率良くジョブを処理することのできるプロセス数は、実行プログラムの特性と、データの特性と、計算ノードの計算性能や通信ネットワークのネットワーク性能などの計算システムの特性と、によって決まる。
特開平8−16410号公報 特開平10−214195号公報 特開2001−325041号公報
しかしながら、上述した並列計算機システムにおいては、実行プログラムの特性と、データの特性と、計算システムの特性と、を全て勘案してプロセス数を決定していないため、最適なプロセス数でジョブを処理していないという課題がある。
本発明の目的は、上述した課題を解決する、並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラムを提供することにある。
上記目的を達成するために本発明の並列計算機システムは、
利用者端末と、計算システムと、前記利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを前記計算システムで並列に実行させるジョブ管理ノードと、を有してなる並列計算機システムであって、
前記ジョブ管理ノードは、
前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するとともに、当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するジョブ実行部と、
前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する最適プロセス数更新部と、
前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する実行プロセス数決定部と、を有することを特徴とする。
上記目的を達成するために本発明の情報処理装置は、
利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置であって、
前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するとともに、当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するジョブ実行部と、
前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する最適プロセス数更新部と、
前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する実行プロセス数決定部と、を有することを特徴とする。
上記目的を達成するために本発明のジョブ管理方法は、
利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置が行うジョブ管理方法であって、
前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するステップと、
当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するステップと、
前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録するステップと、
前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定するステップと、を有することを特徴とする
上記目的を達成するために本発明のジョブ管理プログラムは、
利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置に、
前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理する手順と、
当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録する手順と、
前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する手順と、
前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する手順と、を実行させることを特徴とする。
上述のように、本発明によれば、実行プログラムの特性と、データの特性と、計算システムの特性と、を全て勘案してプロセス数を決定しているため、最適なプロセス数でジョブを処理することができるという効果が得られる。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
(第1の実施形態)
図1に、本発明の第1の実施形態の並列計算機システムの構成を示す。
図1に示すように、本実施形態の並列計算機システムは、ジョブ管理ノード100と、複数の計算ノード200,201および計算ノード間通信ネットワーク400〜402からなる計算ノード群210と、管理用ネットワーク300と、複数の利用者端末500と、運用管理者用端末600と、を有している。
管理用ネットワーク300は、ジョブ管理ノード100と、各計算ノード200,201と、各利用者端末500と、運用管理者端末600と、を相互に接続する通信ネットワークである。
利用者端末500は、利用者が本システムを使用するための情報処理装置である。本実施形態においては、複数の利用者端末500が接続されており、各利用者端末500から種々のジョブが投入されるものとする。
ジョブ管理ノード100は、利用者端末500から投入されたジョブに最適なプロセス数を決定し、決定したプロセス数分の計算ノード200,201を確保し、確保した計算ノード200,201のそれぞれに、ジョブを分割したプロセスを振り分け、実行させる情報処理装置である。また、ジョブ管理ノード100は、複数の計算ノード200,201の利用状況を管理する。
本実施形態では、計算ノード群210は、計算システムである計算クラスタ211〜213を有している。
計算クラスタ211は、複数の計算ノード200と、これら複数の計算ノード200間を相互に接続する計算ノード間通信ネットワーク400と、からなる。また、計算クラスタ212は、複数の計算ノード200と、これら複数の計算ノード200間を相互に接続する計算ノード間通信ネットワーク401と、からなる。また、計算クラスタ213は、複数の計算ノード201と、これら複数の計算ノード201間を相互に接続する計算ノード間通信ネットワーク402と、からなる。
計算ノード200,201は、ジョブ管理ノード100から自ノードに振り分けられたプロセスを実行する情報処理装置である。
計算ノード間通信ネットワーク400〜402は、ジョブを処理する際に各計算ノード200または201間の情報のやり取りに使用される。
運用管理者端末600は、本システム全体の管理や状態監視などに用いられる情報処理装置である。
図2に、ジョブ管理ノード100の構成を示す。
図2に示すように、ジョブ管理ノード100は、スケジューリング管理部110と、最適プロセス数更新部120と、最適プロセス数データベース130と、を有している。
また、スケジューリング管理部110は、ジョブ蓄積部111と、ノード状態管理部112と、実行ジョブ選択部113と、実行プロセス数決定部114と、ジョブ実行部115と、を有している。
ジョブ蓄積部111は、利用者端末500から投入されたジョブを受け付け、そのジョブを処理待ちジョブとし、そのジョブの情報をキューに蓄積する。
なお、本実施形態においては、ジョブ蓄積部111に蓄積されるジョブの情報には、“ジョブ番号”と、“実行プログラム名”と、“データの種類”と、“データの規模”と、“利用者指定プロセス数”と、“優先度”と、“プロセス数変更フラグ”と、が含まれるものとするものとする。
“ジョブ番号”は、各ジョブを識別するための番号である。
“実行プログラム名”は、ジョブの基となっている実行プログラムの名前である。実行プログラムの特性は実行プログラムごとに異なるため、実行プログラムごとに最適なプロセス数は異なる。そのため、ジョブの情報には、実行プログラムの特性の識別情報として、“実行プログラム名”を含めておく。
“データの種類”は、ジョブで用いるデータの種類である。ジョブの基となる実行プログラムの特性によっては、用いるデータの種類により、ジョブの処理内容が異なり、最適なプロセス数が変わってくる場合がある。例えば、車の衝突シミュレーションの場合、正面衝突のデータなのか、側面衝突のデータなのか、により処理内容が変わってくるため、最適なプロセス数も異なってくる。そのため、ジョブの情報には、そのジョブで用いるデータの特性の識別情報として、“データの種類”を含めておく。
“データの規模”は、ジョブで用いるデータの量であり、データの特性の識別情報としてジョブの情報に含まれている。なお、“データの規模”は、予め定められた閾値を基にグループ分け(例えば、大,中,小)されるものとする。
“利用者指定プロセス数”は、利用者が指定したプロセス数である。
“優先度”は、ジョブの処理を行う優先度である。
“プロセス数変更フラグ”は、“利用者指定プロセス数”からジョブに最適なプロセス数への変更の可否を表すフラグである。
ノード状態管理部112は、各計算ノード200,201の利用状況を管理する。
実行ジョブ選択部113は、ジョブ蓄積部111とノード状態管理部112を監視し、新たなジョブが投入されるか、空き状態の計算ノード200,201ができるたびに、ジョブ蓄積部111のキューに蓄積された処理待ちジョブ群から、ジョブの“優先度”などに基づいて、次に処理するジョブを選択する。
実行プロセス数決定部114は、後述する最適プロセス数表132を参照し、ジョブの、“実行プログラム名”、“データの種類”、および“データの規模”と、ジョブを処理させる計算クラスタ211〜213の“計算クラスタ名”と、を基に、ジョブを処理するのに最適なプロセス数を決定する。
“計算クラスタ名”は、計算クラスタの名前である。ジョブを処理する計算クラスタの計算システムの特性(計算ノードおよび計算ノード間通信ネットワークの性能)により、ジョブに最適なプロセス数は異なる。そのため、ジョブを処理する計算クラスタの計算システムの特性を“計算クラスタ名”により識別する。
本実施形態では、3種の計算クラスタ211〜213が存在する。よって、実行プロセス数決定部114は、3種の計算クラスタ211〜213の各計算クラスタ名をそれぞれ用い、各計算クラスタ211〜213でジョブを処理させる場合の最適なプロセス数を決定することになる。
なお、“実行プログラム名”、“データの種類”、および“データの規模”の内容は上述したものと同様である。
ジョブ実行部115は、ノード状態管理部112が管理している各計算ノード200,201の利用状況を基に、各計算クラスタ211〜213に実行プロセス数決定部114で決定されたプロセス数分の空き状態の計算ノード200または201があるかを確認する。プロセス数分の空き状態の計算ノード200または201を持つ計算クラスタがある場合、ジョブ実行部115は、その計算クラスタからプロセス数分の計算ノード200または201を確保し、確保した計算ノード200または201のそれぞれにプロセスを振り分け、実行させることにより、ジョブを処理する。また、ジョブ実行部115は、ジョブ終了時には、ノード状態管理部112が管理している各計算ノード200,201の利用状況を更新し、ジョブの処理状況を後述するジョブ処理時間表131に記録する。
最適プロセス数データベース130は、ジョブ処理時間表131と最適プロセス数表132を記録しているデータベースである。
ジョブ処理時間表131は、図3に示すように、ジョブの処理状況を記録したテーブルである。ジョブ実行部115は、ジョブの処理が終了するたびに、そのジョブの処理状況をジョブ処理時間表131に記録する。
ジョブ処理時間表131には、各ジョブの処理状況として、ジョブごとに、“ジョブ番号”と、“実行プログラム名”と、“データの種類”と、“データの規模”と、“プロセス数”と、“計算クラスタ名”と、“処理時間”と、を含む情報が記録されている。
“プロセス数”は、実行したプロセス数である。
“処理時間”は、ジョブの処理時間である。
なお、“ジョブ番号”、“実行プログラム名”、“データの種類”、“データの規模”、および“計算クラスタ名”の内容は上述したものと同様である。
最適プロセス数表132は、図4に示すように、実行プログラムの特性として“実行プログラム名”を、データの特性として“データの種類”および“データの規模”を、計算システムの特性として“計算クラスタ名”を、ジョブの処理条件としたときに一意に決定する最適なプロセス数を記録したテーブルである。また、最適プロセス数表132は、最適なプロセス数でジョブを処理したときの“処理時間”も記録しているものとする。
最適プロセス数更新部120は、ジョブ処理時間表131が更新されるたびに、ジョブ処理時間表131に記録されている“プロセス数”と“処理時間”の関係を基に、最適プロセス数表132を更新する。運用管理者用端末600は、この最適プロセス数更新部120を介して、ジョブ処理時間表131および最適プロセス数表132を参照および変更することができるものとする。
以下に、本実施形態の並列計算機システムにおけるジョブ処理動作について、図5のフローチャートを参照して説明する。
利用者端末500から投入されたジョブの情報は、ジョブ蓄積部111のキューに処理待ちジョブの情報として蓄積される。実行ジョブ選択部113は、ジョブ蓄積部111とノード状態管理部112を監視し、新たなジョブが投入されるか、空き状態の計算ノード200,201が発生すると、キューに処理待ちジョブが有るかを確認する(ステップA1)。
実行ジョブ選択部113は、キューに処理待ちジョブが無い場合、何もせずに処理を終了する。
実行ジョブ選択部113は、キューに処理待ちジョブが有る場合、キューから次に処理するジョブを選択する(ステップA2)。ジョブの選択方法は、一般的な並列計算機システムに準じ、ジョブの“優先度”などを勘案して選択を行う。
次に、実行プロセス数決定部114は、ジョブの“プロセス数変更フラグ”を確認する(ステップA3)。“利用者指定プロセス数”は、ジョブの処理効率の観点からは必ずしも最適なプロセス数では無い場合があるが、プロセス数を変化させた場合の計算精度の確認や、最適なプロセス数を探索するなど、意図的にプロセス数を固定してジョブを処理する場合を考慮し、“プロセス数変更フラグ”を設けている。
実行プロセス数決定部114は、“プロセス数変更フラグ”が変更不可の場合、“利用者指定プロセス数”を実行するプロセス数に決定する(ステップA8)。
実行プロセス数決定部114は、“プロセス数変更フラグ”が変更可の場合、最適プロセス数表132を参照し、ジョブの、“実行プログラム名”、“データの種類”、および“データの規模”と、ジョブを処理する計算クラスタの“計算クラスタ名”と、をパラメータとして、ジョブに最適なプロセス数が記録されているかの確認を行う(ステップA4)。
実行プロセス数決定部114は、最適プロセス数表132にジョブに最適なプロセス数が記録されていない場合、“利用者指定プロセス数”を実行するプロセス数に決定する(ステップA8)。
実行プロセス数決定部114は、最適プロセス数表132にジョブに最適なプロセス数が記録されている場合、各計算クラスタ211〜213でジョブを処理するのに最適なプロセス数を決定する(ステップA5)。
次に、ジョブ実行部115は、ノード状態管理部112が管理している各計算ノード200,201の利用状況を参照し、各計算クラスタ211〜213に実行プロセス数決定部114で決定したプロセス数分の空き状態の計算ノード200または201があるかの確認を行う(ステップA6)。
ジョブ実行部115は、全ての計算クラスタ211〜213でプロセス数分の空き状態の計算ノード200または201がない場合、処理を終了する。処理されずに終了したジョブは、ジョブ蓄積部111に戻される。
ジョブ実行部115は、プロセス数分の空き状態の計算ノード200または201を持つ計算クラスタ211〜213がある場合、その計算クラスタから、実行プロセス数決定部114で決定したその計算クラスタでジョブを処理するのに最適なプロセス数分の計算ノード200または201を確保する。なお、空き状態の計算ノード200または201を持つ計算クラスタが複数ある場合、“処理時間”のフィールドを比較し、“処理時間”が短い計算クラスタから優先的に使用する。
その後、ジョブ実行部115は、確保した各計算ノード200または201のそれぞれに、ジョブを分割したプロセスを振り分け、実行させることで、ジョブを処理する(ステップA7)。
次に、本実施形態の並列計算機システムにおける最適プロセス数表132の更新(学習機能)動作について、図2および図6を参照して説明する。
ジョブ実行部115は、ジョブ終了時に、ノード状態管理部112が管理している各計算ノード200,201の利用状況を更新するとともに、ジョブの処理状況をジョブ処理時間表131に記録する(図2および図6のステップS4)。
最適プロセス数更新部120は、ジョブ処理時間表131が更新されるたび、ジョブの処理条件である、“実行プログラム名”、“データの種類”、“データの規模”、および“計算クラスタ名”ごとに、“プロセス数”と“処理時間”の関係を基に整理し(図2および図6のステップS5)、最適プロセス数表132の更新を行う(図2および図6のステップS6)。
そのため、本実施形態では、ジョブを異なった処理条件で処理することで、そのジョブに最適なプロセス数を最適プロセス数表132に学習させることができる。
本システムの運用を開始した時点では、最適プロセス数表132は有効な情報を持たないため、運用管理者は直接最適プロセス表132を初期化する必要がある(図6のステップS1)。初期化時の最適プロセス表132は適当なものでよく、本番運用に先立って、運用管理者は、利用頻度が高いと思われる実行プログラムを用い、“プロセス数変更フラグ”を変更不可とし、“データの種類”、“データの規模”、“計算クラスタ名”、ごとにプロセス数を変えてジョブを投入することで(図6のステップS2)、最適プロセス数表132にその実行プログラムから発生するジョブに最適なプロセス数を学習させることができる(図6の左側のループ)。この手順を各実行プログラムで行うことで、有効な最適プロセス数表132を得ることができる。
また、本システムは、本番運用中であっても、ジョブの“優先度”を低く設定するなどして本システムの空き時間に“プロセス数変更フラグ”を変更不可にし、処理条件を変えてジョブを処理させることで、最適プロセス数表132に記録されている最適なプロセス数を、より適切な値に更新させることができる。
本システムでは、利用者が投入した(図6のステップS7)ジョブの処理状況(図6のステップS3)もジョブ処理時間表131に記録される(図6のステップS4)。そのため、運用管理者が最適プロセス表132に学習させていない実行プログラムであっても、利用者がその実行プログラムを用い、“プロセス数変更フラグ”を変更不可にし、処理条件を変えてジョブを処理させることで(図6の右側のループ)、その実行プログラムから発生するジョブに最適なプロセス数を最適プロセス数表132に学習させることができる。
上述したように本実施形態においては、ジョブ管理ノード100において、ジョブの基となる実行プログラムの特性として“実行プログラム名”を、ジョブが用いるデータの特性として“データの種類”および“データの規模”を、ジョブを処理させる計算クラスタの計算システムの特性として“計算クラスタ名”を、基に最適なプロセス数を決定するため、利用者が指定したプロセス数でジョブを処理するのに比べ、ジョブを効率良く処理することができるという効果が得られる。
また、本実施形態においては、“計算クラスタ名”により、計算システムの特性(計算ノードおよび通信ネットワークの性能)が異なる計算クラスタを識別しているため、性能の異なる計算ノードや通信ネットワークを有する複雑なシステム構成の場合でも、ジョブに最適なプロセス数を決定し、ジョブを効率良く処理できるという効果が得られる。
また、本実施形態においては、上述したように最適なプロセス数でジョブを処理するため、ジョブの処理時間を最小化することができ、必要以上に多くの計算ノードを使用することが無くなる。そのため、並列計算機システム全体の使用効率を高くすることができるという効果が得られる。
さらに、本実施形態においては、ジョブ管理ノード100において、自動的に、ジョブの処理状況をジョブ処理時間表131に記録し、ジョブ処理時間表131に記録した情報を基にジョブに最適なプロセス数を更新し、最適プロセス数表132に記録することで、最適プロセス数表132にジョブに最適なプロセス数を学習させることができるという効果が得られる。
(第2の実施形態)
図7に本発明の第2の実施形態の並列計算機システムの構成を示す。
図7に示すように、本実施形態の並列計算機システムは、計算ノード群210が単一の計算クラスタ214からなる点で、計算ノード群210が3種の計算クラスタ211〜213からなる第1の実施形態とは異なる。なお、計算クラスタ214は、複数の計算ノード200と、これら複数の計算ノード200間を相互に接続する計算ノード間通信ネットワーク403と、からなるものとする。また、ジョブ管理ノード100の構成については、第1の実施形態と同様とする。
上述したように、本実施形態では、計算ノード群210が単一の計算クラスタ214からなる。そのため、計算クラスタ214の計算システムの特性が、計算ノード群210全体での計算システムの特性となり、実行プロセス数決定部114は、計算クラスタ214でジョブを処理するのに最適なプロセス数を求めることになる。
以下に、本実施形態の並列計算機システムにおけるジョブ処理動作について、図8のフローチャートを参照して説明する。なお、図8において、図5と同様の部分については、同一の符号を付す。
図8に示すように、本実施形態におけるジョブ処理動作は、第1の実施形態と比較して、図5のステップA5,A6を、ステップB5,B6に変更した点のみが異なり、それ以外は共通である。
すなわち、第1の実施形態では、図5のステップA5で、各計算クラスタ211〜213でジョブを処理する場合のプロセス数を決定し、図5のステップA6で、決定したプロセス数分の空き状態の計算ノード200または201を持つ各計算クラスタ211〜213によるジョブの“処理時間”を判断した上で、実行するプロセス数が確定する。
これに対して、本実施形態では、ステップB5で、単一の計算クラスタ214でジョブを処理する場合のプロセス数を決定し、ステップB6で、決定したプロセス数分の空き状態の計算ノード200が計算クラスタ214に有れば、決定したプロセス数がそのまま実行するプロセス数として確定する。
なお、最適プロセス数表132の更新(学習機能)動作に関しては、第1の実施形態と同様である。
上述した第1および第2の実施形態の並列計算機システムは、一例であり、その構成及び動作は、発明の主旨を逸脱しない範囲で、適宜に変更可能である。例えば、第1および第2の実施形態では、プロセス数を変更可の場合、最適なプロセス数に置き換えてジョブを処理するが、自動的には変更せず利用者に対して最適なプロセス数を教示するだけに留めてもよい。もしくは、最適なプロセス数の根拠となるジョブ処理時間表131のエントリ数などから最適プロセス数表132の確からしさを定義し、確からしさの閾値を設定することで、閾値を超えた場合にはプロセス数を自動的に変更し、閾値以下の場合は利用者に教示するに留めるというようにしてもよい。
なお、本発明のジョブ管理ノード100は、上述のように専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、ジョブ管理ノード100で読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをジョブ管理ノード100に読み込ませ、実行するものであってもよい。ジョブ管理ノード100で読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、CD−ROM等の記録媒体、ジョブ管理ノード100に内蔵されるハードディスク装置等の記憶装置を指す。さらに、ジョブ管理ノード100で読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にジョブ管理ノード100内部の揮発性メモリのように一定時間プログラムを保持しているものを含む。
本発明は、多数のPCを連結したPCクラスタシステムなどの並列計算機システムに利用可能である。
本発明の第1の実施形態の並列計算機システムの構成を示すブロック図である。 図1に示したジョブ管理ノードの構成を示すブロック図である。 図2に示したジョブ処理時間表の具体例を示す図である。 図2に示した最適プロセス数表の具体例を示す図である。 図1に示した並列計算機システムにおけるジョブ処理動作を説明するフローチャートである。 図1に示した並列計算機システムにおける最適プロセス数表の更新(学習機能)動作を説明するフローチャートである。 本発明の第2の実施形態の並列計算機システムの構成を示すブロック図である。 図7に示した並列計算機システムにおけるジョブ処理動作を説明するフローチャートである。 一般的な並列計算機システムでの、プロセス数に対する理想および実際の性能向上曲線を示すグラフである。 一般的な並列計算機システムでの、データの規模ごとのプロセス数に対する性能向上曲線を示すグラフである。 一般的な並列計算機システムでの、ネットワーク性能ごとのプロセス数に対する性能向上曲線を示すグラフである。
符号の説明
100 ジョブ管理ノード
110 スケジューリング管理部
111 ジョブ蓄積部
112 ノード状態管理部
113 実行ジョブ選択部
114 実行プロセス数決定部
115 ジョブ実行部
120 最適プロセス数更新部
130 最適プロセス数データベース
131 ジョブ処理時間表
132 最適プロセス数表
200,201 計算ノード
210 計算ノード群
211〜214 計算クラスタ
300 管理用ネットワーク
400〜403 計算ノード間通信ネットワーク
500 利用者端末
600 運用管理者端末

Claims (8)

  1. 利用者端末と、計算システムと、前記利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを前記計算システムで並列に実行させるジョブ管理ノードと、を有してなる並列計算機システムであって、
    前記ジョブ管理ノードは、
    前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するとともに、当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するジョブ実行部と、
    前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する最適プロセス数更新部と、
    前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する実行プロセス数決定部と、を有することを特徴とする並列計算機システム。
  2. 前記計算システムは、前記プロセスを実行可能な複数の計算ノードと、前記複数の計算ノードを相互に接続する計算ノード間通信ネットワークと、から構成される請求項1に記載の並列計算機システム。
  3. 利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置であって、
    前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するとともに、当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するジョブ実行部と、
    前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する最適プロセス数更新部と、
    前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する実行プロセス数決定部と、を有することを特徴とする情報処理装置。
  4. 前記計算システムは、前記プロセスを実行可能な複数の計算ノードと、前記複数の計算ノードを相互に接続する計算ノード間通信ネットワークと、から構成されるものである請求項3に記載の情報処理装置。
  5. 利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置が行うジョブ管理方法であって、
    前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理するステップと、
    当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録するステップと、
    前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録するステップと、
    前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定するステップと、を有することを特徴とするジョブ管理方法。
  6. 前記計算システムは、前記プロセスを実行可能な複数の計算ノードと、前記複数の計算ノードを相互に接続する計算ノード間通信ネットワークと、から構成されるものである請求項5に記載のジョブ管理方法。
  7. 利用者端末から実行プログラムの処理単位であるジョブが投入されると、当該ジョブを分割したプロセスを計算システムで並列に実行させる情報処理装置に、
    前記ジョブを分割したプロセスを前記計算システムで並列に実行させることで当該ジョブを処理する手順と、
    当該ジョブの基となった実行プログラムの特性、当該ジョブが用いたデータの特性、および当該ジョブを処理させた前記計算システムの特性の識別情報と、当該ジョブを分割した分割数であるプロセス数および当該ジョブの処理時間の情報と、をジョブ処理時間表に記録する手順と、
    前記ジョブ処理時間表に記録された前記プロセス数と前記処理時間の関係を基に、前記実行プログラムの特性と、前記データの特性と、前記計算システムの特性と、を当該ジョブの処理条件としたときに一意に決まる当該ジョブのプロセス数を更新し、最適プロセス数表に記録する手順と、
    前記利用者端末から前記ジョブが投入されると、当該ジョブの基となる前記実行プログラムの特性、当該ジョブが用いる前記データの特性、および当該ジョブを処理させる前記計算システムの特性の識別情報を基に前記最適プロセス数表を参照し、当該ジョブのプロセス数を決定する手順と、を実行させるためのジョブ管理プログラム。
  8. 前記計算システムは、前記プロセスを実行可能な複数の計算ノードと、前記複数の計算ノードを相互に接続する計算ノード間通信ネットワークと、から構成されるものである請求項7に記載のジョブ管理プログラム。
JP2007275006A 2007-10-23 2007-10-23 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム Pending JP2009104373A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007275006A JP2009104373A (ja) 2007-10-23 2007-10-23 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007275006A JP2009104373A (ja) 2007-10-23 2007-10-23 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム

Publications (1)

Publication Number Publication Date
JP2009104373A true JP2009104373A (ja) 2009-05-14

Family

ID=40705988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007275006A Pending JP2009104373A (ja) 2007-10-23 2007-10-23 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム

Country Status (1)

Country Link
JP (1) JP2009104373A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218701A (ja) * 2015-05-20 2016-12-22 株式会社日立製作所 ファイル編集処理方法及び装置
CN115576702A (zh) * 2022-12-08 2023-01-06 中大智能科技股份有限公司 一种面向地质灾害预警的最优算法并行数计算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249294A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 並列計算機システム及びプロセッサ数制御方法
JPH1139271A (ja) * 1997-07-15 1999-02-12 Toshiba Corp ライブラリシステムおよびライブラリの割り当て方法
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249294A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 並列計算機システム及びプロセッサ数制御方法
JPH1139271A (ja) * 1997-07-15 1999-02-12 Toshiba Corp ライブラリシステムおよびライブラリの割り当て方法
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218701A (ja) * 2015-05-20 2016-12-22 株式会社日立製作所 ファイル編集処理方法及び装置
CN115576702A (zh) * 2022-12-08 2023-01-06 中大智能科技股份有限公司 一种面向地质灾害预警的最优算法并行数计算方法
CN115576702B (zh) * 2022-12-08 2023-03-10 中大智能科技股份有限公司 一种面向地质灾害预警的最优算法并行数计算方法

Similar Documents

Publication Publication Date Title
US10810051B1 (en) Autoscaling using file access or cache usage for cluster machines
US20190324819A1 (en) Distributed-system task assignment method and apparatus
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN110442451B (zh) 一种面向深度学习的多类型gpu集群资源管理调度方法和系统
US9870269B1 (en) Job allocation in a clustered environment
US9292336B1 (en) Systems and methods providing optimization data
US9588813B1 (en) Determining cost of service call
CN112131005B (zh) 一种资源调整策略确定方法和装置
CN108491255B (zh) 自助式MapReduce数据优化分配方法及系统
CN109993572A (zh) 留存率统计方法、装置、设备及存储介质
CN105868070A (zh) 确定任务消耗资源的方法及装置
CN106020984B (zh) 电子设备中进程的创建方法及装置
JP2017117242A (ja) 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
CN116089477B (zh) 分布式训练方法及系统
JP2009104373A (ja) 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
CN108664322A (zh) 数据处理方法及系统
EP2828761A1 (en) A method and system for distributed computing of jobs
CN107391262B (zh) 一种作业调度方法及装置
CN112685157B (zh) 任务处理方法、装置、计算机设备及存储介质
Xiang et al. Optimizing job reliability through contention-free, distributed checkpoint scheduling
CN113127289B (zh) 一种基于yarn集群的资源管理方法、计算机设备和存储介质
CN112052087B (zh) 动态资源调整与迁移的深度学习训练系统及方法
CN114924848A (zh) Io调度方法、装置及设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110104