JP6686371B2 - データステージング管理システム - Google Patents

データステージング管理システム Download PDF

Info

Publication number
JP6686371B2
JP6686371B2 JP2015213421A JP2015213421A JP6686371B2 JP 6686371 B2 JP6686371 B2 JP 6686371B2 JP 2015213421 A JP2015213421 A JP 2015213421A JP 2015213421 A JP2015213421 A JP 2015213421A JP 6686371 B2 JP6686371 B2 JP 6686371B2
Authority
JP
Japan
Prior art keywords
data
staging
stage
data staging
job
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
JP2015213421A
Other languages
English (en)
Other versions
JP2016091555A (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
Publication of JP2016091555A publication Critical patent/JP2016091555A/ja
Application granted granted Critical
Publication of JP6686371B2 publication Critical patent/JP6686371B2/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
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Description

本発明は、特に必ずしも排他的ではないが、高性能コンピューティング(high−performance computing:HPC)システムにおける一時記憶と永久記憶との間のデータステージング(data staging)に関する。より詳細には、本発明は、データステージング管理システム、及びコンピュータシステムにおけるデータステージングを管理する方法を提供する。
HPCシステム又はクラスタは、様々な分野のコンピュータシミュレーションのために今日広く用いられている。しかしながら、実行されるべきアプリケーション(又は「ジョブ」)を有するエンドユーザは、必要なコンピューティングリソース(ここで、「リソース」はCPU、コア、メモリ、等を示す)を取得するために長時間待たなければならない場合が多い。これは、コンピューティングリソースが効率的に使用されないことを意味する。この課題を引き起こす主な問題の1つは、「データステージング」と呼ばれる処理である。
バッチジョブ実行は、HPCシステムで用いられる場合が多い。バッチジョブは、ユーザとシステムとの間で僅かな又は殆ど相互作用を必要としない所定の処理動作群を有する。ジョブは、ユーザにより提出されると、キューに置かれる。キューでは、ジョブは、システムが該ジョブを処理する準備ができるまで待機する。ジョブキューは、多くのジョブを有し得る。各々の特定のジョブは、システムが前に提出された又はより高い優先度を有するジョブを処理し終わるまで待機させられる。ユーザ相互作用は必要ないので、バッチジョブは、稼働時間の間に累積され、実行は夜間に行われ得る。この形式の実行は、ユーザがシステムと相互作用しユーザ要求がリアルタイムに行われる「対話式ジョブ」と対照的である。
HPCクラスタ環境におけるジョブ実行では、ジョブが実行を開始する前に、永久記憶領域からI/O速度が非常に速い一時記憶へ入力データを転送することが慣例である。このような入力データ転送と同様に、ジョブが終了した後に、一時記憶から永久記憶領域へ出力データを転送することも一般的である。このデータ転送処理は、高性能コンピューティング分野では「データステージング」と呼ばれる。入力及び出力データステージングは、「ステージイン」及び「ステージアウト」とそれぞれ表される。
図1は、データステージングを用いるHPCシステムのシステム概要を示す。エンドユーザのワークステーション1は、ネットワーク5を介してHPCシステム10に接続される。HPCシステム10は、ヘッドノード11と、ジョブを実行する場合によっては膨大な数のコンピューティングノード12と、を有する。シミュレーションモデルは通常多くの式の解を含むので、コンピューティングノード12は、集合的に、実行されるべきシミュレーションタスクの「ソルバ」と呼ばれても良い。ワークステーション1は、システム10の潜在的に非常に多数のユーザの単なる代表例である。
シミュレーションは、「ISVアプリケーション」と呼ばれる物理的現象の市販モデルの使用を含む場合が多い。ここで、ISVはIndependent Software Vendorの略である。製造会社及び研究所により使用されるこのようなISVアプリケーションの例は、MSC、CD−Adaco、及びSIMILIAを含む。
HPCシステム10は、ネットワーク5を介して、自身のI/Oサーバ21に備えられた一時記憶20に、及びI/Oサーバ31を有する永久記憶30に、接続される。一時記憶20は、通常、永久記憶30と比べて、早く、小さな容量であり、HPCシステムによりローカルである。異なる記憶技術も含まれても良い。例えば、一時記憶20は固体であっても良く、永久記憶30は磁気ディスクを用いても良い2種類の記憶装置の間の転送は、図1の一点破線により示されるように、ヘッドノード11からのコマンドにより開始され、I/Oサーバ21及び31により管理されても良い。
ヘッドノード11は、ジョブスケジューラ110を有し、ユーザワークステーション1との及び必須ではないがコンピューティングノードのうちの1つを提供し得るI/Oサーバ21及び31との通信を担う。
通常、ジョブスケジューラ110は、バッチジョブのキューのジョブ実行順序と、各バッチジョブに関連するデータステージングと、の両方を管理する。同じバッチジョブに関連する1つより多い「データステージングジョブ」が存在し得る。特に、ステージインのための第1のデータステージングジョブと、ステージアウトのための第2のデータステージングジョブである。複数のバッチジョブは、必要なコンピューティングリソース及び利用可能なコンピューティングリソースに依存して、同時に実行されても良い。
先ず、ジョブスケジューラ110は、ジョブスケジューラ110とユーザワークステーション1との間の一点破線により示すように、ユーザワークステーション1からジョブ実行要求を受信し、ジョブをキューの中に置く。実行要求は、特に、ステージングのためのデータが見付かる永久記憶30の中の少なくとも1つの目標データファイルを指定する「バッチジョブスクリプト」の形式を取る。次に、ジョブスケジューラは、コンピューティングノード12の中でコンピューティングリソースの可用性の状態を調べる。記憶20及び30との間のデータステージングは、ジョブスケジューラからのコマンドにより、及び個々のI/Oサーバ21及び31により管理され、従来、指定されたコンピューティングリソ―スがジョブスケジューラ110の中でジョブに割り当てられた後にのみ、実行された。データフローは、図の左側の破線により示される。個々の記憶領域22、32、及び23、33は、入力(実行前)及び出力(実行後)段階の各々で定められても良い。次に、入力データの一時記憶20へのステージインがエラー無しに完了した後にのみ、ステージインされたデータは、一時記憶20からコンピューティングノード12に供給され得る。ステージインは、ヘッドノード11からの命令の下で実行される。データは、ジョブスケジューラ110により決定されたように、一時記憶22からI/Oサーバ21を介して、データを要求するコンピューティングノード12へ直接転送される。次に、主ジョブは実行を開始する。
しかしながら、ソルバジョブ実行が多くの時間を要する前及び後に実行されたデータステージング処理は、コンピューティングリソースを殆どアイドルのままにしてしまう。これは、低いマシン効率をもたらし、電力を浪費してしまう。この種のデータステージングは、「同期」データステージングと呼ばれる。データステージングは必要なコンピューティングリソースを確保した後に実行されるので、I/O処理(ステージイン)のための時間は、目標データサイズが増大するにつれ、増大する。これは、コンピューティングリソースの非効率な使用をもたらす。I/O処理の占める時間は、ジョブが待ち行列に入れられて実行を待機する時間に加算されなければならない。I/O処理の間、上述のように、コンピューティングノードは、殆どアイドルである。
上述の問題を改善するために、所謂「非同期」データステージングが考案された。非同期データステージングでは、I/O処理の間のコンピューティングリソースの非効率な使用を低減するために、必要なコンピューティングリソースがジョブスケジューラにおいて提出されたジョブに割り当てられる前に、データステージングが独立して実行される。これは、ジョブが入力データのステージインのために使用されるために待ち行列に入れられる間、少なくともある程度の時間を可能にする。しかしながら、以下の問題が依然として存在する。
先ず、ユーザが実行されるべきジョブを待つ間、彼/彼女が入力データを変更する可能性がある。非同期データステージングの場合には、ユーザが入力データステージングの開始時間を知ることが困難なので、この待機期間中に入力データの変更は不可能である。第二に、入力データステージングが先入れ先出しアルゴリズムを用いてスケジューリングされる場合、データステージングに要する時間が増大し、ステージングデータの量が増大するにつれ、コンピューティングノードの割り当てが積み重なってしまう。これらの問題は、ステージイン及びステージアウトの両方で生じる。
シミュレーションモデルの洗練が進むにつれ、入力及び出力データの量は急速に増大している。結果として、ステージイン及びステージアウトに要する時間は、全体の実行時間の有意な割合を占め得る。その結果、一時記憶と永久記憶との間のより効率的なデータステージングメカニズムが必要である。
本発明の第1の態様によると、コンピューティングシステムにおいてバッチジョブを実行するときデータステージングを管理する方法であって、各々のバッチジョブについて、データステージインのための少なくとも1つのソースファイル及びデータステージアウトのための少なくとも1つの目標ファイルを識別するステップと、データステージイン及びデータステージアウトで転送されるべきデータの量を決定し、前記のデータ転送を完了するための所要時間を推定するステップと、前記バッチジョブの第1のデータステージング処理として、前記の推定した所要時間に基づき非同期又は同期データステージインを設定し、前記バッチジョブの第2のデータステージング処理として、非同期データステージアウトを設定するステップと、前記ソースファイルからのデータステージインを実行し、前記バッチジョブを実行するためにリソースを割り当てるステップと、前記バッチジョブを実行して結果を生成するステップと、前記目標ファイルへの前記結果のデータステージアウトを実行するステップと、を有する方法が提供される。
ここで参照される各々のデータステージング処理は、詳細な説明で言及される「データステージングジョブ」に対応する。
ここで、第1のデータステージング処理を同期又は非同期として設定するステップは、前記推定した時間を第1の閾値と比較することにより行うことができる。推定した時間が前記閾値の範囲内である場合、データステージインは同期として設定され、そうでない場合、非同期データステージインが設定される。いかなる場合にも、データステージアウトは、非同期に設定されることが望ましい。
望ましくは、非同期データステージング処理の短期又は長期への更なる分類は、次の通り行われる。データステージインの前記推定した所要時間に従って、前記第1のデータステージング処理を非同期短期又は非同期長期データステージインとして分類し、データステージアウトの前記推定した所要時間に従って、前記第2のデータステージング処理を非同期短期又は非同期長期データステージアウトとして分類する。より詳細には、各々の場合に前記推定した時間は、第2の閾値と比較されても良い。前記推定した時間が前記第2の閾値の範囲内である場合、短期が設定され、その他の場合、データステージング処理は長期として分類される。
望ましくは、リソースを割り当てる前記ステップは、前記データステージインを完了する前に実行される。つまり、データステージインを完了するために記推定した時間を知り、残りの所要時間が上述の前記第1の閾値より少なくなる場合、ジョブへのリソースの割り当てを開始することができる。
したがって、一態様では、本発明は、永久記憶と一時記憶とを有するコンピューティングシステムにおいてバッチジョブを実行するときデータステージングを管理する方法であって、前記データステージングは、データが前記永久記憶から前記一時記憶へ転送されるデータステージインと、データが前記一時記憶から前記永久記憶へ転送されるデータステージアウトと、を有し、前記方法は、バッチジョブの各々について、データステージインのための少なくとも1つのソースファイルと、データステージアウトのための少なくとも1つの目標ファイルと、を識別するステップと、データステージイン及びデータステージアウトで転送されるべきデータの量を決定し、前記のデータ転送を完了するための所要時間を推定するステップと、前記バッチジョブの第1のデータステージング処理として、前記推定した時間を前記閾値と比較することにより推定所要時間に基づき、非同期又は同期データステージインを設定するステップであって、前記推定した時間が前記閾値の範囲内である場合、前記データステージインは同期として設定され、そうでない場合、前記データステージインは非同期として設定される、ステップと、前記バッチジョブの第2のデータステージング処理として、非同期データステージアウトを設定するステップと、前記ソースファイルからのデータステージインを実行し、前記バッチジョブを実行するためにリソースを割り当てるステップと、前記バッチジョブを実行して結果を生成するステップと、前記目標ファイルへの前記結果のデータステージアウトを実行するステップと、を有し、リソースを割り当てる前記ステップは、前記データ転送を完了するための残り時間が前記閾値の範囲内になると、実行される、方法を提供する。
前記方法は、前記データステージイン及び/又は前記データステージアウトのために許容される最大時間を設定するステップと、前記最大時間に基づきデータステージイン及び/又はデータステージアウトの多重度を計算するステップと、前記多重度に等しい数のデータステージング処理を有し、複数のバッチジョブのデータステージイン又はデータステージアウトを同時に実行するステップと、を更に有しても良い。
ここで、前記計算するステップは、前記最大時間を、複数のバッチジョブのデータステージング処理の前記推定した時間の合計により除算するステップを有しても良い。結果は、多重度である整数に達するように切り上げられても良い。この整数が多重度である。
上述のいずれかの方法において、前記設定するステップは、各データステージング処理及び各々の状態を記録するデータステージング管理テーブルを形成するステップを有しても良い。
上述の各データステージング処理は、「初期」データステージング処理と称されても良い。しかしながら、望ましくは、前記方法は、データステージインを実行している間、前記ソースファイルがデータステージインの開始から変更されたか否かを調べ、変更された場合、追加データステージング処理として前記テーブルに「インクリメンタル」データステージインを設定するステップ、を更に有する。
前記データステージング管理テーブルは、データステージング処理の各々について、前記データステージング管理が設定される前記バッチジョブの識別子と、前記データステージング処理がデータステージインかデータステージアウトかの指示と、場合によっては各々のソースファイル又は目標ファイルの位置と、転送されるべきデータの量と、を含む初期情報を入力されても良い。
ここで、前記初期情報は、前記識別するステップ及び推定するステップを実行するためにバッチジョブスクリプトを分析することにより得られる。
前記データステージング管理テーブルは、データステージング処理の各々について、前記データステージング処理がインクリメンタルデータステージインか否かの指示と、前記データステージング処理が開始していない、実行中である、又は完了したかと、データステージング処理の開始時間と、データステージング処理の終了時間と、今までに転送されたデータ量又は転送されるべき残りデータ量と、前記データステージング処理のための前記推定した所要時間と、のような情報を更に有しても良い。
前記推定した時間は、データ転送を完了するための期待残り時間を示すために、データステージング処理が進むにつれ減算されても良い。
前記方法は、前記データステージング管理テーブルに基づき、複数のバッチジョブのデータステージイン又はデータステージアウトをスケジューリングするためにデータステージングリストを構築するステップと、を更に有しても良い。
本発明の第2の態様によると、バッチジョブを実行するコンピュータシステムにおいてデータステージングを管理するデータステージングマネジャであって、前記データステージングマネジャは、各々のバッチジョブについて、データステージインのための少なくとも1つのソースファイル及びデータステージアウトのための少なくとも1つの目標ファイルを識別し、データステージイン及びデータステージアウトで転送されるべきデータの量を決定し、前記のデータ転送を完了するための所要時間を推定し、前記バッチジョブの第1のデータステージング処理として、前記の推定した所要時間に基づき非同期又は同期データステージインを設定し、前記バッチジョブの第2のデータステージング処理として、非同期データステージアウトを設定し、前記ソースファイルからのデータステージインを実行し、前記バッチジョブへのリソースを割り当て前記バッチジョブを実行させるために、前記コンピュータシステムのジョブスケジューラと通信し、前記バッチジョブが実行された後に、前記目標ファイルへの前記結果のデータステージアウトを実行する、よう構成されるデータステージングマネジャが提供される。
前記データステージングマネジャは、望ましくは、前記コンピュータシステムの前記ジョブスケジューラにインストールされたプリプロセッサ及びポストプロセッサに結合されるデータステージング管理サーバを有し、前記プリプロセッサは前記ジョブスケジューラにより受信されたバッチジョブスクリプトを分析するよう構成される。前記データステージング管理サーバは、前記データステージイン又はステージアウトを(場合によっては別個のデータステージングプログラムと連携して)実行するために「開始プログラム」と呼ばれる種々のプロセスを実行しても良い。
更に望ましくは、前記データステージング管理サーバは、データステージング管理テーブルを有し、該データステージング管理テーブルは、データステージング処理の各々について、前記データステージング処理が設定される前記バッチジョブの識別子と、前記データステージング処理がデータステージインか又はデータステージアウトかの指示と、場合によっては、各々のソースファイル又は目標ファイルの位置と、転送すべきデータ量と、前記データステージング処理がインクリメンタルデータステージインか否かの指示と、前記データステージング処理が開始していない、実行中である、又は完了したかと、開始された場合にデータステージング処理の開始時間と、完了した場合にデータステージング処理の終了時間と、今までに転送されたデータの量及び/又は転送されるべき残りデータ量と、前記推定した所要時間と、を記録する。
本発明の第3の態様によると、コンピューティングシステムの中のサーバにより実行されると、上述のいずれかの方法を実行するコンピュータ可読命令を有するコンピュータプログラムが提供される。
このようなコンピュータプログラムは、1又は複数の過渡的コンピュータ可読記録媒体の形式で、又はダウンロード可能な信号として、又は任意の他の形式で提供されても良い。
したがって、本発明の実施形態は、低いマシン効率を改善するデータステージング管理システム(data staging management system:DSMS)を提供し、入力及び出力データをコピーする前若しくは後処理と計算とを分離して、リソース使用率を向上する。コンピューティングリソース割り当て及びデータステージングは、ジョブ状態情報を参照して行われる。
より具体的には、纏めると、本発明の実施形態は、HPCシステムにおいてバッチジョブを実行するとき、データステージング技術を提供し、同期及び非同期データステージング処理を結合する。データステージインのための少なくとも1つのソースファイル(目標データファイル)、及びデータステージアウトのための目標ファイルは、バッチジョブスクリプトを分析することにより識別される。ファイルに含まれるデータの量から、データステージイン及びデータステージアウトのために必要な時間が推定される。データステージインは、推定した時間に基づき非同期又は同期として設定され、データステージアウトは非同期として扱われる。各非同期データステージング処理は、更に、推定所要時間に依存して短期又は長期として分類される。データステージインはソースファイルから実行される、データステージインが完了するのを待たずに、バッチジョブを実行するためにリソースが割り当てられる。バッチジョブが実行されて結果が生成される。そして、データステージアウトが実行されて、結果を目標ファイルへ転送する。
従来知られているデータステージングを用いるコンピューティングシステムのシステム概要を示す。 本発明を具現化するコンピューティングシステムのシステム概要を示す。 本発明の一実施形態で用いられるデータステージング処理の分類を示す。 一実施形態におけるデータステージイン処理を示す。 一実施形態におけるデータステージアウト処理を示す。 一実施形態におけるデータステージインを分類する処理のステップのフローチャートである。 一実施形態で用いられるデータステージング管理テーブルの一例を示す。 2つのデータステージングジョブの間の配置を示す。
導入で言及したように、入力データステージングが実行されるとき、コンピューティングリソースは、計算に使用されていなくても、対応するジョブのために予約される。後続のジョブが比較的緩やかなデータステージング要件を有する場合でも、キューの中の後続のジョブは、前のジョブがそのデータステージングを完了するのを待たなければならない。これは、占有されるリソースを殆どアイドルにし、低リソース使用率をもたらす。また、出力データステージングで、同じ状況が生じる。転送されるデータの量が膨大なので、ジョブが実行を開始する前に長時間を要し、占有されるリソースは、データステージングが完了するまでジョブにより保持される。この問題を解決するために、本発明の実施形態は、コンピューティングリソースの非効率な使用を回避するために同期及び非同期データステージングを結合するソリューションを提供する。
前述のように、ジョブスケジューラは、従来、コンピューティングリソースをジョブのために確保し、ジョブ実行順序を管理するために用いられていた。しかしながら、既存のジョブスケジューラは、バッチジョブ実行のために必要なデータステージング処理を制御しない。これは、ジョブスケジューラの範囲外であるためである。発明者等は、ジョブスケジューラが総合的にコンピューティングリソースの可用性に従ってデータステージング処理を制御可能であることが望ましいことを理解している。したがって、本発明の一実施形態の特徴は、効率的リソース割り当て及びエンドユーザの便宜を向上するために、ジョブスケジューラに結合されるデータステージング管理システムである。
特定の実施形態は、単なる例として図2〜8を参照して説明される。
図2は、システム概要を示す。図1の要素に対応する部分は、同じ参照符号を有する。新たに追加されたコンポーネントは、白ラベルと共に黒で示される。最も顕著なのは、データステージング管理サーバ40が、追加でネットワーク5に接続され、データステージング管理システム又はDSMS42と、データステージング管理テーブル44と、ステージングリスト46と、を有することである。以降で、DSMSへの言及は、必要に応じてステージング状態テーブル44及びステージングリスト46を用いて、データステージング管理サーバ40の中で実行される動作を意味する。DSMS42は、一時的及び永久記憶20及び30に、又はより詳細にはI/Oサーバ21及び31に、直接コマンドを発行できる。
さらに、ヘッドノード11の中のジョブスケジューラ110は、新たに、後述するようにDSMS42と通信するよう配置されるプリプロセッサ110aとポストプロセッサ110bとを備えられる。
サーバ40で実行しているDSMS42の1つのタスクは、データステージイン及びステージアウトを非同期/同期、及び短期/長期カテゴリに分類する。図示しないが、DSMS42は、内部及び外部ステージイン開始プログラムと、内部及び外部ステージアウト開始プログラムと、の両者を、管理サーバ40で動作するプログラムとして有する。
図3は、本実施形態に定められるデータステージング処理の分類を示す。データステージイン処理は、実行されるタイミングに依存して、「非同期データステージイン」又は「同期データステージイン」として分類される。さらに、「非同期データステージイン」は、予測されるデータステージング期間に従って、「非同期長期データステージイン」又は「非同期短期データステージイン」として分類される。ここで、「短期」及び「長期」は、データが一時記憶にどれくらい長く残っているかではなく、データ転送がどれくらい長くかかるかに関連する。つまり、「短期」は比較的短い期間のデータステージングを表し、「長期」は長時間を要するデータステージングを表す。
データステージング処理の予測時間(単位:秒)は、ステージングデータの量(単位:バイト)をステージング速度(単位:バイト毎秒)で割ったものとして計算できる。ステージング速度は、システムのパラメータであり、I/Oサーバ21及び31のI/O能力に関連する。複数のデータステージング処理は、以下では「データステージングジョブ」として参照され、同じバッチジョブのデータステージングに関連しても良く、既に述べたように、システム10は通常、バッチジョブのキューを扱う。このような(バッチジョブのキューについての)分類の結果は、上述のデータステージングリスト46である。ステージングリスト46は、種々のバッチジョブのデータステージングジョブのスケジュール又は実行順序を提供し、データステージイン及びデータステージアウトの両方を対象とする。
ジョブがユーザからシステムへ提出されると、以下に例示されるバッチジョブスクリプトは、ユーザワークステーション1からヘッドノード11へ送信される。ジョブスケジューラ110に対してプラグインプログラムの形式のプリプロセッサ110aは、バッチジョブスクリプトを受信すると開始される。プリプロセッサ110aは、コードの特定のラインを探すためにスクリプトをパースする。この段階で、バッチジョブスクリプトがデータステージングの任意の部分(以下で、行「#DSMS−−stage−in−cp」及び「#DSMS−−stage−out−cp」)を有する場合、プリプロセッサプログラム110aは、DSMS42と通信する。
前述のように、データステージインは、永久記憶の中の1又は複数の記憶領域32から一時記憶の中の記憶領域22へのデータの転送を含む。目標ファイル(ソースファイルとも呼ばれる)又は記憶領域32から記憶領域22へ転送すべきデータのディレクトリを識別することにより、DSMS42は、データステージイン処理を管理し、データステージングリスト46を構築し、適切なタイミングで実行し、データステージインの進捗をデータステージング管理テーブル44に記録する。コンピューティングノード12によるバッチジョブの実行が進むにつれ、出力結果が生成され、記憶領域23に格納される。バッチジョブが実行を完了した後、DSMS42は、データステージアウト処理を管理し、適切なタイミングに実行して一時記憶20から永久記憶30へ又はより具体的には記憶領域23から記憶領域33へ処理結果を転送する。
ここで、データステージイン(又はデータステージアウトの)適切なタイミングは、データステージングを実行するために要する予測時間に依存する。通常、データステージイン処理は、バッチジョブ要求がコンピューティングノード12に提出された後に実行される。データステージングの予測時間が短い場合は、データステージイン処理は、バッチジョブが実行される直前に実行される(これは、導入部で言及された同期データステージングの一例である)。他方で、データステージングが長時間を要すると予測されるとき、データステージングは、ステージディスクI/O性能を考慮するスケジュールに基づき実行される。ステージインの後、目標ファイルが更に変更される場合、変更された部分のみがステージインされる。これは、非同期データステージングの形式である。したがって、非同期データステージングは、記憶装置のI/O性能のより効率的使用を行うために2種類のステージング処理を含む。前述の予測時間は短期又は長期のような2種類を分類するために用いられる。
本発明で用いられるバッチジョブスクリプトの一例を以下に示す。Line012及びLine014で、データステージングの目標ファイル又はディレクトリは、データステージングコマンドでユーザにより明示的に指定される。
Figure 0006686371
図4は、DSMS42が従うデータステージイン処理の手順を示す。図5は、データステージアウト処理の対応する手順を示す。各図で、左側の垂直方向の帯は、連続する処理フェーズを示す。この帯の個々のステップは、各々の垂直方向の帯の右に詳細に示される。左回りの矢印は、関連するステップが繰り返され得ることを示す。ステップの番号、つまり[ステップ1]、[ステップ2]、等は、ステップが実行される順序を示す。各々の主ステップの下位ステップは、[ステップ1−1]、[ステップ1−2]、等と示される。これらのステップは、以下に詳述する。
バッチジョブスクリプトの中で指定されるデータステージング処理の状態は、データステージング処理を含む実行が完全に完了するまで、データステージング管理テーブル44の中に記録され更新される。データステージング命令がバッチジョブスクリプトの中に含まれプリプロセッサ100aによりピックアップされるときはいつも、新しいエントリはテーブル44に追加される。テーブルの中の各エントリ(行)は、1つのデータステージング処理又は「データステージングジョブ」に対応する。前述のように、同じバッチジョブについて、1つより多いデータステージングジョブが存在しても良い。ステージアウトジョブは、バッチジョブが実行された後までテーブルに入力されている必要は無いが、通常、同じバッチジョブは、ステージインとステージアウトの両方を引き起こす。前述のように、同期データステージインは、バッチジョブのコンピューティングリソースが予約されてから間もなく開始する。
次の表1は、データステージング管理テーブル44の形式を示す。
[表1]データステージング管理テーブル
Figure 0006686371
表1は、各データステージングジョブ、又は言い換えると管理テーブル44の1つの「行」、について記録された管理情報の項目を示す。
再び図4を参照し、データステージイン処理の間のDSMS42の動作を以下に説明する。図4に示すように、処理は、(i)ジョブ提出、(ii)実行のためのジョブのキューイング、及び(iii)リソース割り当て、の連続するフェーズを有する。図4及び5に示すように、ステップのうちの幾つかは、基本的にデータステージング管理サーバ40であるサーバのメモリに常駐しプリントスプーラ若しくは電子メールハンドラと類似の方法でバックグラウンドで走る「デーモンプロセス」により実行される。このようなデーモンプロセスの例は、実際のデータステージングを実施する、後述する、所謂「開始プログラム」を含む。
[ステップ1]〜[ステップ3]の各々は、1つのジョブに関連する。言い換えると、これらのステップは、各ジョブについて順々に別個に実行される。対照的に、[ステップ4]〜[ステップ7]は、通常、複数のジョブについて同時に実行される。最後に、[ステップ8]及び[ステップ9]は、一度に1つのジョブに適用される。
[ステップ1]ステップ1はジョブ提出である。つまり、ジョブスケジューラの中のプリプロセッサからDSMSへ初期データステージイン処理の要求を発行するフェーズである。表2は、DSMSにより認識できるデータステージングコマンドを示す。
[表2]データステージング処理のためにバッチジョブスクリプトの中で指定されるコマンド
Figure 0006686371
[ステップ1−1]ユーザがバッチジョブスクリプトをジョブスケジューラに提出した後に、ジョブスケジューラ110のプリプロセッサ110aは、DSMS42と通信する。バッチジョブスクリプトが上述のデータステージングコマンドのいずれかを含む場合、DSMS42は、バッチジョブスクリプトを分析し、対応する値を、表3に示すように、データステージングジョブ毎に、データステージング管理テーブル44の1つのエントリ又は行の中の各属性に設定する。この段階の後、ステージイン処理及びジョブ実行は、未だ開始されていない。
[表3][ステップ1−1]で生成された「データステージング管理テーブル」の例
Figure 0006686371
このステップで、属性(a)〜(d)及び(g)〜(j)の中の値が設定される。つまり、次の通りである。
(a)ジョブスケジューラにより発行されたJob IDが設定される。
(b)「stage−in」が設定される。
(c)初期値「000」が初期値として設定される。
(d)この段階でデータステージングは未だ開始していないので、「notstarted」が設定される。
(g)DSMS42は、バッチジョブスクリプトを検索し、もしあれば、ここで、ソースファイル(目標データステージングファイル)又はディレクトリの名称(パス)を入力する。
(h)(g)に基づき、DSMSは、データステージング目標の合計サイズ(つまり転送されるべきデータの量)を計算し、値を設定する。
(i)この段階でいかなるデータステージング目標も転送されないので、「0」が設定される。
(j)この段階でいかなるデータステージング目標も転送されないので、ここでは(h)と同じ値が入力される。
[ステップ2]段階(ii)の間に、実行のためにキューイングされる。バッチジョブは、(先に提出された又はより高い優先度を有する)他のデータが実行されている間、キューの中で待つ。この段階の間、ソースデータが変更される可能性がある。ステップ2は、プリプロセッサ110aからDSMS42へインクリメンタルデータステージイン処理の要求を発行する処理である。
[ステップ2−1]データステージング管理テーブル44で「Staging status」が「completed」であるデータステージングジョブについて、DSMS42は、データステージイン処理の開始時間の後に、目標ファイル又はディレクトリが変更されたかどうかを調べる。
[ステップ2−2]目標ファイル又はディレクトリがデータステージイン処理の開始時間の後に変更された場合、DSMSは、これをファイル又はディレクトリの属性の「time last modified」値から検出できる。次に、新しいエントリがデータステージング管理テーブル44に挿入される。ここで、Job IDは同じであるが、インクリメント1が「Data staging ID」に追加される。これは、目標ファイル又はディレクトリが変更されたことをDSMSが見付けたときは常に、インクリメンタルデータステージングを示すために新しいエントリがテーブルに追加されることを意味する。この場合、表4に示すようなデータステージング管理テーブル44の中の新しいエントリとして以下の値が設定される。
[表4][ステップ2−2]で変更された「データステージング管理テーブル」の例
Figure 0006686371
(c)DSMSは既存の値に1を加算する。ここで「000」が既に設定されている場合、DSMSはこの値を「001」に変更する。
(d)変更された目標ファイル及びディレクトリを転送するために、「notstarted」が設定される。
(g)DSMSは、バッチジョブスクリプトを検索し、データステージングの開始時間の後に変更されるファイル又はディレクトリを設定する。
(h)(g)に基づき、DSMSは(g)の合計サイズを計算する。
(i)変更されたファイル又はディレクトリはこの段階で未だ転送されていないので、「0」が設定される。
(j)変更されたファイル又はディレクトリはこの段階で未だ転送されていないので、(h)と同じ値が設定される。
[ステップ3]図4のフェーズ(iii)はリソース割り当てである。バッチジョブにコンピューティングリソースを割り当てるために、ジョブスケジューラは、利用可能なコンピューティングノードの状態を参照する。この処理は、「リソース管理」と呼ばれる。以下のステージイン判断条件をリソース管理機能に追加して、リソース管理機能は、バッチジョブを実行するコンピューティングノードの割り当てを制御する。
[ステップ3−1]データステージング管理テーブル44の中で、「Status of staging」の値が「completed」であるジョブが存在する場合、又は「Status of staging」の値が「ongoing」であり且つ「Predicted time for data staging processing」の値が「Threshold time for asynchronous data staging」以下である場合、ジョブスケジューラの中のリソース管理機能は、コンピューティングリソースをジョブに割り当てると決定する。ジョブスケジューラ110にインストールされたプラグ入力信号プリプロセッサ110a及びポストプロセッサ110bは、DSMS42と周期的に通信する。これは、上述の状況が生じるとき、ジョブスケジューラに警告できる。
[ステップ4]非同期データステージング処理を管理するために、データステージングリスト46を生成し又は改訂する処理である。データステージングリスト46は、サーバ40にあるデーモンプロセスによりデータステージング管理テーブル44から形成され、データステージングが必要な全てのバッチジョブを対象とする。図4及び5に示すように、データステージングリスト46は、非同期短期データステージング処理のセクション、及び非同期長期データステージング処理のセクションを有する。
データステージイン処理に関し、「Predicted time for data staging processing」に従って、DSMS42は、データステージングジョブを「非同期長期データステージング」又は「非同期短期データステージング」に分類する。I/Oサーバ21及び31及びデータステージングジョブのデーモンに依存して、複数のデータステージング処理を並列して実行することが可能であり得る。このような並列ステージング処理の数は、以下で「多重度(multiplicity)」と表される。データステージアウト処理に関し、デ―タステージングジョブは、「非同期長期データステージング」に自動的に分類される。
図6は、1つのバッチジョブのデータステージイン処理を分類するフローを示す。
S11で、データステージインのための予測時間が第1の閾値(「Threshold time for asynchronous data stage−in processing」)以下かが調べられる。そうである場合(S11でYES)、フローはステップS12に進む。S12で、データステージイン処理を同期化するためにデータステージインが設定され、分類プロセスは終了する。前述のように、同期データステージインは、バッチジョブが実行される直前に実行される。
他方で、S11における比較の結果が否定的である場合(S11でNo)、フローはステップS13へと続く。S13で、データステージインの予測期間が第2の閾値、つまり「Threshold time for asynchronous short−term data staging」以下かが調べられる。
そうである場合(S13でYES)、フローはステップS14に進む。S14で、データステージインは非同期短期データステージイン処理として分類され、プロセスは終了する。
他方で、ステージインの予測時間が第2の閾値を超える場合(S13でNo)、ステップS15で、データステージインは非同期長期データステージインとして設定され、プロセスは終了する。
[ステップ4−1]データステージング管理テーブル44の中で、「Status of staging」の値が「completed」以外であるエントリが存在する場合、DSMS42は、データステージイン処理の予測時間を計算し、それを「Predicted time for data staging processing」の値に設定する。予測時間は、以下の式(1)を用いて推定される。
(Predicted time[秒])=(Size of remaining data[バイト])/システムパラメータ(Staging speed[バイト毎秒]) (1)
[ステップ4−2]データステージング管理テーブル44から、DSMS42は、各「Predicted time」の和を計算し、それを「Total predicted time」属性の値に設定する。
[ステップ4−3]通常、データステージングのために許容される最大時間は、「Maximum map time」のような、システム管理者により設定されるシステムパラメータである。「Total predicted time for data staging processing」の値がシステムパラメータ「Maximum map time」の値を超える場合、DSMS42は、「Total predicted time for data staging processing」の値を「Maximum map time」の値に設定する。これは、「Total predicted time for data staging processing」に閾値を設定する。
データステージングリスト46は、以下のように構築される。
[ステップ4−4]データステージング管理テーブル44の中で、「Staging phase」の値が「stage−in」であるエントリから、DSMS42は、「Predicted time for data staging processing」の値が「Threshold time for asynchronous data staging」を超え且つシステムパラメータが「Threshold time for asynchronous short−term data staging」より小さいエントリを選択する。次に、DSMS42は、「Asynchronous data staging」ジョブのリストを作る。
[ステップ4−5]DSMSは、「Asynchronous data staging jobs」のリストの中の「Predicted time for data staging processing」の和を計算する。次に、DSMSは、この値をデータステージング管理テーブル44の中の「Predicted time for asynchronous short−term data staging processing」の値として設定する。
[ステップ4−6]本実施形態は、「多重度(multiplicity)」の概念を用いる。多重度は、同時に処理できるデータステージングジョブの数である。データステージングジョブは、データステージングリスト46に基づき、I/Oサーバ21及び31に循環的に送り出される。DSMSは、以下の値を、「Multiplicity for asynchronous short−term data staging processing」の値に設定する。
(Multiplicity for asynchronous short−term data staging processing)=(Predicted time for asynchronous short−term data staging processing[秒])/(Total predicted time for data staging processing[秒]) (2)
ここで、小数は切り上げられる(したがって、例えば1.333は2になる)。上式は、データステージインとデータステージアウトの両方に適用される。
図7の例を参照する。図7は、データステージング管理テーブル44の部分(より詳細には、上述の表1のから項目(a)、(b)及び(k)のみ)を示す。「Total predicted time for data staging processing」は、各「Predicted time for data staging processing」の和であるか、又は(この値がMaximum map timeを超える場合)Maximum map timeに設定される。本例は、「Total predicted time for data staging processing」が14400[秒]であると仮定する。
つまり、上述の図7のデータステージング管理テーブル44に基づき、「Total predicted time for data staging processing」は、各「Predicted time for asynchronous short−term data staging processing」の和から19200[秒]になる。しかしながら、これは「Maximum map time」により設定される最大許容値(閾値)を超えるので、後者の値、14400[秒]が代わりに用いられる。
上述の式(2)を用いて、
(Multiplicity for asynchronous short−term data staging processing)=19200[秒]/1400[秒]=1.33...=2
[ステップ4−7]「Multiplicity for asynchronous short−term data staging processing」に従って、DSMS42は、「Asynchronous short−term staging processing」リストの各エントリを、データステージングリスト46の中に、非同期短期ステージング処理として1列に並べる。
[ステップ4−6]で導入した例を見ると、データステージング管理テーブル44の中で管理されるデータステージングジョブは、図7が示すように、多重度2を有するデータステージングリスト46に1列に並べられる。
[ステップ4−8]データステージング管理テーブル44の中で「Data staging status」の値が「stage−in」であるエントリについて、DSMS42は、「Predicted time for data staging processing」の値が「Threshold time for asynchronous short−term data staging」を超えるエントリを選択し、各エントリをデータステージングリスト46の中で非同期期ステージングとして1列に並べる。
[ステップ4−9]データステージング管理テーブル44から、DSMSは、「Data staging phase」の値が「stage−out」であるエントリを選択し、各エントリをデータステージングリスト46の中に非同期長期ステージングとして1列に並べる。
[ステップ5]次のステップは、非同期ステージイン処理のためのサーバ40上のデーモンプロセスである「External stage−in initiator」を開始する。因みに、以下の議論は短期非同期データステージインを先ず記載するが、実際には、短期か長期かに係わらず、データステージングは、「先入れ先出し」ポリシで行われる。
[ステップ5−1]これは、<非同期><短期>データステージイン処理のためのものである。
[ステップ5−1−1]データステージング管理テーブル44を用いて、DSMS42は、非同期データステージング処理(データステージングジョブ)の数を確認し、その値をデータステージングリスト46の中の「Multiplicity for asynchronous short−term data staging processing」の値と比較する。
[ステップ5−1−2]これは、<非同期><短期>データステージング処理のためのものである。データステージングリスト46の中の短期データステージングジョブについて、「Multiplicity for asynchronous short−term data staging processing」の数が上限に達するまで、DSMS42は、「Data staging phase」が「stage−in」であり且つ「Data staging status」が「notstarted」であるステージングジョブを選択する。次に、「外部ステージイン開始プログラム」はデータステージインプログラムを呼び出し、パラメータ「Batch job ID」及び「Data staging ID」をDSMSから提供する。
[ステップ5−2]これは、<非同期><長期>データステージイン処理のためのものである。
[ステップ5−2−1]データステージング管理テーブル44から、データステージングリスト46にある非同期長期ステージングジョブのリストから、DSMSは、「Data staging phase」の値が「stage−in」であり且つ「Data staging status」が「notstarted」であるデータステージングジョブを選択する。次に、DSMS42の外部ステージイン開始プログラムはデータステージインプログラムを呼び出し、パラメータ「Batch job ID」及び「Data staging ID」をDSMS42から提供する。
[ステップ6]これは、上述の内部ステージイン開始プログラムを起動するための<同期>データステージイン処理のためのものである。
[ステップ6−1]データステージング管理テーブル44から、DSMS42は、「Batch job ID」の値が与えられたパラメータと一致し且つ「Predicted time for data staging processing」の値が「Threshold time for asynchronous data staging」以下であるステージングジョブを選択する。これは既に述べたように、同期ステージインを設定するための基準である。次に、DSMS42の中の内部ステージイン開始プログラムは、パラメータ「Batch job ID」及び「Data staging ID」で、データステージインプログラムを呼び出す。
[ステップ7]データステージインプログラム。
[ステップ7−1]データステージインプログラムは、「Batch job ID」及び「Data staging ID」を、DSMS42の外部ステージイン開始プログラム又は内部ステージイン開始プログラムから受信する。
[ステップ7−2]DSMSは、「Batch job ID」及び「Data staging ID」の値がデータステージング管理テーブル44の中の与えられたパラメータに一致するエントリの「Data staging status」の値に、「ongoing」を設定する。
[ステップ7−3]DSMS42は、[ステップ7−2]で指定されたエントリの「List of data staging target」の中で指定された目標ファイル又はディレクトリを参照する。次に、DSMSは(ヘッドノード11を介して)、永久記憶30にある目標ファイル又はディレクトリを一時記憶20にコピーする。
[ステップ7−4]コピー処理が完了した後、DSMSは、「Batch job ID」及び「Data staging ID」の値がデータステージング管理テーブル44の中の与えられた値と一致するエントリから、「Predicted time for data staging processing」の値として「0」を、「Data staging status」の値として「Completed」を、設定する。
[ステップ8]データステージイン状態を監視するための処理である。
[ステップ8−1]データステージング管理テーブル44の中で、「Data staging phase」が「stage−in」であり且つ「Data staging status」が「ongoing」であるエントリから、DSMS42は、項目(g)、「List of Data staging target」に記録された目標ファイル又はディレクトリを参照する。これは、サーバにあるデーモンプロセスとして連続的に実行される。次に、この監視処理は、転送されたデータの合計ファイルサイズを計算し、その値を「Size of transferred data」の値に設定する。
[ステップ8−2][ステップ8−1]で指定されたエントリについて、データDSMSは、次の式(3)を計算し、それを「Size of remaining data」属性の値として設定する。
(Size of remaining data[バイト])=(Total size of data staging data[バイト])−(Size of transferred data[バイト]) (3)
[ステップ9]バッチジョブを開始するための処理である。
[ステップ9−1]一時的ファイルシステム20にあるジョブ実行ディレクトリの中で、DSMSは、タイムスタンプファイルを作り、現在日時を最終変更日として設定する。
上述の説明は、図4に従ってデータステージインを参照した。データステージアウトのためのステップの対応するシーケンスは、以下に図5を参照して説明される。
図5では、システム動作の観点から、全体として1つの「フェーズ」のみが存在する。つまり、ジョブの実行は、左側にある「ジョブ終了」により示されるように完了しなければならない。
[ステップ101]データステージアウトの要求である。
[ステップ101−1]バッチジョブが完了すると、表5の以下の情報がデータステージング管理テーブル44に設定され、データステージアウトのためのデータステージングジョブを設定する。以下の表5は、表1と同じ情報を含むが、ここでは省略した形式で提示される。
[表5][ステップ101−1]で生成されるデータステージング管理テーブルの例
Figure 0006686371
(a)ジョブスケジューラにより発行されたJob IDが設定される。
(b)「stage−out」が設定される。
(c)初期値「000」が初期値として設定される。
(d)データステージングはこの段階で未だ開始されていないので、「notstarted」が設定される。
(g)DSMSはバッチジョブスクリプトを調べ、もしあれば目標データステージングファイル又はディレクトリを入れる。
(h)(g)に基づき、DSMSはデ―タステージング目標の合計サイズを計算し、値を設定する。
(i)この段階でデータステージング目標が転送されていないので、「0」が設定される。
(j)この段階でデータステージング目標が転送されていないので、(h)と同じ値が設定される。
[ステップ101]はデータステージング管理テーブル44にエントリを追加するので、これは、データステージインに関して上述した[ステップ4]におけるように、データステージングリスト46も改訂を促す。
[ステップ102]非同期ステージングのための外部ステージアウトプログラムを起動するための処理である。
[ステップ102−1]データステージング管理テーブル44から、「Data staging phase」の値が「stage−out」であるエントリから、DSMS又はより詳細には外部データステージアウト開始プログラムは、「Data staging phase」の値が「stage−out」であり且つ「Data staging status」の値が「notstarted」であるデータステージアウト処理を選択し、次に外部ステージアウトプログラムを起動する。このデータステージアウトプログラムは、「Batch job ID」及び「Data staging ID」のパラメータにより起動される。
[ステップ103]内部ステージアウトプログラム。
[ステップ103−1]与えられたパラメータから、内部ステージアウトプログラム(又は開始プログラム)は、「Batch job ID」及び「Data staging ID」を取得する。
[ステップ103−2]データステージング管理テーブル44から、DSMS42は、「Batch job ID」及び「Data staging ID」が与えられたパラメータに一致するエントリの「Data staging status」の値として「ongoing」を設定する。
[ステップ103−3]DSMSは、[ステップ103−2]で指定されたエントリの「Data staging target」の中で指定された目標ファイル又はディレクトリを参照する。
[ステップ103−4]DSMSは、タイムスタンプファイルの中で指定された日の後にのみ変更される、[ステップ103−3]で指定されたファイル又はディレクトリを、一時記憶20から永久記憶30へコピーする。
[ステップ103−5]コピーが完了した後、DSMS42は、「Batch job ID」及び「Data staging ID」がデータステージング管理テーブル44の中の与えられた値と一致するエントリについて、「Predicted time for data staging processing」の値として「0」を、「Data staging status」の値として「Completed」を、設定する。
[ステップ104]データステージアウト状態を監視するための処理である。
[ステップ104−1]データステージング管理テーブル44の中で、「Data staging type」の値が「stage−out」であり且つ「Data staging status」の値が「ongoing」であるエントリから、DSMSは、テーブル44の中の項目(g)、「List of Data staging target」から目標ファイル又はディレクトリを参照する。次に、この処理は、転送されたデータ(つまり、今までに転送されたデータ)の合計ファイルサイズを計算し、その数値を「Size of transferred data」の値に設定する。
[ステップ104−2][ステップ104−1]で指定されたエントリについて、DSMSは、データステージインで用いられた式(3)を計算し、それを「Size of remaining data」の値に設定する。
(Size of remaining data[バイト])=(Total size of data staging target[バイト])−(Size of transferred data[バイト]) (3)
データステージングジョブが完了すると(残り0バイト)、ジョブは、データステージングリスト46から削除できる。
これは、データステージアウト処理の説明を完了する。
したがって、纏めると、本発明の実施形態は、HPCシステムにおいてバッチジョブを実行するとき、データステージング技術を提供し、同期及び非同期データステージング処理を結合する。HPCシステムのヘッドノードに追加されたプリプロセッサ110aでは、データステージインのためのソースファイルとしての少なくとも1つの目標ファイル、及びデータステージアウトのための目標ファイルは、共に永久記憶30の中に保持され、例えばユーザワークステーション1において入力されたバッチジョブスクリプト2を分析することにより識別される。ファイルに含まれるデータの量から、一時記憶20へのデータステージイン及び一時記憶20からのデータステージアウトのために必要な時間が推定される。データステージインは、推定した時間に基づき非同期又は同期として設定され、データステージアウトは非同期として扱われる。各非同期データステージング処理は、更に、推定所要時間に依存して短期又は長期として分類される。各データステージング処理は、データステージング管理テーブル44に記録される。ソースファイルが変更される場合、インクリメンタルデータステージング処理がテーブルに追加される。関連するデータ量及び許容時間に依存して、データステージングジョブは、並列に実行するよう設定されても良い。或いは、データステージングジョブはキューイングされても良い。永久記憶30からのソースファイルのデータステージインが実行され、データステージング管理テーブル44の中のデータステージング処理の進捗を監視する。リソースは、データステージインが完了するのを待たずに、コンピューティングノード11を用いてバッチジョブを実行するために割り当てられる。バッチジョブが実行され、一時記憶20の中に結果を生じる。そして、ヘッドノード11におけるポストプロセッサ110bの支援により、データステージアウトが実行されて、結果を永久記憶30の中の目標ファイルへ転送する。
本発明の範囲内で種々の変更が可能である。
上述の実施形態では1つのステップシーケンスが記載されたが、これは必ずしも唯一の可能なシーケンスではなく、全体的な効果が等価である限り、動作は異なる順序で実行されても良い。
上述の実施形態では、データステージイン及びデータステージアウトのための外部及び内部開始プログラムは、管理サーバ40で実行する。しかしながら、外部及び内部開始プログラム若しくはプログラムを要求するとして記載された動作は、通常、コンピューティングシステムの中のどこでも実行され得る。
上述の開始プログラムはデータステージイン又はデータステージアウトプログラムと共に動作するとして記載されたが、これらの機能は結合され得る。つまり、開始プログラムは、場合によっては、それ自体がステージイン又はステージアウトを実行しても良い。
同様に、上述の実施形態では、DSMS42は、ヘッドノード11及びコンピューティングノード12とは別個にあるサーバ40で実行するとして記載された。しかしながら、これは必須ではなく、DSMSはヘッドノード11に、コンピューティングノード12に、又はHPCシステム10の内部若しくは外部にある任意の他のノードに、実装されても良い。さらに、DSMSは、複数のこのようなノードの間で分散されても良い。別個のサーバ40の使用は、耐障害性及び回復力の観点から好ましい。
同期及び非同期データステージングを結合することにより、本発明の実施形態は、バッチジョブを直ぐに実行でき、コンピューティングリソースの非効率な使用を回避する。
1 ワークステーション
10 HPCシステム
11 ヘッドノード
110 ジョブスケジューラ
110a プリプロセッサ
110b ポストプロセッサ
12 コンピューティングノード
20 一時記憶
22 入力
23 出力
30 永久記憶
32 入力
33 出力
40 データステージング管理サーバ
42 データステージング管理システム(DSMS)
44 データステージング管理テーブル
46 データステージングリスト
5 ネットワーク

Claims (13)

  1. コンピューティングシステムにおいてバッチジョブを実行するときデータステージングを管理する方法であって、各々のバッチジョブについて、
    データステージインのための少なくとも1つのソースファイル及びデータステージアウトのための少なくとも1つの目標ファイルを識別するステップと、
    データステージイン及びデータステージアウトで転送されるべきデータの量を決定し、前記のデータ転送を完了するための所要時間を推定するステップと、
    前記バッチジョブの第1のデータステージング処理として、前記の推定した所要時間を閾値と比較することにより非同期又は同期データステージインを設定し、前記バッチジョブの第2のデータステージング処理として、非同期データステージアウトを設定するステップと、
    前記ソースファイルからのデータステージインを実行し、前記データステージインを完了するための残り時間が前記閾値の範囲内になると前記バッチジョブを実行するためにリソースを割り当てるステップと、
    前記バッチジョブを実行して結果を生成するステップと、
    前記目標ファイルへの前記結果のデータステージアウトを実行するステップと、
    を有する方法。
  2. 前記方法は、前記設定するステップの後に、
    データステージインの前記推定した所要時間を第2の閾値と更に比較することにより、前記第1のデータステージング処理を非同期短期又は非同期長期データステージインとして分類するステップと、
    前記非同期短期データステージインとして分類されたデータステージング処理をデータステージングリストの中で非同期短期データステージングとして1列に並べるステップと、
    前記非同期長期データステージインとして分類されたデータステージング処理を前記データステージングリストの中で非同期長期データステージングとして1列に並べるステップと、
    を更に有し、
    前記生成するステップは、
    前記データステージングリストに基づき、前記バッチジョブを実行して結果を生成する、請求項1に記載の方法。
  3. 前記データステージングリストの中のデータステージング処理の予測時間の和、又は前記コンピューティングシステムの最大許容値のうちの大きい方を、データステージイン及び/又はデータステージアウトの最大時間として設定するステップと、
    前記データステージングリストの中のデータステージング処理の予測時間の和を前記最大時間で除算することによりデータステージイン又はデータステージアウトの多重度を計算するステップと、
    前記多重度に等しい数のデータステージング処理を有し、複数のバッチジョブのデータステージイン又はデータステージアウトを同時に実行するステップと、
    を更に有する請求項2に記載の方法。
  4. 前記設定するステップは、各データステージング処理及び各々の状態を記録するデータステージング管理テーブルを形成するステップを有する、請求項1乃至3のいずれか一項に記載の方法。
  5. データステージインを実行している間、前記ソースファイルがデータステージインの開始から変更されたか否かを調べ、変更された場合、追加データステージング処理として前記テーブルにインクリメンタルデータステージインを設定するステップ、
    を更に有する請求項4に記載の方法。
  6. 前記データステージング管理テーブルは、データステージング処理の各々について、
    前記データステージング処理が設定される前記バッチジョブの識別子と、
    前記データステージング処理がデータステージインかデータステージアウトかの指示と、
    場合によっては各々のソースファイル又は目標ファイルの位置と、
    転送されるべきデータの量と、
    を含む初期情報を有する、請求項4又は5に記載の方法。
  7. 前記初期情報は、前記識別するステップ及び推定するステップを実行するためにバッチジョブスクリプトを分析することにより得られる、請求項6に記載の方法。
  8. 前記データステージング管理テーブルは、データステージング処理の各々について、
    前記データステージング処理がインクリメンタルデータステージインか否かの指示と、
    前記データステージング処理が開始していない、実行中である、又は完了したかと、
    データステージング処理の開始時間と、
    データステージング処理の終了時間と、
    今までに転送されたデータ量及び/又は転送されるべき残りデータ量と、
    前記データステージング処理のための前記推定した所要時間と、
    を含む更なる情報を有する、請求項6に記載の方法。
  9. 前記データステージング管理テーブルに基づき、複数のバッチジョブのデータステージイン又はデータステージアウトをスケジューリングするためにデータステージングリストを構築するステップと、
    を更に有する請求項4乃至8のいずれか一項に記載の方法。
  10. バッチジョブを実行するコンピュータシステムにおいてデータステージングを管理するデータステージングマネジャであって、前記データステージングマネジャは、各々のバッチジョブについて、
    データステージインのための少なくとも1つのソースファイル及びデータステージアウトのための少なくとも1つの目標ファイルを識別し、
    データステージイン及びデータステージアウトで転送されるべきデータの量を決定し、前記のデータ転送を完了するための所要時間を推定し、
    前記バッチジョブの第1のデータステージング処理として、前記の推定した所要時間を閾値と比較することにより非同期又は同期データステージインを設定し、前記バッチジョブの第2のデータステージング処理として、非同期データステージアウトを設定し、
    前記ソースファイルからのデータステージインを実行し、前記データステージインを完了するための残り時間が前記閾値の範囲内になると
    前記バッチジョブへのリソースを割り当て及び前記バッチジョブの実行を開始するために、前記コンピュータシステムのジョブスケジューラと通信し、
    前記バッチジョブを実行して結果を生成し、
    前記目標ファイルへの前記結果のデータステージアウトを実行する、
    よう構成されるデータステージングマネジャ。
  11. 前記コンピュータシステムの前記ジョブスケジューラにインストールされたプリプロセッサ及びポストプロセッサに結合されるデータステージング管理サーバを有し、前記プリプロセッサは前記ジョブスケジューラにより受信されたバッチジョブスクリプトを分析するよう構成される、請求項10に記載のデータステージングマネジャ。
  12. 前記データステージング管理サーバは、データステージング管理テーブルを有し、該データステージング管理テーブルは、データステージング処理の各々について、
    前記データステージング処理が設定される前記バッチジョブの識別子と、
    前記データステージング処理がデータステージインか又はデータステージアウトかの指示と、
    場合によっては、各々のソースファイル又は目標ファイルの位置と、
    転送すべきデータ量と、
    前記データステージング処理がインクリメンタルデータステージインか否かの指示と、
    前記データステージング処理が開始していない、実行中である、又は完了したかと、
    データステージング処理の開始時間と、
    データステージング処理の終了時間と、
    今までに転送されたデータの量及び/又は転送されるべき残りデータ量と、
    前記推定した所要時間と、
    を記録する、請求項11に記載のデータステージングマネジャ。
  13. コンピュータシステムの中のサーバにより実行されると、請求項1乃至9のいずれか一項に記載の方法を実行するコンピュータ可読命令を含むコンピュータプログラム。
JP2015213421A 2014-11-06 2015-10-29 データステージング管理システム Active JP6686371B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14192070.2A EP3018581B1 (en) 2014-11-06 2014-11-06 Data staging management system
EP14192070.2 2014-11-06

Publications (2)

Publication Number Publication Date
JP2016091555A JP2016091555A (ja) 2016-05-23
JP6686371B2 true JP6686371B2 (ja) 2020-04-22

Family

ID=51897121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015213421A Active JP6686371B2 (ja) 2014-11-06 2015-10-29 データステージング管理システム

Country Status (3)

Country Link
US (1) US10013288B2 (ja)
EP (1) EP3018581B1 (ja)
JP (1) JP6686371B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450970B (zh) * 2016-05-30 2020-07-03 京瓷办公信息系统株式会社 能够根据处理器的利用优先级来利用硬件的电子设备
US10503718B2 (en) * 2016-07-06 2019-12-10 Micro Focus Llc Parallel transfers of electronic data
CN107784016B (zh) * 2016-08-30 2019-02-15 北京京东尚科信息技术有限公司 数据同步控制装置和数据同步系统及方法
JP6799501B2 (ja) 2017-06-06 2020-12-16 株式会社日立製作所 計算機システム及びデータの分析方法
CN112685167A (zh) * 2019-10-17 2021-04-20 伊姆西Ip控股有限责任公司 资源使用方法、电子设备和计算机程序产品
CN112906368B (zh) * 2021-02-19 2022-09-02 北京百度网讯科技有限公司 行业文本增量方法、相关装置及计算机程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2849487B2 (ja) * 1991-03-19 1999-01-20 株式会社日立製作所 ステージング方法
JPH0612360A (ja) * 1992-06-26 1994-01-21 Nec Corp 拡張記憶装置の入出力制御方式
JPH0675785A (ja) * 1992-06-29 1994-03-18 Fujitsu Ltd プレステージング処理方法、バッファ管理方法及びファイルシステム
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7448022B1 (en) * 2004-02-10 2008-11-04 Prasad Ram Dynamic software composition in a component-based software system
US7673305B2 (en) * 2006-10-23 2010-03-02 Hewlett-Packard Development Company, L.P. System and method of expediting certain jobs in a computer processing system
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US20100299447A1 (en) * 2009-05-25 2010-11-25 Nilesh Anant Salvi Data Replication
US8578289B2 (en) * 2010-01-28 2013-11-05 Ebay Inc. Application module for managing jobs asynchronously
JP5648449B2 (ja) * 2010-11-30 2015-01-07 富士ゼロックス株式会社 印刷文書処理システム、キャッシュ装置及びプログラム
JP5452736B2 (ja) * 2011-01-31 2014-03-26 三菱電機株式会社 メモリコントローラ及びメモリアクセス方法
JP5900088B2 (ja) * 2012-03-27 2016-04-06 富士通株式会社 並列計算機、並列計算機の制御方法及び制御プログラム
US8984125B2 (en) * 2012-08-16 2015-03-17 Fujitsu Limited Computer program, method, and information processing apparatus for analyzing performance of computer system
US9411657B2 (en) * 2012-11-09 2016-08-09 Hewlett Packard Enterprise Development Lp Load-balanced sparse array processing
US9323588B2 (en) * 2013-03-14 2016-04-26 Comcast Cable Communications, Llc Service platform architecture

Also Published As

Publication number Publication date
US10013288B2 (en) 2018-07-03
EP3018581A1 (en) 2016-05-11
EP3018581B1 (en) 2017-03-08
JP2016091555A (ja) 2016-05-23
US20160132357A1 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
JP6686371B2 (ja) データステージング管理システム
US20190324819A1 (en) Distributed-system task assignment method and apparatus
EP2742426B1 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US8701108B2 (en) Apparatus and method for controlling live-migrations of a plurality of virtual machines
CN108304260B (zh) 一种基于高性能云计算的虚拟化作业调度系统及其实现方法
US8893133B2 (en) Dynamic test scheduling by ordering tasks for performance based on similarities between the tasks
US20170277556A1 (en) Distribution system, computer, and arrangement method for virtual machine
US9112750B2 (en) Job management server and job management method
Pastorelli et al. HFSP: size-based scheduling for Hadoop
US10310900B2 (en) Operating programs on a computer cluster
WO2012144985A1 (en) Scheduling map and reduce tasks of jobs for execution according to performance goals
JP2014241020A (ja) 運用計画立案支援システム及び方法
JP2020535559A5 (ja)
CN111399970B (zh) 一种预留资源管理方法、装置和存储介质
JPWO2007072544A1 (ja) 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム
JP2009176097A (ja) サービス管理装置及びプログラム
WO2016061935A1 (zh) 一种资源调度方法、装置及计算机存储介质
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
US20160019090A1 (en) Data processing control method, computer-readable recording medium, and data processing control device
CN110661842A (zh) 一种资源的调度管理方法、电子设备和存储介质
US10970143B1 (en) Event action management mechanism
JP2017162209A (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
WO2013114830A1 (ja) プロセス予測実行装置及びプロセス予測実行方法
WO2020031675A1 (ja) スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200316

R150 Certificate of patent or registration of utility model

Ref document number: 6686371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150