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

並列処理支援装置 Download PDF

Info

Publication number
WO2007072567A1
WO2007072567A1 PCT/JP2005/023650 JP2005023650W WO2007072567A1 WO 2007072567 A1 WO2007072567 A1 WO 2007072567A1 JP 2005023650 W JP2005023650 W JP 2005023650W WO 2007072567 A1 WO2007072567 A1 WO 2007072567A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
file
data file
target data
processing target
Prior art date
Application number
PCT/JP2005/023650
Other languages
English (en)
French (fr)
Inventor
Hitoshi Uehara
Hideharu Sasaki
Yoshikazu Sasai
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
Priority to PCT/JP2005/023650 priority Critical patent/WO2007072567A1/ja
Priority to JP2007550972A priority patent/JP4846736B2/ja
Publication of WO2007072567A1 publication Critical patent/WO2007072567A1/ja

Links

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

Definitions

  • the present invention relates to a technology for processing a large amount of data files such as large-scale simulation data in the computer science field.
  • Simulation results performed in a large-scale simulation system such as a marine simulation system consist of a large amount of data files. It is rare for a large number of data files to be several tens of terabytes or more in size and 10,000 or more in number of files. In general, such a large amount of data files are not created in the same format, and often have a slightly different format depending on the content of the data.
  • calculation grids In addition, in numerical simulation, generally, the intersections of line segments as shown in FIG. 16A are defined as calculation grids, and processing (for example, calculation of physical quantities) on numerical data is advanced based on this calculation grid. Be Depending on the physical characteristics of the numerical data and the circumstances of the calculation formula, processing (calculation of physical quantities) for some numerical data is based on different calculation grids as shown in FIG. 16B. Is often done.
  • first calculation grid a first data file calculated based on the calculation grid (referred to as “first calculation grid”) shown in FIG. 16A
  • second calculation grid a calculation grid shown in FIG. 16B
  • the first data file as described above is calculated based on what calculation grid Data indicating the details of the data in the data file, whether it contains data or not, is referred to herein as "metadata”.
  • parallel processing parallel calculation
  • a control program script
  • scripts were written by the user. For this reason, the user is required to have descriptive knowledge of scripts related to parallel computation, which hinders the ease of use of the system and imposes a burden on the user.
  • An object of the present invention is to provide a technology that can easily process a large amount of data files.
  • the present invention adopts the following means in order to achieve the above object.
  • the present invention includes a processing target data file group, the number of computing nodes in a parallel computer group performing parallel processing on the processing target data file group, and specification of processing contents for the processing target data file group.
  • Storage means for storing usage and load statuses for each of a plurality of computing nodes included in the parallel computer group; Based on the number of specified computing nodes and the usage and load status, a decision is made to determine the arrangement of each processing target data file constituting the processing target data file group for the specified number of computing nodes.
  • Control program generation means for generating a control program including an instruction statement of execution
  • Each of the plurality of computing nodes determined as described above is a setting file for parallel processing that is referred to when processing the processing target data file arranged in itself, and the processing target data for each processing target data file
  • File generation means for generating a setting file including a file identifier of a file, an identifier of a computing node on which a processing data file is arranged, and a description of designated processing content;
  • the determination means calculates from the computing nodes of the specified number of computing nodes included in the parallel computer group. Select a computing node having a storage capacity capable of storing the processing target data file and the processing result file for the processing target file,
  • the computing node having the smallest current processing load is determined as the computing node to which the processing target data file is to be placed.
  • the parallel processing specification information includes specification of a storage position of a processing result file generated as a result of processing on a processing target data file.
  • the control program generation means generates the control program including a statement indicating transfer of a processing result file to the storage location.
  • the present invention further includes a determination unit that determines, for each of the processing data files, whether or not there is a related data file related to the processing data file, and the processing target data having the related data file
  • the determination means may process the data file to be processed and the related data thereto. Place files on the same compute node.
  • the determination means determines whether or not there is a related data file based on metadata of processing target data.
  • designation of the processing target data file is performed by designation of a file identifier including storage location information of the data file and a keyword indicating details of the data, and metadata storage means storing the metadata ,
  • search means for searching the metadata storage means for metadata corresponding to the extracted keyword.
  • the determination means is configured to perform the determination using the retrieved metadata.
  • the present invention can be specified as a parallel processing support method, a program, and a recording medium recording the program having the same features as the above-described parallel processing support apparatus. Effect of the invention
  • the present invention it is possible to easily process a large number of data files. Furthermore, according to the present invention, it is not necessary for the user to specify metadata for processing target data.
  • FIG. 1 is a diagram showing a configuration example of a simulation system to which the present invention can be applied.
  • FIG. 2 is a view showing an example of the configuration of a control computer shown in FIG. 1;
  • FIG. 3 A diagram showing an example of the configuration of the node shown in FIG.
  • FIG. 4 is a view showing an example of the directory structure of a file database storing the processing object data file shown in FIG.
  • FIG. 5 is a view showing an example of the data structure of the metadata table shown in FIG. 2;
  • FIG. 6 is a view showing an example of the data structure of a usage and load distribution situation table shown in FIG. 2;
  • FIG. 7 A diagram showing a display example of a user interface (designated screen) provided to a user of the system.
  • FIG. 8 is a diagram showing an example of description of a file of parallel processing designation information input using a user interface.
  • FIG. 9 A flowchart showing a main routine of creation processing of a parallel processing job script and a parallel processing program setting file.
  • FIG. 10 is a flowchart showing a main routine of processing for creating a parallel processing job script and a parallel processing program setting file.
  • FIG. 11 is a flowchart showing a main routine of processing for creating a parallel processing job script and a parallel processing program setting file.
  • FIG. 12 A flowchart showing a subroutine related to acquisition of analysis of metadata.
  • FIG. 13 is a flowchart showing a subroutine of search and determination processing of a node to be a placement destination of a processing target data file.
  • FIG. 14 is a diagram showing an example of description of a parallel processing program setting file.
  • FIG. 15 is a flowchart showing execution processing of a parallel processing program.
  • 16A is a diagram showing an example of a calculation grid prepared as metadata for processing target data.
  • 16B is a diagram showing an example of a calculation grid different from the calculation grid of FIG. 16A, which is prepared as metadata for processing target data.
  • FIG. 1 is a view showing a configuration example of a simulation system to which the present invention can be applied.
  • the simulation system comprises a parallel computer group X and a control computer (information processing apparatus) Y connected to the parallel computer group X via a communication line (network).
  • the parallel computer group X is a plurality of calculation nodes (nodes) # 0 to # n (n is a natural number) for performing parallel processing on a large number of data files constituting a large scale simulation data such as a ocean general circulation model. It consists of
  • Computer Y manages simulation data (data to be processed) to be processed by parallel computer group X, and parallel processing using simulation data is converted to parallel computer group X according to the user's operation. Control when it is executed.
  • a user of the simulation system performs parallel processing to execute parallel processing of a large amount of processing target data (processing target data group) using parallel computer group X through a UI (user interface) provided by computer Y. Enter the specified information.
  • the parallel processing specification information includes a plurality of simulation data files (processing target data file group) to be subjected to parallel processing, and processing contents of parallel computer group Y for the processing target data file group (processing type, It can include specification of processing detail parameters), multiple nodes (number of nodes) performing parallel processing, and storage location of file (processed data file (processing result file)) generated as a result of parallel processing.
  • Computer Y is a parallel processing job script for giving control instructions related to parallel processing to parallel computer group X based on the input parallel processing specification information (control program for parallel computer group Y: It may be written as “script” and a parallel processing program setting file (hereinafter referred to as “setting file”) that is referred to when each node that executes parallel processing processes the data file to be processed. And automatically generate.
  • Computer Y generates a script during the process of generating a script, acquires metadata (detailed information of process target data) for each process target data file, and processes a process target data file group for parallel computer group X. Make placement decisions. Metadata and placement decision results will be reflected in the description content of the script.
  • the computer ⁇ distributes (distributes) the processing target data file group to a plurality of nodes through script execution, and instructs these nodes to execute a parallel processing program (job). .
  • Each node executes the parallel processing program according to the description of the setting file, and performs processing on the distributed processing target data file based on the corresponding metadata.
  • a processing result file is created through the processing.
  • the processing result file is stored in the storage location specified as parallel processing specification information.
  • FIG. 2 is a diagram showing an example of the configuration of a computer.
  • the computer ⁇ is connected to the CPU 1, the main memory (for example, RAM: 2), the external storage device (for example, the hard disk) 3, the input / output interface (I / F) 4 and 5, and communication interface 6.
  • the main memory for example, RAM: 2
  • the external storage device for example, the hard disk
  • I / F input / output interface
  • An input device (a keyboard, a pointing device (for example, a mouse, etc.)) as input means is connected to the I / F 4, and a display device (display) as an output means is connected to the I / F 5.
  • the communication I / F 6 is connected to each node # 0 to #n via a communication line (network).
  • the external storage device 3 includes a file database (file DB) 31 storing a large amount of simulation data files constituting large-scale simulation data, and metadata (simulation data corresponding to each data file).
  • Metadata table 32 storing detailed information and usage and load distribution situation table 33 (hereinafter referred to as “situation table 33”) of each node to be referred to when distributing the processing target data file group to a plurality of nodes. Notation) is stored.
  • File DB 31 and metadata table 32 are created on different storage areas.
  • the external storage device 3 causes the computer Y to function as a management device of simulation data and metadata, and a control device of parallel computer group Y (nodes # 0 to #n).
  • the CPU 1 implements the following function, for example, by loading the program recorded in the external storage device 3 into the MM 2 and executing the program.
  • the CPU 1 corresponds to a receiving unit, a determining unit, a control program generating unit, a file generating unit, and a determining unit according to the present invention. Further, the CPU 1 can function as an accepting means for accepting specification of a file identifier, an extracting means for extracting a keyword for file search and a keyword search for metadata search, and a search means for searching metadata corresponding to the keyword. Also, the external storage device 3 corresponds to the storage means according to the present invention. Also, the external storage device 3 functions as a metadata storage unit that stores the metadata searched by the search unit.
  • FIG. 3 is a diagram showing an example of the configuration of a node.
  • the node includes a CPU 11, a main memory 12, a calculation processor 13, an external storage device (for example, a hard disk) 14, and a communication interface (communication IZF) 15 mutually connected via a bus B 1.
  • Communication IZF 15 is connected to computer Y and other nodes via a network.
  • the node receives the processing target data file transferred from the computer Y by the communication I / F 15 and stores it in the external storage device 14. Also, the node is from computer Y Receive parallel processing instructions and configuration files via communication I / F 15.
  • the calculation processor 13 is used for calculation using data to be processed.
  • the calculation processor 13 reads the processing target data file stored in the external storage device 14 onto the MM 12 and executes predetermined processing (for example, cutting out a predetermined area in the data file, calculation of physical quantity) using this. This predetermined process is performed based on the metadata.
  • a processing result file is generated and stored in the external storage device 14.
  • the processing result file stored in the external storage device 14 is moved (transferred) to a predetermined storage position.
  • the CPU 11 functions as parallel processing means for executing parallel processing in accordance with the setting file.
  • the CPU 11 can also function as an accepting unit that accepts specification of a file identifier, an extracting unit that extracts a keyword for searching file identification metadata, and a searching unit that searches metadata corresponding to the keyword.
  • the external storage device 14 functions as a metadata storage unit storing the metadata searched by the search unit.
  • the file DB 31 classifies and stores a large number of simulation data files (hereinafter sometimes referred to simply as “data file”) using a directory structure.
  • FIG. 4 is a diagram showing an example of the directory structure of the file DB 31.
  • a directory tree starting from the root directory (the directory "data" in FIG. 4) is formed, and directories of each hierarchy are given predetermined directory names.
  • Data files are stored in a directory located at the end of the directory tree, and given a specified data file name.
  • File identifier is the root It is expressed by a list of data file names and the names (path names) of each directory located on the path of the directory tree from the directory to the end directory.
  • the file identifier of the data file having the data file name "timeXXX.0000.000.dat" in FIG. 4 is 7 data / experiment A / 3 D / statistics A / variable B / time XXX. 000.000.
  • the file The identifier contains storage location information (file path) of the data file.
  • the directory name ("3D”, “statsticsA”, “variableB”, etc.) and data file name (“timeXXX.0000.000”) in the file identifier are the details (properties, etc.) of the data in the data file. It is specified as a keyword to show. Keywords consist of any one or more characters, and are placed in at least one place in directory names and data file names. However, no keyword is set in the extension part of the file name. A keyword functions as a search key for searching metadata corresponding to processing target data.
  • the data files may be distributed and stored in a plurality of storage areas arranged inside or outside the computer Y which need not necessarily be stored in one storage area.
  • the metadata table 32 stores metadata corresponding to the keywords in the file identifier.
  • FIG. 5 is a view showing an example of the data structure of the metadata table 32. As shown in FIG.
  • the metadata table 32 is composed of a plurality of records storing a search key (keyword) and metadata corresponding thereto.
  • the keyword is extracted as a search key from the file identifier of the data file (data file to be processed) designated by the user.
  • Metadata is information indicating details (properties and attributes, etc.) of simulation data (data to be processed), for example, information indicating physical properties of data to be processed, or statistical processing or space-time (vertical , Height, and time (date and time)).
  • the information on the calculation grids shown in FIGS. 16A and 16B is information on space.
  • a keyword representing information of such a calculation grid for example, a variable name represented by an arbitrary number of characters is Applied.
  • FIG. 5 shows a case where one force of the directory name included in the file identifier corresponds to one metadata.
  • one metadata may be retrieved from a combination of a plurality of keywords included in one file identifier.
  • some of directory names and data file names include a key code, and keywords may be extracted from file identifiers in partial match search.
  • FIG. 6 is a view showing an example of the data structure of the situation table 33.
  • the status table 33 is composed of a plurality of small tables 34 prepared for each node.
  • Each small table 34 has the same data structure.
  • the small table 34 contains identification information (user ID) of the user authorized to use the node, the maximum size of the external storage 14 of the node available for the user (authorized maximum capacity), and the user currently using it.
  • the capacity (load) of the external storage device 14 is composed of a set of records having elements (items).
  • Each small table 34 is provided with a node identifier, and information corresponding to the node identifier is stored in the small table.
  • CPU 1 provides a user of computer ⁇ with an input environment (UI) of parallel processing specification information through execution of a program.
  • UI input environment
  • the user using the UI, is an element (item) of parallel processing specification information, a processing target data file group (file identifier), a plurality of nodes for processing the processing target data file group, and the processing target data file group. You can specify the processing content (processing type and detailed parameters), the storage location of the processing result file, and so on.
  • FIG. 7 is a diagram showing an example of a designation screen of parallel processing designation information provided as a UI.
  • the designated screen is displayed on the screen of the display device 8 through the execution of the program by the CPU 1.
  • the specification screen includes a file path display field 81 and a file list display field 82. And a command input field 83.
  • the file path display field 81 displays the directory (file path) in the file DB 31 selected by the user using the input device 7.
  • the command input field 83 is used to input a command related to the process for the data file to be processed.
  • the user can operate the input device 7 to display a desired file path in the file path display field 81 (select a file path).
  • the display contents of the file list display field 82 are changed according to the selection result of the file path, and the file list corresponding to the file path is displayed in the display field 82.
  • the user designates the file identifier of the processing target data file by setting the desired file name from the file list displayed in the file list display field 82 by the cursor operation using the input device 7. be able to. At this time, it is possible to specify multiple data files at one time through cursor operation. Thus, the user can designate the file identifier of the data file to be processed using the file path display field 81 and the file list display field 82.
  • the user can use the command input field 83 to designate and input nodes (number of nodes) used for parallel processing, processing contents for processing target data file group, storage location of processing result file, etc. .
  • the parallel processing specification information is a parallel processing specification information file described in a predetermined format. Are stored in a predetermined position of the external storage device 3.
  • FIG. 8 is a diagram showing an example of description of a parallel processing specification information file.
  • the parallel processing specification information file contains specification lines for computer resources, specification lines for processing details (processing contents), and so on. , The data file to be processed and the specified row of the storage location of the processing result for it
  • Such a description (parallel processing specification information file) is automatically set by the CPU 1 by the user specifying the number of nodes, the processing content, the processing target data file group, and the storage position using the UI. It is created.
  • FIGS. 9, 10 and 11 are flowcharts showing an example of a main routine of script and setting file creation processing executed by the CPU 1 (FIG. 2).
  • the execution of the processing is started, for example, triggered by the completion of creation of the parallel processing specification information file or the input of a processing start instruction from the user.
  • CPU 1 When the process shown in FIG. 9 is started, CPU 1 first performs an initialization process (step SO).
  • the CPU 1 sends the parallel processing specification information file stored in the external storage device 3 (see FIG. 8).
  • the CPU 1 executes analysis loop processing of parallel processing specification information.
  • the CPU 1 fetches designated lines one by one from the parallel processing designation information file, sets the fetched lines as analysis target lines, and analyzes the analysis target lines.
  • the CPU 1 determines whether or not the analysis target line extracted from the parallel processing specification information file is a specification line of computer resources (step S 003).
  • the CPU 1 determines the argument (the number of nodes: “3” in the example of FIG. 8) in this analysis target line.
  • Computer related to parallel processing The resource parameters are determined and stored in a predetermined position (a predetermined work area on MM2) (step S004). Thereafter, the CPU 1 determines the next designated line as the analysis target line, and returns the process to step S003.
  • step S 003 If it is determined in step S 003 that the analysis target line is not a designated line of computer resources (SO 03; N)), CPU 1 determines whether the analysis target line is a designated line of processing details or not. Yes (Step S005).
  • the CPU 1 specifies the processing type specification and arguments in this analysis target line (specified processing parameters: example of FIG. 8) If so, "PROC_A" (procedure A) corresponds to the process type specification, and "120.0 150.0 20.0 50.0" corresponds to the process parameter), and this process type and argument are determined as process parameters related to parallel processing. And store it in a predetermined position (work area) (step S006). Thereafter, the CPU 1 determines the next designated line as a line to be analyzed, and returns the process to step S003.
  • step S 005 If it is determined in step S 005 that the analysis target line is not the designated line of process details (S 005; NO), CPU 1 determines that the analysis target line is the designated line of the processing target data file and storage location, According to this judgment, the file identifier in the analysis target line and identification information of the storage position are taken out and stored in a predetermined position (work area) (S 007).
  • step S 008 CPU 1 outputs the header portion of the parallel processing job script.
  • the header is stored in advance at a predetermined position of the external storage device 3 as a fixed text.
  • the header contains a configuration file transfer instruction.
  • nodes to be used for parallel processing are determined based on the processing target data file and the specified number of nodes used for parallel processing.
  • the use and load status for each of nodes # 0 to #n are managed by, for example, OS (operating system) of computer Y.
  • the number of processing data files and the number of nodes in the parallel processing specification information file are handed over to the OS.
  • the OS extracts nodes that are permitted to be used by the user from nodes # 0 to #n, and takes into account the usage of multiple nodes extracted and the load status and the number of files, Select the number of nodes. For example, from the extracted nodes, the nodes with the specified number of nodes are determined as the nodes to be used for parallel processing in the order of smaller load. The determined use and load status of each node is set as a small table 34 in the status table 33. As a result, the processing target data file group is processed in parallel by the nodes of the designated node number determined by ⁇ S.
  • small table 34 for all nodes # 0 to #n is stored in status table 33 (FIG. 6), and S refers to small table 34, and the number of specified nodes is in the order of small load.
  • a minute node may be selected, and a mask may be set (unreferenced) in the small table 34 corresponding to the selected node.
  • the CPU 1 executes loop processing of analysis' processing of the processing target data file.
  • the loop processing is executed for each file identifier (processing target data file) obtained in step S 007.
  • CPU 1 first identifies one of the designated processing target data files (processing target data files having the file identifier obtained in step S 007) (referred to as analysis target files).
  • analysis target files processing target data files having the file identifier obtained in step S 007)
  • the CPU 1 starts a subroutine of metadata analysis processing of the analysis target file (step S 009),
  • FIG. 12 is a flowchart showing an example of a metadata analysis' acquisition subroutine.
  • the CPU 1 receives an input of data file designation (step S101). That is, the CPU 1 receives the file identifier of the analysis target file.
  • the CPU 1 determines whether or not the file identifier has the correct format (step S102). At this time, if the file identifier does not have the correct format (S 102; NO), the process for creating the script and setting file ends on the assumption that the process is unsuccessful (NG). In this case, error display processing is performed, and the user can be notified of an error.
  • the CPU 1 starts a keyword acquisition loop process.
  • the CPU 1 determines whether or not a keyword representing metadata is included in the file identifier (S 103). For example, the CPU 1 extracts the directory name next to the root directory in the file identifier, and this directory name and a list of keywords in the metadata table 32 (FIG. 5) (keywords stored in the metadata table 32) Match the group name) and search for keywords that match the extracted directory name.
  • the CPU 1 extracts the next directory name and collates with the keyword list. In this way, CPU 1 repeats the extraction process of the directory name or data file name as described above and the collation process with the keyword list until a directory name or data file name matching one of the keywords is found. .
  • Step S104 If the CPU 1 finds a keyword that matches the extracted directory name or data file name (S 103; YES), the CPU 1 interrupts the extraction process, and the metadata corresponding to the keyword is extracted from the metadata table 32. Take out and acquire (Step S104).
  • the CPU 1 When acquiring the metadata from the metadata table 32, the CPU 1 resumes extraction of the directory name or data file name and collation with the keyword list for the file identifier.
  • the directory name "statisticsA" next to the directory name "3D" as the keyword the corresponding metadata "metal” is obtained from the metadata table 32.
  • the keyword acquisition loop process is performed.
  • the process ends (S104; No), and the subroutine (S009) shown in FIG. 12 ends, and the process returns to step S010 (FIG. 10) of the processing power main routine.
  • the computer Y determines that the metadata corresponding to the processing target data is included in the file identifier. Identify (acquire) automatically using information (keywords).
  • step S010 CPU 1 analyzes the metadata in a row, and in parallel processing of the processing target data file (analysis target file) targeted by loop processing, the analysis is not performed on the analysis target file alone. Determine whether data related to the target file (related data file) is necessary.
  • the file identifier may include, in the directory name or data file name, a character or a character string indicating component information indicating whether the X component, the Y component, or the Z component is offset. It is created by routinely changing the character or character string description of the Y component and Z component data information corresponding to the data file of a certain component (for example, X component). For example, if the letter “X” of the component information contained in the file identifier is replaced with the letter “Y” or “Z” indicating the Y component or the Z component, the corresponding Y component or Z component data file It becomes a file identifier.
  • step S010 if the CPU 1 finds that the analysis target file is, for example, an X component data file through analysis of the metadata obtained in step S009, the related data file is required. It determines with (S010; YES) and advances a process to step S011. If not (S010; N)), the CPU 1 advances the process to step S012.
  • step S011 the CPU 1 generates a file identifier of the related data file.
  • the file identifier of the related data file can be generated, for example, by changing a part of the file identifier of the analysis target file as described above.
  • the file identifier of the generated related data file is stored in the work area on MM2 as a pair with the file identifier of the file to be analyzed.
  • the related data file is It is stored in DB31. Thereafter, the process proceeds to step S012.
  • step S012 a subroutine for determining the arrangement of the analysis target file (specified data file) or the analysis target file and the related data file is executed.
  • FIG. 13 is a flowchart showing an example of the arrangement determining subroutine (S012).
  • the CPU 1 first estimates the size of the data file allocated to the node and the computer resource A required for the process (step S201).
  • the CPU 1 obtains the size of the analysis target file (for example, obtained from metadata). Subsequently, the CPU 1 estimates the size of the processing result file created when the processing specified by the processing detail parameter obtained in step S 006 (FIG. 9) is executed on the analysis target file according to the corresponding metadata. Do. The CPU 1 calculates the sum of the size of the analysis target file and the size of the processing result file as the computer resource A.
  • the size of the processing result file is, for example, extracted from the extraction range if the processing content specified by the processing detail parameter and processing for extracting a part of the analysis target file from the extraction range are specified. .
  • step S201 if there is a related data file, the size of the related data file and the size of the processing result file for the related data file are also included in the computer resource A.
  • the size of the related data file and the size of the processing result file for this can be estimated, for example, the size of the analysis target file and the size of the processing result file for this.
  • CPU 1 refers to status table 33 (FIG. 6) and can provide the user with a capacity equivalent to computer resource A, and that the load is lightest in the current load distribution status.
  • Search for a predicted node step S202).
  • the CPU 1 refers to the status table 33 and refers to the user's record in each small table 34.
  • the user ID has already been input to the computer Y by the user, for example, when starting to use the simulation system, and the CPU 1 refers to the record corresponding to this user ID.
  • CPU 1 subtracts the load (current usage size) from the maximum size in each record to determine the remaining usable size of the user at each node. Subsequently, the CPU 1 determines the node with the largest usable size (smallest load) as the node to which the analysis target file (and the related data file) should be placed.
  • the CPU 1 updates the situation table 33 based on the computer resource A (step S 203). That is, the CPU 1 adds the value of the computer resource A to the load value (use size) of the small table 34 corresponding to the determined node.
  • the CPU 1 ends the processing of the subroutine, and passes the identifier of the node determined as the file allocation destination to the main routine.
  • the CPU 1 When proceeding to step S013 of the S main routine, the CPU 1 outputs an instruction statement (referred to as “data arrangement instruction statement”) related to data arrangement to nodes.
  • data arrangement instruction statement an instruction statement related to data arrangement to nodes.
  • the CPU 1 reads a template of the data arrangement command statement (previously stored in the external storage device 3).
  • the template is configured such that the command statement is completed if a file identifier to be placed and a node identifier are described at a predetermined position of the fixed command statement.
  • the CPU 1 describes the identifier of the file to be analyzed (and the related data file) at a predetermined position of the template and describes the node identifier obtained in step S012. In this way, the completed data allocation statement becomes part of the parallel processing job script.
  • CPU 1 outputs a command statement (referred to as “processing result moving command statement”) for moving processed data (processing result file) to the storage position after completion of parallel processing (step s).
  • processing result moving command statement a command statement for moving processed data (processing result file) to the storage position after completion of parallel processing (step s).
  • the CPU 1 reads a template of the process result movement instruction statement (previously stored in the external storage device 3).
  • the template is configured such that the command statement is completed if the storage position specified by the UI is described at a predetermined position of the fixed command statement.
  • the CPU 1 writes the storage location of the processing result file for the analysis target file obtained in step S 007 in a predetermined position of the template. In this way, the completed processing result transfer instruction statement is processed in parallel Be part of an administrative job script.
  • the CPU 1 stores data arrangement information (step S015). That is, the CPU 1 stores the correspondence between the file identifier and the node identifier as data arrangement information in a predetermined storage area.
  • step S 015 When step S 015 is completed, if there is a file identifier of the processing target data file that is not a file to be analyzed, processing power S returns to step S 009, and processing power S of steps S 009 to S 015 described above is executed. Ru. When processing for the file identifiers of all processing target data files is completed, the processing proceeds to processing step S016.
  • the arrangement destination of each processing target data file included in the processing target data file group is determined such that the load in parallel processing is minimized.
  • the CPU 1 outputs a parallel processing program execution statement. That is, the CPU 1 reads out a parallel processing program execution statement stored in advance in the external storage device 3 and sets it as a part of a parallel processing job script. In this way, a parallel processing job script including a header, a data placement instruction statement, a processing result transfer instruction statement, and a parallel processing program execution statement is automatically generated.
  • the CPU 1 starts the creation process of the setting file of the parallel processing program (step S017: FIG. 11).
  • the CPU 1 starts parallel processing program setting creation loop processing. This loop process is executed for each data file to be processed.
  • the CPU 1 creates the setting for the process target data file based on the data arrangement information (the correspondence between the file identifier and the node identifier) (S018).
  • the CPU 1 extracts a portion related to one processing target data file from the data arrangement information obtained in step S 015, and combines it with the processing parameter (acquired in step S 006) corresponding to the file identifier.
  • the CPU 1 describes the result of the combination in a predetermined format for the setting file.
  • FIG. 14 is a diagram showing an example of description of a parallel processing program setting file.
  • the setting file consists of a plurality of lines described for each data file to be processed.
  • CPU 1 When creation of the script and configuration file is completed, CPU 1 starts script execution. By executing the script, the computer Y transfers the configuration file to each node of the parallel computer group X according to the configuration file transfer instruction statement of the header.
  • the computer Y transfers each processing target data file (processing target data file group) stored in the file DB 31 to the allocation destination node according to the data allocation information by executing the data allocation instruction statement. Do.
  • the computer Y executes, for each node, the processing result file (processed data) created by processing the processing target data file in each node by executing the processing result moving instruction statement. It instructs to store in the specified storage location (for example, prepared in file DB 31).
  • the computer Y instructs each node to start the execution of the parallel processing program by executing the parallel processing program execution statement.
  • Each node (FIG. 3) at which the processing target data file group is arranged receives the setting file and the processing target data file from the computer Y via the network. These are stored in the external storage device 14 in the node. Thereafter, the CPU 11 of each node starts the execution of the parallel processing program when it receives the execution instruction of the parallel processing program of the computer Y power.
  • FIG. 14 is a flowchart showing execution processing of a parallel processing program executed by the CPU 11.
  • the CPU 11 starts the process shown in FIG. 14, it first executes an initialization process (step S301).
  • the CPU 11 stores the data in the external storage device 14 when the initialization is completed.
  • the CPU 11 executes a processing loop of the processing target data file according to the setting file.
  • the CPU 11 sets one line in the setting file as the line to be processed, and executes the process on the data file to be processed according to the setting contents described in the line to be processed.
  • the CPU 11 refers to the node identifier in the setting file, and determines whether this node identifier is equal to the identifier of the own node (step S303).
  • step S 303 if the node identifiers are not equal (S 303; NO), the next line in the setting file is set as the line to be processed, and the process of step S 303 is executed.
  • the CPU 11 performs processing for acquiring metadata corresponding to the file identifier described in the processing target line (step S 304).
  • step S304 is the same process as the subroutine shown in FIG. That is, the CPU 11 refers to the metadata table 32A (the data structure is the same as the metadata table 32 (FIG. 5)) stored in the external storage device 14 and retrieves the corresponding metadata.
  • the CPU 11 refers to the metadata table 32A (the data structure is the same as the metadata table 32 (FIG. 5)) stored in the external storage device 14 and retrieves the corresponding metadata.
  • the CPU 11 executes the process on the process target data file in accordance with the process type specification in the process target line, the process parameter, and the metadata (step S 305). That is, the CPU 11 gives the calculation processor 13 specification of processing type, processing parameters, file identifier and metadata. Then, the calculation processor 13 reads the processing target data file corresponding to the file identifier from the external storage unit 14 to the MM 12 and executes processing according to the processing type specification and the processing parameter based on the metadata.
  • the CPU 11 outputs data of the processing result (processed data) as a processing result file (step S306).
  • the processing result file is transferred, for example, to computer Y, and computer Y stores the processing result file in a storage location designated by the user (for example, prepared in file DB 31).
  • the storage area of the processing target data file (simulation data file) is provided on the external storage device 3 of the computer Y
  • the storage area may be provided on a file server independent of the computer Y and the parallel computer group X which each node may have.
  • the parallel processing for the data file group to be processed is performed.
  • Processing control programs (scripts) and configuration files for parallel program execution are created automatically.
  • a desired script and setting file are automatically created simply by designating or inputting information which is an element of the above-described parallel processing designation information by using the UI. This can greatly reduce the effort of the user.
  • the time required to describe a script is shortened, the time required to obtain parallel processing results can be shortened. Furthermore, it is possible to eliminate the possibility of redoing parallel processing due to a user's description error.
  • the metadata for the processing target data is automatically retrieved and acquired according to the specification of the file identifier by the user. That is, when the user designates a file identifier, a keyword is extracted from the file identifier, and metadata corresponding to this keyword is treated as designated metadata. This eliminates the need for the user to input metadata specifications for each data file to be processed. Therefore, the user's effort is reduced and It is possible to shorten the logic time and prevent user's input errors.
  • a file identifier including data storage location information (file path) is applied to the processing target data file, and a keyword indicating the nature of the processing target data (for metadata search The keywords of) are included.
  • the file identifier can include multiple keywords.
  • the user when the user designates the data file to be processed, the user is configured to designate the file identifier including the file path. In this way, specification of the file identifier doubles as keyword input. Therefore, the burden on the user can be reduced.
  • the metadata is configured to be stored in a storage area different from the processing target data file.
  • the data file to be processed can be efficiently stored in the storage area.
  • each node has metadata, and metadata transfer processing is excluded. This makes it possible to suppress the efficiency drop due to metadata transfer.
  • the present invention is applicable to, for example, data processing in various numerical simulation systems.

