(57)【特許請求の範囲】
【請求項１】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と
を含む並列処理支援装置。
【請求項２】
前記決定手段は、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処理対象データファイルを配置すべき計算ノードとして決定する
請求項１記載の並列処理支援装置。
【請求項３】
前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する
請求項１又は２記載の並列処理支援装置。
【請求項４】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と、を含み、
処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
処理対象データのメタデータを格納したメタデータ格納手段と、
メタデータと関連づけられたキーワード群を有するキーワードリストと、
指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と前記キーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出手段と、
抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索する検索手段と、
前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索手段によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定手段と、をさらに含み、
関連データファイルを有する処理対象データファイルが前記判定手段で検知された場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラム生成手段は、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記ファイル生成手段は、前記関連データファイルに対する前記設定ファイルを生成する、
並列処理支援装置。
【請求項５】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成して出力するステップと、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと
をコンピュータに実行させるプログラム。
【請求項６】
前記配置を決定するステップでは、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処理対象データファイルを配置すべき計算ノードとして決定する
請求項５記載のプログラム。
【請求項７】
前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
前記制御プログラムの生成ステップでは、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する
請求項５又は６記載のプログラム。
【請求項８】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成して出力するステップと、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと、をコンピュータに実行させ、
処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と、メタデータと関連づけられたキーワード群を有するキーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出ステップと、
抽出されたキーワードに対応するメタデータを、処理対象データのメタデータを格納したメタデータ格納手段から検索するステップと、
前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索するステップによって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定ステップと、をさらにコンピュータに実行させ、
関連データファイルを有する処理対象データファイルが前記判定ステップで検知された場合に、前記決定するステップでは、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラムを自動的に生成して出力するステップでは、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記設定ファイルを自動的に生成して出力するステップでは、前記関連データファイルに対する前記設定ファイルを生成する、
プログラム。
【請求項９】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成して出力するステップと、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと、
を含む並列処理支援方法。
【請求項１０】
処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成して出力するステップと、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイル
を自動的に生成して出力するステップと、を含み、
処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と、メタデータと関連づけられたキーワード群を有するキーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出ステップと、
抽出されたキーワードに対応するメタデータを、処理対象データのメタデータを格納したメタデータ格納手段から検索するステップと、
前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定ステップと、をさらに含み、
関連データファイルを有する処理対象データファイルが前記判定ステップで検知された場合に、前記決定するステップにおいて、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラムを自動的に生成して出力するステップにおいて、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記設定ファイルを自動的に生成して出力するステップにおいて、前記関連データファイルに対する前記設定ファイルを生成する、
並列処理支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機科学分野において、大規模シミュレーションデータのような大量のデータファイルを処理する技術に関する。
【背景技術】
【０００２】
海洋シミュレーションシステムのような大規模シミュレーションシステムで行われるシミュレーションの結果は、大量のデータファイルから構成される。大量のデータファイルは、サイズにして数十テラバイト以上、ファイル数にして一万個以上になることは珍しくない。一般に、このような大量のデータファイルは、同じ形式で作成されておらず、データの内容に応じた若干異なる形式を有する場合が多い。【０００３】
また、数値シミュレーションでは、一般に、図１６Ａに示すような線分の交点が計算グリッドとして規定され、この計算グリッドに基づいて数値データに対する処理(例えば物理量の計算)が進められる。しかしながら、数値データが持つ物理的な特性や、計算式の都合等の諸事情により、一部の数値データに対する処理(物理量の計算)は、図１６Ｂに示すような異なる計算グリッドに基づいて行われることがしばしばある。【０００４】
ここに、図１６Ａに示された計算グリッド(「第１の計算グリッド」と呼ぶ)に基づいて算出された第１のデータファイルと、図１６Ｂに示された計算グリッド(「第２の計算グリッド」と呼ぶ)に基づいて算出された第２のデータファイルとが存在する場合を仮定する。さらに、第１及び第２のデータファイルから、例えば、東経１２０．１度から１２１．６度までの領域(切り出し範囲)に存するデータを切り出す場合を仮定する。【０００５】
この場合、第１のデータファイルから２つの計算グリッドに対応するデータが切り出され、第２のデータファイルから４つの計算グリッドに対応するデータが切り出される。ところが、第１のデータファイルからも４つの計算グリッドに対応するデータの切り出しが望まれる場合には、上記した切り出し範囲に従って切り出されるデータ(切り出しデータ)は不十分なものとなる。【０００６】
上記したような第１のデータファイルがどのような計算グリッドに基づいて算出されたデータを含んでいるかという、データファイル中のデータの詳細を示すデータを、本明細書では「メタデータ」と呼ぶ。【０００７】
従来では、メタデータをシミュレーションデータから分離して保管したり、ユーザが、処理対象のシミュレーションデータファイル毎に、対応するメタデータを指定入力したりしていた。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
大規模シミュレーションの結果として生成されたシミュレーションデータをシミュレーション後にさらにデータ処理仕様とする場合、それらの大量のデータファイルのそれぞれに対して、ユーザがメタデータを指定入力することは、ユーザに多大な労力を払うことを強いることになる。また、ユーザがメタデータを誤って指定するおそれもあった。【０００９】
また、大量のデータ処理を効率的に行うには並列処理(並列計算)が有効であるが、その並列計算を並列計算機群に実行させるための制御プログラム(スクリプト)を用意する必要がある。従来、スクリプトは、ユーザによって記述されていた。このため、ユーザには並列計算に係るスクリプトの記述知識が要求され、これがシステム利用の簡便性を阻害するとともに、ユーザに労力負担を強いることになっていた。また、スクリプトの記述ミスにより適正な並列計算が実行されないおそれもあった。【００１０】
本発明の目的は、大量のデータファイルに対する処理を簡便に行うことが可能な技術を提供することである。
【課題を解決するための手段】
【００１１】
本発明は、上記目的を達成するため、以下の手段を採用する。【００１２】
すなわち、本発明は、処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノード前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定ファイルを自動的に生成するファイル生成手段と、
を含む並列処理支援装置である。
【００１３】
好ましくは、本発明において、前記決定手段は、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを前記処理対象データファイルを配置すべき計算ノードとして決定する。【００１４】
また、好ましくは、本発明において、前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する。【００１５】
また、好ましくは、本発明は、処理対象データファイル群，この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数，前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と、を含み、
処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
処理対象データのメタデータを格納したメタデータ格納手段と、
メタデータと関連づけられたキーワード群を有するキーワードリストと、
指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と前記キーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出手段と、
抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索する検索手段と、
前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索手段によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定手段と、をさらに含み、
関連データファイルを有する処理対象データファイルが前記判定手段で検知された場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラム生成手段は、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記ファイル生成手段は、前記関連データファイルに対する前記設定ファイルを生成する、ように構成しても良い。
【００１８】
また、本発明は、上記した並列処理支援装置と同様の特徴を有する並列処理支援方法，プログラム，このプログラムを記録した記録媒体として特定することができる。
【発明の効果】
【００１９】
本発明によれば、大量のデータファイルに対する処理を簡便に行うことが可能となる。また、本発明によれば、処理対象データに対するメタデータの指定をユーザが行わなくて済む。
【図面の簡単な説明】
【００２０】
【図１】本発明を適用可能なシミュレーションシステムの構成例を示す図である。
【図２】図１に示した制御用コンピュータの構成例を示す図である。
【図３】図１に示したノードの構成例を示す図である。
【図４】図２に示した処理対象データファイルを格納するファイルデータベースのディレクトリ構造例を示す図である。
【図５】図２に示したメタデータテーブルのデータ構造例を示す図である。
【図６】図２に示した使用及び負荷分散状況テーブルのデータ構造例を示す図である。
【図７】システムのユーザに提供されるユーザインタフェース(指定画面)の表示例を示す図である。
【図８】ユーザインタフェースを用いて入力される並列処理指定情報のファイルの記述例を示す図である。
【図９】並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。
【図１０】並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。
【図１１】並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。
【図１２】メタデータの解析・取得に係るサブルーチンを示すフローチャートである。
【図１３】処理対象データファイルの配置先となるノードの検索及び決定処理のサブルーチンを示すフローチャートである。
【図１４】並列処理プログラム用設定ファイルの記述例を示す図である。
【図１５】並列処理プログラムの実行処理を示すフローチャートである。
【図１６Ａ】処理対象データに対するメタデータとして用意される計算グリッドの例を示す図である。
【図１６Ｂ】処理対象データに対するメタデータとして用意される、図１６Ａの計算グリッドと異なる計算グリッドの例を示す図である。
【符号の説明】
【００２１】
Ｘ・・・並列計算機群
Ｙ・・・制御用のコンピュータ
１，１１・・・ＣＰＵ
２，１２・・・メインメモリ
３，１４・・・外部記憶装置
７・・・入力装置
８・・・表示装置
６，１５・・・通信インタフェース
３１・・・ファイルデータベース
３２・・・メタデータテーブル
３３・・・使用及び負荷分散情報テーブル
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施形態について説明する。実施形態における構成は例示であり、本発明は、実施形態の構成に限定されない。【００２３】
〔シミュレーションシステム〕
図１は、本発明を適用可能なシミュレーションシステムの構成例を示す図である。図１に示す例では、シミュレーションシステムは、並列計算機群Ｘと、並列計算機群Ｘに通信回線(ネットワーク)を介して接続された制御用のコンピュータ(情報処理装置)Ｙとからなる。【００２４】
並列計算機群Ｘは、海洋大循環モデルのような大規模シミュレーションデータを構成する多数のデータファイルに対する並列処理を行う複数の計算ノード(ノード)＃０〜＃ｎ(ｎは自然数)からなる。【００２５】
コンピュータＹは、並列計算機群Ｘでの処理対象となるシミュレーションデータ(処理対象データ)を管理しており、ユーザの操作に応じて、シミュレーションデータを用いた並列処理を並列計算機群Ｘに実行させる場合の制御を行う。【００２６】
シミュレーションシステムのユーザは、コンピュータＹによって提供されるＵＩ(ユーザインタフェース)を通じて、並列計算機群Ｘを用いた大量の処理対象データ(処理対象データ群)の並列処理を実行するための並列処理指定情報を入力する。【００２７】
ここに、並列処理指定情報は、並列処理の対象となる複数のシミュレーションデータファイル(処理対象データファイル群)，処理対象データファイル群に対する並列計算機群Ｙの処理内容(処理種別，処理詳細パラメータ)，並列処理を行う複数のノード(ノード数)，並列処理の結果生成されるファイル(処理済みデータファイル(処理結果ファイル))の保管位置などの指定を含むことができる。【００２８】
コンピュータＹは、入力された並列処理指定情報に基づいて、並列計算機群Ｘに並列処理に係る制御指示を与えるための並列処理用ジョブスクリプト(並列計算機群Ｙの制御用プログラム：以下「スクリプト」と表記することもある)と、並列処理を実行する各ノードが処理対象データファイルを処理する際に参照される並列処理プログラム用設定ファイル(以下「設定ファイル」と表記することもある)とを自動的に生成する。【００２９】
コンピュータＹは、スクリプトの生成過程において、各処理対象データファイルに対するメタデータ(処理対象データの詳細情報)の取得，及び並列計算機群Ｘに対する処理対象データファイル群の配置決定を行う。メタデータ及び配置決定結果は、スクリプトの記述内容に反映される。【００３０】
コンピュータＹは、スクリプトの実行を通じて、処理対象データファイル群を複数のノードへ分散配置(分配)するとともに、これらのノードに対して並列処理プログラム(ジョブ)の実行を指示する。各ノードは、設定ファイルの記述に従って並列処理プログラムを実行し、分配された処理対象データファイルに対する処理を、対応するメタデータに基づいて行う。当該処理を通じて処理結果ファイルが作成される。処理結果ファイルは、並列処理指定情報として指定された保管位置にて保管される。【００３１】
〈コンピュータＹ〉
図２は、コンピュータＹの構成例を示す図である。図２において、コンピュータＹは、バスＢを介して相互に接続されたＣＰＵ１，メインメモリ(ＭＭ：例えばＲＡＭ)２，外部記憶装置(例えばハードディスク)３，入出力インタフェース(Ｉ／Ｆ)４及び５，並びに通信インタフェース６を備えている。【００３２】
Ｉ／Ｆ４には、入力手段としての入力装置(キーボード，ポインティングデバイス(例えばマウス)等)が接続されており、Ｉ／Ｆ５には、出力手段としての表示装置(ディスプレイ)８が接続されている。さらに、通信Ｉ／Ｆ６は、通信回線(ネットワーク)を介して各ノード＃０〜＃ｎに接続されている。【００３３】
外部記憶装置３には、大規模シミュレーションデータを構成する大量のシミュレーションデータファイルを格納したファイルデータベース(ファイルＤＢ)３１と、各データファイルに対応するメタデータ(シミュレーションデータの詳細情報)を格納したメタデータテーブル３２と、処理対象データファイル群を複数のノードに分散配置する場合に参照される各ノードの使用及び負荷分散状況テーブル３３(以下、「状況テーブル３３」と表記)とが格納されている。ファイルＤＢ３１とメタデータテーブル３２とは異なる記憶領域上に作成されている。【００３４】
さらに、外部記憶装置３には、コンピュータＹを、シミュレーションデータやメタデータの管理装置として機能させるとともに、並列計算機群Ｙ(ノード＃０〜＃ｎ)の制御装置として機能させるためのプログラムが格納されている。【００３５】
ＣＰＵ１は、外部記憶装置３に記録されたプログラムをＭＭ２にロードして実行することにより、例えば、次のような機能を実現する。
(１)シミュレーションシステムのユーザに対し、入力装置７及び表示装置８を用いた並列処理指定情報の入力(指定)環境(ＵＩ：ユーザインタフェース)を提供する。
(２)並列処理指定情報に基づいてスクリプト及び設定ファイルを作成する。
(３)スクリプトの作成時において、処理対象としてユーザにより指定された複数のシミュレーションデータファイル(処理対象データファイル群)のそれぞれに対応するメタデータを検索及び取得する。
(４)スクリプトの作成時において、処理対象データファイル群を構成する各処理対象データファイルを処理するノード(処理対象データファイルの配置)を決定する。
(５)処理対象データファイル群、及び処理対象データファイル群の並列処理によって生成される処理結果ファイルの転送制御を行う。【００３６】
なお、ＣＰＵ１が本発明に係る受付手段，決定手段，制御プログラム生成手段，ファイル生成手段，判定手段に相当する。また、ＣＰＵ１は、ファイル識別子の指定を受け付ける受付手段，ファイル識別子からメタデータ検索用のキーワードを抽出する抽出手段，及びキーワードに対応するメタデータを検索する検索手段として機能することができる。また、外部記憶装置３が本発明に係る記憶手段に相当する。また、外部記憶装置３は、検索手段によって検索されるメタデータを格納したメタデータ格納手段として機能する。【００３７】
〈並列計算機群Ｘ〉
並列計算機群Ｘを構成する各ノード＃０〜＃ｎは、同じ構成を有している。図３は、ノードの構成例を示す図である。ノードは、バスＢ１を介して相互に接続されたＣＰＵ１１，メインメモリ１２，計算プロセッサ１３，外部記憶装置(例えばハードディスク)１４，及び通信インタフェース(通信Ｉ／Ｆ)１５を備えている。通信Ｉ／Ｆ１５は、ネットワークを介してコンピュータＹ及び他のノードに接続されている。【００３８】
ノードは、コンピュータＹから転送されてくる処理対象データファイルを通信Ｉ／Ｆ１５で受信し、これを外部記憶装置１４に格納する。また、ノードは、コンピュータＹからの並列処理命令や設定ファイルを通信Ｉ／Ｆ１５を介して受信する。【００３９】
すると、ＣＰＵ１１が、設定ファイルの記述に従って、外部記憶装置３に予め格納されている並列処理プログラムの実行を開始する。処理対象データを用いた計算には計算プロセッサ１３が使用される。計算プロセッサ１３は、外部記憶装置１４に格納された処理対象データファイルをＭＭ１２上に読み出し、これを用いた所定の処理(例えば、データファイル中の所定領域の切り出し、物理量の計算)を実行する。この所定の処理は、メタデータに基づいて実行される。【００４０】
所定の処理によって、処理結果ファイルが生成され、外部記憶装置１４に格納される。外部記憶装置１４に格納された処理結果ファイルは、所定の保管位置に移動(転送)される。【００４１】
ＣＰＵ１１は、設定ファイルに従って、並列処理を実行する並列処理手段として機能する。また、ＣＰＵ１１は、ファイル識別子の指定を受け付ける受付手段，ファイル識別子からメタデータ検索用のキーワードを抽出する抽出手段，及びキーワードに対応するメタデータを検索する検索手段として機能することができる。また、外部記憶装置１４は、検索手段によって検索されるメタデータを格納したメタデータ格納手段として機能する。【００４２】
〈ＤＢ及びテーブルのデータ構造〉
次に、図２に示したファイルＤＢ３１，メタデータテーブル３２，並びに、使用及び負荷状況テーブル(状況テーブル)３３の詳細を説明する。【００４３】
《ファイルＤＢ３１》
ファイルＤＢ３１は、大量のシミュレーションデータファイル(以下、単に「データファイル」と表記することもある)を、ディレクトリ構造を用いて分類及び格納している。【００４４】
図４は、ファイルＤＢ３１のディレクトリ構造の例を示す図である。ファイルＤＢ３１内には、ルートディレクトリ(図４ではディレクトリ“data”)を起点としたディレクトリツリーが形成されており、各階層のディレクトリには、所定のディレクトリ名が付与されている。データファイルは、ディレクトリツリー中の末端に位置するディレクトリ内に格納され、所定のデータファイル名が付与されている。【００４５】
データファイルは、ファイル識別子を用いて識別される。ファイル識別子は、ルートディレクトリから末端のディレクトリまでに至るまでの、ディレクトリツリーの経路(パス)上に位置する各ディレクトリの名称(パス名)と、データファイル名との羅列により表現される。【００４６】
例えば、図４におけるデータファイル名“timeXXX.000.000.dat”を有するデータファイルのファイル識別子は、“/data/experimentA/3D/statisticsA/variableB/timeXXX.000.000”である。このように、ファイル識別子は、データファイルの格納位置情報(ファイルパス)を含んでいる。【００４７】
また、ファイル識別子中のディレクトリ名(“3D”,“statsticsA”，“variableB”等)やデータファイル名(“timeXXX.000.000”)は、データファイル中のデータの詳細(性質等)を示すキーワードとして規定されている。キーワードは、任意の１以上の文字で構成され、ディレクトリ名及びデータファイル名中の、少なくとも１箇所に配置される。但し、ファイル名の拡張子部分にキーワードは設定されない。キーワードは、処理対象データに対応するメタデータを検索するための検索キーとして機能する。【００４８】
なお、データファイルは、必ずしも１つの記憶領域に格納される必要はなく、コンピュータＹの内部又は外部に配置される複数の記憶領域上に分散して格納されていても良い。【００４９】
《メタデータテーブル》
メタデータテーブル３２は、ファイル識別子中のキーワードに対応するメタデータを格納している。図５は、メタデータテーブル３２のデータ構造例を示す図である。【００５０】
図５に示す例では、メタデータテーブル３２は、検索キー(キーワード)と、これに対応するメタデータとを格納した複数のレコードからなる。キーワードは、ユーザにより指定されたデータファイル(処理対象データファイル)のファイル識別子から検索キーとして抽出される。【００５１】
メタデータは、シミュレーションデータ(処理対象データ)の詳細(性質や属性等)を示す情報であり、例えば、処理対象データの物性を示す情報であったり、統計処理や時空間(縦、横、高さ、時間(年月日時))に関する情報であったりする。例えば、図１６Ａや図１６Ｂに示した計算グリッドの情報は、空間に関する情報である。このような計算グリッドの情報を表すキーワードとして、例えば、任意の文字数で表される変数名が適用される。【００５２】
なお、図５では、ファイル識別子に含まれるディレクトリ名の一つが、１つのメタデータに対応する場合を示している。これに代えて、例えば、１つのファイル識別子に含まれる複数のキーワードの組み合わせから１つのメタデータが検索されるように構成しても良い。また、ディレクトリ名やデータファイル名(拡張子を除く)の一部に、キーワードが含まれ、部分一致検索でキーワードがファイル識別子から抽出されるようにしても良い。また、ファイル識別子中のファイルパス部分のみに、キーワードが設定される構成を採用することもできる。【００５３】
《状況テーブル３３》
図６は、状況テーブル３３のデータ構造例を示す図である。状況テーブル３３は、ノード毎に用意された複数の小テーブル３４からなる。各小テーブル３４は、同じデータ構造を有している。小テーブル３４は、ノードの使用が許可されているユーザの識別情報(ユーザＩＤ)と、ユーザが使用可能な当該ノードの外部記憶装置１４の最大サイズ(許可最大容量)と、ユーザが現在使用している外部記憶装置１４の容量(負荷)とを要素(項目)とするレコードの集合で構成されている。各小テーブル３４には、ノード識別子が付与されており、ノード識別子と対応する情報が当該小テーブルに格納される。【００５４】
〈ユーザインタフェース(ＵＩ)〉
図２に示すコンピュータＹにおいて、ＣＰＵ１は、プログラムの実行を通じて、コンピュータＹのユーザに対し、並列処理指定情報の入力環境(ＵＩ)を提供する。【００５５】
ユーザは、ＵＩを用いて、並列処理指定情報の要素(項目)たる、処理対象データファイル群(ファイル識別子)，処理対象データファイル群を処理する複数のノード，処理対象データファイル群に対する処理内容(処理種別及び詳細パラメータ)，処理結果ファイルの保管位置等を指定することができる。【００５６】
図７は、ＵＩとして提供される並列処理指定情報の指定画面の例を示す図である。指定画面は、ＣＰＵ１によるプログラムの実行を通じて、表示装置８のスクリーンに表示される。【００５７】
図７に示す例では、指定画面は、ファイルパス表示欄８１と、ファイルリスト表示欄８２と、コマンド入力欄８３とを備えている。ファイルパス表示欄８１には、ユーザが入力装置７を用いて選択したファイルＤＢ３１内のディレクトリ(ファイルパス)が表示される。【００５８】
また、ファイルリスト表示欄８２には、ファイルパス表示欄８１に表示されたファイルパスに対応するデータファイル(ファイルパス中の末端のディレクトリに格納されたデータファイル)のリスト(ファイルリスト)を表示する。また、コマンド入力欄８３は、処理対象データファイルに対する処理に係るコマンドを入力するために使用される。【００５９】
ユーザは、入力装置７を操作して、ファイルパス表示欄８１に所望のファイルパスを表示させる(ファイルパスを選択する)ことができる。ファイルパスの選択結果に応じて、ファイルリスト表示欄８２の表示内容が変更され、ファイルパスに応じたファイルリストが当該表示欄８２に表示される。【００６０】
ユーザは、入力装置７を用いたカーソル操作で、ファイルリスト表示欄８２に表示されたファイルリストから所望のファイル名をしていすることで、処理対象データファイルのファイル識別子を指定することができる。このとき、カーソル操作を通じて、複数のデータファイルを一時に指定することもできる。このように、ユーザは、ファイルパス表示欄８１及びファイルリスト表示欄８２を用いて、処理対象データファイルのファイル識別子を指定することができる。【００６１】
また、ユーザは、コマンド入力欄８３を用いて、並列処理に使用するノード(ノード数)，処理対象データファイル群に対する処理内容，処理結果ファイルの保管位置等を指定入力することができる。【００６２】
なお、ノード数，処理パラメータ，保管位置の指定に際して、スクリーン上に指定内容の選択肢が表示され、ユーザがカーソル操作で所望の選択肢を選択することにより、これらが指定されるように構成することができる。【００６３】
〈スクリプト及び設定ファイルの生成〉
ユーザが、上述したようなＵＩを用いて並列処理指定情報の各要素を指定し、その指定内容の確定操作を行うと、並列処理指定情報は、所定のフォーマットで記述された並列処理指定情報ファイルとして、外部記憶装置３の所定位置に格納される。【００６４】
図８は、並列処理指定情報ファイルの記述例を示す図である。図８において、並列処理指定情報ファイルは、計算機資源の指定行と、処理詳細(処理内容)の指定行と、処理対象データファイル及びこれに対する処理結果の保管位置の指定行とを含む。【００６５】
計算機資源の指定行(図８の第１行)では、その識別子(“NODE”)と、並列処理に使用するノード数を表す引数(図７の例では“３”)が記述される。【００６６】
また、処理詳細の指定行(図８の第２行)では、その識別子(“PROC”)と、処理種別(“PROC＿A”)と、処理詳細を表す処理パラメータ(“120.0 150.0 20.0 50.0”)を表す引数が記述される。【００６７】
また、処理対象データファイル及び保管位置の指定行(図８の第３及び４行)では、その識別子(“DATA”)と、処理対象データファイルのファイル識別子と、対応する処理結果ファイルの保管位置の識別情報(“xxxxx”や“xxxxy”で図示)とが記述される。当該指定行は、処理対象データファイル毎に作成される。【００６８】
このような記述(並列処理指定情報ファイル)は、ユーザが、ＵＩを用いて、ノード数，処理内容，処理対象データファイル群，保管位置をそれぞれ指定することで、ＣＰＵ１により自動的に作成される。【００６９】
図９，図１０及び図１１は、ＣＰＵ１(図２)によって実行されるスクリプト及び設定ファイル作成処理のメインルーチンの例を示すフローチャートである。当該処理の実行は、例えば、並列処理指定情報ファイルの作成終了や、ユーザからの処理開始指示の入力を契機として、開始される。【００７０】
図９に示す処理が開始されると、最初に、ＣＰＵ１は、初期化処理を行う(ステップＳ００１)。次に、ＣＰＵ１は、外部記憶装置３に格納された並列処理指定情報ファイル(図８)をＭＭ２に読み込む(ステップＳ００２)。【００７１】
次に、ＣＰＵ１は、並列処理指定情報の解析ループ処理を実行する。この解析ループ処理において、ＣＰＵ１は、並列処理指定情報ファイルから指定行を１行ずつ取り出し、取り出した行を解析対象行に設定し、この解析対象行の解析を行う。【００７２】
ＣＰＵ１は、並列処理指定情報ファイルから取り出した解析対象行が、計算機資源の指定行か否かを判定する(ステップＳ００３)。【００７３】
このとき、解析対象行が計算機資源の指定行であれば(Ｓ００３；ＹＥＳ)、ＣＰＵ１は、この解析対象行中の引数(ノード数：図８の例であれば“３”)を並列処理に係る計算機資源パラメータとして決定し、所定位置(ＭＭ２上の所定の作業領域)に保存する(ステップＳ００４)。その後、ＣＰＵ１は、次の指定行を解析対象行に決定し、処理をステップＳ００３に戻す。【００７４】
ステップＳ００３にて、解析対象行が計算機資源の指定行でないと判定されると(Ｓ００３；ＮＯ)、ＣＰＵ１は、解析対象行が処理詳細の指定行であるか否かを判定する(ステップＳ００５)。【００７５】
このとき、解析対象行が処理詳細の指定行であれば(Ｓ００５；ＹＥＳ)、ＣＰＵ１は、この解析対象行中の処理種別指定及び引数(指定された処理パラメータ：図８の例であれば“PROC＿A”(手続きＡ)が処理種別指定に相当し、“120.0 150.0 20.0 50.0”が処理パラメータに相当する)を取り出し、この処理種別及び引数を並列処理に係る処理パラメータとして決定し、所定位置(作業領域)に保存する(ステップＳ００６)。その後、ＣＰＵ１は、次の指定行を解析対象行に決定し、処理をステップＳ００３に戻す。【００７６】
ステップＳ００５にて、解析対象行が処理詳細の指定行でないと判定されると(Ｓ００５；ＮＯ)、ＣＰＵ１は、解析対象行が処理対象データファイル及び保管位置の指定行と判断し、この判断に従って、この解析対象行中のファイル識別子及び保管位置の識別情報を取り出し、所定位置(作業領域)に保存する(Ｓ００７)。【００７７】
上記した解析ループ処理は、並列処理指定情報ファイルの最終行に対する処理が終了すると、終了する。続いて、ＣＰＵ１は、処理を図１０のステップＳ００８に進める。【００７８】
ステップＳ００８では、ＣＰＵ１は、並列処理用ジョブスクリプトのヘッダ部分を出力する。当該ヘッダは、定型文として予め外部記憶装置３の所定位置に格納されている。ヘッダには、設定ファイルの転送命令が含まれる。ステップＳ００８において、処理対象データファイルと、指定された並列処理に使用されるノード数とに基づいて、並列処理に使用されるノードが決定される。各ノード＃０〜＃ｎに対する使用及び負荷状況は、例えば、コンピュータＹのＯＳ(オペレーティングシステム)にて管理されている。ＯＳには、並列処理指定情報ファイル中の処理データファイル数及びノード数が引き渡される。【００７９】
ＯＳは、例えば、ノード＃０〜＃ｎから、ユーザの使用が許可されているノードを抽出し、抽出された複数のノードの使用及び負荷状況やファイル数を考慮して、指定ノード数のノードを選択する。例えば、抽出されたノードから、負荷が少ない順で、指定ノード数のノードを並列処理に使用するノードとして決定する。決定された各ノードの使用及び負荷状況は、状況テーブル３３に小テーブル３４として設定される。これによって、処理対象データファイル群は、ＯＳにより決定された指定ノード数のノードによって並列処理されることになる。【００８０】
なお、状況テーブル３３(図６)に、すべてのノード＃０〜＃ｎに対する小テーブル３４が格納され、ＯＳが小テーブル３４を参照して、負荷の少ない順で、指定ノード数分のノードを選択し、選択されなかったノードに対応する小テーブル３４にマスクがセットされる(参照不可状態にされる)ようにしても良い。【００８１】
続いて、ＣＰＵ１は、処理対象データファイルの解析・処理のループ処理を実行する。当該ループ処理は、ステップＳ００７で得られたファイル識別子(処理対象データファイル)毎に実行される。このループでは、ＣＰＵ１は、最初に、指定された処理対象データファイル群(ステップＳ００７で得られたファイル識別子を持つ処理対象データファイル群)の一つ(解析対象ファイルと呼ぶ)を特定する。続いて、ＣＰＵ１は、この解析対象ファイルのメタデータ解析処理のサブルーチンを起動し(ステップＳ００９)、解析対象ファイルのファイル識別子をサブルーチンに渡す。【００８２】
図１２は、メタデータ解析・取得のサブルーチンの例を示すフローチャートである。図１２において、最初に、ＣＰＵ１は、データファイル指定の入力を受け付ける(ステップＳ１０１)。即ち、ＣＰＵ１は、解析対象ファイルのファイル識別子を受け取る。【００８３】
次に、ＣＰＵ１は、ファイル識別子が、正しい形式を有するか否かを判定する(ステップＳ１０２)。このとき、ファイル識別子が正しい形式を有しない場合(Ｓ１０２；ＮＯ)には、処理が失敗(ＮＧ)であるものとして、スクリプト及び設定ファイル作成処理が終了する。この場合、エラー表示処理が行われ、ユーザにエラーが通知されるようにする構成することができる。【００８４】
これに対し、ファイル識別子が正しい形式である場合(Ｓ１０２；ＹＥＳ)には、ＣＰＵ１は、キーワードの取得ループ処理を開始する。当該ループ処理では、最初に、ＣＰＵ１は、メタデータを表すキーワードがファイル識別子中に含まれているか否かを判定する(Ｓ１０３)。【００８５】
例えば、ＣＰＵ１は、ファイル識別子中のルートディレクトリの次のディレクトリ名を抽出し、このディレクトリ名とメタデータテーブル３２(図５)中のキーワードのリスト(メタデータテーブル３２に格納されたキーワード群)とを照合し、抽出されたディレクトリ名と合致するキーワードを検索する。【００８６】
このとき、キーワードが検索できなかった場合には、ＣＰＵ１は、次のディレクトリ名を抽出し、キーワードリストとの照合を行う。このようにして、ＣＰＵ１は、キーワードの１つと合致するディレクトリ名又はデータファイル名が見つかるまで、上述したようなディレクトリ名又はデータファイル名の抽出処理及びキーワードリストとの照合処理を繰り返す。【００８７】
ＣＰＵ１は、抽出したディレクトリ名又はデータファイル名と合致するキーワードが見つかった場合には(Ｓ１０３；ＹＥＳ)、抽出処理を中断し、キーワードに対応するメタデータをメタデータテーブル３２から取り出して取得する(ステップＳ１０４)。【００８８】
例えば、ファイル識別子“/data/experimentA/3D/statisticsA/variableB/timeXXX.000.000.dat”(図４)に関して、図５に示す格納内容のメタデータテーブル３２を用いて上記した処理が行われた場合、ディレクトリ名“3D”がファイル識別子から抽出され、キーワードリストとの照合が行われた時点で、“3D”に対応するメタデータ“meta01”が、メタデータテーブル３２から取得されることになる。【００８９】
ＣＰＵ１は、メタデータテーブル３２からメタデータを取得すると、当該ファイル識別子について、ディレクトリ名又はデータファイル名の抽出及びキーワードリストとの照合処理を再開する。これによって、例えば、ディレクトリ名“3D”の次のディレクトリ名“statisticsA”をキーワードとして、対応するメタデータ“meta1”がメタデータテーブル３２から取得される。【００９０】
その後、データファイル名を対象とした照合処理が終了した時点(合致するキーワードが検索された場合は、対応するメタデータの取得が終了した時点)で、キーワードの取得ループ処理が終了し(Ｓ１０４；ＮＯ)、図１２に示すサブルーチン(Ｓ００９)が終了し、処理がメインルーチンのステップＳ０１０(図１０)に戻る。【００９１】
このようにして、コンピュータＹは、ユーザが処理対象データのファイル識別子を指定すると、処理対象データに対応するメタデータをファイル識別子に含まれる性質情報(キーワード)を用いて自動的に特定(取得)する。【００９２】
ステップＳ０１０では、ＣＰＵ１は、メタデータの解析を行い、ループ処理で対象となっている処理対象データファイル(解析対象ファイル)の並列処理において、当該解析対象ファイルのみではなく、この解析対象ファイルに関連するデータ(関連データファイル)が必要か否かを判定する。【００９３】
例えば、流体の流速計算が並列処理で実行される場合、速度のＸ成分，Ｙ成分，Ｚ成分が必要である。ここで、ステップＳ０１０での判定処理の対象となっている解析対象ファイルが、速度のＸ成分を示すデータファイルであれば、Ｙ及びＺ成分を示す各データファイルが関連データファイルとして必要となる。【００９４】
ここに、ファイル識別子は、ディレクトリ名又はデータファイル名中にＸ成分，Ｙ成分，Ｚ成分のいずれであるかを示す成分情報を示す文字又は文字列を含むことができる。或る成分(例えばＸ成分)のデータファイルに対応するＹ成分及びＺ成分のデータファイルのファイル識別子は、Ｘ成分のデータファイルのファイル識別子中の成分情報の文字又は文字列の記述を定型的に変更することで作成されている。例えば、ファイル識別子中に含まれた成分情報の文字“Ｘ”を、Ｙ成分やＺ成分を示す文字“Ｙ”や“Ｚ”に置換すれば、対応するＹ成分又はＺ成分のデータファイルのファイル識別子となる。【００９５】
ステップＳ０１０において、ＣＰＵ１は、ステップＳ００９で得られたメタデータの解析を通じて、解析対象ファイルが例えばＸ成分のデータファイルであることが分かった場合には、関連データファイルが必要と判定し(Ｓ０１０；ＹＥＳ)、処理をステップＳ０１１に進める。そうでなければ(Ｓ０１０；ＮＯ)、ＣＰＵ１は、処理をステップＳ０１２に進める。【００９６】
ステップＳ０１１では、ＣＰＵ１は、関連データファイルのファイル識別子を生成する。関連データファイルのファイル識別子は、例えば、上述したように、解析対象ファイルのファイル識別子の一部を変更することで、生成することができる。生成された関連データファイルのファイル識別子は、解析対象ファイルのファイル識別子と一組にして、ＭＭ２上の作業領域に記憶される。【００９７】
なお、作成された関連データファイルのファイル識別子で示されるファイルパス上に実際の関連データファイルが格納されているように、関連データファイルは、ファイルＤＢ３１に格納されている。その後、処理がステップＳ０１２に進む。【００９８】
ステップＳ０１２では、解析対象ファイル(指定データファイル)又は解析対象ファイル及び関連データファイルの配置を決定するサブルーチンを実行する。【００９９】
図１３は、配置決定サブルーチン(Ｓ０１２)の例を示すフローチャートである。図１３において、ＣＰＵ１は、処理を開始すると、最初に、ノードに配置されるデータファイルのサイズ、及び処理に要する計算機資源Ａを概算する(ステップＳ２０１)。【０１００】
すなわち、ＣＰＵ１は、解析対象ファイルのサイズ(例えば、メタデータから得られる)を取得する。続いて、ＣＰＵ１は、解析対象ファイルに対し、ステップＳ００６(図９)で得た処理詳細パラメータで指定された処理を対応するメタデータに従って実行した場合に作成される処理結果ファイルのサイズを概算する。ＣＰＵ１は、解析対象ファイルのサイズと処理結果ファイルのサイズとの合計値を計算機資源Ａとして算出する。【０１０１】
処理結果ファイルのサイズは、例えば、処理詳細パラメータで指定された処理内容が、解析対象ファイルの一部を指定された抽出範囲から抽出する処理である場合、その抽出範囲から割り出される。【０１０２】
解析対象ファイルに対する関連データファイルが存在する場合、解析対象ファイルと関連データファイルとは同じノードで処理されることが、処理効率を高める上で好ましい。このため、ステップＳ２０１において、関連データファイルが存在する場合には、関連データファイルのサイズ、及び関連データファイルに対する処理結果ファイルのサイズも、計算機資源Ａに含められる。関連データファイルのサイズ及びこれに対する処理結果ファイルのサイズは、例えば、解析対象ファイルのサイズ及びこれに対する処理結果ファイルのサイズから概算することができる。【０１０３】
次に、ＣＰＵ１は、状況テーブル３３(図６)を参照し、計算機資源Ａに相当する容量をユーザに対して提供することができ、且つ現在の負荷分散状況において最も負荷が軽いと予測されるノードを検索する(ステップＳ２０２)。【０１０４】
すなわち、ＣＰＵ１は、状況テーブル３３を参照し、各小テーブル３４中のユーザのレコードを参照する。ユーザＩＤは、例えば、シミュレーションシステムの利用を開始する際に、ユーザによって既にコンピュータＹに入力されており、ＣＰＵ１は、このユーザＩＤに対応するレコードを参照する。【０１０５】
次に、ＣＰＵ１は、各レコード中の最大サイズから負荷(現在の使用サイズ)を減じて、各ノードにおけるユーザの残りの使用可能サイズを求める。続いて、ＣＰＵ１は、使用可能サイズが最も大きい(負荷が最も小さい)ノードを、解析対象ファイル(及び関連データファイル)を配置すべきノードとして決定する。【０１０６】
次に、ＣＰＵ１は、計算機資源Ａに基づいて状況テーブル３３を更新する(ステップＳ２０３)。即ち、ＣＰＵ１は、決定されたノードに対応する小テーブル３４の負荷の値(使用サイズ)に、計算機資源Ａの値を加算する。【０１０７】
例えば、図６に示す例において、ユーザＡの計算機資源Ａ(例えば、１０ギガバイトと仮定する)をノード＃０に配置することが決定された場合には、対応する小テーブル３４中の負荷の値が、“20Gbyte”に更新される。【０１０８】
状況テーブル３３の更新が終了すると、ＣＰＵ１は、当該サブルーチンの処理を終了し、ファイルの配置先として決定したノードの識別子をメインルーチンに渡す。【０１０９】
処理がメインルーチンのステップＳ０１３に進むと、ＣＰＵ１は、ノードへのデータ配置に関する命令文(「データ配置命令文」と称する)を出力する。【０１１０】
すなわち、ＣＰＵ１は、データ配置命令文の雛形(予め外部記憶装置３に記憶されている)を読み出す。雛形は、定型の命令文の所定位置に、配置対象のファイル識別子と、ノード識別子を記述すれば、当該命令文が完成するように構成されている。ＣＰＵ１は、雛形の所定位置に、解析対象ファイル(及び関連データファイル)の識別子を記述するとともに、ステップＳ０１２で得たノード識別子を記述する。このようにして、完成されたデータ配置命令文は、並列処理用ジョブスクリプトの一部となる。【０１１１】
次に、ＣＰＵ１は、並列処理の終了後に、処理済みデータ(処理結果ファイル)を保管位置に移動させる命令文(「処理結果移動命令文」と称する)を出力する(ステップＳ０１４)。【０１１２】
すなわち、ＣＰＵ１は、処理結果移動命令文の雛形(予め外部記憶装置３に記憶されている)を読み出す。雛形は、定型の命令文の所定位置に、ＵＩで指定された保管位置を記述すれば、当該命令文が完成するように構成されている。ＣＰＵ１は、雛形の所定位置に、ステップＳ００７で得た解析対象ファイルに対する処理結果ファイルの保管位置を書き込む。このようにして、完成された処理結果移動命令文は、並列処理用ジョブスクリプトの一部となる。【０１１３】
次に、ＣＰＵ１は、データ配置情報を記憶する(ステップＳ０１５)。すなわち、ＣＰＵ１は、データ配置情報としての、ファイル識別子とノード識別子との対応関係を所定の記憶領域に格納する。【０１１４】
ステップＳ０１５が終了した時点で、解析対象ファイルとなっていない処理対象データファイルのファイル識別子があれば、処理がステップＳ００９に戻り、上述したステップＳ００９〜Ｓ０１５の処理が実行される。すべての処理対象データファイルのファイル識別子に対する処理が終了すると、処理がステップＳ０１６に進む。【０１１５】
上記したループ処理によって、処理対象データファイル群に含まれる各処理対象データファイルの配置先が、並列処理における負荷が最も小さくなるように、決定される。【０１１６】
ステップＳ０１６では、ＣＰＵ１は、並列処理プログラム実行文を出力する。すなわち、ＣＰＵ１は、外部記憶装置３に予め格納されている並列処理プログラム実行文を読み出し、並列処理用ジョブスクリプトの一部として設定する。このようにして、ヘッダ，データ配置命令文，処理結果移動命令文，並列処理プログラム実行文を含む並列処理用ジョブスクリプトが自動的に生成される。【０１１７】
次に、ＣＰＵ１は、並列処理プログラムの設定ファイルの作成処理を開始する(ステップＳ０１７：図１１)。ＣＰＵ１は、並列処理プログラム設定の作成ループ処理を開始する。このループ処理は、処理対象データファイル毎に実行される。【０１１８】
処理が開始されると、ＣＰＵ１は、データ配置情報(ファイル識別子とノード識別子との対応関係)を基に、処理対象データファイルに対する設定を作成する(Ｓ０１８)。【０１１９】
すなわち、ＣＰＵ１は、ステップＳ０１５で得たデータ配置情報の中から、１つの処理対象データファイルに係る部分を取り出し、このファイル識別子に対応する処理パラメータ(ステップＳ００６で取得)と組み合わせる。ＣＰＵ１は、組み合わせの結果を、設定ファイル用の所定フォーマットで記述する。【０１２０】
ＣＰＵ１は、このような処理を、処理対象データファイル毎に行い、すべての処理対象データファイルに対するステップＳ０１９の処理が終了すると、メインルーチンを終了する。【０１２１】
図１４は、並列処理プログラム用設定ファイルの記述例を示す図である。図１４に示す例では、設定ファイルは、処理対象データファイル毎に記述された複数の行からなる。【０１２２】
各行には、図１４の左から順に、ノード識別子，処理の指定(この例では“PROC＿A”)，処理対象データファイルのファイル識別子，処理パラメータが記述されている。このような設定ファイルは、各ノードが並列処理プログラムを実行する際に参照される。【０１２３】
〈スクリプトの実行〉
スクリプト及び設定ファイルの作成が終了すると、ＣＰＵ１は、スクリプトの実行を開始する。スクリプトの実行によって、コンピュータＹは、ヘッダの設定ファイル転送命令文に従って、設定ファイルを並列計算機群Ｘの各ノードに転送する。【０１２４】
また、コンピュータＹは、データ配置命令文の実行により、ファイルＤＢ３１に格納された各処理対象データファイル(処理対象データファイル群)を、データ配置情報に従って、配置先のノードへ転送する。【０１２５】
また、コンピュータＹは、処理結果移動命令文の実行により、各ノードに対し、各ノードでの処理対象データファイルの処理により作成される処理結果ファイル(処理済みデータ)を、指定された保管位置 (例えば、ファイルＤＢ３１内に用意される)に格納することを指示する。【０１２６】
また、コンピュータＹは、並列処理プログラム実行文の実行により、各ノードに対し、並列処理プログラムの実行開始を指示する。【０１２７】
〈並列処理〉
処理対象データファイル群の配置先の各ノード(図３)は、ネットワークを介して、コンピュータＹから設定ファイル及び処理対象データファイルを受信する。これらは、ノード内の外部記憶装置１４に格納される。その後、各ノードのＣＰＵ１１は、コンピュータＹからの並列処理プログラムの実行指示を受け取ると、並列処理プログラムの実行を開始する。【０１２８】
図１４は、ＣＰＵ１１で実行される並列処理プログラムの実行処理を示すフローチャートである。ＣＰＵ１１は、図１４に示す処理を開始すると、最初に初期化処理を実行する(ステップＳ３０１)。ＣＰＵ１１は、初期化が終了すると、外部記憶装置１４に格納されている設定ファイルをＭＭ１２に読み込む(ステップＳ３０２)。【０１２９】
次に、ＣＰＵ１１は、設定ファイルに従った処理対象データファイルの処理ループを実行する。この処理ループでは、ＣＰＵ１１は、設定ファイル中の１行を処理対象の行に設定し、処理対象の行に記述された設定内容に従って処理対象データファイルに対する処理を実行する。【０１３０】
ループにおいて、最初に、ＣＰＵ１１は、設定ファイル中のノード識別子を参照し、このノード識別子が自ノードの識別子と等しいか否かを判定する(ステップＳ３０３)。【０１３１】
このとき、ノード識別子が等しくない場合には(Ｓ３０３；ＮＯ)、設定ファイル中の次の行が処理対象の行に設定され、ステップＳ３０３の処理が実行される。【０１３２】
これに対し、ノード識別子が等しい場合には(Ｓ３０３；ＹＥＳ)、ＣＰＵ１１は、処理対象行中に記述されたファイル識別子に対応するメタデータを取得する処理を行う(ステップＳ３０４)。【０１３３】
このステップＳ３０４の処理は、図１２に示したサブルーチンと同様の処理である。すなわち、ＣＰＵ１１は、外部記憶装置１４に格納されたメタデータテーブル３２Ａ(データ構造はメタデータテーブル３２(図５)と同じ)を参照し、対応するメタデータを検索・取得する。【０１３４】
次に、ＣＰＵ１１は、処理対象行中の処理種別指定，処理パラメータ，及びメタデータに従って、処理対象データファイルに対する処理を実行する(ステップＳ３０５)。すなわち、ＣＰＵ１１は、処理種別指定，処理パラメータ，ファイル識別子及びメタデータを計算プロセッサ１３に与える。すると、計算プロセッサ１３が、外部記憶装置１４からファイル識別子に対応する処理対象データファイルをＭＭ１２に読み出し、処理種別指定及び処理パラメータに従った処理を、メタデータに基づいて実行する。【０１３５】
その後、計算プロセッサ１３による処理が終了すると、ＣＰＵ１１は、処理結果のデータ(処理済みデータ)を処理結果ファイルとして、出力する(ステップＳ３０６)。処理結果ファイルは、例えば、コンピュータＹに転送され、コンピュータＹが、ユーザにより指定された保管位置(例えばファイルＤＢ３１内に用意されている)に処理結果ファイルを格納する。【０１３６】
上述した処理が、設定ファイル中の各行を処理対象行として行われ、すべての行に対する処理が終了すると、並列処理プログラムの実行処理が終了する。【０１３７】
〈変形例〉
上述した実施形態では、コンピュータＹ及び各ノードがメタデータテーブルを有する場合について説明した。このような構成に代えて、コンピュータＹで取得されたメタデータが、各ノードに転送される構成を適用しても良い。【０１３８】
また、本実施形態では、処理対象データファイル(シミュレーションデータファイル)の格納領域が、コンピュータＹの外部記憶装置３上に設けられている例について説明した。格納領域は、各ノードが有していても良く、コンピュータＹ及び並列計算機群Ｘから独立したファイルサーバ上に設けられても良い。【０１３９】
〈実施形態の作用効果〉
本実施形態によると、ユーザが並列処理指定情報の入力環境(ＵＩ)を用いて、ファイル識別子，ノード数，処理種別，処理詳細パラメータ，及び保管位置を指定すると、処理対象データファイル群に対する並列処理の制御プログラム(スクリプト)及び並列プログラム実行用の設定ファイルが自動的に作成される。【０１４０】
従来では、ユーザは、並列処理の実行に当たり、データファイルの転送制御も含めて、ときに数百行以上となるスクリプトの記述を過ちなくユーザ自身で記述しなければならなかった。【０１４１】
本実施形態によれば、ユーザが上記した並列処理指定情報の要素となる情報をＵＩを用いて指定又は入力するだけで、所望のスクリプト及び設定ファイルが自動的に作成される。これによって、ユーザの労力を多大に軽減することができる。また、スクリプトの記述に要する時間が短縮されるので、並列処理結果を得るために要する時間を短縮することができる。さらに、ユーザの記述ミスによって並列処理をやり直すおそれを解消することができる。【０１４２】
また、処理対象データに対するメタデータは、ユーザによるファイル識別子の指定で自動的に検索・取得される。すなわち、ユーザがファイル識別子を指定すると、ファイル識別子からキーワードが抽出され、このキーワードに対応するメタデータが指定されたメタデータとして取り扱われる。これによって、ユーザが処理対象データファイル毎にメタデータの指定を入力する必要がなくなる。従って、ユーザの労力軽減，処理の時間短縮，ユーザの入力ミスの防止を図ることができる。【０１４３】
メタデータの自動指定に当たり、本実施形態では、データの格納位置情報(ファイルパス)を含むファイル識別子を処理対象データファイルに適用し、処理対象データの性質を示すキーワード(メタデータ検索用のキーワード)を含ませている。【０１４４】
すなわち、処理対象データとメタデータとを関連付けるデータをファイル識別子に埋め込んでいる。これによって、関連付けるデータを処理対象データ及びメタデータと別に管理する必要がなくなる。従って、記憶領域の有効利用及び管理負担の軽減が図られる。ファイル識別子には、複数のキーワードを含めることができる。【０１４５】
さらに、ユーザが処理対象データファイルを指定する場合に、ユーザがファイルパスを含むファイル識別子を指定するように構成している。これにより、ファイル識別子の指定がキーワード入力を兼ねる。従って、ユーザの作業負担軽減が図られる。【０１４６】
さらに、本実施形態では、メタデータは、処理対象データファイルと異なる記憶領域に格納されるように構成している。これによって、記憶領域に処理対象データファイルを効率的に格納することができる。また、メタデータを各ノードが有し、メタデータの転送処理が排除されている。これにより、メタデータの転送による効率低下を抑止することができる。
【産業上の利用可能性】
【０１４７】
本発明は、例えば、様々な数値シミュレーションシステムにおけるデータ処理への適用が可能である。
【図１】
0004846736.tif 000002
【図２】
0004846736.tif 000003
【図３】
0004846736.tif 000004
【図４】
0004846736.tif 000005
【図５】
0004846736.tif 000006
【図６】
0004846736.tif 000007
【図７】
0004846736.tif 000008
【図８】
0004846736.tif 000009
【図９】
0004846736.tif 000010
【図１０】
0004846736.tif 000011
【図１１】
0004846736.tif 000012
【図１２】
0004846736.tif 000013
【図１３】
0004846736.tif 000014
【図１４】
0004846736.tif 000015
【図１５】
0004846736.tif 000016
【図１６Ａ】
0004846736.tif 000017
【図１６Ｂ】
0004846736.tif 000018