Nothing Special   »   [go: up one dir, main page]

JP4846736B2 - 並列処理支援装置 - Google Patents

並列処理支援装置 Download PDF

Info

Publication number
JP4846736B2
JP4846736B2 JP2007550972A JP2007550972A JP4846736B2 JP 4846736 B2 JP4846736 B2 JP 4846736B2 JP 2007550972 A JP2007550972 A JP 2007550972A JP 2007550972 A JP2007550972 A JP 2007550972A JP 4846736 B2 JP4846736 B2 JP 4846736B2
Authority
JP
Japan
Prior art keywords
processing
data file
file
target data
processing target
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.)
Expired - Fee Related
Application number
JP2007550972A
Other languages
English (en)
Other versions
JPWO2007072567A1 (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.)
Japan Agency for Marine Earth Science and Technology
Original Assignee
Japan Agency for Marine Earth Science and Technology
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 Japan Agency for Marine Earth Science and Technology filed Critical Japan Agency for Marine Earth Science and Technology
Publication of JPWO2007072567A1 publication Critical patent/JPWO2007072567A1/ja
Application granted granted Critical
Publication of JP4846736B2 publication Critical patent/JP4846736B2/ja
Expired - Fee Related 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、計算機科学分野において、大規模シミュレーションデータのような大量のデータファイルを処理する技術に関する。
海洋シミュレーションシステムのような大規模シミュレーションシステムで行われるシミュレーションの結果は、大量のデータファイルから構成される。大量のデータファイルは、サイズにして数十テラバイト以上、ファイル数にして一万個以上になることは珍しくない。一般に、このような大量のデータファイルは、同じ形式で作成されておらず、データの内容に応じた若干異なる形式を有する場合が多い。
また、数値シミュレーションでは、一般に、図16Aに示すような線分の交点が計算グリッドとして規定され、この計算グリッドに基づいて数値データに対する処理(例えば物理量の計算)が進められる。しかしながら、数値データが持つ物理的な特性や、計算式の都合等の諸事情により、一部の数値データに対する処理(物理量の計算)は、図16Bに示すような異なる計算グリッドに基づいて行われることがしばしばある。
ここに、図16Aに示された計算グリッド(「第1の計算グリッド」と呼ぶ)に基づいて算出された第1のデータファイルと、図16Bに示された計算グリッド(「第2の計算グリッド」と呼ぶ)に基づいて算出された第2のデータファイルとが存在する場合を仮定する。さらに、第1及び第2のデータファイルから、例えば、東経120.1度から121.6度までの領域(切り出し範囲)に存するデータを切り出す場合を仮定する。
この場合、第1のデータファイルから2つの計算グリッドに対応するデータが切り出され、第2のデータファイルから4つの計算グリッドに対応するデータが切り出される。ところが、第1のデータファイルからも4つの計算グリッドに対応するデータの切り出しが望まれる場合には、上記した切り出し範囲に従って切り出されるデータ(切り出しデータ)は不十分なものとなる。
上記したような第1のデータファイルがどのような計算グリッドに基づいて算出されたデータを含んでいるかという、データファイル中のデータの詳細を示すデータを、本明細書では「メタデータ」と呼ぶ。
従来では、メタデータをシミュレーションデータから分離して保管したり、ユーザが、処理対象のシミュレーションデータファイル毎に、対応するメタデータを指定入力したりしていた。
大規模シミュレーションの結果として生成されたシミュレーションデータをシミュレーション後にさらにデータ処理仕様とする場合、それらの大量のデータファイルのそれぞれに対して、ユーザがメタデータを指定入力することは、ユーザに多大な労力を払うことを強いることになる。また、ユーザがメタデータを誤って指定するおそれもあった。
また、大量のデータ処理を効率的に行うには並列処理(並列計算)が有効であるが、その並列計算を並列計算機群に実行させるための制御プログラム(スクリプト)を用意する必要がある。従来、スクリプトは、ユーザによって記述されていた。このため、ユーザには並列計算に係るスクリプトの記述知識が要求され、これがシステム利用の簡便性を阻害するとともに、ユーザに労力負担を強いることになっていた。また、スクリプトの記述ミスにより適正な並列計算が実行されないおそれもあった。
本発明の目的は、大量のデータファイルに対する処理を簡便に行うことが可能な技術を提供することである。
本発明は、上記目的を達成するため、以下の手段を採用する。
すなわち、本発明は、処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノード前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定ファイルを自動的に生成するファイル生成手段と、
を含む並列処理支援装置である。
好ましくは、本発明において、前記決定手段は、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを前記処理対象データファイルを配置すべき計算ノードとして決定する。
また、好ましくは、本発明において、前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する。
また、好ましくは、本発明は、処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成する制御プログラム生成手段と、
前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と、を含み、
処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
処理対象データのメタデータを格納したメタデータ格納手段と、
メタデータと関連づけられたキーワード群を有するキーワードリストと、
指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と前記キーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出手段と、
抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索する検索手段と、
前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索手段によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定手段と、をさらに含み、
関連データファイルを有する処理対象データファイルが前記判定手段で検知された場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラム生成手段は、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記ファイル生成手段は、前記関連データファイルに対する前記設定ファイルを生成する、ように構成しても良い。
また、本発明は、上記した並列処理支援装置と同様の特徴を有する並列処理支援方法,プログラム,このプログラムを記録した記録媒体として特定することができる。
本発明によれば、大量のデータファイルに対する処理を簡便に行うことが可能となる。また、本発明によれば、処理対象データに対するメタデータの指定をユーザが行わなくて済む。
本発明を適用可能なシミュレーションシステムの構成例を示す図である。 図1に示した制御用コンピュータの構成例を示す図である。 図1に示したノードの構成例を示す図である。 図2に示した処理対象データファイルを格納するファイルデータベースのディレクトリ構造例を示す図である。 図2に示したメタデータテーブルのデータ構造例を示す図である。 図2に示した使用及び負荷分散状況テーブルのデータ構造例を示す図である。 システムのユーザに提供されるユーザインタフェース(指定画面)の表示例を示す図である。 ユーザインタフェースを用いて入力される並列処理指定情報のファイルの記述例を示す図である。 並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。 並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。 並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理のメインルーチンを示すフローチャートである。 メタデータの解析・取得に係るサブルーチンを示すフローチャートである。 処理対象データファイルの配置先となるノードの検索及び決定処理のサブルーチンを示すフローチャートである。 並列処理プログラム用設定ファイルの記述例を示す図である。 並列処理プログラムの実行処理を示すフローチャートである。 処理対象データに対するメタデータとして用意される計算グリッドの例を示す図である。 処理対象データに対するメタデータとして用意される、図16Aの計算グリッドと異なる計算グリッドの例を示す図である。
符号の説明
X・・・並列計算機群
Y・・・制御用のコンピュータ
1,11・・・CPU
2,12・・・メインメモリ
3,14・・・外部記憶装置
7・・・入力装置
8・・・表示装置
6,15・・・通信インタフェース
31・・・ファイルデータベース
32・・・メタデータテーブル
33・・・使用及び負荷分散情報テーブル
以下、図面を参照して本発明の実施形態について説明する。実施形態における構成は例示であり、本発明は、実施形態の構成に限定されない。
〔シミュレーションシステム〕
図1は、本発明を適用可能なシミュレーションシステムの構成例を示す図である。図1に示す例では、シミュレーションシステムは、並列計算機群Xと、並列計算機群Xに通信回線(ネットワーク)を介して接続された制御用のコンピュータ(情報処理装置)Yとからなる。
並列計算機群Xは、海洋大循環モデルのような大規模シミュレーションデータを構成する多数のデータファイルに対する並列処理を行う複数の計算ノード(ノード)#0〜#n(nは自然数)からなる。
コンピュータYは、並列計算機群Xでの処理対象となるシミュレーションデータ(処理対象データ)を管理しており、ユーザの操作に応じて、シミュレーションデータを用いた並列処理を並列計算機群Xに実行させる場合の制御を行う。
シミュレーションシステムのユーザは、コンピュータYによって提供されるUI(ユーザインタフェース)を通じて、並列計算機群Xを用いた大量の処理対象データ(処理対象データ群)の並列処理を実行するための並列処理指定情報を入力する。
ここに、並列処理指定情報は、並列処理の対象となる複数のシミュレーションデータファイル(処理対象データファイル群),処理対象データファイル群に対する並列計算機群Yの処理内容(処理種別,処理詳細パラメータ),並列処理を行う複数のノード(ノード数),並列処理の結果生成されるファイル(処理済みデータファイル(処理結果ファイル))の保管位置などの指定を含むことができる。
コンピュータYは、入力された並列処理指定情報に基づいて、並列計算機群Xに並列処理に係る制御指示を与えるための並列処理用ジョブスクリプト(並列計算機群Yの制御用プログラム:以下「スクリプト」と表記することもある)と、並列処理を実行する各ノードが処理対象データファイルを処理する際に参照される並列処理プログラム用設定ファイル(以下「設定ファイル」と表記することもある)とを自動的に生成する。
コンピュータYは、スクリプトの生成過程において、各処理対象データファイルに対するメタデータ(処理対象データの詳細情報)の取得,及び並列計算機群Xに対する処理対象データファイル群の配置決定を行う。メタデータ及び配置決定結果は、スクリプトの記述内容に反映される。
コンピュータYは、スクリプトの実行を通じて、処理対象データファイル群を複数のノードへ分散配置(分配)するとともに、これらのノードに対して並列処理プログラム(ジョブ)の実行を指示する。各ノードは、設定ファイルの記述に従って並列処理プログラムを実行し、分配された処理対象データファイルに対する処理を、対応するメタデータに基づいて行う。当該処理を通じて処理結果ファイルが作成される。処理結果ファイルは、並列処理指定情報として指定された保管位置にて保管される。
〈コンピュータY〉
図2は、コンピュータYの構成例を示す図である。図2において、コンピュータYは、バスBを介して相互に接続されたCPU1,メインメモリ(MM:例えばRAM)2,外部記憶装置(例えばハードディスク)3,入出力インタフェース(I/F)4及び5,並びに通信インタフェース6を備えている。
I/F4には、入力手段としての入力装置(キーボード,ポインティングデバイス(例えばマウス)等)が接続されており、I/F5には、出力手段としての表示装置(ディスプレイ)8が接続されている。さらに、通信I/F6は、通信回線(ネットワーク)を介して各ノード#0〜#nに接続されている。
外部記憶装置3には、大規模シミュレーションデータを構成する大量のシミュレーションデータファイルを格納したファイルデータベース(ファイルDB)31と、各データファイルに対応するメタデータ(シミュレーションデータの詳細情報)を格納したメタデータテーブル32と、処理対象データファイル群を複数のノードに分散配置する場合に参照される各ノードの使用及び負荷分散状況テーブル33(以下、「状況テーブル33」と表記)とが格納されている。ファイルDB31とメタデータテーブル32とは異なる記憶領域上に作成されている。
さらに、外部記憶装置3には、コンピュータYを、シミュレーションデータやメタデータの管理装置として機能させるとともに、並列計算機群Y(ノード#0〜#n)の制御装置として機能させるためのプログラムが格納されている。
CPU1は、外部記憶装置3に記録されたプログラムをMM2にロードして実行することにより、例えば、次のような機能を実現する。
(1)シミュレーションシステムのユーザに対し、入力装置7及び表示装置8を用いた並列処理指定情報の入力(指定)環境(UI:ユーザインタフェース)を提供する。
(2)並列処理指定情報に基づいてスクリプト及び設定ファイルを作成する。
(3)スクリプトの作成時において、処理対象としてユーザにより指定された複数のシミュレーションデータファイル(処理対象データファイル群)のそれぞれに対応するメタデータを検索及び取得する。
(4)スクリプトの作成時において、処理対象データファイル群を構成する各処理対象データファイルを処理するノード(処理対象データファイルの配置)を決定する。
(5)処理対象データファイル群、及び処理対象データファイル群の並列処理によって生成される処理結果ファイルの転送制御を行う。
なお、CPU1が本発明に係る受付手段,決定手段,制御プログラム生成手段,ファイル生成手段,判定手段に相当する。また、CPU1は、ファイル識別子の指定を受け付ける受付手段,ファイル識別子からメタデータ検索用のキーワードを抽出する抽出手段,及びキーワードに対応するメタデータを検索する検索手段として機能することができる。また、外部記憶装置3が本発明に係る記憶手段に相当する。また、外部記憶装置3は、検索手段によって検索されるメタデータを格納したメタデータ格納手段として機能する。
〈並列計算機群X〉
並列計算機群Xを構成する各ノード#0〜#nは、同じ構成を有している。図3は、ノードの構成例を示す図である。ノードは、バスB1を介して相互に接続されたCPU11,メインメモリ12,計算プロセッサ13,外部記憶装置(例えばハードディスク)14,及び通信インタフェース(通信I/F)15を備えている。通信I/F15は、ネットワークを介してコンピュータY及び他のノードに接続されている。
ノードは、コンピュータYから転送されてくる処理対象データファイルを通信I/F15で受信し、これを外部記憶装置14に格納する。また、ノードは、コンピュータYからの並列処理命令や設定ファイルを通信I/F15を介して受信する。
すると、CPU11が、設定ファイルの記述に従って、外部記憶装置3に予め格納されている並列処理プログラムの実行を開始する。処理対象データを用いた計算には計算プロセッサ13が使用される。計算プロセッサ13は、外部記憶装置14に格納された処理対象データファイルをMM12上に読み出し、これを用いた所定の処理(例えば、データファイル中の所定領域の切り出し、物理量の計算)を実行する。この所定の処理は、メタデータに基づいて実行される。
所定の処理によって、処理結果ファイルが生成され、外部記憶装置14に格納される。外部記憶装置14に格納された処理結果ファイルは、所定の保管位置に移動(転送)される。
CPU11は、設定ファイルに従って、並列処理を実行する並列処理手段として機能する。また、CPU11は、ファイル識別子の指定を受け付ける受付手段,ファイル識別子からメタデータ検索用のキーワードを抽出する抽出手段,及びキーワードに対応するメタデータを検索する検索手段として機能することができる。また、外部記憶装置14は、検索手段によって検索されるメタデータを格納したメタデータ格納手段として機能する。
〈DB及びテーブルのデータ構造〉
次に、図2に示したファイルDB31,メタデータテーブル32,並びに、使用及び負荷状況テーブル(状況テーブル)33の詳細を説明する。
《ファイルDB31》
ファイルDB31は、大量のシミュレーションデータファイル(以下、単に「データファイル」と表記することもある)を、ディレクトリ構造を用いて分類及び格納している。
図4は、ファイルDB31のディレクトリ構造の例を示す図である。ファイルDB31内には、ルートディレクトリ(図4ではディレクトリ“data”)を起点としたディレクトリツリーが形成されており、各階層のディレクトリには、所定のディレクトリ名が付与されている。データファイルは、ディレクトリツリー中の末端に位置するディレクトリ内に格納され、所定のデータファイル名が付与されている。
データファイルは、ファイル識別子を用いて識別される。ファイル識別子は、ルートディレクトリから末端のディレクトリまでに至るまでの、ディレクトリツリーの経路(パス)上に位置する各ディレクトリの名称(パス名)と、データファイル名との羅列により表現される。
例えば、図4におけるデータファイル名“timeXXX.000.000.dat”を有するデータファイルのファイル識別子は、“/data/experimentA/3D/statisticsA/variableB/timeXXX.000.000”である。このように、ファイル識別子は、データファイルの格納位置情報(ファイルパス)を含んでいる。
また、ファイル識別子中のディレクトリ名(“3D”,“statsticsA”,“variableB”等)やデータファイル名(“timeXXX.000.000”)は、データファイル中のデータの詳細(性質等)を示すキーワードとして規定されている。キーワードは、任意の1以上の文字で構成され、ディレクトリ名及びデータファイル名中の、少なくとも1箇所に配置される。但し、ファイル名の拡張子部分にキーワードは設定されない。キーワードは、処理対象データに対応するメタデータを検索するための検索キーとして機能する。
なお、データファイルは、必ずしも1つの記憶領域に格納される必要はなく、コンピュータYの内部又は外部に配置される複数の記憶領域上に分散して格納されていても良い。
《メタデータテーブル》
メタデータテーブル32は、ファイル識別子中のキーワードに対応するメタデータを格納している。図5は、メタデータテーブル32のデータ構造例を示す図である。
図5に示す例では、メタデータテーブル32は、検索キー(キーワード)と、これに対応するメタデータとを格納した複数のレコードからなる。キーワードは、ユーザにより指定されたデータファイル(処理対象データファイル)のファイル識別子から検索キーとして抽出される。
メタデータは、シミュレーションデータ(処理対象データ)の詳細(性質や属性等)を示す情報であり、例えば、処理対象データの物性を示す情報であったり、統計処理や時空間(縦、横、高さ、時間(年月日時))に関する情報であったりする。例えば、図16Aや図16Bに示した計算グリッドの情報は、空間に関する情報である。このような計算グリッドの情報を表すキーワードとして、例えば、任意の文字数で表される変数名が適用される。
なお、図5では、ファイル識別子に含まれるディレクトリ名の一つが、1つのメタデータに対応する場合を示している。これに代えて、例えば、1つのファイル識別子に含まれる複数のキーワードの組み合わせから1つのメタデータが検索されるように構成しても良い。また、ディレクトリ名やデータファイル名(拡張子を除く)の一部に、キーワードが含まれ、部分一致検索でキーワードがファイル識別子から抽出されるようにしても良い。また、ファイル識別子中のファイルパス部分のみに、キーワードが設定される構成を採用することもできる。
《状況テーブル33》
図6は、状況テーブル33のデータ構造例を示す図である。状況テーブル33は、ノード毎に用意された複数の小テーブル34からなる。各小テーブル34は、同じデータ構造を有している。小テーブル34は、ノードの使用が許可されているユーザの識別情報(ユーザID)と、ユーザが使用可能な当該ノードの外部記憶装置14の最大サイズ(許可最大容量)と、ユーザが現在使用している外部記憶装置14の容量(負荷)とを要素(項目)とするレコードの集合で構成されている。各小テーブル34には、ノード識別子が付与されており、ノード識別子と対応する情報が当該小テーブルに格納される。
〈ユーザインタフェース(UI)〉
図2に示すコンピュータYにおいて、CPU1は、プログラムの実行を通じて、コンピュータYのユーザに対し、並列処理指定情報の入力環境(UI)を提供する。
ユーザは、UIを用いて、並列処理指定情報の要素(項目)たる、処理対象データファイル群(ファイル識別子),処理対象データファイル群を処理する複数のノード,処理対象データファイル群に対する処理内容(処理種別及び詳細パラメータ),処理結果ファイルの保管位置等を指定することができる。
図7は、UIとして提供される並列処理指定情報の指定画面の例を示す図である。指定画面は、CPU1によるプログラムの実行を通じて、表示装置8のスクリーンに表示される。
図7に示す例では、指定画面は、ファイルパス表示欄81と、ファイルリスト表示欄82と、コマンド入力欄83とを備えている。ファイルパス表示欄81には、ユーザが入力装置7を用いて選択したファイルDB31内のディレクトリ(ファイルパス)が表示される。
また、ファイルリスト表示欄82には、ファイルパス表示欄81に表示されたファイルパスに対応するデータファイル(ファイルパス中の末端のディレクトリに格納されたデータファイル)のリスト(ファイルリスト)を表示する。また、コマンド入力欄83は、処理対象データファイルに対する処理に係るコマンドを入力するために使用される。
ユーザは、入力装置7を操作して、ファイルパス表示欄81に所望のファイルパスを表示させる(ファイルパスを選択する)ことができる。ファイルパスの選択結果に応じて、ファイルリスト表示欄82の表示内容が変更され、ファイルパスに応じたファイルリストが当該表示欄82に表示される。
ユーザは、入力装置7を用いたカーソル操作で、ファイルリスト表示欄82に表示されたファイルリストから所望のファイル名をしていすることで、処理対象データファイルのファイル識別子を指定することができる。このとき、カーソル操作を通じて、複数のデータファイルを一時に指定することもできる。このように、ユーザは、ファイルパス表示欄81及びファイルリスト表示欄82を用いて、処理対象データファイルのファイル識別子を指定することができる。
また、ユーザは、コマンド入力欄83を用いて、並列処理に使用するノード(ノード数),処理対象データファイル群に対する処理内容,処理結果ファイルの保管位置等を指定入力することができる。
なお、ノード数,処理パラメータ,保管位置の指定に際して、スクリーン上に指定内容の選択肢が表示され、ユーザがカーソル操作で所望の選択肢を選択することにより、これらが指定されるように構成することができる。
〈スクリプト及び設定ファイルの生成〉
ユーザが、上述したようなUIを用いて並列処理指定情報の各要素を指定し、その指定内容の確定操作を行うと、並列処理指定情報は、所定のフォーマットで記述された並列処理指定情報ファイルとして、外部記憶装置3の所定位置に格納される。
図8は、並列処理指定情報ファイルの記述例を示す図である。図8において、並列処理指定情報ファイルは、計算機資源の指定行と、処理詳細(処理内容)の指定行と、処理対象データファイル及びこれに対する処理結果の保管位置の指定行とを含む。
計算機資源の指定行(図8の第1行)では、その識別子(“NODE”)と、並列処理に使用するノード数を表す引数(図7の例では“3”)が記述される。
また、処理詳細の指定行(図8の第2行)では、その識別子(“PROC”)と、処理種別(“PROC_A”)と、処理詳細を表す処理パラメータ(“120.0 150.0 20.0 50.0”)を表す引数が記述される。
また、処理対象データファイル及び保管位置の指定行(図8の第3及び4行)では、その識別子(“DATA”)と、処理対象データファイルのファイル識別子と、対応する処理結果ファイルの保管位置の識別情報(“xxxxx”や“xxxxy”で図示)とが記述される。当該指定行は、処理対象データファイル毎に作成される。
このような記述(並列処理指定情報ファイル)は、ユーザが、UIを用いて、ノード数,処理内容,処理対象データファイル群,保管位置をそれぞれ指定することで、CPU1により自動的に作成される。
図9,図10及び図11は、CPU1(図2)によって実行されるスクリプト及び設定ファイル作成処理のメインルーチンの例を示すフローチャートである。当該処理の実行は、例えば、並列処理指定情報ファイルの作成終了や、ユーザからの処理開始指示の入力を契機として、開始される。
図9に示す処理が開始されると、最初に、CPU1は、初期化処理を行う(ステップS001)。次に、CPU1は、外部記憶装置3に格納された並列処理指定情報ファイル(図8)をMM2に読み込む(ステップS002)。
次に、CPU1は、並列処理指定情報の解析ループ処理を実行する。この解析ループ処理において、CPU1は、並列処理指定情報ファイルから指定行を1行ずつ取り出し、取り出した行を解析対象行に設定し、この解析対象行の解析を行う。
CPU1は、並列処理指定情報ファイルから取り出した解析対象行が、計算機資源の指定行か否かを判定する(ステップS003)。
このとき、解析対象行が計算機資源の指定行であれば(S003;YES)、CPU1は、この解析対象行中の引数(ノード数:図8の例であれば“3”)を並列処理に係る計算機資源パラメータとして決定し、所定位置(MM2上の所定の作業領域)に保存する(ステップS004)。その後、CPU1は、次の指定行を解析対象行に決定し、処理をステップS003に戻す。
ステップS003にて、解析対象行が計算機資源の指定行でないと判定されると(S003;NO)、CPU1は、解析対象行が処理詳細の指定行であるか否かを判定する(ステップS005)。
このとき、解析対象行が処理詳細の指定行であれば(S005;YES)、CPU1は、この解析対象行中の処理種別指定及び引数(指定された処理パラメータ:図8の例であれば“PROC_A”(手続きA)が処理種別指定に相当し、“120.0 150.0 20.0 50.0”が処理パラメータに相当する)を取り出し、この処理種別及び引数を並列処理に係る処理パラメータとして決定し、所定位置(作業領域)に保存する(ステップS006)。その後、CPU1は、次の指定行を解析対象行に決定し、処理をステップS003に戻す。
ステップS005にて、解析対象行が処理詳細の指定行でないと判定されると(S005;NO)、CPU1は、解析対象行が処理対象データファイル及び保管位置の指定行と判断し、この判断に従って、この解析対象行中のファイル識別子及び保管位置の識別情報を取り出し、所定位置(作業領域)に保存する(S007)。
上記した解析ループ処理は、並列処理指定情報ファイルの最終行に対する処理が終了すると、終了する。続いて、CPU1は、処理を図10のステップS008に進める。
ステップS008では、CPU1は、並列処理用ジョブスクリプトのヘッダ部分を出力する。当該ヘッダは、定型文として予め外部記憶装置3の所定位置に格納されている。ヘッダには、設定ファイルの転送命令が含まれる。ステップS008において、処理対象データファイルと、指定された並列処理に使用されるノード数とに基づいて、並列処理に使用されるノードが決定される。各ノード#0〜#nに対する使用及び負荷状況は、例えば、コンピュータYのOS(オペレーティングシステム)にて管理されている。OSには、並列処理指定情報ファイル中の処理データファイル数及びノード数が引き渡される。
OSは、例えば、ノード#0〜#nから、ユーザの使用が許可されているノードを抽出し、抽出された複数のノードの使用及び負荷状況やファイル数を考慮して、指定ノード数のノードを選択する。例えば、抽出されたノードから、負荷が少ない順で、指定ノード数のノードを並列処理に使用するノードとして決定する。決定された各ノードの使用及び負荷状況は、状況テーブル33に小テーブル34として設定される。これによって、処理対象データファイル群は、OSにより決定された指定ノード数のノードによって並列処理されることになる。
なお、状況テーブル33(図6)に、すべてのノード#0〜#nに対する小テーブル34が格納され、OSが小テーブル34を参照して、負荷の少ない順で、指定ノード数分のノードを選択し、選択されなかったノードに対応する小テーブル34にマスクがセットされる(参照不可状態にされる)ようにしても良い。
続いて、CPU1は、処理対象データファイルの解析・処理のループ処理を実行する。当該ループ処理は、ステップS007で得られたファイル識別子(処理対象データファイル)毎に実行される。このループでは、CPU1は、最初に、指定された処理対象データファイル群(ステップS007で得られたファイル識別子を持つ処理対象データファイル群)の一つ(解析対象ファイルと呼ぶ)を特定する。続いて、CPU1は、この解析対象ファイルのメタデータ解析処理のサブルーチンを起動し(ステップS009)、解析対象ファイルのファイル識別子をサブルーチンに渡す。
図12は、メタデータ解析・取得のサブルーチンの例を示すフローチャートである。図12において、最初に、CPU1は、データファイル指定の入力を受け付ける(ステップS101)。即ち、CPU1は、解析対象ファイルのファイル識別子を受け取る。
次に、CPU1は、ファイル識別子が、正しい形式を有するか否かを判定する(ステップS102)。このとき、ファイル識別子が正しい形式を有しない場合(S102;NO)には、処理が失敗(NG)であるものとして、スクリプト及び設定ファイル作成処理が終了する。この場合、エラー表示処理が行われ、ユーザにエラーが通知されるようにする構成することができる。
これに対し、ファイル識別子が正しい形式である場合(S102;YES)には、CPU1は、キーワードの取得ループ処理を開始する。当該ループ処理では、最初に、CPU1は、メタデータを表すキーワードがファイル識別子中に含まれているか否かを判定する(S103)。
例えば、CPU1は、ファイル識別子中のルートディレクトリの次のディレクトリ名を抽出し、このディレクトリ名とメタデータテーブル32(図5)中のキーワードのリスト(メタデータテーブル32に格納されたキーワード群)とを照合し、抽出されたディレクトリ名と合致するキーワードを検索する。
このとき、キーワードが検索できなかった場合には、CPU1は、次のディレクトリ名を抽出し、キーワードリストとの照合を行う。このようにして、CPU1は、キーワードの1つと合致するディレクトリ名又はデータファイル名が見つかるまで、上述したようなディレクトリ名又はデータファイル名の抽出処理及びキーワードリストとの照合処理を繰り返す。
CPU1は、抽出したディレクトリ名又はデータファイル名と合致するキーワードが見つかった場合には(S103;YES)、抽出処理を中断し、キーワードに対応するメタデータをメタデータテーブル32から取り出して取得する(ステップS104)。
例えば、ファイル識別子“/data/experimentA/3D/statisticsA/variableB/timeXXX.000.000.dat”(図4)に関して、図5に示す格納内容のメタデータテーブル32を用いて上記した処理が行われた場合、ディレクトリ名“3D”がファイル識別子から抽出され、キーワードリストとの照合が行われた時点で、“3D”に対応するメタデータ“meta01”が、メタデータテーブル32から取得されることになる。
CPU1は、メタデータテーブル32からメタデータを取得すると、当該ファイル識別子について、ディレクトリ名又はデータファイル名の抽出及びキーワードリストとの照合処理を再開する。これによって、例えば、ディレクトリ名“3D”の次のディレクトリ名“statisticsA”をキーワードとして、対応するメタデータ“meta1”がメタデータテーブル32から取得される。
その後、データファイル名を対象とした照合処理が終了した時点(合致するキーワードが検索された場合は、対応するメタデータの取得が終了した時点)で、キーワードの取得ループ処理が終了し(S104;NO)、図12に示すサブルーチン(S009)が終了し、処理がメインルーチンのステップS010(図10)に戻る。
このようにして、コンピュータYは、ユーザが処理対象データのファイル識別子を指定すると、処理対象データに対応するメタデータをファイル識別子に含まれる性質情報(キーワード)を用いて自動的に特定(取得)する。
ステップS010では、CPU1は、メタデータの解析を行い、ループ処理で対象となっている処理対象データファイル(解析対象ファイル)の並列処理において、当該解析対象ファイルのみではなく、この解析対象ファイルに関連するデータ(関連データファイル)が必要か否かを判定する。
例えば、流体の流速計算が並列処理で実行される場合、速度のX成分,Y成分,Z成分が必要である。ここで、ステップS010での判定処理の対象となっている解析対象ファイルが、速度のX成分を示すデータファイルであれば、Y及びZ成分を示す各データファイルが関連データファイルとして必要となる。
ここに、ファイル識別子は、ディレクトリ名又はデータファイル名中にX成分,Y成分,Z成分のいずれであるかを示す成分情報を示す文字又は文字列を含むことができる。或る成分(例えばX成分)のデータファイルに対応するY成分及びZ成分のデータファイルのファイル識別子は、X成分のデータファイルのファイル識別子中の成分情報の文字又は文字列の記述を定型的に変更することで作成されている。例えば、ファイル識別子中に含まれた成分情報の文字“X”を、Y成分やZ成分を示す文字“Y”や“Z”に置換すれば、対応するY成分又はZ成分のデータファイルのファイル識別子となる。
ステップS010において、CPU1は、ステップS009で得られたメタデータの解析を通じて、解析対象ファイルが例えばX成分のデータファイルであることが分かった場合には、関連データファイルが必要と判定し(S010;YES)、処理をステップS011に進める。そうでなければ(S010;NO)、CPU1は、処理をステップS012に進める。
ステップS011では、CPU1は、関連データファイルのファイル識別子を生成する。関連データファイルのファイル識別子は、例えば、上述したように、解析対象ファイルのファイル識別子の一部を変更することで、生成することができる。生成された関連データファイルのファイル識別子は、解析対象ファイルのファイル識別子と一組にして、MM2上の作業領域に記憶される。
なお、作成された関連データファイルのファイル識別子で示されるファイルパス上に実際の関連データファイルが格納されているように、関連データファイルは、ファイルDB31に格納されている。その後、処理がステップS012に進む。
ステップS012では、解析対象ファイル(指定データファイル)又は解析対象ファイル及び関連データファイルの配置を決定するサブルーチンを実行する。
図13は、配置決定サブルーチン(S012)の例を示すフローチャートである。図13において、CPU1は、処理を開始すると、最初に、ノードに配置されるデータファイルのサイズ、及び処理に要する計算機資源Aを概算する(ステップS201)。
すなわち、CPU1は、解析対象ファイルのサイズ(例えば、メタデータから得られる)を取得する。続いて、CPU1は、解析対象ファイルに対し、ステップS006(図9)で得た処理詳細パラメータで指定された処理を対応するメタデータに従って実行した場合に作成される処理結果ファイルのサイズを概算する。CPU1は、解析対象ファイルのサイズと処理結果ファイルのサイズとの合計値を計算機資源Aとして算出する。
処理結果ファイルのサイズは、例えば、処理詳細パラメータで指定された処理内容が、解析対象ファイルの一部を指定された抽出範囲から抽出する処理である場合、その抽出範囲から割り出される。
解析対象ファイルに対する関連データファイルが存在する場合、解析対象ファイルと関連データファイルとは同じノードで処理されることが、処理効率を高める上で好ましい。このため、ステップS201において、関連データファイルが存在する場合には、関連データファイルのサイズ、及び関連データファイルに対する処理結果ファイルのサイズも、計算機資源Aに含められる。関連データファイルのサイズ及びこれに対する処理結果ファイルのサイズは、例えば、解析対象ファイルのサイズ及びこれに対する処理結果ファイルのサイズから概算することができる。
次に、CPU1は、状況テーブル33(図6)を参照し、計算機資源Aに相当する容量をユーザに対して提供することができ、且つ現在の負荷分散状況において最も負荷が軽いと予測されるノードを検索する(ステップS202)。
すなわち、CPU1は、状況テーブル33を参照し、各小テーブル34中のユーザのレコードを参照する。ユーザIDは、例えば、シミュレーションシステムの利用を開始する際に、ユーザによって既にコンピュータYに入力されており、CPU1は、このユーザIDに対応するレコードを参照する。
次に、CPU1は、各レコード中の最大サイズから負荷(現在の使用サイズ)を減じて、各ノードにおけるユーザの残りの使用可能サイズを求める。続いて、CPU1は、使用可能サイズが最も大きい(負荷が最も小さい)ノードを、解析対象ファイル(及び関連データファイル)を配置すべきノードとして決定する。
次に、CPU1は、計算機資源Aに基づいて状況テーブル33を更新する(ステップS203)。即ち、CPU1は、決定されたノードに対応する小テーブル34の負荷の値(使用サイズ)に、計算機資源Aの値を加算する。
例えば、図6に示す例において、ユーザAの計算機資源A(例えば、10ギガバイトと仮定する)をノード#0に配置することが決定された場合には、対応する小テーブル34中の負荷の値が、“20Gbyte”に更新される。
状況テーブル33の更新が終了すると、CPU1は、当該サブルーチンの処理を終了し、ファイルの配置先として決定したノードの識別子をメインルーチンに渡す。
処理がメインルーチンのステップS013に進むと、CPU1は、ノードへのデータ配置に関する命令文(「データ配置命令文」と称する)を出力する。
すなわち、CPU1は、データ配置命令文の雛形(予め外部記憶装置3に記憶されている)を読み出す。雛形は、定型の命令文の所定位置に、配置対象のファイル識別子と、ノード識別子を記述すれば、当該命令文が完成するように構成されている。CPU1は、雛形の所定位置に、解析対象ファイル(及び関連データファイル)の識別子を記述するとともに、ステップS012で得たノード識別子を記述する。このようにして、完成されたデータ配置命令文は、並列処理用ジョブスクリプトの一部となる。
次に、CPU1は、並列処理の終了後に、処理済みデータ(処理結果ファイル)を保管位置に移動させる命令文(「処理結果移動命令文」と称する)を出力する(ステップS014)。
すなわち、CPU1は、処理結果移動命令文の雛形(予め外部記憶装置3に記憶されている)を読み出す。雛形は、定型の命令文の所定位置に、UIで指定された保管位置を記述すれば、当該命令文が完成するように構成されている。CPU1は、雛形の所定位置に、ステップS007で得た解析対象ファイルに対する処理結果ファイルの保管位置を書き込む。このようにして、完成された処理結果移動命令文は、並列処理用ジョブスクリプトの一部となる。
次に、CPU1は、データ配置情報を記憶する(ステップS015)。すなわち、CPU1は、データ配置情報としての、ファイル識別子とノード識別子との対応関係を所定の記憶領域に格納する。
ステップS015が終了した時点で、解析対象ファイルとなっていない処理対象データファイルのファイル識別子があれば、処理がステップS009に戻り、上述したステップS009〜S015の処理が実行される。すべての処理対象データファイルのファイル識別子に対する処理が終了すると、処理がステップS016に進む。
上記したループ処理によって、処理対象データファイル群に含まれる各処理対象データファイルの配置先が、並列処理における負荷が最も小さくなるように、決定される。
ステップS016では、CPU1は、並列処理プログラム実行文を出力する。すなわち、CPU1は、外部記憶装置3に予め格納されている並列処理プログラム実行文を読み出し、並列処理用ジョブスクリプトの一部として設定する。このようにして、ヘッダ,データ配置命令文,処理結果移動命令文,並列処理プログラム実行文を含む並列処理用ジョブスクリプトが自動的に生成される。
次に、CPU1は、並列処理プログラムの設定ファイルの作成処理を開始する(ステップS017:図11)。CPU1は、並列処理プログラム設定の作成ループ処理を開始する。このループ処理は、処理対象データファイル毎に実行される。
処理が開始されると、CPU1は、データ配置情報(ファイル識別子とノード識別子との対応関係)を基に、処理対象データファイルに対する設定を作成する(S018)。
すなわち、CPU1は、ステップS015で得たデータ配置情報の中から、1つの処理対象データファイルに係る部分を取り出し、このファイル識別子に対応する処理パラメータ(ステップS006で取得)と組み合わせる。CPU1は、組み合わせの結果を、設定ファイル用の所定フォーマットで記述する。
CPU1は、このような処理を、処理対象データファイル毎に行い、すべての処理対象データファイルに対するステップS019の処理が終了すると、メインルーチンを終了する。
図14は、並列処理プログラム用設定ファイルの記述例を示す図である。図14に示す例では、設定ファイルは、処理対象データファイル毎に記述された複数の行からなる。
各行には、図14の左から順に、ノード識別子,処理の指定(この例では“PROC_A”),処理対象データファイルのファイル識別子,処理パラメータが記述されている。このような設定ファイルは、各ノードが並列処理プログラムを実行する際に参照される。
〈スクリプトの実行〉
スクリプト及び設定ファイルの作成が終了すると、CPU1は、スクリプトの実行を開始する。スクリプトの実行によって、コンピュータYは、ヘッダの設定ファイル転送命令文に従って、設定ファイルを並列計算機群Xの各ノードに転送する。
また、コンピュータYは、データ配置命令文の実行により、ファイルDB31に格納された各処理対象データファイル(処理対象データファイル群)を、データ配置情報に従って、配置先のノードへ転送する。
また、コンピュータYは、処理結果移動命令文の実行により、各ノードに対し、各ノードでの処理対象データファイルの処理により作成される処理結果ファイル(処理済みデータ)を、指定された保管位置 (例えば、ファイルDB31内に用意される)に格納することを指示する。
また、コンピュータYは、並列処理プログラム実行文の実行により、各ノードに対し、並列処理プログラムの実行開始を指示する。
〈並列処理〉
処理対象データファイル群の配置先の各ノード(図3)は、ネットワークを介して、コンピュータYから設定ファイル及び処理対象データファイルを受信する。これらは、ノード内の外部記憶装置14に格納される。その後、各ノードのCPU11は、コンピュータYからの並列処理プログラムの実行指示を受け取ると、並列処理プログラムの実行を開始する。
図14は、CPU11で実行される並列処理プログラムの実行処理を示すフローチャートである。CPU11は、図14に示す処理を開始すると、最初に初期化処理を実行する(ステップS301)。CPU11は、初期化が終了すると、外部記憶装置14に格納されている設定ファイルをMM12に読み込む(ステップS302)。
次に、CPU11は、設定ファイルに従った処理対象データファイルの処理ループを実行する。この処理ループでは、CPU11は、設定ファイル中の1行を処理対象の行に設定し、処理対象の行に記述された設定内容に従って処理対象データファイルに対する処理を実行する。
ループにおいて、最初に、CPU11は、設定ファイル中のノード識別子を参照し、このノード識別子が自ノードの識別子と等しいか否かを判定する(ステップS303)。
このとき、ノード識別子が等しくない場合には(S303;NO)、設定ファイル中の次の行が処理対象の行に設定され、ステップS303の処理が実行される。
これに対し、ノード識別子が等しい場合には(S303;YES)、CPU11は、処理対象行中に記述されたファイル識別子に対応するメタデータを取得する処理を行う(ステップS304)。
このステップS304の処理は、図12に示したサブルーチンと同様の処理である。すなわち、CPU11は、外部記憶装置14に格納されたメタデータテーブル32A(データ構造はメタデータテーブル32(図5)と同じ)を参照し、対応するメタデータを検索・取得する。
次に、CPU11は、処理対象行中の処理種別指定,処理パラメータ,及びメタデータに従って、処理対象データファイルに対する処理を実行する(ステップS305)。すなわち、CPU11は、処理種別指定,処理パラメータ,ファイル識別子及びメタデータを計算プロセッサ13に与える。すると、計算プロセッサ13が、外部記憶装置14からファイル識別子に対応する処理対象データファイルをMM12に読み出し、処理種別指定及び処理パラメータに従った処理を、メタデータに基づいて実行する。
その後、計算プロセッサ13による処理が終了すると、CPU11は、処理結果のデータ(処理済みデータ)を処理結果ファイルとして、出力する(ステップS306)。処理結果ファイルは、例えば、コンピュータYに転送され、コンピュータYが、ユーザにより指定された保管位置(例えばファイルDB31内に用意されている)に処理結果ファイルを格納する。
上述した処理が、設定ファイル中の各行を処理対象行として行われ、すべての行に対する処理が終了すると、並列処理プログラムの実行処理が終了する。
〈変形例〉
上述した実施形態では、コンピュータY及び各ノードがメタデータテーブルを有する場合について説明した。このような構成に代えて、コンピュータYで取得されたメタデータが、各ノードに転送される構成を適用しても良い。
また、本実施形態では、処理対象データファイル(シミュレーションデータファイル)の格納領域が、コンピュータYの外部記憶装置3上に設けられている例について説明した。格納領域は、各ノードが有していても良く、コンピュータY及び並列計算機群Xから独立したファイルサーバ上に設けられても良い。
〈実施形態の作用効果〉
本実施形態によると、ユーザが並列処理指定情報の入力環境(UI)を用いて、ファイル識別子,ノード数,処理種別,処理詳細パラメータ,及び保管位置を指定すると、処理対象データファイル群に対する並列処理の制御プログラム(スクリプト)及び並列プログラム実行用の設定ファイルが自動的に作成される。
従来では、ユーザは、並列処理の実行に当たり、データファイルの転送制御も含めて、ときに数百行以上となるスクリプトの記述を過ちなくユーザ自身で記述しなければならなかった。
本実施形態によれば、ユーザが上記した並列処理指定情報の要素となる情報をUIを用いて指定又は入力するだけで、所望のスクリプト及び設定ファイルが自動的に作成される。これによって、ユーザの労力を多大に軽減することができる。また、スクリプトの記述に要する時間が短縮されるので、並列処理結果を得るために要する時間を短縮することができる。さらに、ユーザの記述ミスによって並列処理をやり直すおそれを解消することができる。
また、処理対象データに対するメタデータは、ユーザによるファイル識別子の指定で自動的に検索・取得される。すなわち、ユーザがファイル識別子を指定すると、ファイル識別子からキーワードが抽出され、このキーワードに対応するメタデータが指定されたメタデータとして取り扱われる。これによって、ユーザが処理対象データファイル毎にメタデータの指定を入力する必要がなくなる。従って、ユーザの労力軽減,処理の時間短縮,ユーザの入力ミスの防止を図ることができる。
メタデータの自動指定に当たり、本実施形態では、データの格納位置情報(ファイルパス)を含むファイル識別子を処理対象データファイルに適用し、処理対象データの性質を示すキーワード(メタデータ検索用のキーワード)を含ませている。
すなわち、処理対象データとメタデータとを関連付けるデータをファイル識別子に埋め込んでいる。これによって、関連付けるデータを処理対象データ及びメタデータと別に管理する必要がなくなる。従って、記憶領域の有効利用及び管理負担の軽減が図られる。ファイル識別子には、複数のキーワードを含めることができる。
さらに、ユーザが処理対象データファイルを指定する場合に、ユーザがファイルパスを含むファイル識別子を指定するように構成している。これにより、ファイル識別子の指定がキーワード入力を兼ねる。従って、ユーザの作業負担軽減が図られる。
さらに、本実施形態では、メタデータは、処理対象データファイルと異なる記憶領域に格納されるように構成している。これによって、記憶領域に処理対象データファイルを効率的に格納することができる。また、メタデータを各ノードが有し、メタデータの転送処理が排除されている。これにより、メタデータの転送による効率低下を抑止することができる。
本発明は、例えば、様々な数値シミュレーションシステムにおけるデータ処理への適用が可能である。

Claims (10)

  1. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
    前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
    前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
    前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成する制御プログラム生成手段と、
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と
    を含む並列処理支援装置。
  2. 前記決定手段は、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
    選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処理対象データファイルを配置すべき計算ノードとして決定する
    請求項1記載の並列処理支援装置。
  3. 前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
    前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する
    請求項1又は2記載の並列処理支援装置。
  4. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段と、
    前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況を格納した記憶手段と、
    前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定する決定手段と、
    前記各処理対象データファイルを前記決定手段による配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成する制御プログラム生成手段と、
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成するファイル生成手段と、を含み、
    処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
    処理対象データのメタデータを格納したメタデータ格納手段と、
    メタデータと関連づけられたキーワード群を有するキーワードリストと、
    指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と前記キーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出手段と、
    抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索する検索手段と、
    前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索手段によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定手段と、をさらに含み、
    関連データファイルを有する処理対象データファイルが前記判定手段で検知された場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラム生成手段は、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記ファイル生成手段は、前記関連データファイルに対する前記設定ファイルを生成する、
    並列処理支援装置。
  5. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
    前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
    前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成して出力するステップと、
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと
    をコンピュータに実行させるプログラム。
  6. 前記配置を決定するステップでは、前記処理対象データファイル群を構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
    選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処理対象データファイルを配置すべき計算ノードとして決定する
    請求項記載のプログラム。
  7. 前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を含み、
    前記制御プログラムの生成ステップでは、処理結果ファイルを前記保管位置へ転送することを示す命令文を含む前記制御プログラムを生成する
    請求項5又は6記載のプログラム。
  8. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと、
    前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと、
    前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成して出力するステップと、
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと、をコンピュータに実行させ、
    処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
    指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と、メタデータと関連づけられたキーワード群を有するキーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出ステップと、
    抽出されたキーワードに対応するメタデータを、処理対象データのメタデータを格納したメタデータ格納手段から検索するステップと、
    前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索するステップによって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定ステップと、をさらにコンピュータに実行させ、
    関連データファイルを有する処理対象データファイルが前記判定ステップで検知された場合に、前記決定するステップでは、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラムを自動的に生成して出力するステップでは、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記設定ファイルを自動的に生成して出力するステップでは、前記関連データファイルに対する前記設定ファイルを生成する、
    プログラム。
  9. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと
    前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、並列処理を行う前記指定された数の計算ノード、及びこれらの計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと
    前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む並列処理用ジョブスクリプトを自動的に生成して出力するステップと
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイルを自動的に生成して出力するステップと、
    を含む並列処理支援方法。
  10. 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行う並列計算機群中の複数の計算ノードの数,前記処理対象データファイル群に対する処理内容の指定を含む並列処理指定情報を受け付けるステップと
    前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理対象データファイルの配置を決定するステップと
    前記各処理対象データファイルを前記配置を決定するステップでの配置の決定結果に従って前記指定された数の計算ノードに配置するデータ配置命令文と、前記各処理対象データファイルが配置された各計算ノードに対する前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラムを自動的に生成して出力するステップと
    前記各処理対象データファイルが配置された各計算ノードが自身に配置された処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファイルが配置される計算ノードの識別子と、指定された処理内容の記述とを含む設定ファイル
    を自動的に生成して出力するステップと、を含み、
    処理対象データファイルの指定は、ディレクトリ構造を構成する複数のディレクトリの一つに格納されるデータファイルのファイルパスを含むデータファイルのファイル識別子が複数表示されたリスト中から選択されたファイル識別子の指定により行われ、
    指定されたファイル識別子で特定されるデータファイルに対応するメタデータを検索するためのキーワードを、この指定されたファイル識別子のファイルパス部分から抽出するために、前記指定されたファイル識別子のファイルパス部分の一部をなす文字列と、メタデータと関連づけられたキーワード群を有するキーワードリストとを対比して、前記キーワードリスト中の少なくとも一つのキーワードと一致する文字列をキーワードとして抽出する抽出ステップと、
    抽出されたキーワードに対応するメタデータを、処理対象データのメタデータを格納したメタデータ格納手段から検索するステップと、
    前記処理データファイル毎に、処理データファイルに関連する関連データファイルがあるか否かを判定するために、前記検索によって検索されたメタデータに基づいて関連データファイルがあるか否かを判定する判定ステップと、をさらに含み、
    関連データファイルを有する処理対象データファイルが前記判定ステップで検知された場合に、前記決定するステップにおいて、処理対象データファイル及びこれに対する関連データファイルを同一の計算ノードに配置し、前記制御プログラムを自動的に生成して出力するステップにおいて、前記関連データファイルを処理対象データファイルの一つとして含む前記処理対象データファイル群に対する前記制御プログラムを生成し、前記設定ファイルを自動的に生成して出力するステップにおいて、前記関連データファイルに対する前記設定ファイルを生成する、
    並列処理支援方法。
JP2007550972A 2005-12-22 2005-12-22 並列処理支援装置 Expired - Fee Related JP4846736B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/023650 WO2007072567A1 (ja) 2005-12-22 2005-12-22 並列処理支援装置

Publications (2)

Publication Number Publication Date
JPWO2007072567A1 JPWO2007072567A1 (ja) 2009-05-28
JP4846736B2 true JP4846736B2 (ja) 2011-12-28

Family

ID=38188358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007550972A Expired - Fee Related JP4846736B2 (ja) 2005-12-22 2005-12-22 並列処理支援装置

Country Status (2)

Country Link
JP (1) JP4846736B2 (ja)
WO (1) WO2007072567A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5380130B2 (ja) * 2009-03-30 2014-01-08 株式会社野村総合研究所 ファイル検索装置及びファイル検索方法、並びにプログラム
CN106383738B (zh) * 2016-09-30 2019-10-11 北京百度网讯科技有限公司 任务处理方法和分布式计算框架
JP7121923B2 (ja) * 2018-07-30 2022-08-19 日本電気株式会社 データ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235112A (ja) * 1995-03-01 1996-09-13 Mitsubishi Electric Corp 計算機システムの分散ジョブ管理方式
JPH0916534A (ja) * 1995-06-30 1997-01-17 N Ii C Joho Syst:Kk 分散型プロセス処理方法およびその装置
JPH113323A (ja) * 1997-06-10 1999-01-06 Nec Software Ltd ジョブ実行の負荷分散装置
JP2003281163A (ja) * 2002-03-26 2003-10-03 Canon Inc 画像処理装置及び画像処理方法、記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235112A (ja) * 1995-03-01 1996-09-13 Mitsubishi Electric Corp 計算機システムの分散ジョブ管理方式
JPH0916534A (ja) * 1995-06-30 1997-01-17 N Ii C Joho Syst:Kk 分散型プロセス処理方法およびその装置
JPH113323A (ja) * 1997-06-10 1999-01-06 Nec Software Ltd ジョブ実行の負荷分散装置
JP2003281163A (ja) * 2002-03-26 2003-10-03 Canon Inc 画像処理装置及び画像処理方法、記憶媒体

Also Published As

Publication number Publication date
JPWO2007072567A1 (ja) 2009-05-28
WO2007072567A1 (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
US11593369B2 (en) Managing data queries
CN107533453B (zh) 用于生成数据可视化应用的系统和方法
US9377936B2 (en) Framework for automated storage processes and flexible workflow
CN109952564A (zh) 数据库系统中测试数据的形成与操纵
CN115516443B (zh) 根据架构生成优化逻辑
JP2014048673A (ja) ワークフロー生成サーバ、及び方法
US20130346992A1 (en) Computing system, method for controlling thereof, and computer-readable recording medium having computer program for controlling thereof
US20170242904A1 (en) Computer system and transaction processing management method
JP6996629B2 (ja) 検証自動化装置、検証自動化方法、およびプログラム
JP2019530121A (ja) データ統合ジョブ変換
JP2019503534A (ja) データベース操作方法及び装置
CN108446398A (zh) 一种数据库的生成方法及装置
JP4846736B2 (ja) 並列処理支援装置
JP2009129067A (ja) ファイル検索方法、ファイル検索装置、検索システム、及び、ファイル検索プログラム
JP2005148901A (ja) ジョブスケジューリングシステム
JP4905989B2 (ja) メタデータ検索装置
KR102622170B1 (ko) Ai 모델 서빙 시스템 및 방법
CN111045991B (zh) 一种基于命令行模式快速打开文件的实现方法
CN108038181A (zh) 一种数据处理系统及数据处理方法
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
JP2006040024A (ja) ストレージ管理方法、管理装置及びコンピュータシステム
CN110134687A (zh) 一种通过表字段的动态增改控制清单要素的方法及系统
CN110222105A (zh) 数据汇总处理方法及装置
KR102417677B1 (ko) 회로 검증을 위한 유사 회로 검색 장치 및 방법
JPWO2017221364A1 (ja) アダプタ生成装置及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees