(57)【要約】【課題】ジョブ処理の効率化を図る。【解決手段】取得部４０が取得したジョブの実行命令に基づいて、スケジューリング部４２がジョブを複数の計算ノードのいずれかに割り当て、ステージイン処理部４４が割り当てた計算ノードに対して各ジョブの実行に用いる共通ステージインファイルと個別ステージインファイルを転送し、ジョブ処理指示部４５がジョブの実行指示を出す。そして、削除指示部４８は、実行が完了したジョブの共通ステージインファイルと次に同一の計算ノードで実行するジョブの共通ステージインファイルとが一致する場合、及び実行が完了したジョブの共通ステージインファイルを同一の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、計算ノードに対して共通ステージインファイルの削除指示を出す。【選択図】図３
2014006657.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得し、
前記取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出し、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す、処理をコンピュータに実行させるジョブ管理プログラム。
【請求項２】
前記削除する処理では、前記所定の計算ノードにおいて実行されているジョブの実行が完了したときに、各計算ノードに割り当てられた各ジョブを確認することを特徴とする請求項１に記載のジョブ管理プログラム。
【請求項３】
前記指示を出す処理では、所定の計算ノードに対してジョブの実行指示を出す場合に、当該ジョブの共通データが、前記所定の計算ノードで直前に実行されていたジョブの共通データ又は現在実行されているジョブの共通データと同一である場合には、前記実行指示を出すジョブの共通データを前記所定の計算ノードに転送しないことを特徴とする請求項１又は２に記載のジョブ管理プログラム。
【請求項４】
ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得工程と、
前記取得工程で取得されたジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示工程と、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示工程と、をコンピュータが実行するジョブ管理方法。
【請求項５】
ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得部と、
前記取得部が取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示部と、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示部と、を備えるジョブ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置に関する。
【背景技術】
【０００２】
従来より、複数のコンピュータ（計算ノード）を並列に実行させるためのジョブ管理装置がある。ジョブ管理装置は、ユーザによってジョブが入力されると、当該ジョブを計算ノードのいずれかに割り当てる（スケジューリング）。そして、ジョブ管理装置が、ジョブ処理を実行する計算ノードの記憶領域に対してジョブ及び当該ジョブで利用するデータを転送することで、計算ノードにおいてジョブが実行され、ジョブの結果がユーザ（端末）に対して出力される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−４０１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ジョブの中には、大規模ＤＢに対する処理を行うジョブも存在する。現状においては、ジョブ管理装置はジョブをジョブ単位で管理しているため、ジョブ毎に計算ノードの記憶領域に大規模ＤＢを転送する必要がある。すなわち、同一計算ノードで一のジョブと他のジョブとを実行する場合、ジョブ管理装置は、一のジョブが終了した段階で大規模ＤＢを計算ノードの記憶領域から一旦削除し、他のジョブを実行する際に当該他のジョブで利用する大規模ＤＢを計算ノードの記憶領域に再度格納することとしている。この場合、大規模ＤＢは数百ＧＢに及ぶこともあるため、大規模ＤＢを計算ノードの記憶領域に格納するために多大な時間を要していた。
【０００５】
なお、特許文献１には、あるプログラムが過去に使用したデータがキャッシュに残っている場合に、当該データを別のプログラムが使用できるのであれば、当該データを使用する点について開示されている。しかしながら、上記ジョブ管理装置では、計算ノードの記憶領域のデータをジョブ終了ごとに削除してしまうため、当該ジョブ管理装置に特許文献１の技術を適用することは困難である。
【０００６】
１つの側面では、本発明は、効率的なジョブ処理を行うことが可能なジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書に記載のジョブ管理プログラムは、ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得し、前記取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出し、所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す、処理をコンピュータに実行させるジョブ管理プログラムである。
【０００８】
本明細書に記載のジョブ管理方法は、ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得工程と、前記取得工程で取得されたジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示工程と、所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示工程と、をコンピュータが実行するジョブ管理方法である。
【０００９】
本明細書に記載のジョブ管理装置は、ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得部と、前記取得部が取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示部と、所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示部と、を備えている。
【発明の効果】
【００１０】
本実施例に記載のジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置は、効率的なジョブ処理を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る情報処理システムの構成を概略的に示す図である。
【図２】図２（ａ）は、ログインノードのハードウェア構成図であり、図２（ｂ）は、ジョブ管理ノードのハードウェア構成図である。
【図３】ジョブ管理ノードの機能ブロック図である。
【図４】図４（ａ）は、一実施形態において用いられるジョブスクリプトの一例を示す図であり、図４（ｂ）は、従来のジョブスクリプトの一例を示す図である。
【図５】図５（ａ）は、スケジューリングテーブルを示す図であり、図５（ｂ）は、図５（ａ）のスケジューリングテーブルに基づいた各計算ノードにおけるジョブの処理状態の一例を示す図である。
【図６】ジョブ管理ノードの処理を示すフローチャート（その１）である。
【図７】ジョブ管理ノードの処理を示すフローチャート（その２）である。
【図８】図８（ａ）〜図８（ｃ）は、計算ノードの処理を示すフローチャート（その１〜その３）である。
【図９】図９（ａ），図９（ｂ）は、計算ノードの処理を示すフローチャート（その４、その５）である。
【図１０】一実施形態における共通ステージインファイルの転送の要否、削除の要否を纏めた表である。
【発明を実施するための形態】
【００１２】
以下、一実施形態に係る情報処理システムについて、図１〜図１０に基づいて詳細に説明する。
【００１３】
図１には、一実施形態に係る情報処理システム１００の構成が概略的に示されている。情報処理システム１００は、一例として大規模なスーパーコンピュータシステムであり、複数のユーザ端末１０と、大規模共有ファイルシステム８０と、情報処理装置２０と、を備える。ユーザ端末１０、大規模共有ファイルシステム８０、情報処理装置２０は、ネットワーク７０に接続されている。
【００１４】
ユーザ端末１０は、ユーザが各種操作を行う端末であり、情報処理装置２０（ログインノード２２）へのログインを行ったり、ユーザが記述したジョブ実行命令（ジョブスクリプト）を情報処理装置２０に送信したりする。
【００１５】
大規模共有ファイルシステム８０は、情報処理装置２０（後述するログインノード２２やジョブ管理ノード２４）が利用するファイルシステムである。
【００１６】
情報処理装置２０は、ログインノード２２と、ジョブ管理装置としてのジョブ管理ノード２４と、計算ノード２６1〜２６N（Ｎは２以上の自然数）と、ローカルディスク２８1〜２８Nと、を有する。各ノード２２、２４、２６1〜２６Nは、内部ネットワーク３０に接続されている。
【００１７】
ログインノード２２は、ユーザのログイン処理や、プログラム開発（ソース編集／コンパイルなど）、ジョブ操作（投入／削除など）を実行するノードである。ログインノード２２は、図２（ａ）に示すように、ＣＰＵ９０、ＲＯＭ９２、ＲＡＭ９４、ネットワークインタフェース９６等を含み、各部は、バス９８に接続されている。
【００１８】
ジョブ管理ノード２４は、ジョブ管理（受け付け等）、ジョブスケジューリング（ジョブを割り当てる計算ノードの決定）、ジョブ監視（計算ノード及びジョブの状態監視）を実行するノードである。ジョブ管理ノード２４は、図２（ｂ）に示すように、ＣＰＵ１９０、ＲＯＭ１９２、ＲＡＭ１９４、ネットワークインタフェース１９６、可搬型記憶媒体用ドライブ１９９等を含み、各部は、バス１９８に接続されている。ジョブ管理ノード２４では、ＣＰＵ１９０が、ＲＯＭ１９２等に格納されているプログラム（ジョブ管理プログラム）、或いは可搬型記憶媒体用ドライブ１９９が可搬型記憶媒体１９１から読み取ったプログラム（ジョブ管理プログラム）を実行することにより、図３の各部の機能が実現される。
【００１９】
図３には、ジョブ管理ノード２４の機能ブロック図が示されている。図３に示すように、ジョブ管理ノード２４は、ＣＰＵ１９０がプログラムを実行することで、取得部４０、スケジューリング部４２、ステージイン処理部４４、ジョブ処理指示部４５、ステージアウト処理部４６、及び削除指示部４８、としての機能を実現する。
【００２０】
取得部４０は、ユーザ端末１０からログインノード２２に対して入力されるジョブ（ジョブスクリプト）をログインノード２２から取得する。図４（ａ）には、ジョブスクリプトの一例が示されている。図４（ａ）に示すように、ジョブスクリプトでは、「STDIN」において個別ステージインファイル（各ジョブ単独で利用するファイル）が指定されている。また、「STDIN_COMMON」において共通ステージインファイル（他のジョブと共通利用するファイル）が指定されている。また、図４（ａ）では、必要なＣＰＵ数として「６」が指定されている。なお、図４（ｂ）には、従来のジョブスクリプトが示されているが、当該従来のジョブスクリプトでは、共通ステージインファイル（STDIN_COMMON）は指定されていない。
【００２１】
図３に戻り、スケジューリング部４２は、計算ノード２６1〜２６Nの処理能力（ＣＰＵ数等）や負荷分散の観点等に基づいて、取得部４０が取得したジョブを処理させる計算ノード２６を決定する処理（スケジューリング）を行う。ここで、スケジューリング部４２がスケジューリングした結果の一例が、図５（ａ）のスケジューリングテーブルに示されている。図５（ａ）のスケジューリングテーブルは、「ケース番号」と、「ジョブキュー」と、「共通ステージインファイル」と、「割当先計算ノード」の各フィールドを有する。「ケース番号」のフィールドには、通し番号が入力される。「ジョブキュー」のフィールドには、ジョブの識別子（ＩＤ）が入力される。「共通ステージインファイル」のフィールドには、各ジョブで用いる共通ステージインファイルの識別子が入力される。「割当先計算ノード」のフィールドには、スケジューリングの結果、各ジョブが割り当てられた計算ノードの情報が入力される。なお、このスケジューリングの結果、本実施形態では、図５（ｂ）に示すように、計算ノード（compute-1）では、Job1とJob2が並行処理され、計算ノード（compute-2）では、Job3とJob5が連続して処理され、計算ノード（compute-5）では、Job4が単独で処理されるものとする。
【００２２】
ステージイン処理部４４は、図５（ａ）のスケジューリングテーブルと図４（ａ）のジョブスクリプトとに基づいて、ステージイン処理を実行する。すなわち、ステージイン処理部４４は、ジョブ及び当該ジョブで利用する個別ステージインファイルと共通ステージインファイル（大規模共有ファイルシステム８０に格納されている）とを割り当てられた計算ノードのローカルディスクに対して転送する（ファイルステージングと呼ばれる）。なお、ステージイン処理部４４は、計算ノードのローカルディスクにジョブで用いる共通ステージインファイルと同一の共通ステージインファイルが格納されている場合には、当該共通ステージインファイルの転送は行わないものとする。
【００２３】
ジョブ処理指示部４５は、ステージイン処理を行った計算ノードに対してジョブ処理の指示を出す。
【００２４】
ステージアウト処理部４６は、ジョブ処理を実行した計算ノードに対してステージアウト処理を実行するよう指示を出す。ここで、ステージアウト処理とは、ジョブ処理の結果（出力ファイル）をローカルディスクからユーザ端末１０に対して転送する処理を意味する。
【００２５】
削除指示部４８は、ステージアウト処理が完了したジョブの個別ステージインファイルをローカルディスクから削除する。また、削除指示部４８は、スケジューリングテーブル（図５（ａ））を参照して、ステージアウト処理が完了したジョブの共通ステージインファイルをローカルディスクから削除すべきかを判断し、判断結果に基づいた処理を実行する。なお、共通ステージインファイルを削除するかしないかの判断の詳細については、後述する。
【００２６】
図１に戻り、計算ノード２６1〜２６Nは、ジョブ管理ノード２４の指示の下、ジョブ（ジョブスクリプト）を実行するノードである。計算ノード２６1〜２６Nは、複数のＣＰＵを有しており、各ＣＰＵが、ジョブ管理ノード２４の指示に従った処理を実行する。
【００２７】
ローカルディスク２８1〜２８Nは、計算ノード２６1〜２６Nがジョブ実行に使用するデータを格納するファイルストア領域として機能する。なお、ローカルディスク２８1〜２８Nには、ジョブ管理ノード２４によって大規模共有ファイルシステム８０からデータ（個別ステージインファイル、共通ステージインファイル）が転送される。なお、以下においては、計算ノード２６1〜２６N及びローカルディスク２８1〜２８Nのいずれかを指す場合には、「計算ノード２６」、「ローカルディスク２８」と表記するものとする。
【００２８】
次に、本実施形態におけるジョブ管理ノード２４と計算ノード２６の処理について、図６〜図９のフローチャートに沿って詳細に説明する。
【００２９】
図６の処理では、まず、ステップＳ１０において、取得部４０が、ジョブ（ジョブスクリプト）を受け付けるまで待機する。そして、取得部４０がジョブ（ジョブスクリプト）を受け付ける（取得する）と、ステップＳ１２に移行し、スケジューリング部４２は、スケジューリング処理を実行する。このスケジューリング処理により、ジョブが割り当てられる計算ノード２６が決定する。なお、ここでは、ジョブスクリプトを投入したユーザが「Ａ」であり、投入されたジョブのジョブＩＤが「１２３４５」である場合について説明する。
【００３０】
次いで、ステップＳ１４では、ステージイン処理部４４が、ジョブ実行を開始する。次いで、ステップＳ１６では、ステージイン処理部４４が、共通ステージイン転送処理を開始する。共通ステージイン処理では、まず、ステップＳ１８において、ステージイン処理部４４が、ジョブスクリプトにおいて共通ステージインファイルの指定（STDIN_COMMON）があるか否かを判断する。ここでの判断が否定された場合には、ステップＳ３２に移行する（共通ステージイン処理を行わない）が、判断が肯定された場合には、ステップＳ２０に移行する。
【００３１】
ステップＳ２０に移行した場合、ステージイン処理部４４は、ジョブスクリプトにおいて指定されている共通ステージインファイルが、他のジョブにおいて同一の計算ノードに対して転送中であるか否かを判断する。ここでの判断が肯定された場合には、ステップＳ２２に移行する。ステップＳ２２に移行した場合、ステージイン処理部４４は、当該他のジョブに関する共通ステージインファイル転送処理完了通知（ステップＳ３０参照）があったか否かを判断する。ここでの判断が否定された場合には、ステップＳ２０に戻るが、判断が肯定された場合には、ステップＳ３２に移行する（共通ステージイン処理を行わない）。
【００３２】
一方、ステップＳ２０の判断が否定された場合には、ステップＳ２４に移行し、ステージイン処理部４４は、共通ステージインファイルを計算ノード２６1〜２６Nのいずれかに対して転送する。なお、共通ステージインファイルの実体は、例えば、/scratch/common/$User/$JOBID(本実施形態では、例えば、/scratch/common/A/12345/commondata.dat)下に配置されるものとする。
【００３３】
次いで、ステップＳ２６では、ステージイン処理部４４は、共通ステージインファイルへのシンボリックリンクを作成する。この場合、前述のように、共通ステージインファイルの実体は/scratch/common/$User/$JOBID下に配置されるので、ジョブが共通ステージインファイルを参照できるようにユーザ指定のパス（/scratch/）にシンボリックリンクを作成する（例えば、/scratch/12345/commondata.dat）。このようにして、ステージイン処理部４４は、共通ステージインファイル転送処理を終了する（ステップＳ２８）。
【００３４】
次いで、ステップＳ３０では、ステージイン処理部４４は、共通ステージイン転送処理完了通知を行う。その後は、ステップＳ３２に移行する。
【００３５】
ステップＳ３２に移行した場合（ステップＳ１８が否定された場合、ステップＳ２２が肯定された場合、又はステップＳ３０を経た場合）、ステージイン処理部４４は、個別ステージイン処理を実行する。この場合、ステージイン処理部４４は、ジョブが割り当てられている計算ノード２６のローカルディスクに対して、個別ステージインファイルを転送する（例えば、/scratch/12345/input.dat）。
【００３６】
次いで、図７のステップＳ３４に移行すると、ジョブ処理指示部４５が、ジョブ処理指示を、スケジューリングテーブル（図５（ａ））で定められている割当先計算ノードに対して出力する。
【００３７】
次いで、ステップＳ３６では、ステージアウト処理部４６が、ステージアウト処理の指示を計算ノード２６に対して出力する。
【００３８】
次いで、ステップＳ３８では、削除指示部４８が、個別ステージインファイルの削除指示を計算ノード２６に対して出力する。次いで、ステップＳ４０では、削除指示部４８が、共通ステージインファイル削除処理を開始する。この場合、削除指示部４８は、ステップＳ４２において、同一の共通ステージインファイルを使用するジョブが、同一の計算ノード２６で実行されているか否かを判断する。ここでの判断が肯定された場合には、図６，図７の全処理を終了する（すなわち、共通ステージインファイルを計算ノード２６のローカルディスクから削除しないようにする）。なお、ステップＳ４２の判断が肯定される場合とは、図５（ｂ）のcompute-1のような場合であり、Job1とJob2が同一の共通ステージインファイル（Data1）を利用しており、かつJob1が完了したときにJob2が実行中である場合である。
【００３９】
一方、ステップＳ４２の判断が否定された場合には、ステップＳ４４に移行し、スケジューリング処理を実行する。この場合、削除指示部４８は、後続ジョブの割当先計算ノードを特定する。
【００４０】
次いで、ステップＳ４６では、削除指示部４８が、後続ジョブが同一計算ノードに割り当てられているか否かを判断する。ここでの判断が否定された場合、すなわち同一計算ノードに後続ジョブが割り当てられていない場合（共通ステージインファイルが直後に使用されない場合）には、ステップＳ５０に移行する。ステップＳ５０では、削除指示部４８は、共通ステージインファイルの削除指示を計算ノード２６に対して出力し、図６，図７の全処理を終了する。
【００４１】
一方、ステップＳ４６の判断が肯定された場合、すなわち、後続ジョブが同一の計算ノードに割り当てられている場合には、ステップＳ４８に移行する。ステップＳ４８では、後続ジョブが同一共通ステージインファイルを使用するか否かを判断する。ここでの判断が肯定された場合には、図６，図７の全処理を終了する（すなわち、共通ステージインファイルを計算ノードのローカルディスクから削除しないようにする）。なお、ステップＳ４８の判断が肯定される場合とは、図５（ｂ）のcompute-2のような場合であり、Job3の処理が完了した直後に同一の共通ステージインファイル（Data2）を使用するJOb5の処理が実行される場合である。
【００４２】
一方、ステップＳ４８の判断が肯定された場合には、ステップＳ５０に移行し、削除指示部４８は、共通ステージインファイルの削除指示を計算ノード２６に対して出力し、図６，図７の全処理を終了する。
【００４３】
以上のように、図６，図７の処理では、ジョブ処理が完了した際に、同一の計算ノードで同一の共通ステージインファイルを使用する他のジョブが実行されている場合、及びジョブ処理が完了した直後に同一の計算ノードで同一の共通ステージインファイルを使用する他のジョブが実行されるような場合に、削除指示部４８は、共通ステージインファイルをローカルディスクから削除しない（ローカルディスク上に残す）ようにしている。このようにすることで、ジョブごとに共通ステージインファイルを転送しなくてもよくなり、ステージイン処理の効率化を図ることができる。なお、共通ステージインファイルの転送の要否、削除の要否を表に纏めたもの（図５（ａ）のスケジューリングテーブルにフィールドを追加したもの）が、図１０に示されている。本実施形態では、図１０に示すように、共通ステージインファイルの転送のフィールド、及び共通ステージインファイルの削除のフィールドが「不要」になっている分だけ処理が効率化されているといえる。
【００４４】
次に、計算ノード２６の処理について、図８（ａ）〜図９（ｂ）に基づいて説明する。なお、図８（ａ）〜図９（ｂ）の各処理は、並行して行われる処理である。また、各処理は一旦終了した場合であっても随時繰り返し実行されるものとする。
【００４５】
（図８（ａ）の処理）
図８（ａ）の処理では、計算ノード２６は、ステップＳ１００において、共通ステージインファイルの転送処理を受け付けるまで（図６のフローチャートにおいてステップＳ２４が行われるまで）待機する。この場合、計算ノード２６は、転送処理を受け付けた段階で、ステップＳ１０２に移行し、共通ステージインファイルの転送処理を実行する。次いで、ステップＳ１０４では、計算ノード２６は、共通ステージインファイル転送処理完了通知をジョブ管理ノード２４及びユーザ端末１０に対して送信し、図８（ａ）の全処理を終了する。
【００４６】
（図８（ｂ）の処理）
図８（ｂ）の処理では、計算ノード２６は、ステップＳ１１０において、ジョブ処理の指示を受け付けるまで（図７のフローチャートにおいてステップＳ３４が行われるまで）待機する。この場合、計算ノード２６は、ジョブ処理の指示を受け付けた段階で、ステップＳ１１２に移行し、ジョブ処理を実行する。次いで、ステップＳ１１４では、計算ノード２６は、ジョブ処理完了通知をジョブ管理ノード２４及びユーザ端末１０に対して送信し、図８（ｂ）の全処理を終了する。
【００４７】
（図８（ｃ）の処理）
図８（ｃ）の処理では、計算ノード２６は、ステップＳ１２０において、ステージアウト処理の指示を受け付けるまで（図７のフローチャートにおいてステップＳ３６が行われるまで）待機する。この場合、計算ノード２６は、ステージアウト処理の指示を受け付けた段階で、ステップＳ１２２に移行し、ステージアウト処理を実行する。次いで、ステップＳ１２４では、計算ノード２６は、ステージアウト処理完了通知をジョブ管理ノード２４及びユーザ端末１０に対して送信し、図８（ｃ）の全処理を終了する。
【００４８】
（図９（ａ）の処理）
図９（ａ）の処理では、計算ノード２６は、ステップＳ１３０において、個別ステージインファイル削除処理の指示を受け付けるまで（図７のフローチャートにおいてステップＳ３８が行われるまで）待機する。この場合、計算ノード２６は、個別ステージインファイル削除処理の指示を受け付けた段階で、ステップＳ１３２に移行し、個別ステージインファイル削除処理を実行する。次いで、ステップＳ１３４では、計算ノード２６は、個別ステージインファイル削除処理完了通知をジョブ管理ノード２４及びユーザ端末１０に対して送信し、図９（ａ）の全処理を終了する。
【００４９】
（図９（ｂ）の処理）
図９（ｂ）の処理では、計算ノード２６は、ステップＳ１４０において、共通ステージインファイル削除処理の指示を受け付けるまで（図７のフローチャートにおいてステップＳ５０が行われるまで）待機する。この場合、計算ノード２６は、共通ステージインファイル削除処理の指示を受け付けた段階で、ステップＳ１４２に移行し、共通ステージインファイル削除処理を実行する。次いで、ステップＳ１４４では、計算ノード２６は、共通ステージインファイル削除処理完了通知をジョブ管理ノード２４及びユーザ端末１０に対して送信し、図９（ｂ）の全処理を終了する。
【００５０】
なお、これまでの説明から明らかなように、スケジューリング部４２、ステージイン処理部４４、及びジョブ処理指示部４５を含んで、実行指示部としての機能が実現されている。
【００５１】
以上、詳細に説明したように、本実施形態によると、取得部４０が取得したジョブの実行命令に基づいて、スケジューリング部４２がジョブを複数の計算ノードのいずれかに割り当て、ステージイン処理部４４が割り当てた計算ノードに対して各ジョブの実行に用いる共通ステージインファイルと個別ステージインファイルを転送し、ジョブ処理指示部４５がジョブの実行指示を出す。そして、削除指示部４８は、実行が完了したジョブの共通ステージインファイルと次に同一の計算ノードで実行するジョブの共通ステージインファイルとが一致している場合（Ｓ４６：肯定、Ｓ４８：肯定）、及び実行が完了したジョブの共通ステージインファイルを同一の計算ノードで実行されている他のジョブの実行に用いている場合（Ｓ４２：肯定）、のいずれにも該当しなければ、計算ノード２６に対して共通ステージインファイルの削除指示を出す。このようにすることで、従来のようにジョブごとにステージイン処理を行い、ジョブが完了するごとにステージインファイルの全てを計算ノードのローカルディスクから削除するような場合と比較して、共通ステージイン処理の回数を減らすことができるため、処理の効率化を図ることができる。また、本実施形態によれば、ジョブのターンアラウンド時間の遅延や、キャッシュ溢れ、Ｉ／Ｏの競合によるシステム自体の性能悪化の発生を抑制することができる。
【００５２】
また、本実施形態によると、削除指示部４８は、ジョブの実行が完了したときにスケジューリングテーブル（図５（ａ））を確認して、後続ジョブの割当先計算ノードを特定するので、共通ステージインファイルの削除指示を適切に行うことが可能である。
【００５３】
また、本実施形態によると、ステージイン処理部４４は、ジョブの共通ステージインファイルが、ジョブに割り当てられた計算ノードで直前に実行されていたジョブの共通ステージインファイル又は現在実行されているジョブの共通ステージインファイルと同一である場合には、共通ステージインファイルを新たに計算ノードに対して転送しないこととしている。これにより、同一の共通ステージイン処理が重複して行われるのを防止することができるので、この点からも、処理の効率化を図ることが可能である。
【００５４】
なお、上記実施形態においては、ジョブのスケジューリングを、ジョブ受付後（Ｓ１２）と、ステージアウト完了後の共通ステージインファイル削除前（Ｓ４４）に行う場合について説明したが、これに限られるものではない。例えば、ジョブ終了後や、ジョブ状態変更後、スケジューリング部４２の設定変更後に、ジョブのスケジューリングを行ってもよいし、定期的にジョブのスケジューリングを行ってもよい。
【００５５】
なお、上記実施形態においては、削除指示部４８は、実行が完了したジョブの共通ステージインファイルと次に同一の計算ノードで実行するジョブの共通ステージインファイルとが一致している場合（Ｓ４６：肯定、Ｓ４８：肯定）、及び実行が完了したジョブの共通ステージインファイルを同一の計算ノードで実行されている他のジョブの実行に用いている場合（Ｓ４２：肯定）、のいずれにも該当しない場合に、共通ステージインファイルを削除する場合について説明したが、これに限られるものではない。例えば、上記２つの場合のうちの一方に該当する場合にのみ、共通ステージインファイルを削除するようにしてもよい。
【００５６】
なお、上記実施形態では、計算ノードが使用するステージインファイルを計算ノードのローカルディスクに転送する場合について説明したが、これに限られるものではない。例えば、計算ノード間で共有されているファイルシステムがある場合には、当該ファイルシステムに対してステージインファイルを転送するようにしてもよい。
【００５７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし搬送波は除く）に記録しておくことができる。
【００５８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００５９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６０】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００６１】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得し、
前記取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出し、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す、処理をコンピュータに実行させるジョブ管理プログラム。
（付記２）  前記削除する処理では、前記所定の計算ノードにおいて実行されているジョブの実行が完了したときに、各計算ノードに割り当てられた各ジョブを確認することを特徴とする付記１に記載のジョブ管理プログラム。
（付記３）  前記指示を出す処理では、所定の計算ノードに対してジョブの実行指示を出す場合に、当該ジョブの共通データが、前記所定の計算ノードで直前に実行されていたジョブの共通データ又は現在実行されているジョブの共通データと同一である場合には、前記実行指示を出すジョブの共通データを前記所定の計算ノードに転送しないことを特徴とする付記１又は２に記載のジョブ管理プログラム。
（付記４）  ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得工程と、
前記取得工程で取得されたジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示工程と、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示工程と、をコンピュータが実行するジョブ管理方法。
（付記５）  前記削除指示工程では、前記所定の計算ノードにおいて実行されているジョブの実行が完了したときに、各計算ノードに割り当てられた各ジョブを確認することを特徴とする付記４に記載のジョブ管理方法。
（付記６）  前記実行指示工程では、所定の計算ノードに対してジョブの実行指示を出す場合に、当該ジョブの共通データが、前記所定の計算ノードで直前に実行されていたジョブの共通データ又は現在実行されているジョブの共通データと同一である場合には、前記実行指示を出すジョブの共通データを前記所定の計算ノードに転送しないことを特徴とする付記４又は５に記載のジョブ管理方法。
（付記７）  ジョブの内容と、当該ジョブで利用する複数のジョブに対応した共通データの情報及び当該共通データと異なる個別データの情報と、が記述されたジョブの実行命令を取得する取得部と、
前記取得部が取得したジョブの実行命令に基づいて、ジョブを複数の計算ノードのいずれかに割り当て、当該割り当てた計算ノードに対して各ジョブの実行に用いる共通データと個別データとを転送して、ジョブの実行指示を出す実行指示部と、
所定の計算ノードにおいて実行が完了したジョブの共通データと次に前記所定の計算ノードで実行するジョブの共通データとが一致する場合、および前記所定の計算ノードにおいて実行が完了したジョブの共通データを前記所定の計算ノードで実行されている他のジョブの実行に用いている場合の少なくともいずれかの場合でなければ、前記所定の計算ノードに前記共通データの削除指示を出す削除指示部と、を備えるジョブ管理装置。
（付記８）
前記削除指示部は、前記所定の計算ノードにおいて実行されているジョブの実行が完了したときに、各計算ノードに割り当てられた各ジョブを確認することを特徴とする付記７に記載のジョブ管理装置。
（付記９）
前記実行指示部は、所定の計算ノードに対してジョブの実行指示を出す場合に、当該ジョブの共通データが、前記所定の計算ノードで直前に実行されていたジョブの共通データ又は現在実行されているジョブの共通データと同一である場合には、前記実行指示を出すジョブの共通データを前記所定の計算ノードに転送しないことを特徴とする付記７又は８に記載のジョブ管理装置。
【符号の説明】
【００６２】
４０  取得部
２６1〜２６N  計算ノード
４２  スケジューリング部（実行指示部の一部）
４４  ステージイン処理部（実行指示部の一部）
４５  ジョブ処理指示部（実行指示部の一部）
４８  削除指示部
２４  ジョブ管理ノード（ジョブ管理装置）
【図１】
2014006657.tif 000003
【図２】
2014006657.tif 000004
【図３】
2014006657.tif 000005
【図４】
2014006657.tif 000006
【図５】
2014006657.tif 000007
【図６】
2014006657.tif 000008
【図７】
2014006657.tif 000009
【図８】
2014006657.tif 000010
【図９】
2014006657.tif 000011
【図１０】
2014006657.tif 000012