Abstract

処理対象データファイル群,処理対象データファイル群に対する並列処理を行うノード数,処理内容の指定を含む並列処理指定情報を受け付けると、指定されたノード数と各ノードの使用及び負荷状況とに基づいて、各処理対象データファイルへのノードの配置を決定し、各処理対象データファイルを配置決定結果に従って各ノードに配置する命令文及び並列処理実行の命令文を含む制御プログラムと、各ノードが処理対象データファイルの処理を行う場合に参照される並列処理の設定ファイルとを生成して出力する並列処理支援装置である。

Description

明 細 書
並列処理支援装置
技術分野
[0001] 本発明は、計算機科学分野において、大規模シミュレーションデータのような大量 のデータファイルを処理する技術に関する。
背景技術
[0002] 海洋シミュレーションシステムのような大規模シミュレーションシステムで行われるシ ミュレーシヨンの結果は、大量のデータファイルから構成される。大量のデータフアイ ノレは、サイズにして数十テラバイト以上、ファイル数にして一万個以上になることは珍 しくなレ、。一般に、このような大量のデータファイルは、同じ形式で作成されておらず 、データの内容に応じた若干異なる形式を有する場合が多い。
[0003] また、数値シミュレーションでは、一般に、図 16Aに示すような線分の交点が計算グ リツドとして規定され、この計算グリッドに基づレ、て数値データに対する処理 (例えば 物理量の計算)が進められる。し力しながら、数値データが持つ物理的な特性や、計 算式の都合等の諸事情により、一部の数値データに対する処理 (物理量の計算)は、 図 16Bに示すような異なる計算グリッドに基づいて行われることがしばしばある。
[0004] ここに、図 16Aに示された計算グリッド (「第 1の計算グリッド」と呼ぶ)に基づいて算 出された第 1のデータファイルと、図 16Bに示された計算グリッド (「第 2の計算グリッド 」と呼ぶ)に基づいて算出された第 2のデータファイルとが存在する場合を仮定する。 さらに、第 1及び第 2のデータファイルから、例えば、東経 120. 1度から 121. 6度ま での領域 (切り出し範囲)に存するデータを切り出す場合を仮定する。
[0005] この場合、第 1のデータファイルから 2つの計算グリッドに対応するデータが切り出さ れ、第 2のデータファイルから 4つの計算グリッドに対応するデータが切り出される。と ころが、第 1のデータファイル力らも 4つの計算グリッドに対応するデータの切り出しが 望まれる場合には、上記した切り出し範囲に従って切り出されるデータ (切り出しデー タ)は不十分なものとなる。
[0006] 上記したような第 1のデータファイルがどのような計算グリッドに基づいて算出された データを含んでいるかという、データファイル中のデータの詳細を示すデータを、本 明細書では「メタデータ」と呼ぶ。
[0007] 従来では、メタデータをシミュレーションデータから分離して保管したり、ユーザが、 処理対象のシミュレーションデータファイル毎に、対応するメタデータを指定入力した りしていた。
発明の開示
発明が解決しょうとする課題
[0008] 大規模シミュレーションの結果として生成されたシミュレーションデータをシミュレ一 シヨン後にさらにデータ処理仕様とする場合、それらの大量のデータファイルのそれ ぞれに対して、ユーザ力 Sメタデータを指定入力することは、ユーザに多大な労力を払 うことを強いることになる。また、ユーザ力 Sメタデータを誤って指定するおそれもあった
[0009] また、大量のデータ処理を効率的に行うには並列処理 (並列計算)が有効である力 その並列計算を並列計算機群に実行させるための制御プログラム (スクリプト)を用意 する必要がある。従来、スクリプトは、ユーザによって記述されていた。このため、ユー ザには並列計算に係るスクリプトの記述知識が要求され、これがシステム利用の簡便 性を阻害するとともに、ユーザに労力負担を強いることになつていた。また、スクリプト の記述ミスにより適正な並列計算が実行されないおそれもあった。
[0010] 本発明の目的は、大量のデータファイルに対する処理を簡便に行うことが可能な技 術を提供することである。
課題を解決するための手段
[0011] 本発明は、上記目的を達成するため、以下の手段を採用する。
[0012] すなわち、本発明は、処理対象データファイル群,この処理対象データファイル群 に対する並列処理を行う並列計算機群中の計算ノードの数,前記処理対象データフ アイル群に対する処理内容の指定を含む並列処理指定情報を受け付ける受付手段 と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負 荷状況を格納した記憶手段と、 前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指 定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理 対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを配置の決定結果に従って前記指定された数の計 算ノードに配置するデータ配置命令文と、前記決定された複数の計算ノードに対す る前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラム を生成する制御プログラム生成手段と、
前記決定された複数の計算ノードのそれぞれが、 自身に配置された処理対象デー タファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対 象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファ ィルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定フ アイルを生成するファイル生成手段と、
を含む並列処理支援装置である。
[0013] 好ましくは、本発明において、前記決定手段は、前記処理対象データファイル群を 構成する各処理対象データファイルについて、前記並列計算機群に含まれる前記指 定された計算ノード数の計算ノードから、処理対象データファイルとこれに対する処 理結果ファイルとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを前記処理 対象データファイルを配置すべき計算ノードとして決定する。
[0014] また、好ましくは、本発明において、前記並列処理指定情報は、処理対象データフ アイルに対する処理の結果として生成される処理結果ファイルの保管位置の指定を 含み、
前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送するこ とを示す命令文を含む前記制御プログラムを生成する。
[0015] また、好ましくは、本発明は、前記処理データファイル毎に、処理データファイルに 関連する関連データファイルがあるか否かを判定する判定手段をさらに含み、 関連データファイルを有する処理対象データファイルが前記判定手段で検知され た場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データ ファイルを同一の計算ノードに配置する。
[0016] また、好ましくは、本発明において、前記判定手段は、関連データファイルがあるか 否かを、処理対象データのメタデータに基づいて判定する。
[0017] この場合、処理対象データファイルの指定は、データファイルの格納位置情報と、 データの詳細を示すキーワードとを含むファイル識別子の指定により行われ、 前記メタデータを格納したメタデータ格納手段と、
前記ファイル識別子から前記キーワードを抽出する抽出手段と、
抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索す る検索手段とをさらに含み、
前記判定手段は、検索されたメタデータを用いて前記判定を実行するように構成さ れる。
[0018] また、本発明は、上記した並列処理支援装置と同様の特徴を有する並列処理支援 方法,プログラム,このプログラムを記録した記録媒体として特定することができる。 発明の効果
[0019] 本発明によれば、大量のデータファイルに対する処理を簡便に行うことが可能とな る。また、本発明によれば、処理対象データに対するメタデータの指定をユーザが行 わなくて済む。
図面の簡単な説明
[0020] [図 1]本発明を適用可能なシミュレーションシステムの構成例を示す図である。
[図 2]図 1に示した制御用コンピュータの構成例を示す図である。
[図 3]図 1に示したノードの構成例を示す図である。
[図 4]図 2に示した処理対象データファイルを格納するファイルデータベースのディレ クトリ構造例を示す図である。
[図 5]図 2に示したメタデータテーブルのデータ構造例を示す図である。
[図 6]図 2に示した使用及び負荷分散状況テーブルのデータ構造例を示す図である
[図 7]システムのユーザに提供されるユーザインタフェース (指定画面)の表示例を示 す図である。 [図 8]ユーザインタフェースを用いて入力される並列処理指定情報のファイルの記述 例を示す図である。
[図 9]並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処理 のメインルーチンを示すフローチャートである。
[図 10]並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処 理のメインルーチンを示すフローチャートである。
[図 11]並列処理用ジョブスクリプト及び並列処理プログラム用設定ファイルの作成処 理のメインルーチンを示すフローチャートである。
[図 12]メタデータの解析'取得に係るサブルーチンを示すフローチャートである。
[図 13]処理対象データファイルの配置先となるノードの検索及び決定処理のサブル 一チンを示すフローチャートである。
[図 14]並列処理プログラム用設定ファイルの記述例を示す図である。
[図 15]並列処理プログラムの実行処理を示すフローチャートである。
園 16A]処理対象データに対するメタデータとして用意される計算グリッドの例を示す 図である。
園 16B]処理対象データに対するメタデータとして用意される、図 16Aの計算グリッド と異なる計算グリッドの例を示す図である。
符号の説明
X···並列計算機群
Υ···制御用のコンピュータ
1, 11---CPU
2, 12·· 'メインメモリ
3, 14···外部記憶装置
7·· '入力装置
8···表示装置
6, 15···通信インタフェース
31···ファイルデータベース
32···メタデータテーブル 33 · · '使用及び負荷分散情報テーブル
発明を実施するための最良の形態
[0022] 以下、図面を参照して本発明の実施形態について説明する。実施形態における構 成は例示であり、本発明は、実施形態の構成に限定されない。
[0023] 〔シミュレーションシステム〕
図 1は、本発明を適用可能なシミュレーションシステムの構成例を示す図である。図
1に示す例では、シミュレーションシステムは、並列計算機群 Xと、並列計算機群 Xに 通信回線 (ネットワーク)を介して接続された制御用のコンピュータ (情報処理装置) Yと からなる。
[0024] 並列計算機群 Xは、海洋大循環モデルのような大規模シミュレーションデータを構 成する多数のデータファイルに対する並列処理を行う複数の計算ノード (ノード) # 0 〜# n(nは自然数)からなる。
[0025] コンピュータ Yは、並列計算機群 Xでの処理対象となるシミュレーションデータ (処理 対象データ)を管理しており、ユーザの操作に応じて、シミュレーションデータを用い た並列処理を並列計算機群 Xに実行させる場合の制御を行う。
[0026] シミュレーションシステムのユーザは、コンピュータ Yによって提供される UI (ユーザ インタフェース)を通じて、並列計算機群 Xを用いた大量の処理対象データ (処理対象 データ群)の並列処理を実行するための並列処理指定情報を入力する。
[0027] ここに、並列処理指定情報は、並列処理の対象となる複数のシミュレーションデー タファイル (処理対象データファイル群),処理対象データファイル群に対する並列計 算機群 Yの処理内容 (処理種別,処理詳細パラメータ),並列処理を行う複数のノード (ノード数),並列処理の結果生成されるファイル (処理済みデータファイル (処理結果 ファイル))の保管位置などの指定を含むことができる。
[0028] コンピュータ Yは、入力された並列処理指定情報に基づいて、並列計算機群 Xに並 列処理に係る制御指示を与えるための並列処理用ジョブスクリプト (並列計算機群 Y の制御用プログラム:以下「スクリプト」と表記することもある)と、並列処理を実行する 各ノードが処理対象データファイルを処理する際に参照される並列処理プログラム用 設定ファイル (以下「設定ファイル」と表記することもある)とを自動的に生成する。 [0029] コンピュータ Yは、スクリプトの生成過程にぉレ、て、各処理対象データファイルに対 するメタデータ (処理対象データの詳細情報)の取得,及び並列計算機群 Xに対する 処理対象データファイル群の配置決定を行う。メタデータ及び配置決定結果は、スク リブトの記述内容に反映される。
[0030] コンピュータ Υは、スクリプトの実行を通じて、処理対象データファイル群を複数のノ ードへ分散配置 (分配)するとともに、これらのノードに対して並列処理プログラム (ジョ ブ)の実行を指示する。各ノードは、設定ファイルの記述に従って並列処理プログラム を実行し、分配された処理対象データファイルに対する処理を、対応するメタデータ に基づいて行う。当該処理を通じて処理結果ファイルが作成される。処理結果フアイ ノレは、並列処理指定情報として指定された保管位置にて保管される。
[0031] 〈コンピュータ Υ〉
図 2は、コンピュータ Υの構成例を示す図である。図 2において、コンピュータ Υは、 バス Βを介して相互に接続された CPU1,メインメモリ (MM :例えば RAM)2,外部記 憶装置 (例えばハードディスク) 3,入出力インタフェース (I/F)4及び 5,並びに通信ィ ンタフェース 6を備えてレ、る。
[0032] I/F4には、入力手段としての入力装置 (キーボード,ポインティングデバイス (例え ばマウス)等)が接続されており、 I/F5には、出力手段としての表示装置 (ディスプレ ィ) 8が接続されている。さらに、通信 I/F6は、通信回線 (ネットワーク)を介して各ノー ド # 0〜 # nに接続されてレ、る。
[0033] 外部記憶装置 3には、大規模シミュレーションデータを構成する大量のシミュレーシ ヨンデータファイルを格納したファイルデータベース (ファイル DB)31と、各データファ ィルに対応するメタデータ (シミュレーションデータの詳細情報)を格納したメタデータ テーブル 32と、処理対象データファイル群を複数のノードに分散配置する場合に参 照される各ノードの使用及び負荷分散状況テーブル 33(以下、「状況テーブル 33」と 表記)とが格納されている。ファイル DB31とメタデータテーブル 32とは異なる記憶領 域上に作成されている。
[0034] さらに、外部記憶装置 3には、コンピュータ Yを、シミュレーションデータやメタデータ の管理装置として機能させるとともに、並列計算機群 Y (ノード # 0〜# n)の制御装置 として機能させるためのプログラムが格納されている。
[0035] CPU1は、外部記憶装置 3に記録されたプログラムを MM2にロードして実行するこ とにより、例えば、次のような機能を実現する。
(1)シミュレーションシステムのユーザに対し、入力装置 7及び表示装置 8を用いた並 列処理指定情報の入力 (指定)環境 (UI :ユーザインタフェース)を提供する。
(2)並列処理指定情報に基づいてスクリプト及び設定ファイルを作成する。
(3)スクリプトの作成時にぉレ、て、処理対象としてユーザにより指定された複数のシミュ レーシヨンデータファイル (処理対象データファイル群)のそれぞれに対応するメタデ ータを検索及び取得する。
(4)スクリプトの作成時にぉレ、て、処理対象データファイル群を構成する各処理対象 データファイルを処理するノード (処理対象データファイルの配置)を決定する。
(5)処理対象データファイル群、及び処理対象データファイル群の並列処理によって 生成される処理結果ファイルの転送制御を行う。
[0036] なお、 CPU1が本発明に係る受付手段,決定手段,制御プログラム生成手段,ファ ィル生成手段,判定手段に相当する。また、 CPU1は、ファイル識別子の指定を受け 付ける受付手段,ファイル識別子力 メタデータ検索用のキーワードを抽出する抽出 手段,及びキーワードに対応するメタデータを検索する検索手段として機能すること ができる。また、外部記憶装置 3が本発明に係る記憶手段に相当する。また、外部記 憶装置 3は、検索手段によって検索されるメタデータを格納したメタデータ格納手段 として機能する。
[0037] 〈並列計算機群 X〉
並列計算機群 Xを構成する各ノード # 0〜# nは、同じ構成を有している。図 3は、 ノードの構成例を示す図である。ノードは、バス B1を介して相互に接続された CPU1 1 ,メインメモリ 12,計算プロセッサ 13,外部記憶装置 (例えばハードディスク) 14,及 び通信インタフェース (通信 IZF)15を備えている。通信 IZF15は、ネットワークを介 してコンピュータ Y及び他のノードに接続されてレ、る。
[0038] ノードは、コンピュータ Yから転送されてくる処理対象データファイルを通信 I/F15 で受信し、これを外部記憶装置 14に格納する。また、ノードは、コンピュータ Yからの 並列処理命令や設定ファイルを通信 I/F15を介して受信する。
[0039] すると、 CPU11が、設定ファイルの記述に従って、外部記憶装置 3に予め格納され ている並列処理プログラムの実行を開始する。処理対象データを用いた計算には計 算プロセッサ 13が使用される。計算プロセッサ 13は、外部記憶装置 14に格納された 処理対象データファイルを MM12上に読み出し、これを用いた所定の処理 (例えば、 データファイル中の所定領域の切り出し、物理量の計算)を実行する。この所定の処 理は、メタデータに基づいて実行される。
[0040] 所定の処理によって、処理結果ファイルが生成され、外部記憶装置 14に格納され る。外部記憶装置 14に格納された処理結果ファイルは、所定の保管位置に移動 (転 送)される。
[0041] CPU11は、設定ファイルに従って、並列処理を実行する並列処理手段として機能 する。また、 CPU11は、ファイル識別子の指定を受け付ける受付手段,ファイル識別 子力 メタデータ検索用のキーワードを抽出する抽出手段,及びキーワードに対応す るメタデータを検索する検索手段として機能することができる。また、外部記憶装置 1 4は、検索手段によって検索されるメタデータを格納したメタデータ格納手段として機 能する。
[0042] く DB及びテーブルのデータ構造〉
次に、図 2に示したファイル DB31 ,メタデータテーブル 32,並びに、使用及び負荷 状況テーブル (状況テーブル) 33の詳細を説明する。
[0043] 《ファイル DB31》
ファイル DB31は、大量のシミュレーションデータファイル (以下、単に「データフアイ ノレ」と表記することもある)を、ディレクトリ構造を用いて分類及び格納している。
[0044] 図 4は、ファイル DB31のディレクトリ構造の例を示す図である。ファイル DB31内に は、ルートディレクトリ (図 4ではディレクトリ" data")を起点としたディレクトリツリーが形 成されており、各階層のディレクトリには、所定のディレクトリ名が付与されている。デ ータファイルは、ディレクトリツリー中の末端に位置するディレクトリ内に格納され、所 定のデータファイル名が付与されてレ、る。
[0045] データファイルは、ファイル識別子を用いて識別される。ファイル識別子は、ルート ディレクトリから末端のディレクトリまでに至るまでの、ディレクトリツリーの経路 (パス)上 に位置する各ディレクトリの名称 (パス名)と、データファイル名との羅列により表現され る。
[0046] 例えば、図 4におけるデータファイル名" timeXXX.000.000.dat"を有するデータファ ィノレのフアイノレ識別子は、 7data/experimentA/3D/statisticsA/variableB/timeXXX. 000.000"である。このように、ファイル識別子は、データファイルの格納位置情報 (ファ ィルパス)を含んでいる。
[0047] また、ファイル識別子中のディレクトリ名("3D", "statsticsA", "variableB"等)ゃデー タファイル名("timeXXX.000.000")は、データファイル中のデータの詳細 (性質等)を 示すキーワードとして規定されている。キーワードは、任意の 1以上の文字で構成さ れ、ディレクトリ名及びデータファイル名中の、少なくとも 1箇所に配置される。但し、フ アイル名の拡張子部分にキーワードは設定されない。キーワードは、処理対象データ に対応するメタデータを検索するための検索キーとして機能する。
[0048] なお、データファイルは、必ずしも 1つの記憶領域に格納される必要はなぐコンビ ユータ Yの内部又は外部に配置される複数の記憶領域上に分散して格納されていて も良い。
[0049] 《メタデータテーブル》
メタデータテーブル 32は、ファイル識別子中のキーワードに対応するメタデータを 格納している。図 5は、メタデータテーブル 32のデータ構造例を示す図である。
[0050] 図 5に示す例では、メタデータテーブル 32は、検索キー (キーワード)と、これに対応 するメタデータとを格納した複数のレコードからなる。キーワードは、ユーザにより指定 されたデータファイル (処理対象データファイル)のファイル識別子から検索キーとして 抽出される。
[0051] メタデータは、シミュレーションデータ (処理対象データ)の詳細 (性質や属性等)を示 す情報であり、例えば、処理対象データの物性を示す情報であったり、統計処理や 時空間 (縦、横、高さ、時間 (年月日時))に関する情報であったりする。例えば、図 16 Aや図 16Bに示した計算グリッドの情報は、空間に関する情報である。このような計算 グリッドの情報を表すキーワードとして、例えば、任意の文字数で表される変数名が 適用される。
[0052] なお、図 5では、ファイル識別子に含まれるディレクトリ名の一つ力 1つのメタデー タに対応する場合を示している。これに代えて、例えば、 1つのファイル識別子に含ま れる複数のキーワードの組み合わせから 1つのメタデータが検索されるように構成し ても良い。また、ディレクトリ名やデータファイル名 (拡張子を除く)の一部に、キーヮー ドが含まれ、部分一致検索でキーワードがファイル識別子から抽出されるようにしても 良レ、。また、ファイル識別子中のファイルパス部分のみに、キーワードが設定される構 成を採用することもできる。
[0053] 《状況テーブル 33》
図 6は、状況テーブル 33のデータ構造例を示す図である。状況テーブル 33は、ノ ード毎に用意された複数の小テーブル 34からなる。各小テーブル 34は、同じデータ 構造を有している。小テーブル 34は、ノードの使用が許可されているユーザの識別 情報 (ユーザ ID)と、ユーザが使用可能な当該ノードの外部記憶装置 14の最大サイ ズ (許可最大容量)と、ユーザが現在使用している外部記憶装置 14の容量 (負荷)とを 要素 (項目)とするレコードの集合で構成されている。各小テーブル 34には、ノード識 別子が付与されており、ノード識別子と対応する情報が当該小テーブルに格納され る。
[0054] 〈ユーザインタフェース (UI)〉
図 2に示すコンピュータ Yにおいて、 CPU1は、プログラムの実行を通じて、コンビュ ータ γのユーザに対し、並列処理指定情報の入力環境 (UI)を提供する。
[0055] ユーザは、 UIを用いて、並列処理指定情報の要素 (項目)たる、処理対象データフ アイル群 (ファイル識別子),処理対象データファイル群を処理する複数のノード,処理 対象データファイル群に対する処理内容 (処理種別及び詳細パラメータ),処理結果 ファイルの保管位置等を指定することができる。
[0056] 図 7は、 UIとして提供される並列処理指定情報の指定画面の例を示す図である。
指定画面は、 CPU1によるプログラムの実行を通じて、表示装置 8のスクリーンに表 示される。
[0057] 図 7に示す例では、指定画面は、ファイルパス表示欄 81と、ファイルリスト表示欄 82 と、コマンド入力欄 83とを備えている。ファイルパス表示欄 81には、ユーザが入力装 置 7を用いて選択したファイル DB31内のディレクトリ (ファイルパス)が表示される。
[0058] また、ファイルリスト表示欄 82には、ファイルパス表示欄 81に表示されたファイルパ スに対応するデータファイル (ファイルパス中の末端のディレクトリに格納されたデータ ファイル)のリスト (ファイルリスト)を表示する。また、コマンド入力欄 83は、処理対象デ ータファイルに対する処理に係るコマンドを入力するために使用される。
[0059] ユーザは、入力装置 7を操作して、ファイルパス表示欄 81に所望のファイルパスを 表示させる (ファイルパスを選択する)ことができる。ファイルパスの選択結果に応じて、 ファイルリスト表示欄 82の表示内容が変更され、ファイルパスに応じたファイルリスト が当該表示欄 82に表示される。
[0060] ユーザは、入力装置 7を用いたカーソル操作で、ファイルリスト表示欄 82に表示さ れたファイルリストから所望のファイル名をしていすることで、処理対象データファイル のファイル識別子を指定することができる。このとき、カーソル操作を通じて、複数の データファイルを一時に指定することもできる。このように、ユーザは、ファイルパス表 示欄 81及びファイルリスト表示欄 82を用いて、処理対象データファイルのファイル識 別子を指定することができる。
[0061] また、ユーザは、コマンド入力欄 83を用いて、並列処理に使用するノード (ノード数) ,処理対象データファイル群に対する処理内容,処理結果ファイルの保管位置等を 指定入力することができる。
[0062] なお、ノード数,処理パラメータ,保管位置の指定に際して、スクリーン上に指定内 容の選択肢が表示され、ユーザがカーソル操作で所望の選択肢を選択することによ り、これらが指定されるように構成することができる。
[0063] 〈スクリプト及び設定ファイルの生成〉
ユーザが、上述したような UIを用いて並列処理指定情報の各要素を指定し、その 指定内容の確定操作を行うと、並列処理指定情報は、所定のフォーマットで記述され た並列処理指定情報ファイルとして、外部記憶装置 3の所定位置に格納される。
[0064] 図 8は、並列処理指定情報ファイルの記述例を示す図である。図 8において、並列 処理指定情報ファイルは、計算機資源の指定行と、処理詳細 (処理内容)の指定行と 、処理対象データファイル及びこれに対する処理結果の保管位置の指定行とを含む
[0065] 計算機資源の指定行 (図 8の第 1行)では、その識別子 ("NODE")と、並列処理に使 用するノード数を表す引数 (図 7の例では" 3")が記述される。
[0066] また、処理詳細の指定行 (図 8の第 2行)では、その識別子 ("PROC")と、処理種別 ("
PR〇C_A")と、処理詳細を表す処理パラメータ ("120.0 150.0 20.0 50.0")を表す引 数が記述される。
[0067] また、処理対象データファイル及び保管位置の指定行 (図 8の第 3及び 4行)では、 その識別子 ("DATA")と、処理対象データファイルのファイル識別子と、対応する処 理結果ファイルの保管位置の識別情報 ("xxxxx"や" xxxxy"で図示)とが記述される。 当該指定行は、処理対象データファイル毎に作成される。
[0068] このような記述 (並列処理指定情報ファイル)は、ユーザが、 UIを用いて、ノード数, 処理内容,処理対象データファイル群,保管位置をそれぞれ指定することで、 CPU1 により自動的に作成される。
[0069] 図 9,図 10及び図 11は、 CPU1 (図 2)によって実行されるスクリプト及び設定フアイ ル作成処理のメインルーチンの例を示すフローチャートである。当該処理の実行は、 例えば、並列処理指定情報ファイルの作成終了や、ユーザからの処理開始指示の 入力を契機として、開始される。
[0070] 図 9に示す処理が開始されると、最初に、 CPU1は、初期化処理を行う (ステップ SO
01)。次に、 CPU1は、外部記憶装置 3に格納された並列処理指定情報ファイル (図 8
)を MM2に読み込む (ステップ S002)。
[0071] 次に、 CPU1は、並列処理指定情報の解析ループ処理を実行する。この解析ルー プ処理において、 CPU1は、並列処理指定情報ファイルから指定行を 1行ずつ取り 出し、取り出した行を解析対象行に設定し、この解析対象行の解析を行う。
[0072] CPU1は、並列処理指定情報ファイルから取り出した解析対象行が、計算機資源 の指定行か否かを判定する (ステップ S003)。
[0073] このとき、解析対象行が計算機資源の指定行であれば (S003 ;YES)、 CPU1は、 この解析対象行中の引数 (ノード数:図 8の例であれば" 3")を並列処理に係る計算機 資源パラメータとして決定し、所定位置 (MM2上の所定の作業領域)に保存する (ステ ップ S004)。その後、 CPU1は、次の指定行を解析対象行に決定し、処理をステップ S003に戻す。
[0074] ステップ S003にて、解析対象行が計算機資源の指定行でないと判定されると (SO 03 ; N〇)、 CPU1は、解析対象行が処理詳細の指定行であるか否かを判定する (ス テツプ S005)。
[0075] このとき、解析対象行が処理詳細の指定行であれば (S005 ; YES)、 CPU1は、こ の解析対象行中の処理種別指定及び引数 (指定された処理パラメータ:図 8の例であ れば" PROC_A "(手続き A)が処理種別指定に相当し、 "120.0 150.0 20.0 50.0"が処 理パラメータに相当する)を取り出し、この処理種別及び引数を並列処理に係る処理 パラメータとして決定し、所定位置 (作業領域)に保存する (ステップ S006)。その後、 C PU1は、次の指定行を解析対象行に決定し、処理をステップ S003に戻す。
[0076] ステップ S005にて、解析対象行が処理詳細の指定行でないと判定されると (S005 ; NO), CPU1は、解析対象行が処理対象データファイル及び保管位置の指定行と 判断し、この判断に従って、この解析対象行中のファイル識別子及び保管位置の識 別情報を取り出し、所定位置 (作業領域)に保存する (S007)。
[0077] 上記した解析ループ処理は、並列処理指定情報ファイルの最終行に対する処理が 終了すると、終了する。続いて、 CPU1は、処理を図 10のステップ S008に進める。
[0078] ステップ S008では、 CPU1は、並列処理用ジョブスクリプトのヘッダ部分を出力す る。当該ヘッダは、定型文として予め外部記憶装置 3の所定位置に格納されている。 ヘッダには、設定ファイルの転送命令が含まれる。ステップ S008において、処理対 象データファイルと、指定された並列処理に使用されるノード数とに基づいて、並列 処理に使用されるノードが決定される。各ノード # 0〜# nに対する使用及び負荷状 況は、例えば、コンピュータ Yの〇S (オペレーティングシステム)にて管理されている。 OSには、並列処理指定情報ファイル中の処理データファイル数及びノード数が引き 渡される。
[0079] OSは、例えば、ノード # 0〜# nから、ユーザの使用が許可されているノードを抽出 し、抽出された複数のノードの使用及び負荷状況やファイル数を考慮して、指定ノー ド数のノードを選択する。例えば、抽出されたノードから、負荷が少ない順で、指定ノ ード数のノードを並列処理に使用するノードとして決定する。決定された各ノードの使 用及び負荷状況は、状況テーブル 33に小テーブル 34として設定される。これによつ て、処理対象データファイル群は、〇Sにより決定された指定ノード数のノードによつ て並列処理されることになる。
[0080] なお、状況テーブル 33(図 6)に、すべてのノード # 0〜# nに対する小テーブル 34 が格納され、〇Sが小テーブル 34を参照して、負荷の少ない順で、指定ノード数分の ノードを選択し、選択されな力、つたノードに対応する小テーブル 34にマスクがセットさ れる (参照不可状態にされる)ようにしても良い。
[0081] 続いて、 CPU1は、処理対象データファイルの解析'処理のループ処理を実行する 。当該ループ処理は、ステップ S007で得られたファイル識別子 (処理対象データファ ィル)毎に実行される。このループでは、 CPU1は、最初に、指定された処理対象デ ータファイル群 (ステップ S007で得られたファイル識別子を持つ処理対象データファ ィル群)の一つ (解析対象ファイルと呼ぶ)を特定する。続いて、 CPU1は、この解析対 象ファイルのメタデータ解析処理のサブルーチンを起動し (ステップ S009)、解析対
[0082] 図 12は、メタデータ解析 '取得のサブルーチンの例を示すフローチャートである。
図 12において、最初に、 CPU1は、データファイル指定の入力を受け付ける (ステツ プ S101)。即ち、 CPU1は、解析対象ファイルのファイル識別子を受け取る。
[0083] 次に、 CPU1は、ファイル識別子力 正しい形式を有するか否かを判定する (ステツ プ S102)。このとき、ファイル識別子が正しい形式を有しない場合 (S102 ; NO)には、 処理が失敗 (NG)であるものとして、スクリプト及び設定ファイル作成処理が終了する 。この場合、エラー表示処理が行われ、ユーザにエラーが通知されるようにする構成 すること力 Sできる。
[0084] これに対し、ファイル識別子が正しい形式である場合 (S102 ; YES)には、 CPU1は 、キーワードの取得ループ処理を開始する。当該ループ処理では、最初に、 CPU1 は、メタデータを表すキーワードがファイル識別子中に含まれてレ、るか否かを判定す る (S103)。 [0085] 例えば、 CPU1は、ファイル識別子中のルートディレクトリの次のディレクトリ名を抽 出し、このディレクトリ名とメタデータテーブル 32(図 5)中のキーワードのリスト (メタデー タテーブル 32に格納されたキーワード群)とを照合し、抽出されたディレクトリ名と合致 するキーワードを検索する。
[0086] このとき、キーワードが検索できなかった場合には、 CPU1は、次のディレクトリ名を 抽出し、キーワードリストとの照合を行う。このようにして、 CPU1は、キーワードの 1つ と合致するディレクトリ名又はデータファイル名が見つかるまで、上述したようなディレ クトリ名又はデータファイル名の抽出処理及びキーワードリストとの照合処理を繰り返 す。
[0087] CPU1は、抽出したディレクトリ名又はデータファイル名と合致するキーワードが見 つかった場合には (S103 ;YES)、抽出処理を中断し、キーワードに対応するメタデ ータをメタデータテーブル 32から取り出して取得する (ステップ S104)。
[0088] 例えば、ファイル識別子 "/dataん xperimentA/3D/statisticsA/variableB/timeXXX.
000.000.dat" (図 4)に関して、図 5に示す格納内容のメタデータテーブル 32を用いて 上記した処理が行われた場合、ディレクトリ名 "3D"がファイル識別子から抽出され、 キーワードリストとの照合が行われた時点で、 "3D"に対応するメタデータ" metaOl"が 、メタデータテーブル 32から取得されることになる。
[0089] CPU1は、メタデータテーブル 32からメタデータを取得すると、当該ファイル識別子 について、ディレクトリ名又はデータファイル名の抽出及びキーワードリストとの照合 処理を再開する。これによつて、例えば、ディレクトリ名" 3D"の次のディレクトリ名" stat isticsA"をキーワードとして、対応するメタデータ" metal"がメタデータテーブル 32か ら取得される。
[0090] その後、データファイル名を対象とした照合処理が終了した時点 (合致するキーヮ ードが検索された場合は、対応するメタデータの取得が終了した時点)で、キーワード の取得ループ処理が終了し (S104 ; N〇)、図 12に示すサブルーチン (S009)が終了 し、処理力メインルーチンのステップ S010 (図 10)に戻る。
[0091] このようにして、コンピュータ Yは、ユーザが処理対象データのファイル識別子を指 定すると、処理対象データに対応するメタデータをファイル識別子に含まれる性質情 報 (キーワード)を用いて自動的に特定 (取得)する。
[0092] ステップ S010では、 CPU1は、メタデータの解析を行レ、、ループ処理で対象となつ ている処理対象データファイル (解析対象ファイル)の並列処理において、当該解析 対象ファイルのみではなぐこの解析対象ファイルに関連するデータ (関連データファ ィル)が必要か否かを判定する。
[0093] 例えば、流体の流速計算が並列処理で実行される場合、速度の X成分, Y成分, Z 成分が必要である。ここで、ステップ SO 10での判定処理の対象となっている解析対 象ファイル力 S、速度の X成分を示すデータファイルであれば、 Y及び Z成分を示す各 データファイルが関連データファイルとして必要となる。
[0094] ここに、ファイル識別子は、ディレクトリ名又はデータファイル名中に X成分, Y成分 , Z成分のレ、ずれであるかを示す成分情報を示す文字又は文字列を含むことができ る。或る成分 (例えば X成分)のデータファイルに対応する Y成分及び Z成分のデータ 報の文字又は文字列の記述を定型的に変更することで作成されている。例えば、フ アイル識別子中に含まれた成分情報の文字" X"を、 Y成分や Z成分を示す文字" Y" や" Z"に置換すれば、対応する Y成分又は Z成分のデータファイルのファイル識別子 となる。
[0095] ステップ S010において、 CPU1は、ステップ S009で得られたメタデータの解析を 通じて、解析対象ファイルが例えば X成分のデータファイルであることが分かった場 合には、関連データファイルが必要と判定し (S010 ;YES)、処理をステップ S011に 進める。そうでなければ (S010 ; N〇)、 CPU1は、処理をステップ S012に進める。
[0096] ステップ S011では、 CPU1は、関連データファイルのファイル識別子を生成する。
関連データファイルのファイル識別子は、例えば、上述したように、解析対象ファイル のファイル識別子の一部を変更することで、生成することができる。生成された関連 データファイルのファイル識別子は、解析対象ファイルのファイル識別子と一組にし て、 MM2上の作業領域に記憶される。
[0097] なお、作成された関連データファイルのファイル識別子で示されるファイルパス上に 実際の関連データファイルが格納されているように、関連データファイルは、フアイノレ DB31に格納されている。その後、処理がステップ S012に進む。
[0098] ステップ S012では、解析対象ファイル (指定データファイル)又は解析対象ファイル 及び関連データファイルの配置を決定するサブルーチンを実行する。
[0099] 図 13は、配置決定サブルーチン (S012)の例を示すフローチャートである。図 13に おいて、 CPU1は、処理を開始すると、最初に、ノードに配置されるデータファイルの サイズ、及び処理に要する計算機資源 Aを概算する (ステップ S201)。
[0100] すなわち、 CPU1は、解析対象ファイルのサイズ (例えば、メタデータから得られる) を取得する。続いて、 CPU1は、解析対象ファイルに対し、ステップ S006(図 9)で得 た処理詳細パラメータで指定された処理を対応するメタデータに従って実行した場 合に作成される処理結果ファイルのサイズを概算する。 CPU1は、解析対象ファイル のサイズと処理結果ファイルのサイズとの合計値を計算機資源 Aとして算出する。
[0101] 処理結果ファイルのサイズは、例えば、処理詳細パラメータで指定された処理内容 力、解析対象ファイルの一部を指定された抽出範囲から抽出する処理である場合、 その抽出範囲から割り出される。
[0102] 解析対象ファイルに対する関連データファイルが存在する場合、解析対象ファイル と関連データファイルとは同じノードで処理されることが、処理効率を高める上で好ま しレ、。このため、ステップ S201において、関連データファイルが存在する場合には、 関連データファイルのサイズ、及び関連データファイルに対する処理結果ファイルの サイズも、計算機資源 Aに含められる。関連データファイルのサイズ及びこれに対す る処理結果ファイルのサイズは、例えば、解析対象ファイルのサイズ及びこれに対す る処理結果ファイルのサイズ力 概算することができる。
[0103] 次に、 CPU1は、状況テーブル 33(図 6)を参照し、計算機資源 Aに相当する容量を ユーザに対して提供することができ、且つ現在の負荷分散状況において最も負荷が 軽いと予測されるノードを検索する (ステップ S202)。
[0104] すなわち、 CPU1は、状況テーブル 33を参照し、各小テーブル 34中のユーザのレ コードを参照する。ユーザ IDは、例えば、シミュレーションシステムの利用を開始する 際に、ユーザによって既にコンピュータ Yに入力されており、 CPU1は、このユーザ I Dに対応するレコードを参照する。 [0105] 次に、 CPU1は、各レコード中の最大サイズから負荷 (現在の使用サイズ)を減じて、 各ノードにおけるユーザの残りの使用可能サイズを求める。続いて、 CPU1は、使用 可能サイズが最も大きい (負荷が最も小さい)ノードを、解析対象ファイル (及び関連デ ータファイル)を配置すべきノードとして決定する。
[0106] 次に、 CPU1は、計算機資源 Aに基づいて状況テーブル 33を更新する (ステップ S 203)。即ち、 CPU1は、決定されたノードに対応する小テーブル 34の負荷の値 (使 用サイズ)に、計算機資源 Aの値を加算する。
[0107] 例えば、図 6に示す例において、ユーザ Aの計算機資源 A (例えば、 10ギガバイトと 仮定する)をノード # 0に配置することが決定された場合には、対応する小テーブル 3 4中の負荷の値が、 "20Gbyte"に更新される。
[0108] 状況テーブル 33の更新が終了すると、 CPU1は、当該サブルーチンの処理を終了 し、ファイルの配置先として決定したノードの識別子をメインルーチンに渡す。
[0109] 処理力 Sメインルーチンのステップ S013に進むと、 CPU1は、ノードへのデータ配置 に関する命令文 (「データ配置命令文」と称する)を出力する。
[0110] すなわち、 CPU1は、データ配置命令文の雛形 (予め外部記憶装置 3に記憶されて レ、る)を読み出す。雛形は、定型の命令文の所定位置に、配置対象のファイル識別 子と、ノード識別子を記述すれば、当該命令文が完成するように構成されている。 CP U1は、雛形の所定位置に、解析対象ファイル (及び関連データファイル)の識別子を 記述するとともに、ステップ S012で得たノード識別子を記述する。このようにして、完 成されたデータ配置命令文は、並列処理用ジョブスクリプトの一部となる。
[0111] 次に、 CPU1は、並列処理の終了後に、処理済みデータ (処理結果ファイル)を保 管位置に移動させる命令文 (「処理結果移動命令文」と称する)を出力する (ステップ s
014)。
[0112] すなわち、 CPU1は、処理結果移動命令文の雛形 (予め外部記憶装置 3に記憶さ れている)を読み出す。雛形は、定型の命令文の所定位置に、 UIで指定された保管 位置を記述すれば、当該命令文が完成するように構成されている。 CPU1は、雛形 の所定位置に、ステップ S007で得た解析対象ファイルに対する処理結果ファイルの 保管位置を書き込む。このようにして、完成された処理結果移動命令文は、並列処 理用ジョブスクリプトの一部となる。
[0113] 次に、 CPU1は、データ配置情報を記憶する (ステップ S015)。すなわち、 CPU1は 、データ配置情報としての、ファイル識別子とノード識別子との対応関係を所定の記 憶領域に格納する。
[0114] ステップ S015が終了した時点で、解析対象ファイルとなっていない処理対象デー タファイルのファイル識別子があれば、処理力 Sステップ S009に戻り、上述したステツ プ S009〜S015の処理力 S実行される。すべての処理対象データファイルのファイル 識別子に対する処理が終了すると、処理力 Sステップ S016に進む。
[0115] 上記したループ処理によって、処理対象データファイル群に含まれる各処理対象 データファイルの配置先が、並列処理における負荷が最も小さくなるように、決定され る。
[0116] ステップ S016では、 CPU1は、並列処理プログラム実行文を出力する。すなわち、 CPU1は、外部記憶装置 3に予め格納されている並列処理プログラム実行文を読み 出し、並列処理用ジョブスクリプトの一部として設定する。このようにして、ヘッダ,デ ータ配置命令文,処理結果移動命令文,並列処理プログラム実行文を含む並列処 理用ジョブスクリプトが自動的に生成される。
[0117] 次に、 CPU1は、並列処理プログラムの設定ファイルの作成処理を開始する (ステツ プ S017 :図 11)。 CPU1は、並列処理プログラム設定の作成ループ処理を開始する 。このループ処理は、処理対象データファイル毎に実行される。
[0118] 処理が開始されると、 CPU1は、データ配置情報 (ファイル識別子とノード識別子と の対応関係)を基に、処理対象データファイルに対する設定を作成する (S018)。
[0119] すなわち、 CPU1は、ステップ S015で得たデータ配置情報の中から、 1つの処理 対象データファイルに係る部分を取り出し、このファイル識別子に対応する処理パラ メータ (ステップ S006で取得)と組み合わせる。 CPU1は、組み合わせの結果を、設 定ファイル用の所定フォーマットで記述する。
[0120] CPU1は、このような処理を、処理対象データファイル毎に行い、すべての処理対 象データファイルに対するステップ S019の処理が終了すると、メインルーチンを終了 する。 [0121] 図 14は、並列処理プログラム用設定ファイルの記述例を示す図である。図 14に示 す例では、設定ファイルは、処理対象データファイル毎に記述された複数の行からな る。
[0122] 各行には、図 14の左から順に、ノード識別子,処理の指定 (この例では" PROC_A "),処理対象データファイルのファイル識別子,処理パラメータが記述されている。こ のような設定ファイルは、各ノードが並列処理プログラムを実行する際に参照される。
[0123] 〈スクリプトの実行〉
スクリプト及び設定ファイルの作成が終了すると、 CPU1は、スクリプトの実行を開始 する。スクリプトの実行によって、コンピュータ Yは、ヘッダの設定ファイル転送命令文 に従って、設定ファイルを並列計算機群 Xの各ノードに転送する。
[0124] また、コンピュータ Yは、データ配置命令文の実行により、ファイル DB31に格納さ れた各処理対象データファイル (処理対象データファイル群)を、データ配置情報に 従って、配置先のノードへ転送する。
[0125] また、コンピュータ Yは、処理結果移動命令文の実行により、各ノードに対し、各ノ ードでの処理対象データファイルの処理により作成される処理結果ファイル (処理済 みデータ)を、指定された保管位置(例えば、ファイル DB31内に用意される)に格納 することを指示する。
[0126] また、コンピュータ Yは、並列処理プログラム実行文の実行により、各ノードに対し、 並列処理プログラムの実行開始を指示する。
[0127] 〈並列処理〉
処理対象データファイル群の配置先の各ノード (図 3)は、ネットワークを介して、コン ピュータ Yから設定ファイル及び処理対象データファイルを受信する。これらは、ノー ド内の外部記憶装置 14に格納される。その後、各ノードの CPU11は、コンピュータ Y 力、らの並列処理プログラムの実行指示を受け取ると、並列処理プログラムの実行を開 始する。
[0128] 図 14は、 CPU11で実行される並列処理プログラムの実行処理を示すフローチヤ ートである。 CPU11は、図 14に示す処理を開始すると、最初に初期化処理を実行 する (ステップ S301)。 CPU11は、初期化が終了すると、外部記憶装置 14に格納さ れている設定ファイルを MM12に読み込む (ステップ S302)。
[0129] 次に、 CPU11は、設定ファイルに従った処理対象データファイルの処理ループを 実行する。この処理ループでは、 CPU11は、設定ファイル中の 1行を処理対象の行 に設定し、処理対象の行に記述された設定内容に従って処理対象データファイルに 対する処理を実行する。
[0130] ループにおいて、最初に、 CPU11は、設定ファイル中のノード識別子を参照し、こ のノード識別子が自ノードの識別子と等しいか否かを判定する (ステップ S303)。
[0131] このとき、ノード識別子が等しくない場合には (S303 ; NO)、設定ファイル中の次の 行が処理対象の行に設定され、ステップ S303の処理が実行される。
[0132] これに対し、ノード識別子が等しい場合には (S303 ;YES)、 CPU11は、処理対象 行中に記述されたファイル識別子に対応するメタデータを取得する処理を行う (ステツ プ S304)。
[0133] このステップ S304の処理は、図 12に示したサブルーチンと同様の処理である。す なわち、 CPU11は、外部記憶装置 14に格納されたメタデータテーブル 32A (データ 構造はメタデータテーブル 32(図 5)と同じ)を参照し、対応するメタデータを検索'取 得する。
[0134] 次に、 CPU11は、処理対象行中の処理種別指定,処理パラメータ,及びメタデー タに従って、処理対象データファイルに対する処理を実行する (ステップ S305)。すな わち、 CPU11は、処理種別指定,処理パラメータ,ファイル識別子及びメタデータを 計算プロセッサ 13に与える。すると、計算プロセッサ 13が、外部記憶装置 14からファ ィル識別子に対応する処理対象データファイルを MM12に読み出し、処理種別指 定及び処理パラメータに従った処理を、メタデータに基づいて実行する。
[0135] その後、計算プロセッサ 13による処理が終了すると、 CPU11は、処理結果のデー タ (処理済みデータ)を処理結果ファイルとして、出力する (ステップ S306)。処理結果 ファイルは、例えば、コンピュータ Yに転送され、コンピュータ Yが、ユーザにより指定 された保管位置 (例えばフアイル DB 31内に用意されている)に処理結果ファイルを格 納する。
[0136] 上述した処理が、設定ファイル中の各行を処理対象行として行われ、すべての行に 対する処理が終了すると、並列処理プログラムの実行処理が終了する。
[0137] ぐ変形例〉
上述した実施形態では、コンピュータ Y及び各ノードがメタデータテーブルを有する 場合について説明した。このような構成に代えて、コンピュータ Yで取得されたメタデ ータが、各ノードに転送される構成を適用しても良い。
[0138] また、本実施形態では、処理対象データファイル (シミュレーションデータファイル)の 格納領域が、コンピュータ Yの外部記憶装置 3上に設けられている例について説明し た。格納領域は、各ノードが有していても良ぐコンピュータ Y及び並列計算機群 Xか ら独立したファイルサーバ上に設けられても良い。
[0139] 〈実施形態の作用効果〉
本実施形態によると、ユーザが並列処理指定情報の入力環境 (UI)を用いて、フアイ ル識別子,ノード数,処理種別,処理詳細パラメータ,及び保管位置を指定すると、 処理対象データファイル群に対する並列処理の制御プログラム (スクリプト)及び並列 プログラム実行用の設定ファイルが自動的に作成される。
[0140] 従来では、ユーザは、並列処理の実行に当たり、データファイルの転送制御も含め て、ときに数百行以上となるスクリプトの記述を過ちなくユーザ自身で記述しなければ ならなかった。
[0141] 本実施形態によれば、ユーザが上記した並列処理指定情報の要素となる情報を U Iを用いて指定又は入力するだけで、所望のスクリプト及び設定ファイルが自動的に 作成される。これによつて、ユーザの労力を多大に軽減することができる。また、スクリ ブトの記述に要する時間が短縮されるので、並列処理結果を得るために要する時間 を短縮することができる。さらに、ユーザの記述ミスによって並列処理をやり直すおそ れを解消することができる。
[0142] また、処理対象データに対するメタデータは、ユーザによるファイル識別子の指定 で自動的に検索'取得される。すなわち、ユーザがファイル識別子を指定すると、ファ ィル識別子からキーワードが抽出され、このキーワードに対応するメタデータが指定 されたメタデータとして取り扱われる。これによつて、ユーザが処理対象データフアイ ル毎にメタデータの指定を入力する必要がなくなる。従って、ユーザの労力軽減,処 理の時間短縮,ユーザの入力ミスの防止を図ることができる。
[0143] メタデータの自動指定に当たり、本実施形態では、データの格納位置情報 (フアイ ルパス)を含むファイル識別子を処理対象データファイルに適用し、処理対象データ の性質を示すキーワード (メタデータ検索用のキーワード)を含ませている。
[0144] すなわち、処理対象データとメタデータとを関連付けるデータをファイル識別子に 坦め込んでいる。これによつて、関連付けるデータを処理対象データ及びメタデータ と別に管理する必要がなくなる。従って、記憶領域の有効利用及び管理負担の軽減 が図られる。ファイル識別子には、複数のキーワードを含めることができる。
[0145] さらに、ユーザが処理対象データファイルを指定する場合に、ユーザがファイルパ スを含むファイル識別子を指定するように構成している。これにより、ファイル識別子 の指定がキーワード入力を兼ねる。従って、ユーザの作業負担軽減が図られる。
[0146] さらに、本実施形態では、メタデータは、処理対象データファイルと異なる記憶領域 に格納されるように構成している。これによつて、記憶領域に処理対象データファイル を効率的に格納することができる。また、メタデータを各ノードが有し、メタデータの転 送処理が排除されている。これにより、メタデータの転送による効率低下を抑止するこ とができる。
産業上の利用可能性
[0147] 本発明は、例えば、様々な数値シミュレーションシステムにおけるデータ処理への 適用が可能である。

Claims

請求の範囲
[1] 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行 う並列計算機群中の計算ノードの数,前記処理対象データファイル群に対する処理 内容の指定を含む並列処理指定情報を受け付ける受付手段と、
前記並列計算機群に含まれる複数の計算ノードのそれぞれに対する使用及び負 荷状況を格納した記憶手段と、
前記指定された計算ノードの数と、前記使用及び負荷状況とに基づいて、前記指 定された数の計算ノードに対する前記処理対象データファイル群を構成する各処理 対象データファイルの配置を決定する決定手段と、
前記各処理対象データファイルを配置の決定結果に従って前記指定された数の計 算ノードに配置するデータ配置命令文と、前記決定された複数の計算ノードに対す る前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラム を生成する制御プログラム生成手段と、
前記決定された複数の計算ノードのそれぞれが、 自身に配置された処理対象デー タファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対 象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファ ィルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定フ アイルを生成するファイル生成手段と、
を含む並列処理支援装置。
[2] 前記決定手段は、前記処理対象データファイル群を構成する各処理対象データフ アイルについて、前記並列計算機群に含まれる前記指定された計算ノード数の計算 ノード力、ら、処理対象データファイルとこれに対する処理結果ファイルとを格納可能な 記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処 理対象データファイルを配置すべき計算ノードとして決定する
請求項 1記載の並列処理支援装置。
[3] 前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生 成される処理結果ファイルの保管位置の指定を含み、 前記制御プログラム生成手段は、処理結果ファイルを前記保管位置へ転送するこ とを示す命令文を含む前記制御プログラムを生成する
請求項 1又は 2記載の並列処理支援装置。
[4] 前記処理データファイル毎に、処理データファイルに関連する関連データファイル 力 Sあるか否力 ^判定する判定手段をさらに含み、
関連データファイルを有する処理対象データファイルが前記判定手段で検知され た場合に、前記決定手段は、処理対象データファイル及びこれに対する関連データ ファイルを同一の計算ノードに配置する
請求項:!〜 3のいずれかに記載の並列処理支援装置。
[5] 前記判定手段は、関連データファイルがあるか否かを、処理対象データのメタデー タに基づいて判定する
請求項 4記載の並列処理支援装置。
[6] 処理対象データファイルの指定は、データファイルの格納位置情報と、データの詳 細を示すキーワードとを含むファイル識別子の指定により行われ、
前記メタデータを格納したメタデータ格納手段と、
前記ファイル識別子から前記キーワードを抽出する抽出手段と、
抽出されたキーワードに対応するメタデータを前記メタデータ格納手段から検索す る検索手段とをさらに含み、
前記判定手段は、検索されたメタデータを用いて前記判定を実行する 請求項 5記載の並列処理支援装置。
[7] 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行 う並列計算機群中の計算ノードの数,前記処理対象データファイル群に対する処理 内容の指定を含む並列処理指定情報を受け付けるステップと、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含 まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記 指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処 理対象データファイルの配置を決定するステップと、
前記各処理対象データファイルを配置の決定結果に従って前記指定された数の計 算ノードに配置するデータ配置命令文と、前記決定された複数の計算ノードに対す る前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラム を生成して出力するステップと、
前記決定された複数の計算ノードのそれぞれが、 自身に配置された処理対象デー タファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対 象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファ ィルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定フ アイルを生成して出力するステップと、
をコンピュータに実行させるプログラム。
[8] 前記配置を決定するステップでは、前記処理対象データファイル群を構成する各 処理対象データファイルについて、前記並列計算機群に含まれる前記指定された計 算ノード数の計算ノードから、処理対象データファイルとこれに対する処理結果フアイ ノレとを格納可能な記憶容量を有する計算ノードを選出し、
選出された計算ノードのうち、現在の処理負荷が最も小さい計算ノードを、前記処 理対象データファイルを配置すべき計算ノードとして決定する
請求項 7記載のプログラム。
[9] 前記並列処理指定情報は、処理対象データファイルに対する処理の結果として生 成される処理結果ファイルの保管位置の指定を含み、
前記制御プログラムの生成ステップでは、処理結果ファイルを前記保管位置へ転 送することを示す命令文を含む前記制御プログラムを生成する
請求項 7又は 8記載のプログラム。
[10] 前記処理データファイル毎に、処理データファイルに関連する関連データファイル 力 Sあるか否力 ^判定するステップをさらに含み、
関連データファイルを有する処理対象データファイルが検知された場合に、前記配 置を決定するステップにおいて、処理対象データファイル及びこれに対する関連デ ータファイルを同一の計算ノードに配置する
請求項 7〜9のいずれかに記載のプログラム。
[11] 前記判定ステップでは、関連データファイルがあるか否力、が、処理対象データのメ タデータに基づいて判定される
請求項 10記載のプログラム。
[12] 処理対象データファイルの指定は、データファイルの格納位置情報と、データの詳 細を示すキーワードとを含むファイル識別子の指定により行われ、
前記ファイル識別子から前記キーワードを抽出するステップと、
抽出されたキーワードに対応するメタデータをメタデータ格納手段から検索するス テツプとをさらに含み、
前記判定ステップでは、検索されたメタデータを用いて前記判定が行われる 請求項 11記載のプログラム。
[13] 処理対象データファイル群,この処理対象データファイル群に対する並列処理を行 う並列計算機群中の計算ノードの数,前記処理対象データファイル群に対する処理 内容の指定を含む並列処理指定情報を受け付け、
前記指定された計算ノードの数と、記憶手段に記憶された前記並列計算機群に含 まれる複数の計算ノードのそれぞれに対する使用及び負荷状況とに基づいて、前記 指定された数の計算ノードに対する前記処理対象データファイル群を構成する各処 理対象データファイルの配置を決定し、
前記各処理対象データファイルを配置の決定結果に従って前記指定された数の計 算ノードに配置するデータ配置命令文と、前記決定された複数の計算ノードに対す る前記処理対象データファイル群の並列処理実行の命令文とを含む制御プログラム を生成して出力し、
前記決定された複数の計算ノードのそれぞれが、 自身に配置された処理対象デー タファイルの処理を行う場合に参照される並列処理の設定ファイルであって、処理対 象データファイル毎に、処理対象データファイルのファイル識別子と、処理データファ ィルが配置される計算ノードの識別子と、指定された処理内容の記述を含む設定フ アイルを生成して出力する
ことを含む並列処理支援方法。
PCT/JP2005/023650 2005-12-22 2005-12-22 並列処理支援装置 WO2007072567A1 (ja)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
WO2007072567A1 true WO2007072567A1 (ja) 2007-06-28

Family

ID=38188358

Family Applications (1)

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

Country Status (2)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237866A (ja) * 2009-03-30 2010-10-21 Nomura Research Institute Ltd ファイル検索装置及びファイル検索方法、並びにプログラム
JP2019528522A (ja) * 2016-09-30 2019-10-10 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. タスク処理方法及び分散コンピューティングフレームワーク
JP2020021172A (ja) * 2018-07-30 2020-02-06 日本電気株式会社 データ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステム

Citations (3)

* 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 分散型プロセス処理方法およびその装置
JP2003281163A (ja) * 2002-03-26 2003-10-03 Canon Inc 画像処理装置及び画像処理方法、記憶媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH113323A (ja) * 1997-06-10 1999-01-06 Nec Software Ltd ジョブ実行の負荷分散装置

Patent Citations (3)

* 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 分散型プロセス処理方法およびその装置
JP2003281163A (ja) * 2002-03-26 2003-10-03 Canon Inc 画像処理装置及び画像処理方法、記憶媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TANIUCHI N ET AL: "Performance Estimation of a Job Dispatching Method Based on Job Characteristcs in Distributed Systems.", 12 July 1996 (1996-07-12), pages 43 - 48, XP002995576 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237866A (ja) * 2009-03-30 2010-10-21 Nomura Research Institute Ltd ファイル検索装置及びファイル検索方法、並びにプログラム
JP2019528522A (ja) * 2016-09-30 2019-10-10 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. タスク処理方法及び分散コンピューティングフレームワーク
JP2020021172A (ja) * 2018-07-30 2020-02-06 日本電気株式会社 データ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステム
JP7121923B2 (ja) 2018-07-30 2022-08-19 日本電気株式会社 データ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステム

Also Published As

Publication number Publication date
JPWO2007072567A1 (ja) 2009-05-28
JP4846736B2 (ja) 2011-12-28

Similar Documents

Publication Publication Date Title
US11593369B2 (en) Managing data queries
CN107533453B (zh) 用于生成数据可视化应用的系统和方法
JP6996629B2 (ja) 検証自動化装置、検証自動化方法、およびプログラム
US20130346992A1 (en) Computing system, method for controlling thereof, and computer-readable recording medium having computer program for controlling thereof
US8413109B2 (en) Systems and methods for metamodel transformation
CN110249312A (zh) 数据集成作业转换
CN112835714A (zh) 云边环境中面向cpu异构集群的容器编排方法、系统及介质
JP6886101B2 (ja) 情報処理装置、情報処理方法、プログラム
WO2007072567A1 (ja) 並列処理支援装置
JP2013513143A (ja) 照会リネージの自動生成のための方法、システム、およびコンピュータ・プログラム
JP2005148901A (ja) ジョブスケジューリングシステム
JP2009245409A (ja) リソース自動構築システム及び自動構築方法並びにそのための管理用端末
JP4905989B2 (ja) メタデータ検索装置
JP7246301B2 (ja) プログラム開発支援システム及びプログラム開発支援方法
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
KR101916960B1 (ko) 복수의 소스 코드들을 자동적으로 결합하는 방법
JP5732138B2 (ja) 仮想計算機提供システム及び提供方法
JP2006040024A (ja) ストレージ管理方法、管理装置及びコンピュータシステム
CN110222105A (zh) 数据汇总处理方法及装置
US20230297486A1 (en) Arrangement plan search device, computer system, and arrangement plan search method
JP2012221147A (ja) 計算機及びリソース管理方法
US10606939B2 (en) Applying matching data transformation information based on a user's editing of data within a document
JP2022153030A (ja) 工数算出支援装置及び工数算出支援方法
KR20230067257A (ko) Ai 모델 서빙 시스템 및 방법
JP2004334767A (ja) 情報処理方法、情報処理装置及び情報処理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007550972

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05820082

Country of ref document: EP

Kind code of ref document: A1