WO2012105056A1 - 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体 - Google Patents

並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体 Download PDF

Info

Publication number
WO2012105056A1
WO2012105056A1 PCT/JP2011/052435 JP2011052435W WO2012105056A1 WO 2012105056 A1 WO2012105056 A1 WO 2012105056A1 JP 2011052435 W JP2011052435 W JP 2011052435W WO 2012105056 A1 WO2012105056 A1 WO 2012105056A1
Authority
WO
WIPO (PCT)
Prior art keywords
parallel distributed
distributed processing
server
processing execution
data
Prior art date
Application number
PCT/JP2011/052435
Other languages
English (en)
French (fr)
Inventor
敬行 河野
吉田 順
雅輝 四ッ谷
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/978,798 priority Critical patent/US9244737B2/en
Priority to PCT/JP2011/052435 priority patent/WO2012105056A1/ja
Priority to JP2012555678A priority patent/JP5484601B2/ja
Publication of WO2012105056A1 publication Critical patent/WO2012105056A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5083Techniques for rebalancing the load in a distributed system

Definitions

  • the present invention relates to a data transfer control method and apparatus using data processing history information, server operation history information, and the like.
  • Parallel distributed processing technology is attracting attention as a technology for analyzing large amounts of data in a short time.
  • log data that has not been used so far has no clear way of utilizing and analyzing data, and trial and error are required.
  • parallel distributed processing processing is divided and assigned to a plurality of servers, and processing is distributed and executed in parallel. Therefore, it is necessary to prepare a large number of servers. For this reason, the return on investment resulting from the introduction of the parallel distributed processing system at the initial stage is unclear, so the introduction barrier for customers is high.
  • each server calculates the ratio of processing-allocated data to stored data.
  • a scheduling method for allocating processing of data stored in a server having the smallest ratio is disclosed (see Patent Document 1).
  • Non-Patent Document 1 By using the technique described in Non-Patent Document 1, it is possible to process data stored in the server as much as possible, so that occurrence of data transfer can be suppressed. Further, when data processing stored in another server is assigned, data processing costs can be suppressed because data processing stored in the server closest to the network is assigned.
  • Non-Patent Document 1 the data transfer cost cannot always be suppressed in a situation where an existing system with a high priority and a parallel distributed processing system operate together.
  • Patent Document 1 is known as one of methods for suppressing frequent data transfer in a parallel distributed processing system.
  • the ratio of allocated data of each server is calculated, and the server stores the data. Decide whether to allocate the processing of the data that is present. In this determination, the possibility of transferring and acquiring data from a server with little unallocated data to the local server is reduced. Therefore, each server can process data stored in its own server as much as possible, thereby reducing the number of data transfers.
  • Patent Document 1 In a situation where a parallel distributed processing system is operated in a coexisting system with a high priority, the conventional technique such as Patent Document 1 is not necessarily sufficient.
  • the parallel distributed processing system needs to change the execution multiplicity in accordance with the load fluctuation and resource fluctuation of the existing system. For this reason, when the load on the existing system increases, the multiplicity of execution must be reduced in a parallel distributed processing execution system having a low priority. For this reason, there is a possibility that a task that has already been assigned a process cannot be executed due to a decrease in execution multiplicity. Further, since the execution multiplicity of each server is different, the amount of data that can be processed per unit time by each server is also different. Therefore, even when the ratio of allocated data is small, the amount of data that can be processed per unit time is large, and there is a possibility that unprocessed data can be processed in a shorter time than other servers.
  • the amount of I / O resources that the parallel distributed processing system can use for data transfer also varies from server to server. For this reason, if the data transfer destination server has a large amount of free I / O resources and a large amount of data can be transferred at one time, but a server with a small amount of I / O resources available for the transfer source server is selected, It is necessary to transfer data in accordance with the smaller I / O resource amount, and the free I / O resource of the transfer destination server cannot be used to the maximum extent. This increases the data transfer time and may affect the processing time of the entire parallel distributed processing system.
  • the computer resources that can be allocated to the parallel distributed processing system fluctuate as in an environment in which the parallel distributed processing system operates in an existing system with high priority, and the effective multiplicity of the parallel distributed processing system changes. Even if it changes, it becomes a problem to allocate data to each server so that the subsequent parallel processing can be efficiently executed in terms of the number of data transfers and the amount of resources used.
  • the present invention has been made in view of the above problems, and it is possible to reduce the number of data transfers in a situation where the computer resources that can be allocated to the parallel distributed processing system change and the execution multiplicity of the parallel distributed processing changes. Objective.
  • the present invention comprises a processor and a storage device, stores data blocks previously divided as data to be processed in the storage device, and a plurality of parallel executions in which the processor executes tasks for processing the data blocks in parallel
  • a parallel distributed processing system comprising a distributed processing execution server and a management computer that controls the plurality of parallel distributed processing execution servers
  • the management computer assigns data blocks to be assigned to tasks of the first parallel distributed processing execution server.
  • a data transfer control method for a parallel distributed processing system for selecting a second parallel distributed processing execution server as a transmission source, wherein the management computer has completed the task from the first parallel distributed processing execution server.
  • a first step of receiving a completion notification, and a resource of the plurality of parallel distributed processing execution servers by the management computer A second step of collecting each dose; a third step in which the management computer acquires data blocks and task states held by the plurality of parallel distributed processing execution servers; and A second data block is transferred to the first parallel distributed processing execution server based on the progress of the processing of the data blocks respectively held by the parallel distributed processing execution server and the resource usage of the plurality of parallel distributed processing execution servers.
  • a fourth step of selecting the parallel distributed processing execution server, and the management computer transfers the data block to the first parallel distributed processing execution server to the selected second parallel distributed processing execution server
  • a fifth step of transmitting a command, and the management computer sends the transferred data to the first parallel distributed processing execution server.
  • the present invention in a parallel distributed processing system in which available computer resources change during execution of parallel distributed processing and the execution multiplicity of parallel distributed processing changes, the number of times of data transfer is reduced, and data transfer time is further reduced. Therefore, it is possible to provide a data transfer control method and apparatus capable of efficiently executing the entire parallel and distributed processing.
  • FIG. 1 is a block diagram illustrating an example of a computer system according to a first embodiment of this invention.
  • FIG. 2 is a detailed block diagram of each server in the computer system according to the first embodiment of this invention. It is a flowchart which shows the 1st Embodiment of this invention and shows the whole process of a parallel distributed process. It is a flowchart which shows the 1st Embodiment of this invention and shows the detailed process performed by allocation process S116 of FIG. 2A. It is a figure which shows the 1st Embodiment of this invention and shows an example of a data information management table.
  • FIG. 1 shows the 1st Embodiment of this invention and shows the example of a resource usage-amount management table.
  • FIG. 2nd Embodiment of this invention shows an example of a structure of a computer system. It is a block diagram which shows the 2nd Embodiment of this invention and shows an example of each server among computer systems. It is a flowchart which shows the 2nd Embodiment of this invention and shows the whole parallel distributed processing.
  • FIGS. 1 to 13 a description will be given of a first embodiment of the present invention.
  • FIGS. 1A and 1B are block diagrams illustrating an example of a configuration of a computer system according to the first embodiment of this invention.
  • a client device 110 a plurality of parallel distributed processing execution servers 120-1 to 120-n, a parallel distributed processing control server 130, a data transfer control server 140, and a resource usage management server 150 are mutually connected via a network 100. It is connected.
  • the network 100 is a global network such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet.
  • the network 100 may be divided into a plurality of networks 100.
  • the parallel distributed processing execution servers 120-1 to 120-n are collectively referred to as the parallel distributed processing execution server 120.
  • the client device 110 is a computer that includes a network interface 111, a CPU 112, a main storage device 113, a secondary storage device 114, and a bus (or interconnect) 115 that interconnects them.
  • the network interface 111 is an interface for the client device 110 to connect to the network 100.
  • the CPU 112 is an arithmetic processing unit that implements a predetermined function of the client device 110 by executing a program stored in the main storage device 113.
  • the main storage device 113 is a storage device such as a RAM that stores a program executed by the CPU 112 and data necessary for executing the program.
  • the program is, for example, a program for realizing the functions of the OS and the client processing unit 1131 (not shown).
  • the secondary storage device 114 is a non-volatile storage medium such as a hard disk device that stores programs, data, and the like necessary for realizing predetermined functions of the client device 110.
  • the secondary storage device 114 is not limited to a magnetic storage medium such as a hard disk device, and may be a non-volatile semiconductor storage medium such as a flash memory.
  • the parallel distributed processing execution server 120 is a computer that includes a network interface 121, a CPU 122, a main storage device 123, a secondary storage device 124, and a bus (or interconnect) 125 that interconnects these.
  • the parallel distributed processing execution servers 120-1 to 120-n have the same configuration.
  • the network interface 121 is an interface for the parallel distributed processing execution server 120 to connect to the network 100.
  • the CPU 122 is an arithmetic processing unit that implements a predetermined function of the parallel distributed processing execution server by executing a program stored in the main storage device 133.
  • the main storage device 123 is a storage device such as a RAM that stores a program executed by the CPU 122 and data necessary for executing the program.
  • the program is, for example, a program for realizing the functions of the OS (not shown) and the user definition processing execution unit 1231 and the data management unit 1232.
  • the secondary storage device 124 is a hard disk device or the like that stores programs necessary for the parallel distributed processing execution server 120 to realize predetermined functions, and data such as input data 1241, output data 1242, and a data management table 1243. It is a non-volatile storage medium.
  • the secondary storage device 124 is not limited to a magnetic storage medium such as a hard disk device, and may be a non-volatile semiconductor storage medium such as a flash memory.
  • the input data 1241 is logical data composed of a plurality of data blocks divided into a predetermined size, and includes a name and information for identifying the data block constituting the data.
  • the information for identifying the data block of the input data 1241 is, for example, the address information of the parallel distributed processing execution server 120 that stores the data block and the name of the data block.
  • the substance of data is stored in the parallel distributed processing execution server 120 as a data block.
  • the output data 1242 is data output by the parallel distributed processing described above.
  • the user definition processing execution unit 1231 executes the assigned task.
  • the data management unit 1232 manages allocation of data blocks (input data 1241) to tasks.
  • the parallel distributed processing control server 130 is a server for assigning a process to each parallel distributed processing execution server 120 and controlling the execution of the entire parallel distributed processing.
  • the parallel distributed processing network interface 131, the CPU 132, the main storage device 133, A secondary storage device 134 and a bus 135 for connecting them to each other are provided.
  • the network interface 131 is an interface for the parallel distributed processing control server 130 to connect to the network 100.
  • the CPU 132 is an arithmetic processing unit that implements a predetermined function of the parallel distributed processing control server by executing a program stored in the main storage device 133.
  • the main storage device 133 is a storage device such as a RAM that stores a program executed by the CPU 132 and data necessary for executing the program.
  • the programs are, for example, programs for realizing the functions of an OS (not shown) and a process allocation control unit 1331, a data information management unit 1332, a process execution server management unit 1333, and a task management unit 1334.
  • the secondary storage device 134 stores programs necessary for the parallel distributed processing control server 130 to realize a predetermined function, and data such as a data information management table 300, a processing execution server management table 500, a task management table 600, and the like. It is a non-volatile storage medium such as a hard disk device.
  • the secondary storage device 134 is not limited to a magnetic storage medium such as a hard disk device, and may be a non-volatile semiconductor storage medium such as a flash memory.
  • the data transfer control server 140 stores a data block to be processed when assigning processing of a data block stored in a parallel distributed processing execution server 120 different from the parallel distributed processing execution server 120 to which processing is assigned.
  • a server that selects a distributed processing execution server and includes a network interface 141, a CPU 142, a main storage device 143, a secondary storage device 144, and a bus 145 that interconnects them.
  • the network interface 141 is an interface for connecting the data transfer control server 140 to the network 100.
  • the CPU 142 is an arithmetic processing unit that implements a predetermined function of the data transfer control server 140 by executing a program stored in the main storage device 143.
  • the main storage device 143 is a storage device such as a RAM that stores a program executed by the CPU 142 and data necessary for executing the program.
  • the program is a program for realizing the functions of an OS (not shown), a processing delay server extraction processing unit 1431, a free I / O resource comparison processing unit 1432, and a processing status management unit 1433.
  • the secondary storage device 144 is a non-volatile device such as a hard disk device that stores programs necessary for the data transfer control server 140 to realize a predetermined function and data such as the processing status management table 800 and the processing delay threshold management table 1000. It is a sexual storage medium.
  • the secondary storage device 144 is not limited to a magnetic storage medium such as a hard disk device, and may be a non-volatile semiconductor storage medium such as a flash memory.
  • processing delay server extraction processing unit 1431 The functions of the processing delay server extraction processing unit 1431, the free I / O resource amount comparison processing unit 1432, and the processing status management unit 1433 will be described later in the description of the processing.
  • the resource usage management server 150 is a server for managing the I / O resource usage of each server, and connects the network interface 151, the CPU 152, the main storage device 153, the secondary storage device 154, and these to each other.
  • the bus 155 is provided.
  • the network interface 151 is an interface for the resource usage management server 150 to connect to the network 100.
  • the CPU 152 is an arithmetic processing device that implements a predetermined function of the resource usage management server 150 by executing a program stored in the main storage device 153.
  • the main storage device 153 is a storage device such as a RAM that stores a program executed by the CPU 152 and data necessary for executing the program.
  • the program is, for example, a program for realizing the functions of the OS (not shown) and the resource usage management unit 1531 and the resource usage monitoring unit 1532.
  • the secondary storage device 154 is a non-volatile storage medium such as a hard disk device that stores a program necessary for the resource usage management server 150 to realize a predetermined function and data such as the resource usage management table 1200.
  • the secondary storage device 154 is not limited to a magnetic storage medium such as a hard disk device, and may be a non-volatile semiconductor storage medium such as a flash memory.
  • the hardware configuration and software configuration of each device have been described above.
  • the configuration of 150 is not limited to the configuration shown in FIGS. 1A and 1B.
  • the parallel distributed processing control server 130, the data transfer control server 140, and the resource usage management server may be configured to operate on either the client device 110 or the parallel distributed processing execution server 120.
  • the parallel distributed processing control server 130, the data transfer control server 140, and the resource usage management server 150 are configured to be executed on different servers. The parts may be executed on the same server.
  • the program of each server includes the parallel distributed processing control unit, the data transfer control unit, and the resource usage. What is necessary is just to function as a quantity management part.
  • the programs of the parallel distributed processing control unit, data transfer control unit, and resource usage management unit can be installed on the same server by a program distribution server or a non-transitory computer-readable storage medium.
  • FIGS. 1A and 1B the first embodiment of the present invention will be described along FIGS. 2A to 13 and the processing will be described.
  • FIG. 2A and FIG. 2B are flowcharts showing the first embodiment of the present invention and showing the overall processing flow related to parallel distributed processing.
  • a data load request for processing target data (input data 1241) is transmitted from the client apparatus 110 to the parallel distributed processing control server 130.
  • the parallel distributed processing control server 130 divides the load target data into data blocks (input data 1241) of a prescribed size, and distributes and loads the data to a plurality of parallel distributed processing execution servers 120 (S101). ).
  • a parallel distributed processing execution request is transmitted from the client device 110 to the parallel distributed processing control server 130.
  • the process allocation control unit 1331 of the parallel distributed processing control server 130 transmits the processing execution request for the loaded data block to each parallel distributed processing execution server 120, and the data information management unit 1332
  • the allocation state 303 of the data block to be processed in the data information management table 300 is updated to “allocated” (S102).
  • the process execution request transmitted by the process allocation control unit 1331 includes the data block ID of the data block to be processed and the task ID of the task that executes the process of each data block.
  • the task is a program that executes a predetermined process using the data block to be processed as input data 1241.
  • the user-defined process execution unit 1231 of the parallel distributed process execution server 120 that has received the process execution request executes a predetermined process using the data block specified by the process execution request in each task as the input data 1241 (S103). . That is, the user-defined process execution unit 1231 of the parallel distributed process execution server 120 activates the task specified by the process execution request, and allocates the data block specified by the process execution request as input data 1241 to each task. Execute the process.
  • the parallel distributed processing execution server 120 When the parallel distributed processing execution server 120 completes the processing of the data block designated as the input data 1241 for the assigned task, the parallel distributed processing execution server 120 sends a processing completion notification to the parallel distributed processing control server 130.
  • the task ID of the completed task is transmitted (S104).
  • the data information management unit 1332 of the parallel distributed processing control server 130 that has received the processing completion notification updates the processing state 304 of the corresponding data block ID 302 in the data information management table 300 to “processed” (S105).
  • the processing allocation control unit 1331 of the parallel distributed processing control server 130 refers to the data management information table 300 and determines whether or not the processing state 304 of all the data blocks is “processed” (S106).
  • step S106 If all the data blocks are “processed” as a result of the determination in step S106 (S106 ⁇ Yes), the process allocation control unit 1331 of the parallel distributed processing control server 130 notifies the client apparatus 110 of the completion of the parallel distributed processing. The computer system 10 ends the parallel distributed processing.
  • step S106 If any data block is not “processed” as a result of the determination in step S106 (S106 ⁇ No), the parallel distributed processing control server 130 performs the allocation process (S116) of FIG. 2B in step S116. Returning to step S103, the above processing is repeated.
  • the parallel distributed processing control server 130 refers to the data management information table 300, and the parallel distributed processing execution server 120 that has transmitted the process completion notification has a data block whose allocation status 403 is “unallocated”. It is determined whether or not it exists (S107).
  • step S107 when there is an unallocated data block in the parallel distributed processing execution server 120 that has transmitted the processing completion notification (S107 ⁇ Yes), the process allocation control unit 1331 of the parallel distributed processing control server 130 One data block is arbitrarily selected from unallocated data blocks existing in the parallel distributed processing execution server 120 that has transmitted the processing completion notification (S108).
  • step S107 If the result of determination in step S107 is that there is no unallocated data block in the parallel distributed processing execution server 120 that sent the processing completion notification (S107 ⁇ No), the process proceeds to step S109.
  • the processing allocation control unit 1331 of the parallel distributed processing control server 130 stores the server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the server name list of the parallel distributed processing execution server 120 having unallocated data blocks.
  • the data is generated from the information management table 300 and transmitted to the data transfer control server 140 (S109).
  • the processing delay server extraction processing unit 1431 of the data transfer control server 140 extracts a processing delay server from the parallel distributed processing execution server 120 included in the received server name list having unallocated data blocks.
  • the processing delay server refers to the parallel distributed processing execution server 120 in which the progress of the processing is delayed.
  • the ratio of the total number of data blocks held by the parallel distributed processing execution server 120 and the number of processed data blocks that have already been processed by executing the task is obtained as the processed data rate.
  • the parallel distributed processing execution server 120 whose processed data rate is less than the threshold value 1001 is extracted as a processing delay server whose processing progress is delayed.
  • the processing delay server extraction processing unit 1431 of the data transfer control server 140 transmits to the resource usage management server 150 the server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the server name list of the extracted servers. Then, an amount of free I / O resources of each parallel distributed processing execution server 120 is requested (S110).
  • the resource usage management unit 1531 of the resource usage management server 150 refers to the resource usage management table 1200, and the parallel distributed processing execution server 120 that has transmitted the processing completion notification, and the parallel distribution included in the server name list
  • the free I / O resource amount of the process execution server 120 is acquired and transmitted to the data transfer control server 140 (S111).
  • the free I / O resource amount includes the free I / O resource amount of the network I / O and the free I / O resource amount of the disk I / O.
  • the free I / O resource amount of the network I / O indicates the data transfer rate (Gbit / sec) that can be used by the network interface 121 of the parallel distributed processing execution server 120 as a ratio.
  • an average value of data transfer rates for a predetermined time for example, 1 minute
  • a value obtained by multiplying the effective value or theoretical value of the link speed of the network interface 121 by a predetermined ratio may be used.
  • the free I / O resource amount of the disk I / O indicates a data transfer rate (MByte / sec) that can be used by the secondary storage device 124 of the parallel distributed processing execution server 120 as a ratio.
  • an average value of data transfer rates for a predetermined time for example, 1 minute
  • a value obtained by multiplying the effective value or theoretical value of the data transfer rate of the secondary storage device 124 by a predetermined ratio may be used.
  • the free I / O resource amount comparison processing unit 1432 of the data transfer control server 140 sends the free I / O resource amount of the parallel distributed processing execution server 120 that has transmitted the processing completion notification, and the free I / O of each processing delay server.
  • the resource amounts are compared, the processing delay server having the smallest difference in the free I / O resource amount is selected, and the name of the selected processing delay server is transmitted to the parallel distributed processing control server 130 (S112).
  • the processing allocation control unit 1331 of the parallel distributed processing control server 130 selects from among unallocated data blocks existing in the parallel distributed processing execution server 120 corresponding to the processing delay server name received from the data transfer control server 140.
  • One data block is arbitrarily selected (S113). That is, the process allocation control unit 1331 refers to the data information management table 300, and among the data placement server names 302 that matches the process delay server name received from the data transfer control server 140, the allocation status 303 is unallocated data.
  • One data block ID is arbitrarily selected from the block IDs. This selection may be made by a known or publicly known method such as ascending order of data block IDs or round robin.
  • the data information management unit 1332 of the parallel distributed processing control server 130 updates the allocation state 303 of the data block selected in the data information management table 300 to “allocated”. Further, the process allocation control unit 1331 transmits a process request for the data block updated to “allocated” to the parallel distributed process execution server 120 that has transmitted the process completion notification, and the computer system 10 performs the process in FIG. 2A. The process returns to S103 (S114).
  • the data block processing request transmitted to the parallel distributed processing execution server 120 includes a data block ID of the selected data block and a task ID for executing the processing of the data block.
  • FIG. 3 is a diagram illustrating an example of the data information management table 300 according to the first embodiment of this invention.
  • the data information management table 300 is composed of a plurality of data blocks obtained by dividing the input data 1241 by a specified size, and as attribute information for managing each data block, a data block ID 301 for identifying each data block, and data One entry is configured from the placement server name 302, an allocation state 303 indicating whether or not the processing of the data block has already been allocated, and a processing state 304 indicating whether or not the processing of the data block has been completed.
  • the data arrangement server name 302 stores the name or identifier of the parallel distributed processing execution server 120.
  • “Server A” corresponds to the parallel distributed processing execution server 120-1 in FIG. 1A
  • “Server B” corresponds to the parallel distributed processing execution server 120-1.
  • FIGS. 4A and 4B are flowcharts showing the allocation process of S116 of FIG. 2A and showing the detailed procedure regarding the process allocation to the parallel distributed processing execution server 120 of steps S107 to S114 of FIG. 2B.
  • 4A and 4B are processes performed by the processing allocation control unit 1331, the data information management unit 1332, and the task management unit 1334 on the parallel distributed processing control server 130.
  • the process allocation control unit 1331 that has received the task ID as a process completion notification from the parallel distributed processing execution server 120 requests the task management unit 1334 to update the task management table 600. Further, the process allocation control unit 1331 requests the server name list of the parallel distributed processing execution server 120 having the unallocated data block from the data information management unit 1332 (S201).
  • the task management unit 1334 that has received the update request for the task management table 600 updates the execution state 603 of the corresponding task in the task management table 600 to “waiting” and updates the processing data block ID 604 to a NULL value ( S202).
  • the data information management unit 1332 refers to the data information management table 300, calculates the processed data rate of the parallel distributed processing execution server 120 that has transmitted the processing completion notification, and transmits the processed data to the data transfer control server 140.
  • the rate and the name of the parallel distributed processing execution server 120 are transmitted.
  • the data transfer control server 140 that has received the processed data rate updates the processed data rate 802 in the processing status management table 800 for the received server name (S203).
  • the processing rate 304 of the data information management table 300 is “processed” data for the number of data blocks stored in the parallel distributed processing execution server 120 by the data information management unit 1332 for calculating the processed data rate. This is done by determining the ratio of the number of blocks. That is, the processed data rate is the ratio of data blocks that have been processed so far to all data blocks stored in the parallel distributed processing execution server 120, and is calculated by the following equation (1). Is.
  • Processed data rate Number of stored “processed” data blocks
  • the data information management unit 1332 refers to the data information management table 300, creates a server name list of the parallel distributed processing execution server 120 having a data block whose allocation state 303 is “unallocated”, and processes allocation control unit 1331 (S204).
  • the process allocation control unit 1331 that has received the server name list of the parallel distributed processing execution server 120 having an unallocated data block determines whether or not the parallel distributed processing execution server 120 that has transmitted the process completion notification exists in the list. (S205).
  • step S205 when the parallel distributed processing execution server 120 that has transmitted the processing completion notification exists in the list (S205 ⁇ Yes), the processing allocation control unit 1331 refers to the data information management table 300 and the processing is completed.
  • One data block is arbitrarily selected from the unallocated data blocks stored in the parallel distributed processing execution server 120 that has transmitted the notification (S206).
  • step S205 If the result of determination in step S205 is that the parallel distributed processing execution server 120 that transmitted the processing completion notification does not exist in the list (S205 ⁇ No), the processing proceeds to FIG. 4B.
  • the process allocation control unit 1331 requests the data transfer control server 140 for the server name of the parallel distributed processing execution server 120 having the data block to be processed next by the task of the parallel distributed processing execution server 120 that has transmitted the processing completion notification (S207). ).
  • the server name request includes the server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification, and the server name list of the parallel distributed processing execution server 120 having an unallocated data block.
  • the data transfer control server 140 extracts the parallel distributed processing execution server 120 storing the data block to be processed next by the parallel distributed processing execution server that has transmitted the processing completion notification. It transmits to the process allocation control part 1331 (S208). Details of the processing in step S208 will be described later.
  • the process allocation control unit 1331 arbitrarily selects one data block from the unallocated data blocks stored in the parallel distributed processing execution server 120 corresponding to the server name received from the data transfer control server 140. Select (S209).
  • the process allocation control unit 1331 requests the parallel distributed processing execution server 120 corresponding to the received server name to execute the transfer of the selected data block to the parallel distributed processing execution server 120 that has transmitted the process completion notification.
  • the data block transfer request includes the data block ID of the selected data block and the server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification.
  • the process allocation control unit 1331 requests the data information management unit 1332 to update the data information management table 300, and requests the task management unit 1334 to update the task management table 600 (S211).
  • the update request for the data information management table 300 includes the data block ID 301 and the data allocation server name 302 of the selected data block, and the update request for the task management table 600 is received from the parallel distributed processing execution server 120 as a process completion notification. Task ID 601 and the processing data block ID 604 of the selected data block.
  • the data information management unit 1332 updates the allocation state 303 of the data block corresponding to the data block ID 301 included in the received update request to “allocated”, and the task management unit 1334 performs task management corresponding to the received task ID.
  • the task execution state 603 in the table 600 is updated to “being executed”, and the processing target data block ID 604 is updated with the received data block ID (S212).
  • the process assignment control unit 1331 transmits a process execution request for the selected data block to the parallel distributed process execution server 120 that has transmitted the process completion notification (S213).
  • the process execution request includes the data block ID of the selected data block and the task ID to which the process is assigned.
  • FIG. 5 is a diagram illustrating an example of the process execution server management table 500 according to the first embodiment of this invention.
  • the process execution server management table 500 includes information of a server name 501 for identifying each parallel distributed process execution server 120 as attribute information for managing the parallel distributed process execution server 120.
  • FIG. 6 is a diagram illustrating an example of a task management table 600 managed by the task management unit 1334 according to the first embodiment of this invention.
  • the task management table 600 includes a task ID 601 for storing an identifier for identifying each task as attribute information for managing each task of the parallel distributed processing execution server 120, and the name or identifier of the parallel distributed processing execution server 120 in which the task exists.
  • One entry is configured from a server name 602 to be stored, an execution state 603 indicating whether or not the task is executing processing, and a processing data block ID 604 indicating an identifier of the data block being processed by the task.
  • the execution status 603 column stores information such as “being executed” and “waiting”.
  • 7A and 7B are flowcharts showing the detailed processing procedure of step S208 in FIG. 4B.
  • 7A and 7B are processes performed by the processing delay server extraction processing unit 1431, the free resource amount comparison processing unit 1432, and the processing status management unit 1433 on the data transfer control server 140.
  • step S208 the data transfer control server 140 extracts the parallel distributed processing execution server 120 storing the data block to be processed next by the parallel distributed processing execution server that has transmitted the processing completion notification, and the parallel distributed processing control server This is a process of transmitting a server name having a data block to 130 process allocation control units 1331.
  • the server name of the parallel distributed processing execution server 120 to which the processing delay server extraction processing unit 1431 of the data transfer control server 140 has transmitted the processing completion notification, and the server name of the parallel distributed processing execution server 120 having an unallocated data block. are received from the parallel distributed processing control server 130 (S301).
  • This list of server names is a server name list of the parallel distributed processing execution server 120 having unallocated data blocks generated by the processing allocation control unit 1331 in step S207 of FIG. 4B.
  • the processing delay server extraction processing unit 1431 requests the processing status management unit 1433 for the processed data rate of the parallel distributed processing execution server 120 having unallocated data blocks (S302).
  • the request for the processed data rate is the server name list of the parallel distributed processing execution server 120 having unallocated data blocks received by the processing delay server extraction processing unit 1431 of the data transfer control server 140 in step S203 of FIG. 4A. including.
  • the processing status management unit 1433 that has received the server name list refers to the processing status management table 800, extracts the processed data rate of the parallel distributed processing execution server 120 included in the server name list, and extracts the processing delay server.
  • the processed data rate is transmitted to the processing unit 1431 (S303).
  • the processing delay server extraction processing unit 1431 acquires the processing delay threshold value 1001 with reference to the processing delay threshold value table 1000.
  • the processing delay server extraction processing unit 1431 compares the processed data rate of the parallel distributed processing execution server 120 included in the server name list received from the parallel distributed processing control server 130 with the processing delay threshold 1001 to determine the processing delay threshold 1001.
  • the parallel distributed processing execution server 120 having a smaller processed data rate and a slower processing progress is extracted (S304).
  • the processing delay threshold 1001 is set in advance by a user or an administrator before executing the parallel distributed processing.
  • the processing delay server extraction processing unit 1431 determines whether there is a parallel distributed processing execution server 120 whose processing progress extracted in step S304 is slow (S305).
  • step S305 if there is a parallel distributed processing execution server 120 with a slow process progress (S305 ⁇ Yes), the processing delay server extraction processing unit 1431 causes the parallel distributed process execution server 120 with a slow process progress. It is determined whether the number of servers is one (S308 in FIG. 7B).
  • step S308 when there is one parallel distributed processing execution server 120 whose processing progress is slow (S308 ⁇ Yes), the processing delay server extraction processing unit 1431 sends a processing completion notification to the parallel distributed processing control server 130.
  • the transmitted parallel distributed processing execution server 120 transmits the server name of the parallel distributed processing execution server whose processing progress is slow as the transfer source server of the data block to be processed next (S315).
  • step S308 when there are a plurality of parallel distributed processing execution servers 120 with slow processing progress (S308 ⁇ No), the processing delay server extraction processing unit 1431 sends the processing status management unit 1433 to the parallel processing with slow processing progress.
  • An execution multiplicity of the distributed processing execution server 120 is requested (S309).
  • the execution multiplicity of the parallel distributed processing execution server 120 indicates the number of tasks executed simultaneously.
  • the multiplicity of execution is handled as the processing performance per unit time of each parallel distributed processing execution server 120.
  • the request for execution multiplicity includes a server name list of the parallel distributed processing execution server 120 whose processing progress is slow.
  • a value indicating the processing performance per unit time a value indicating a hardware specification such as a CPU processing capacity or a memory capacity may be used.
  • the processing status management unit 1433 that has received the execution multiplicity of the server whose processing progress is slow refers to the processing status management table 800 and executes the multiplicity 803 of each parallel distributed processing execution server 120 included in the server name list. Is transmitted to the processing delay server extraction processing unit 1431 (S311).
  • the processing delay server extraction processing unit 1431 extracts the parallel distributed processing execution server 120 having the smallest execution multiplicity as the processing delay server among the parallel distributed processing execution servers 120 whose processing progress is slow (S311).
  • the processing delay server extraction processing unit 1431 is included in the parallel distributed processing execution server 120 whose processing progress is slow.
  • the parallel distributed processing execution server 120 having the lowest hardware specification is extracted as a processing delay server.
  • FIG. 9 shows a modified example of the processing status management table, in which hardware specifications 903 to 905 are used in place of the execution multiplicity 803 of the processing status management table 800 shown in FIG.
  • the processing status management table 800 ′ of FIG. 9 includes a CPU type 903 for storing the type of the CPU 122 of the parallel distributed processing execution server 120, instead of the execution multiplicity 803 of the processing status management table 800 shown in FIG.
  • One entry is composed of the number of cores 904 and the memory type 905 that stores the type of the main storage device 123.
  • the CPU type 903 “CPU1” indicates a high-spec (high performance) CPU 122, “CPU2” indicates a low-spec CPU, and the memory type “memory 1” is high.
  • Spec (high performance) memory “Memory 2” indicates a low-spec memory, and the parallel distributed processing execution server 120 with the lowest hardware spec includes one-core “CPU 2” and a low-spec “Memory 2”. ”.
  • the CPU processing capacity may be represented by the number of operating clocks of the CPU 122, the number of cores, and the cache capacity.
  • the processing delay server extraction processing unit 1431 determines whether or not the number of processing delay servers extracted in step S311 is one (S312).
  • step S312 If it is determined in step S312 that the number of processing delay servers is one (S312 ⁇ Yes), the process proceeds to step S315, and the server name of the processing delay server is transmitted to the parallel distributed processing control server 130 (S315).
  • step S312 determines whether there are a plurality of processing delay servers (S312 ⁇ No). If the result of determination in step S312 is that there are a plurality of processing delay servers (S312 ⁇ No), the processing delay server extraction processing unit 1431 sends the server name of the parallel distributed processing execution server 120 that sent the processing completion notification, and processing delay. The server name list of the server is transmitted to the free I / O resource amount comparison processing unit 1432 (S313).
  • the free I / O resource amount comparison processing unit 1432 requests the resource usage management server 150 for the amount of free I / O resources of the parallel distributed processing execution server 120 that transmitted the processing completion notification and the processing delay server. (S314).
  • the request for the free I / O resource amount includes the server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the server name list of the processing delay servers.
  • step S305 when there is no parallel distributed processing execution server 120 with a slow process progress (S305 ⁇ No), the processing delay server extraction processing unit 1431 notifies the free I / O resource amount comparison processing unit 1432 of the processing completion. And the server name list of the parallel distributed processing execution server 120 having the unallocated data block are transmitted (S306).
  • the free I / O resource amount comparison processing unit 1432 transmits the processing completion notification to the resource usage management server 150, and the server of the parallel distributed processing execution server 120 having an unallocated data block.
  • the name list is transmitted, and the free I / O resource amount of each parallel distributed processing execution server 120 is requested (S307).
  • the request for the free I / O resource amount includes the server name of the parallel distributed processing execution server that has transmitted the processing completion notification and the server name list of the parallel distributed processing execution server 120 having an unallocated data block.
  • the resource usage management server 150 transmits the processing completion notification received from the data transfer control server 140 to the parallel distributed processing execution server 120 and the free I / Os of the parallel distributed processing execution server 120 included in the server name list.
  • the resource amount is transmitted to the free I / O resource amount comparison processing unit 1432 (S316 in FIG. 7A).
  • the free I / O resource amount includes the free resource amount of the network I / O and the free resource amount of the disk I / O. Details of the processing in step S316 will be described later.
  • the free I / O resource amount comparison processing unit 1432 determines the free I / O resource amount of the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the free I / O resource amount of each parallel distributed processing execution server 120. In comparison, the parallel distributed processing execution server 120 having the smallest difference in the amount of free I / O resources is extracted as the transfer source server of the data block to be processed next by the parallel distributed processing execution server 120 that has transmitted the processing completion notification. The free I / O resource amount comparison processing unit 1432 transmits the extracted server name of the parallel distributed processing execution server 120 to the parallel distributed processing control server 130 (S317).
  • the free I / O resource amount comparison method is such that the free I / O resource amount comparison processing unit 1432 performs a difference between the absolute value of the difference in the free resource amount of the disk I / O and the free resource amount of the network I / O. Is obtained, and the value having the larger absolute value of the difference between each free I / O resource amount is obtained. That is, the difference in the free I / O resource amount is calculated by the following equation (2).
  • Difference in free I / O resource amount max ⁇
  • the amount of free I / O resources of the parallel distributed processing execution server that has transmitted the processing completion notification is In order to use the data block as much as possible, the free resource amount of the disk I / O and the network I / O has a larger free I / O resource amount than the parallel distributed processing execution server 120 that sent the process completion notification.
  • a parallel distributed processing execution server having the smallest difference in the amount of free I / O resources may be extracted from the parallel distributed processing execution servers 120.
  • FIG. 8 is a diagram illustrating an example of the processing status management table 800 according to the first embodiment of this invention.
  • FIG. 9 shows a modified example of the processing status management table, in which hardware specifications 903 to 905 are used in place of the execution multiplicity 803 of the processing status management table 800 shown in FIG.
  • the processing status management table 800 is stored as attribute information for managing the processing progress status of each parallel distributed processing execution server 120 in a server name 801 for identifying each parallel distributed processing execution server 120 and each parallel distributed processing execution server.
  • Each piece of information includes a processed data rate 802 indicating the ratio of processed data blocks to the processed data blocks, and an execution multiplicity 803 indicating the processing performance of each parallel distributed processing execution server 120 per unit time.
  • the execution multiplicity 803 is deleted from the processing status management table 800, and the CPU type indicates the CPU specification name as the processing performance per unit time of each parallel distributed processing execution server 120.
  • Information of 903, the number of CPU cores 904, and the memory type 904 indicating the specification name of the memory are added.
  • FIG. 10 is a diagram illustrating an example of a processing delay threshold management table according to the first embodiment of this invention.
  • the processing delay threshold management table 1000 has a low processed data rate of the parallel distributed processing execution server 120 as attribute information for managing a criterion for determining whether the progress of the processing of each parallel distributed processing execution server 120 is delayed, It has threshold information for determining whether or not processing is delayed.
  • FIG. 11 is a flowchart showing a detailed processing procedure of step S316 in FIG. 7A. Note that the processing in FIG. 11 is performed by the resource usage management unit 1531 on the resource usage management server 150.
  • the resource usage management unit 1531 receives from the data transfer control server 140 the server name of the parallel distributed processing execution server 120 that transmitted the processing completion notification and the server name list (S401).
  • the resource usage management unit 1531 refers to the resource usage management table 1200 to refer to the free I / O resource amount of the network I / O of each parallel distributed processing execution server 120 and the free I / O of the disk I / O.
  • the O resource amount is calculated and transmitted to the data transfer control server 140 (S316).
  • FIG. 12 is a diagram illustrating an example of the resource usage management table 1200 according to the first embodiment of this invention.
  • the resource usage management table 1200 includes, as attribute information for managing the I / O resource usage of each parallel distributed processing execution server 120, a server name 1201 for identifying each parallel distributed processing execution server 120, network I / O usage Each information includes an amount 1202 and a disk I / O usage amount 1203.
  • the network I / O usage and the disk I / O usage are shown as a ratio of the used bandwidth to the I / O bandwidth of the entire parallel distributed processing execution server.
  • the used I / O bandwidth may be used as it is.
  • FIG. 13 shows a parallel distributed processing control in which the parallel distributed processing execution server A sends a process completion notification from the parallel distributed processing execution server A in an environment where four parallel distributed processing execution servers 120-1 to 120-4 are operating.
  • An example of selecting a data block transfer source server when the server 130 receives the data block is shown.
  • the parallel distributed processing execution server 120-1 is indicated by a parallel distributed processing execution server A
  • the parallel distributed processing execution servers 120-2 to 120-4 are indicated by parallel distributed processing execution servers B to D.
  • the processing allocation control unit 1331 acquires the server name list “server B, server C, server D” of the parallel distributed processing execution server 120 having unallocated data blocks from the data information management unit 1332 and transmits a processing completion notification. It is confirmed that there is no unallocated data block in the parallel distributed processing execution server A. Subsequently, the processing allocation control unit 1331 has a server name “server A” of the parallel distributed processing execution server 120 that has transmitted the processing completion notification to the data transfer control server 140, and parallel processing having unallocated data blocks 20, 30, and 40. The server name list “server B, server C, server D” of the distributed processing execution server 120 is transmitted.
  • the processing delay server extraction processing unit 1431 of the data transfer control server 140 obtains the processed data rates of the parallel distributed processing execution servers B, C, and D included in the received server name list from the processing status management unit 1433. To do. Then, the threshold values stored in the processing delay threshold value management table 1000 are compared with the processed data rates of the parallel distributed processing execution servers B, C, and D, respectively. As a result of the comparison, as the parallel distributed processing execution server 120 whose processing progress is slow, the parallel distributed processing execution servers C and D having the processed data rate smaller than the threshold 50% are extracted, and the extracted server of the parallel distributed processing execution server 120 is extracted. The name list “server C, server D” is transmitted to the processing status management unit 1433, and the execution multiplicity of each parallel distributed processing execution server 120 is obtained.
  • each parallel distributed processing execution server 120 is compared, and since the execution multiplicity is 1 for both the parallel distributed processing execution servers C and D, the parallel distributed processing execution servers C and D are extracted as processing delay servers.
  • the processing completion notification is transmitted to the free I / O resource amount comparison processing unit 1432 together with the server name of the parallel distributed processing execution server A that has transmitted the processing completion notification.
  • the free I / O resource amount comparison processing unit 1432 sends the free I / O resource amounts of the parallel distributed processing execution server A and the processing delay servers B and C that transmitted the processing completion notification from the resource usage management server 150. get. Then, the amount of free I / O resources of the parallel distributed processing execution server A that transmitted the processing completion notification and each of the processing delay servers C and D is compared.
  • the difference in the amount of free I / O resources between the parallel distributed processing execution server A and the parallel distributed processing execution server C is 30%, and the amount of free I / O resources between the parallel distributed processing execution server A and the parallel distributed processing execution server D
  • the free I / O resource amount comparison processing unit 1432 selects the parallel distributed processing execution server D having a small difference in the free I / O resource amount as a data block transfer source server. Subsequently, the free I / O resource amount comparison processing unit 1423 transmits the server name “server D” of the selected parallel distributed processing execution server 120 to the parallel distributed processing control server 130.
  • the process allocation control unit 1331 of the parallel distributed processing control server 130 that has received the server name “server D” selects “data 40” from the unallocated data blocks stored in the parallel distributed processing execution server D, and The parallel distributed processing execution server D is requested to transfer “data 40” to the parallel distributed processing execution server A. Then, the process allocation control unit 1331 transmits a process execution request for the transferred data block “data 40” in the task A3 to the parallel distributed process execution server A.
  • the processing status of each parallel processing server and the data processing capacity per unit time are used.
  • the server with slow progress is extracted, and the parallel I / O resource amount of the extracted parallel distributed processing execution server and the parallel distributed processing execution server to which the data block processing is allocated is compared.
  • the block transfer source server By selecting as the block transfer source server, the number of data transfers is reduced, the data transfer time is shortened, and the entire parallel distributed processing is efficiently performed. It can be executed.
  • the execution multiplicity is used as an example of selecting the parallel distributed processing execution server 120 having the lowest performance in the process of step S311 in FIG. 7B.
  • the hardware specification is used. Using this value, the parallel distributed processing execution server 120 with the lowest hardware specification can be selected as the computer with the lowest processing performance.
  • the processing delay server extraction processing unit 1431 includes the parallel distributed processing execution server 120 whose processing progress is slow.
  • the parallel distributed processing execution server 120 having the lowest hardware specification may be extracted as a processing delay server.
  • the determination of the processing delay server is not limited to the above-described processed data rate and the threshold value 1001, and a parallel processing in which a processing completion notification is not transmitted even after a predetermined time has elapsed from the start of processing (task) execution.
  • the distributed processing execution server 120 may be a processing delay server.
  • the processing delay server may be determined by comparing a threshold value with an unprocessed ratio of data blocks after a predetermined time has elapsed.
  • the free I / O resource amount is represented by the ratio between the actual usage amount and the theoretical value
  • a value obtained by multiplying the theoretical value by a predetermined ratio may be used.
  • each parallel distributed processing execution server 120 operates as one physical server, and a parallel distributed processing execution server 120 stores data blocks stored in other parallel distributed processing execution servers 120.
  • the data block transfer source server was selected based on the processing progress rate of each parallel distributed processing execution server 120 and the amount of free resources.
  • a plurality of parallel distributed processing execution servers 120 are executed as virtual servers on a physical server, data transfer between the parallel distributed processing execution servers 120 operating on the same physical server is performed by transferring data via the network 100. Therefore, the data block transfer time may be shorter than the data transfer between the parallel distributed processing execution servers 120 operating on different physical servers.
  • the data is stored in one parallel distributed processing execution server 120 in another parallel distributed processing execution server 120.
  • the processing of each parallel distributed processing execution server 120 Is selected as a data block transfer source server based on the progress rate and the amount of free resources.
  • FIGS. 14A and 14B are block diagrams illustrating an example of the computer system 20 according to the second embodiment of this invention.
  • the parallel distributed processing execution server 120 is executed by the physical server 210-1 as a virtual server that executes parallel distributed processing.
  • the physical server 210-1 to 210-n is collectively referred to as the physical server 210.
  • the virtualization unit 230 executed on the physical resource 220 provides a plurality of virtual servers, and each virtual server is executed as the parallel distributed processing execution server 120.
  • the virtualization unit 230 includes a hypervisor and a VMM (Virtual Machine Monitor) that allocates the physical resource 220 to the plurality of parallel distributed processing execution servers 120.
  • the physical resource 220 includes a CPU 122, a main storage device 123, a network interface 121, and a secondary storage device 124.
  • the virtualization unit 230 provides each parallel distributed processing execution server 120 with a virtual (or logical) CPU 122v, a virtual main storage device 123v, a virtual network interface 121v, and a virtualized secondary storage device 124v.
  • each parallel distributed processing execution server 120 is the same as those in the first embodiment.
  • the parallel distributed processing control server 130, the data transfer control server 140, and the resource usage management server 150 are also configured in the same manner as in the first embodiment.
  • the processing execution server management table 1700 and the processing status management table 1800 are different from the first embodiment in that the correspondence relationship between the physical server 210 and the virtual server is added to the configuration of the first embodiment. Is a point.
  • FIG. 15A and FIG. 15B are flowcharts showing the second embodiment of the present invention and showing the procedure of the overall processing related to the parallel distributed processing execution method. 15A and 15B are processes corresponding to FIGS. 2A and 2B of the first embodiment.
  • a data load request for processing target data (input data 1241) is transmitted from the client apparatus 110 to the parallel distributed processing control server 130.
  • the parallel distributed processing control server 130 divides the load target data into data blocks (input data 1241) of a prescribed size, and distributes and loads the data to a plurality of parallel distributed processing execution servers 120 (S501). ).
  • a parallel distributed processing execution request is transmitted from the client device 110 to the parallel distributed processing control server 130.
  • the process allocation control unit 1331 of the parallel distributed processing control server 130 transmits the processing execution request for the loaded data block to each parallel distributed processing execution server 120, and the data information management unit 1332
  • the allocation state 303 of the data block to be processed in the data information management table 300 is updated to “allocated” (S502).
  • the processing execution request for the data block transmitted by the processing allocation control unit 1331 includes the data block ID of the data block to be processed and the task ID of the task that executes the processing of each data block.
  • the task is a program that executes a predetermined process using the data block to be processed as input data 1241.
  • the user-defined process execution unit 1231 of the parallel distributed process execution server 120 that has received the process execution request executes a predetermined process using the data block specified by the process execution request in each task as the input data 1241 (S503). . That is, the user-defined process execution unit 1231 of the parallel distributed process execution server 120 activates the task specified by the process execution request, and allocates the data block specified by the process execution request as input data 1241 to each task. Execute the process.
  • the parallel distributed processing execution server 120 completes the processing as a processing completion notification from the parallel distributed processing execution server 120 to the parallel distributed processing control server 130.
  • the task ID of the completed task is transmitted (S504).
  • the data information management unit 1332 of the parallel distributed processing control server 130 that has received the processing completion notification updates the processing state 304 of the corresponding data block ID 301 in the data information management table 300 to “processed” (S505).
  • the processing allocation control unit 1331 of the parallel distributed processing control server 130 refers to the data information management table 300 and determines whether or not the processing state 304 of all the data blocks is “processed” (S506).
  • step S506 If all the data blocks are “processed” as a result of the determination in step S506 (S506 ⁇ Yes), the processing allocation control unit 1331 of the parallel distributed processing control server 130 transmits a parallel distributed processing completion notification to the client device 110. Then, the computer system 10 ends the process.
  • the parallel distributed processing control server 130 refers to the data management information table 300 and transmits the processing completion notification. It is determined whether or not there is a data block whose allocation state 403 is “unallocated” in the process execution server 120 (S507).
  • step S507 when there is an unallocated data block in the parallel distributed processing execution server 120 that has transmitted the processing completion notification (S507 ⁇ Yes), the processing allocation control unit 1331 of the parallel distributed processing control server 130 performs processing.
  • One data block is arbitrarily selected from unallocated data blocks existing in the parallel distributed processing execution server 120 that has transmitted the completion notification (S508).
  • step S507 determines whether there is no unallocated data block in the parallel distributed processing execution server 120 that transmitted the processing completion notification (S507 ⁇ No).
  • the parallel distributed processing control server 130 refers to the data information management table 300, and sends it to another parallel distributed processing execution server 120 on the physical server 210 on which the parallel distributed processing execution server 120 that transmitted the processing completion notification operates. Then, it is determined whether or not there is a data block whose allocation state 303 is “unallocated” (S509). That is, a virtual server having an unallocated data block on the same physical server 210 is extracted.
  • step S509 If the result of determination in step S509 is that there is an unallocated data block (S509 ⁇ Yes), the parallel distributed processing control server 130 sends the virtual server name of the parallel distributed processing execution server 120 that sent the processing completion notification, and the parallel The virtual server name list of the parallel distributed processing execution server 120 operating on the same physical server as the distributed processing execution server 120 and storing unallocated data blocks is transmitted to the data transfer control server 140 (S510).
  • step S509 If there is no unallocated data block on the same physical server 210 as a result of the determination in step S509 (S509 ⁇ No), the process allocation control unit 1331 of the parallel distributed processing control server 130 transmits the process completion notification.
  • the virtual server name of the distributed processing execution server 120 and the virtual server name list of the parallel distributed processing execution server 120 having unallocated data blocks are transmitted to the data transfer control server 140 (S511).
  • the processing delay server extraction processing unit 1431 of the data transfer control server 140 selects from the parallel distributed processing execution servers 120 included in the virtual server name list having unallocated data blocks received from the parallel distributed processing control server 130.
  • the virtual server name of the parallel distributed processing execution server 120 that has extracted the processing delay server and transmitted the processing completion notification and the virtual server name list of the extracted server are transmitted to the resource usage management server 150, and each parallel distributed The amount of free I / O resources of the process execution server 120 is requested (S512).
  • the resource usage management unit 1531 of the resource usage management server 150 refers to the resource usage management table 1200 and the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the parallel included in the virtual server name list.
  • the free I / O resource amount of the distributed processing execution server 120 is transmitted to the transfer control server 140 (S513).
  • the free I / O resource amount is the same as that in the first embodiment, and includes the free I / O resource amount of the network I / O and the free I / O resource amount of the disk I / O.
  • the free I / O resource amount comparison processing unit 1432 of the data transfer control server 140 compares the parallel I / O resource amount of each processing delay server with the parallel distributed processing execution server 120 that transmitted the processing completion notification, A processing delay server with a small difference in free I / O resource amount is extracted, and the extracted virtual server name of the processing delay server is transmitted to the parallel distributed processing control server 130 (S514).
  • the processing allocation control unit 1331 of the parallel distributed processing control server 130 selects any of the unallocated data blocks existing in the parallel distributed processing execution server 120 corresponding to the virtual server name received from the data transfer control server 140.
  • One data block is selected (S515).
  • the data information management unit 1332 of the parallel distributed processing control server 130 updates the allocation state 303 of the data block selected in the data information management table 300 to “allocated”.
  • the processing allocation control unit 1331 transmits a processing request for the selected data block to the parallel distributed processing execution server 120 that transmitted the processing completion notification, and the computer system 20 returns the processing to step S503 (S516).
  • the data block processing request includes the data block ID of the selected data block and the task ID for executing the processing of the data block.
  • FIG. 16A and FIG. 16B are flowcharts showing a detailed procedure regarding the allocation of processing to the parallel distributed processing execution server 120 from step S507 to step S516 shown in FIG. 15A and FIG. 15B.
  • 16A and 16B are processes performed by the processing allocation control unit 1331, the data information management unit 1332, and the task management unit 1334 on the parallel and distributed processing control server 130.
  • FIG. 4A and FIG. This process corresponds to 4B.
  • the process allocation control unit 1331 that has received the task ID as the process completion notification from the parallel distributed processing execution server 120 requests the task management unit 1334 to update the task management table 600. Further, the process allocation control unit 1331 requests the virtual server name list of the parallel distributed processing execution server 120 having unallocated data blocks from the data information management unit 1332 (S601).
  • the task management unit 1334 that has received the update request for the task management table 600 updates the execution state 603 of the corresponding task in the task management table 600 to “waiting”, and updates the processing data block ID 604 to a NULL value (S602). ).
  • the data information management unit 1332 refers to the data information management table 300, calculates the processed data rate of the parallel distributed processing execution server 120 that has transmitted the processing completion notification, and transmits the processed data to the data transfer control server 140.
  • the rate and the name of the parallel distributed processing execution server 120 are transmitted.
  • the transfer control server 140 that has received the processed data rate updates the processed data rate 1803 from the processing status management table 1800 for the received virtual server name (S603).
  • the method for calculating the processed data rate is the same as in the first embodiment, and the data information management unit 1332 uses the data information management table 300 for the number of data blocks stored in the parallel distributed processing execution server 120. This is done by determining the ratio of the number of data blocks whose processing status 304 is “processed”. That is, the processed data rate is the ratio of data blocks that have been processed so far to all data blocks stored in the parallel distributed processing execution server 120, and is calculated using the formula (1) shown in the first embodiment. It is calculated in 1).
  • the data information management unit 1332 refers to the data information management table 300, creates a virtual server name list of the parallel distributed processing execution server 120 having a data block whose allocation state 303 is “unallocated”, and a process allocation control unit It transmits to 1331 (S604).
  • the process allocation control unit 1331 that has received the virtual server name list of the parallel distributed processing execution server 120 having an unallocated data block determines whether or not the parallel distributed processing execution server 120 that transmitted the process completion notification is included in the virtual server name list. Is determined (S605).
  • step S605 when the parallel distributed processing execution server 120 that has transmitted the process completion notification is present in the list (S605 ⁇ Yes), the process allocation control unit 1331 refers to the data information management table 300 and notifies the process completion notification One data block is arbitrarily selected from the unallocated data blocks stored in the parallel distributed processing execution server 120 that has transmitted (S606).
  • step S605 when the parallel distributed processing execution server 120 that transmitted the processing completion notification does not exist in the list (S605 ⁇ No), the process proceeds to FIG. 16B.
  • the process allocation control unit 1331 displays a virtual server name list of the parallel distributed processing execution server 120 operating on the same physical server as the parallel distributed processing execution server 120 that transmitted the process completion notification to the processing execution server management unit 1333.
  • a request is made (S607).
  • the request for the virtual server name list includes the virtual server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification.
  • the process execution server management unit 1333 displays a virtual server name list of another parallel distributed process execution server 120 on the same physical server as the parallel distributed process execution server 120 corresponding to the received virtual server name as a process allocation control unit. It transmits to 1331 (S608).
  • step S609 when another parallel distributed processing execution server 120 exists (S609 ⁇ Yes), the process allocation control unit 1331 includes the virtual server name of the parallel distributed processing execution server 120 that has transmitted the process completion notification, and The virtual server name list of the parallel distributed processing execution server 120 operating on the same physical server and having unallocated data blocks is transmitted to the data transfer control server 140.
  • the parallel distributed processing execution server 120 that holds the data block to be processed next is requested (S611).
  • the process allocation control unit 1331 is the data to be processed next by the task of the parallel distributed processing execution server 120 that has transmitted the process completion notification.
  • a virtual server name of the parallel distributed processing execution server 120 having a block is requested (S610).
  • the virtual server name request includes the virtual server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification and the virtual server name list of the parallel distributed processing execution server 120 having an unallocated data block.
  • the data transfer control server 140 extracts the parallel distributed processing execution server 120 storing the data block to be processed next by the parallel distributed processing execution server that has transmitted the processing completion notification, and transmits it to the parallel distributed processing control server 130 ( S612). Note that the processing in step S612 is processing corresponding to the processing in FIGS. 7A and 7B of the first embodiment.
  • the process allocation control unit 1331 arbitrarily selects one data block from unallocated data blocks stored in the parallel distributed processing execution server 120 corresponding to the received virtual server name (S613). .
  • the process allocation control unit 1331 sends the process completion notification to the parallel distributed processing execution server 120 corresponding to the virtual server name received from the data transfer control server 140, and the above-described step S613.
  • a request is made to transfer the data block selected in (S614).
  • the data block transfer request includes the data block ID of the selected data block and the virtual server name of the parallel distributed processing execution server 120 that has transmitted the processing completion notification.
  • the process allocation control unit 1331 returns to the process of FIG. 16A, requests the data information management unit 1332 to update the data information management table 300, and requests the task management unit 1334 to update the task management table 600 (S615). ).
  • the update request for the data information management table 300 includes the data block ID 301 of the selected data block
  • the update request for the task management table 600 includes the task ID received from the parallel distributed processing execution server 120 as the processing completion notification and the selection. Data block ID 601 of the data block.
  • the data information management unit 1332 updates the allocation state 303 of the data information management table 300 corresponding to the data block corresponding to the data block ID included in the received update request to “allocated”.
  • the task management unit 1334 updates the task execution state 603 of the task management table 600 corresponding to the received task ID to “being executed”, and updates the processing target data block ID 604 with the received data block ID (S616).
  • the process allocation control unit 1331 transmits a process execution request for the selected data block to the parallel distributed process execution server 120 that has transmitted the process completion notification (S617).
  • the process execution request includes the data block ID of the selected data block and the task ID to which the process is assigned.
  • FIG. 17 is a diagram illustrating an example of the process execution server management table 1700 according to the second embodiment of this invention.
  • FIG. 17 is a table corresponding to the process execution server management table 500 shown in FIG. 5 of the first embodiment.
  • the process execution server management table 1700 includes, as attribute information for managing the physical server 210 and the parallel distributed process execution server 120, a physical server name 1701 for identifying each physical server 210, and each parallel distributed process composed of virtual servers. One entry is configured from the virtual server name 1702 for identifying the execution server 120.
  • FIG. 18 is a diagram illustrating another example of the processing status management table 1800 according to the second embodiment of this invention.
  • FIG. 18 is a table corresponding to the processing status management table 800 shown in FIG. 8 of the first embodiment.
  • the processing status management table 1800 identifies the physical server name 1801 for identifying each physical server 210 and each parallel distributed processing execution server 120 as attribute information for managing the processing progress status of each parallel distributed processing execution server 120.
  • Virtual server name 1802 processed data rate 1803 indicating the ratio of processed data blocks to data blocks stored in each parallel distributed processing execution server, and processing performance per unit time of each parallel distributed processing execution server One entry is configured from the execution multiplicity 1804 shown.
  • processing status management table 1800 does not show hardware specification attribute information such as CPU and memory, but may include these hardware specifications.
  • the present invention can be applied to a parallel distributed processing system, and is particularly suitable for a parallel distributed processing system including a parallel distributed processing execution server in which physical resource allocation varies.

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)

Abstract

 予め分割されたデータブロックを前記記憶装置に格納し、データブロックを処理するタスクを並列して実行する複数の並列分散処理実行サーバと、複数の並列分散処理実行サーバを制御する管理計算機と、を備え、前記管理計算機は、複数の並列分散処理実行サーバのリソース使用量をそれぞれ収集し、並列分散処理実行サーバが保持するデータブロックとタスクの状態を取得し、並列分散処理実行サーバがそれぞれ保持するデータブロックの処理の進行状況と前記複数の並列分散処理実行サーバのリソース使用量に基づいて、前記第1の並列分散処理実行サーバへデータブロックを転送する第2の並列分散処理実行サーバを選択し、前記選択した第2の並列分散処理実行サーバに対して前記データブロックを前記第1の並列分散処理実行サーバへ転送する指令を送信する。

Description

並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体
 本発明は、データ処理履歴情報やサーバ稼動履歴情報などを利用したデータ転送制御方法及び装置に関する。
 近年、記憶媒体の大容量化、低価格化により、RFID(Radio Frequency Identification)等のセンサ装置から取得するデータや、Webサイトのアクセスログ等、大量データの蓄積が可能となっている。そこで、企業や団体などでは、これまで蓄積されていたが、活用されていない大量データを分析し、その分析結果を事業に活かすことが試みられている。大量データを短時間で分析する技術として並列分散処理技術が注目を集めている。しかし、これまで活用されていないログデータ等は、データの活用方法や分析方法が明確に決まっておらず、試行錯誤が必要となる。並列分散処理では、処理を分割して複数のサーバに割り当て、処理を分散して並列的に実行するため、多数のサーバを用意する必要がある。そのため、初期段階での並列分散処理システム導入による投資対効果が不明瞭であるため、顧客の導入障壁が高い。
 そこで、並列分散処理システムの導入において、新たにサーバを用意するのではなく、既存のシステムが利用しているサーバの空きリソースを有効活用し、既存のシステムと並列分散処理システムを共存させることが考えられる。
 並列分散処理では、処理対象のデータが規定サイズのブロックに分割され、各ブロックが独立して、複数サーバにおいて同時並行的に処理されるため、大量データを短時間で処理することが可能である。処理対象データが、並列分散処理を実行する各サーバ上に分散して保存されている状況下では、あるサーバ上のタスクに他サーバに保存されているデータの処理を割り当てた場合、サーバ間でデータの転送が発生し、処理遅延の原因となる。そこで、並列分散処理の処理効率を考慮し、処理を割り当てる際に、処理対象データが保存されているサーバに、ネットワーク的に最も近いサーバのタスクへ処理を割り当てるスケジューリング方法が開示されている(非特許文献1参照)。
 また、サーバ間のデータ転送の回数を減らすために、他サーバに保存されているデータの処理を割り当てる場合に、各サーバにおいて、保存されているデータに対する処理割り当て済みデータの割合を算出し、その割合が最も小さいサーバに保存されているデータの処理を割り当てるスケジューリング方法が開示されている(特許文献1参照)。
 既存システムと並列分散処理システムを共存稼動させる場合、既存システムの優先度は並列分散処理システムより高いことが想定される。よって、並列分散処理システムは、既存システムの稼働を妨げないように、サーバの空きリソースを利用して処理を実行する必要がある。そのため、サーバ毎に既存システムの負荷変動に合わせて、動的に実行多重度を変更する必要があり、各サーバが単位時間あたりに処理可能なデータ量に差が生じやすい。また、動的に実行多重度を変更するため、並列分散処理実行前に、各サーバの処理能力に応じて、データ転送が少なくなるように各サーバにデータを配置することが困難であり、大量のデータ転送処理が発生する可能性がある。よって、動的に実行多重度を変更する環境下において、並列分散処理実行中に、データ転送コストが少なくなるよう、如何に各サーバにデータの処理を割り当てるかが、並列分散処理の効率化という点において、重要なポイントになる。
特開2010-231502号公報
Tom White著、Hadoop: The Definitive Guide、First Edition、Oreilly Media刊、2010年01月 発行、第155頁
 非特許文献1に記載の技術を用いることにより、出来るだけ自サーバに保存されているデータを処理できるため、データ転送の発生を抑制できる。さらに、他サーバに保存されているデータの処理を割り当てる場合には、ネットワーク的に最も近いサーバに保存されているデータの処理を割り当てるため、データ転送コストを抑制できる。
 しかしながら、上記非特許文献1の技術では、優先度の高い既存のシステムと、並列分散処理システムが共存して稼働する状況下では、必ずしもデータ転送コストを抑制できるとは限らない。
 例えば、既存のシステムと共存して稼働する並列分散処理システムでは、各サーバの単位時間当たりの処理能力に差が生まれやすく、各サーバの未処理データ量に偏りが生じる可能性がある。そのため、あるサーバ上のタスクに処理を割り当てる際に、最も近いサーバの未処理データが少ない場合、転送元サーバのタスクでは、自サーバの未処理データが早い段階で無くなってしまう。よって、他サーバからデータを取得する回数が多くなり、データ転送が多発してしまう。
 並列分散処理システムにおいて、データ転送が多発するのを抑制する方法の1つとして、特許文献1が知られている。特許文献1に記載の技術を用いることにより、他サーバに保存されているデータの処理を自サーバのタスクに割り当てる場合に、各サーバの割り当て済みデータの割合を算出し、どのサーバに保存されているデータの処理を割り当てるのかを決定する。この決定の際には、未割り当てデータの少ないサーバから自サーバへデータを転送して取得する可能性が低くなる。よって、各サーバが可能な限り自サーバに保存されているデータを処理できるようになり、データ転送回数の削減するものである。
 しかしながら、優先度の高い既存のシステムに、並列分散処理システムを共存させて稼動する状況下においては、前記特許文献1等の従来技術では必ずしも十分とは言えない。
 例えば、並列分散処理システムは、既存のシステムの負荷変動やリソースの変動に合わせて実行多重度を変更する必要がある。このため、既存のシステムの負荷が増加した場合、優先度が低い並列分散処理実行システムでは実行多重度を減らさなければならない。このため、既に処理を割り当てられていたタスクが、実行多重度の減少により、処理を実行できなくなる可能性がある。また、各サーバの実行多重度が異なるため、各サーバで単位時間あたりに処理できるデータ量も異なる。そのため、割り当て済みデータの割合が小さい場合でも、単位時間当たりに処理可能なデータ量が多く、他のサーバより未処理データを短時間で処理できる可能性がある。
 さらに、並列分散処理システムが既存システムと共存する状況下では、並列分散処理システムがデータ転送に利用できるI/Oリソース量もサーバ毎に異なる。そのため、データの転送先サーバの空きI/Oリソース量が多く、一度に大量のデータを転送可能な場合でも、転送元サーバに利用可能なI/Oリソース量の小さいサーバを選んだ場合、空きI/Oリソース量の小さい方に合わせてデータを転送する必要があり、転送先サーバの空きI/Oリソースを最大限利用できない。これにより、データ転送時間が長くなり、並列分散処理システム全体の処理時間に影響を与える可能性がある。
 従って、優先度の高い既存システムに、並列分散処理システムを共存させて稼働する環境下のように、並列分散処理システムに割り当て可能な計算機資源が変動して、並列分散処理システムの実効多重度が変化した場合であっても、以降の並列処理をデータ転送の回数、使用するリソース量の点で効率的に実行できるように、各サーバにデータを割り当てることが課題になる。
 本発明は上記問題点に鑑みてなされたもので、並列分散処理システムに割当可能な計算機資源が変化して、並列分散処理の実行多重度が変化する状況で、データ転送回数を削減することを目的とする。
 本発明は、プロセッサと記憶装置とを備えて処理対象のデータとして予め分割されたデータブロックを前記記憶装置に格納し、前記プロセッサが前記データブロックを処理するタスクを並列して実行する複数の並列分散処理実行サーバと、前記複数の並列分散処理実行サーバを制御する管理計算機と、を備えた並列分散処理システムで、前記管理計算機が、第1の並列分散処理実行サーバのタスクに割り当てるデータブロックの送信元となる第2の並列分散処理実行サーバを選択する並列分散処理システムのデータ転送制御方法であって、前記管理計算機が、前記第1の並列分散処理実行サーバから前記タスクが完了したことを示す完了通知を受信する第1のステップと、前記管理計算機が、前記複数の並列分散処理実行サーバのリソース使用量をそれぞれ収集する第2のステップと、前記管理計算機が、前記複数の並列分散処理実行サーバが保持するデータブロックとタスクの状態を取得する第3のステップと、前記管理計算機が、前記複数の並列分散処理実行サーバがそれぞれ保持するデータブロックの処理の進行状況と前記複数の並列分散処理実行サーバのリソース使用量に基づいて、前記第1の並列分散処理実行サーバへデータブロックを転送する第2の並列分散処理実行サーバを選択する第4のステップと、前記管理計算機が、前記選択した第2の並列分散処理実行サーバに対して前記データブロックを前記第1の並列分散処理実行サーバへ転送する指令を送信する第5のステップと、前記管理計算機が、前記第1の並列分散処理実行サーバに対して前記転送されたデータブロックを処理するタスクを実行する指令を送信する第6のステップと、を含む。
 本発明によれば、並列分散処理の実行中に利用可能なコンピュータリソースが変化し、並列分散処理の実行多重度が変化する並列分散処理システムにおいて、データ転送回数を削減し、さらに、データ転送時間を短縮することにより、並列分散処理全体を効率的に実行可能なデータ転送制御方法及び装置を提供することができる。
本発明の第1の実施形態を示し、計算機システムの一例を示すブロック図である。 本発明の第1の実施形態を示し、計算機システムのうち各サーバの詳細なブロック図である。 本発明の第1の実施形態を示し、並列分散処理の全体の処理を示すフローチャートである。 本発明の第1の実施形態を示し、図2Aの割当処理S116で行われる詳細な処理を示すフローチャートである。 本発明の第1の実施形態を示し、データ情報管理テーブルの一例を示す図である。 本発明の第1の実施形態を示し、図2BのステップS107からS114の並列分散処理実行サーバ120への処理の割り当てに関する処理の一例を示すフローチャートである。 本発明の第1の実施形態を示し、図4AのステップS205の条件分岐がNOのときに行われる処理の一例を示すフローチャートである。 本発明の第1の実施形態を示し、処理実行サーバ管理テーブルの一例を示す図である。 本発明の第1の実施形態を示し、タスク管理テーブルの一例を示す図である。 図4BのステップS208の処理の詳細を示すフローチャートである。 図7AのステップS305の条件分岐がYESのときに行われる処理の一例を示すフローチャートである。 本発明の第1の実施形態を示し、処理状況管理テーブルの一例を示す図である。 本発明の第1の実施形態を示し、処理状況管理テーブルの変形例を示す図である。 本発明の第1の実施形態を示し、処理遅延閾値管理テーブルの例を示す図である。 本発明の第1の実施形態を示し、図7AのステップS316の処理の詳細な手順を示すフローチャートである。 本発明の第1の実施形態を示し、リソース使用量管理テーブルの例を示す図である。 本発明の第1の実施形態を示し、他の並列分散処理実行サーバ120に保存されているデータブロックの処理を割り当てる場合におけるデータブロックの転送元となる並列分散処理実行サーバ選択の一例を示すブロック図である。 本発明の第2の実施形態を示し、計算機システムの構成の一例を示すブロック図である。 本発明の第2の実施形態を示し、計算機システムのうち各サーバの一例を示すブロック図である。 本発明の第2の実施形態を示し、並列分散処理の全体を示すフローチャートである。 本発明の第2の実施形態を示し、図15AのステップS507の条件分岐がNOのときに行われる処理の一例を示すフローチャートである。 図15AのステップS507からS516の並列分散処理実行サーバ120への処理の割り当てに関する詳細な手順を示すフローチャートである。 図16AのステップS605の条件分岐がNOのときに行われる処理の一例を示すフローチャートである。 本発明の第2の実施形態を示し、処理実行サーバ管理テーブルの一例を示す図である。 本発明の第2の実施形態を示し、処理状況管理テーブルの例を示す図である。
 本発明を実施するための形態(以下、「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
 <第1実施形態>
 まず、図1~図13を参照して、本発明の第1実施形態に係わる説明を行なう。
 <システム構成>
 図1A、図1Bは、本発明の第1の実施形態を示し、計算機システムの構成の一例を示すブロック図である。
 計算機システム10は、クライアント装置110、複数の並列分散処理実行サーバ120-1~120-n、並列分散処理制御サーバ130、データ転送制御サーバ140、リソース使用量管理サーバ150がネットワーク100を介して互いに接続されている。なお、ネットワーク100は、LAN(Local Area Network)や、WAN(Wide Area Network)や、インターネットなどのグローバルネットワークである。また、ネットワーク100は、複数のネットワーク100に分けられても良い。また、並列分散処理実行サーバ120-1~120-nの総称は並列分散処理実行サーバ120とする。
 <クライアント装置>
 クライアント装置110は、ネットワークインタフェース111、CPU112、主記憶装置113、二次記憶装置114、及び、これらを相互に接続するバス(またはインターコネクト)115を備える計算機である。
 ネットワークインタフェース111は、クライアント装置110がネットワーク100に接続するためのインタフェースである。CPU112は、主記憶装置113に記憶されているプログラムを実行することによってクライアント装置110の所定の機能を実現する演算処理装置である。主記憶装置113は、CPU112によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶するRAM等の記憶装置である。プログラムとは、例えば、図示しないOSや、クライアント処理部1131の機能を実現するためのプログラムである。二次記憶装置114は、クライアント装置110の所定の機能を実現するために必要なプログラム、及び、データ等を格納するハードディスク装置等の不揮発性記憶媒体である。なお、二次記憶装置114は、ハードディスク装置等の磁気的記憶媒体に限定されるものではなく、フラッシュメモリ等の不揮発性の半導体記憶媒体であってもよい。
 <並列分散処理実行サーバ>
 並列分散処理実行サーバ120は、ネットワークインタフェース121、CPU122、主記憶装置123、二次記憶装置124、及び、これらを相互に接続するバス(またはインターコネクト)125を備える計算機である。なお、並列分散処理実行サーバ120-1~120-nの構成は同様とする。
 ネットワークインタフェース121は、並列分散処理実行サーバ120がネットワーク100に接続するためのインタフェースである。CPU122は主記憶装置133に記憶されているプログラムを実行することによって並列分散処理実行サーバの所定の機能を実現する演算処理装置である。主記憶装置123は、CPU122によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶するRAM等の記憶装置である。プログラムとは、例えば、不図示のOS、及び、ユーザ定義処理実行部1231、データ管理部1232の機能を実現するためのプログラムである。二次記憶装置124は、並列分散処理実行サーバ120が所定の機能を実現するために必要なプログラム、及び、入力データ1241、出力データ1242、データ管理テーブル1243等のデータを格納するハードディスク装置等の不揮発性記憶媒体である。なお、二次記憶装置124は、ハードディスク装置等の磁気的記憶媒体に限定されるものではなく、フラッシュメモリなどの不揮発性の半導体記憶媒体であってもよい。
 入力データ1241、出力データ1242について補足する。入力データ1241は、規定のサイズに分割された複数のデータブロックからなる論理的なデータであり、名前と構成するデータブロックを識別するための情報とを含む。入力データ1241のデータブロックを識別するための情報とは、例えば、データブロックを格納する並列分散処理実行サーバ120のアドレス情報とデータブロックの名前である。データの実体はデータブロックとして並列分散処理実行サーバ120に格納される。出力データ1242は、前述の並列分散処理によって出力されるデータである。
 ユーザ定義処理実行部1231は、割り当てられたタスクを実行する。データ管理部1232は、タスクに対するデータブロック(入力データ1241)の割り当てを管理する。
 <並列分散処理制御サーバ>
 並列分散処理制御サーバ130は、各並列分散処理実行サーバ120に処理を割り当て、並列分散処理全体の実行を制御するためのサーバであり、並列分散処理ネットワークインタフェース131、CPU132、主記憶装置133、二次記憶装置134、及び、これらを相互に接続するバス135を備える。
 ネットワークインタフェース131は、並列分散処理制御サーバ130がネットワーク100に接続するためのインタフェースである。CPU132は、主記憶装置133に記憶されているプログラムを実行することによって並列分散処理制御サーバの所定の機能を実現する演算処理装置である。主記憶装置133は、CPU132によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶するRAM等の記憶装置である。プログラムとは、例えば、不図示のOS、及び、処理割当制御部1331、データ情報管理部1332、処理実行サーバ管理部1333、タスク管理部1334の機能を実現するためのプログラムである。二次記憶装置134は、並列分散処理制御サーバ130が所定の機能を実現するために必要なプログラム、及び、データ情報管理テーブル300、処理実行サーバ管理テーブル500、タスク管理テーブル600等のデータを格納するハードディスク装置等の不揮発性記憶媒体である。なお、二次記憶装置134は、ハードディスク装置等の磁気的記憶媒体に限定されるものではなく、フラッシュメモリ等の不揮発性の半導体記憶媒体であってもよい。
 なお、各処理割当制御部1331、データ情報管理部1332、処理実行サーバ管理部1333、タスク管理部1334の機能については、処理の説明において後述する。
 <データ転送制御サーバ>
 データ転送制御サーバ140は、処理を割り当てる並列分散処理実行サーバ120とは別の並列分散処理実行サーバ120に格納されているデータブロックの処理を割り当てる場合に、処理するデータブロックを格納している並列分散処理実行サーバの選択を行うサーバであり、ネットワークインタフェース141、CPU142、主記憶装置143、二次記憶装置144、及び、これらを相互に接続するバス145を備える。
 ネットワークインタフェース141は、データ転送制御サーバ140がネットワーク100に接続するためのインタフェースである。CPU142は、主記憶装置143に記憶されているプログラムを実行することによってデータ転送制御サーバ140の所定の機能を実現する演算処理装置である。主記憶装置143は、CPU142によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶するRAM等の記憶装置である。プログラムとは、例えば、図示しないOS、及び、処理遅延サーバ抽出処理部1431、空きI/Oリソース比較処理部1432、処理状況管理部1433の機能を実現するためのプログラムである。二次記憶装置144は、データ転送制御サーバ140が所定の機能を実現するために必要なプログラム、及び、処理状況管理テーブル800、処理遅延閾値管理テーブル1000等のデータを格納するハードディスク装置等の不揮発性記憶媒体である。なお、二次記憶装置144は、ハードディスク装置等の磁気的記憶媒体に限定されるものではなく、フラッシュメモリ等の不揮発性の半導体記憶媒体であってもよい。
 なお、処理遅延サーバ抽出処理部1431、空きI/Oリソース量比較処理部1432、処理状況管理部1433の各機能については、処理の説明において後述する。
 <リソース使用量管理サーバ>
 リソース使用量管理サーバ150は、各サーバのI/Oリソース使用量を管理するためのサーバであり、ネットワークインタフェース151、CPU152、主記憶装置153、二次記憶装置154、及び、これらを相互に接続するバス155を備える。
 ネットワークインタフェース151は、リソース使用量管理サーバ150がネットワーク100に接続するためのインタフェースである。CPU152は、主記憶装置153に記憶されているプログラムを実行することによってリソース使用量管理サーバ150の所定の機能を実現する演算処理装置である。主記憶装置153は、CPU152によって実行されるプログラム、及び、プログラムの実行に必要なデータを記憶するRAM等の記憶装置である。プログラムとは、例えば、図示しないOS、及び、リソース使用量管理部1531、リソース使用量監視部1532の機能を実現するためのプログラムである。二次記憶装置154は、リソース使用量管理サーバ150が所定の機能を実現するために必要なプログラム、及びリソース使用量管理テーブル1200等のデータを格納するハードディスク装置等の不揮発性記憶媒体である。なお、二次記憶装置154は、ハードディスク装置等の磁気的記憶媒体に限定されるものではなく、フラッシュメモリ等の不揮発性の半導体記憶媒体であってもよい。
 なお、リソース使用量管理部1531、リソース使用量監視部1532の各機能については、処理の説明において後述する。
 以上、各装置のハードウェア構成、及び、ソフトウェア構成について説明してきたが、クライアント装置110、並列分散処理実行サーバ120、並列分散処理制御サーバ130、データ転送制御サーバ140、及び、リソース使用量管理サーバ150の構成は、図1A、図1Bに示す構成に限定されるものではない。例えば、並列分散処理制御サーバ130、データ転送制御サーバ140、及び、リソース使用量管理サーバは、クライアント装置110、または、並列分散処理実行サーバ120の何れかのサーバ上で稼動する構成でも構わない。さらに、図1A、図1Bでは、並列分散処理制御サーバ130、データ転送制御サーバ140、及び、リソース使用量管理サーバ150は異なるサーバ上で実行される構成を示したが、これらの全部、または一部が同一のサーバ上で実行されても構わない。ひとつのサーバで、並列分散処理制御サーバ130、データ転送制御サーバ140及びリソース使用量管理サーバ150を実行する場合には、各サーバのプログラムは、並列分散処理制御部、データ転送制御部及びリソース使用量管理部として機能すればよい。また、並列分散処理制御部、データ転送制御部及びリソース使用量管理部のプログラムは、プログラム配布サーバや非一時的計算機読み取り可能な記憶媒体によって同一のサーバにインストールすることができる。
 次に、図1A、図1Bを参照しつつ、図2A~図13に沿って本発明の第1の実施形態を示し、処理の説明を行う。
 <全体処理>
 図2A、図2Bは、本発明の第1の実施形態を示し、並列分散処理に関する全体的な処理の流れを示すフローチャートである。
 まず、クライアント装置110から並列分散処理制御サーバ130へ、処理対象データ(入力データ1241)のデータロードの要求が送信される。データロードの要求を受信した並列分散処理制御サーバ130は、ロード対象データを規定のサイズのデータブロック(入力データ1241)に分割し、複数の並列分散処理実行サーバ120に分散してロードする(S101)。
 次に、クライアント装置110から並列分散処理制御サーバ130へ、並列分散処理実行要求が送信される。並列分散処理実行要求を受信した並列分散処理制御サーバ130の処理割当制御部1331は、各並列分散処理実行サーバ120に、ロードされたデータブロックの処理実行要求を送信し、データ情報管理部1332がデータ情報管理テーブル300の処理対象となるデータブロックの割当状態303を「割当済み」に更新する(S102)。なお、処理割当制御部1331が送信する処理実行要求は、処理対象のデータブロックのデータブロックIDと、各データブロックの処理を実行するタスクのタスクIDとを含む。ここでタスクは、処理対象のデータブロックを入力データ1241として所定の処理を実行するプログラムである。
 続いて、処理実行要求を受信した並列分散処理実行サーバ120のユーザ定義処理実行部1231は、各タスクにおいて処理実行要求で指定されたデータブロックを入力データ1241として所定の処理を実行する(S103)。すなわち、並列分散処理実行サーバ120のユーザ定義処理実行部1231は、処理実行要求で指定されたタスクを起動し、各タスクに対して処理実行要求で指定されたデータブロックを入力データ1241として割り当てて処理を実行させる。
 並列分散処理実行サーバ120は、割り当てられたタスクに入力データ1241として指定されたデータブロックの処理が完了すると、当該並列分散処理実行サーバ120から並列分散処理制御サーバ130へ、処理完了通知として処理の完了したタスクのタスクIDを送信する(S104)。
 そして、処理完了通知を受信した並列分散処理制御サーバ130のデータ情報管理部1332が、データ情報管理テーブル300の該当するデータブロックID302の処理状態304を「処理済み」に更新する(S105)。
 続いて、並列分散処理制御サーバ130の処理割当制御部1331がデータ管理情報テーブル300を参照し、全てのデータブロックの処理状態304が「処理済み」であるか否かを判定する(S106)。
 ステップS106の判定の結果、全てのデータブロックが「処理済み」である場合(S106→Yes)は、並列分散処理制御サーバ130の処理割当制御部1331が、クライアント装置110に並列分散処理完了通知を送信し、計算機システム10は並列分散処理を終了する。
 ステップS106判定の結果、何れかのデータブロックが「処理済み」ではない場合(S106→No)は、並列分散処理制御サーバ130は、ステップS116で図2Bの割り当て処理(S116)を行った後に、ステップS103に戻って上記処理を繰り返す。
 図2Bの割当処理では、並列分散処理制御サーバ130が、データ管理情報テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120に、割当状態403が「未割当」のデータブロックが存在するか否かを判定する(S107)。
 ステップS107の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120に未割当のデータブロックが存在する場合(S107→Yes)は、並列分散処理制御サーバ130の処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120に存在する未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S108)。
 ステップS107の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120に未割当のデータブロックが存在しない場合(S107→No)は、ステップS109に進む。並列分散処理制御サーバ130の処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストをデータ情報管理テーブル300から生成してデータ転送制御サーバ140に送信する(S109)。
 次に、データ転送制御サーバ140の処理遅延サーバ抽出処理部1431が、受信した未割当のデータブロックを持つサーバ名リストに含まれる並列分散処理実行サーバ120の中から、処理遅延サーバを抽出する。
 ここで、処理遅延サーバは、処理の進捗が遅延している並列分散処理実行サーバ120を指す。本実施形態では、後述するように、並列分散処理実行サーバ120が保持するデータブロックの総数と、既にタスクの実行によって処理が完了した処理済みのデータブロック数の比率を処理済みデータ率として求め、処理済みデータ率が閾値1001未満の並列分散処理実行サーバ120を、処理の進捗が遅延している処理遅延サーバとして抽出する。
 データ転送制御サーバ140の処理遅延サーバ抽出処理部1431は、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、抽出したサーバのサーバ名リストと、をリソース使用量管理サーバ150へ送信し、各並列分散処理実行サーバ120の空きI/Oリソース量を要求する(S110)。
 続いて、リソース使用量管理サーバ150のリソース使用量管理部1531が、リソース使用量管理テーブル1200を参照し、処理完了通知を送信した並列分散処理実行サーバ120と、サーバ名リストに含まれる並列分散処理実行サーバ120の空きI/Oリソース量を取得してデータ転送制御サーバ140へ送信する(S111)。なお、空きI/Oリソース量は、ネットワークI/Oの空きI/Oリソース量と、ディスクI/Oの空きI/Oリソース量とを含む。
 ここで、ネットワークI/Oの空きI/Oリソース量は、並列分散処理実行サーバ120のネットワークインターフェース121で利用可能なデータ転送速度(Gbit/sec)を比率で示す。ネットワークインターフェース121で利用可能なデータ転送速度は、ネットワークインターフェース121で転送可能なデータ転送速度の理論値から、現在使用している帯域(転送速度)を差し引いた値を、データ転送速度の理論値で除した比率で表した値である。すなわち、
ネットワークI/Oの空きI/Oリソース量 =(理論値-現在使用帯域)÷ 理論値
である。現在使用している帯域は、所定時間(例えば、1分間)のデータ転送速度の平均値などを用いることができる。また、データ転送速度の理論値に代わって、ネットワークインターフェース121のリンク速度の実効値または理論値に所定の比率を乗じた値を用いてもよい。
 ディスクI/Oの空きI/Oリソース量は、並列分散処理実行サーバ120の二次記憶装置124で利用可能なデータ転送速度(MByte/sec)を比率で示す。二次記憶装置124で利用可能なデータ転送速度は、二次記憶装置124で転送可能なデータ転送速度の理論値から、現在使用している帯域(転送速度)を差し引いた値を、理論値で除した比率である。すなわち、
ディスクI/Oの空きI/Oリソース量 =(理論値-現在使用帯域)÷ 理論値
である。現在使用している帯域は、所定時間(例えば、1分間)のデータ転送速度の平均値などを用いることができる。また、二次記憶装置124のデータ転送速度の実効値または理論値に所定の比率を乗じた値を用いてもよい。
 そして、データ転送制御サーバ140の空きI/Oリソース量比較処理部1432が、処理完了通知を送信した並列分散処理実行サーバ120の空きI/Oリソース量と、各処理遅延サーバの空きI/Oリソース量を比較し、最も空きI/Oリソース量の差が小さい処理遅延サーバを選択し、当該選択した処理遅延サーバの名称を並列分散処理制御サーバ130へ送信する(S112)。
 次に、並列分散処理制御サーバ130の処理割当制御部1331が、データ転送制御サーバ140から受信した処理遅延サーバ名に該当する並列分散処理実行サーバ120に存在する未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S113)。すなわち、処理割当制御部1331は、データ情報管理テーブル300を参照して、データ転送制御サーバ140から受信した処理遅延サーバ名と一致するデータ配置サーバ名302のうち、割当状態303が未割当のデータブロックIDから、ひとつのデータブロックIDを任意に選択する。この選択はデータブロックIDの昇順やラウンドロビンなど周知または公知の手法で選択すればよい。
 そして、並列分散処理制御サーバ130のデータ情報管理部1332が、データ情報管理テーブル300において選択したデータブロックの割当状態303を「割当済み」に更新する。また、処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120に、上記「割当済み」に更新したデータブロックの処理要求を送信し、計算機システム10は処理を図2AのステップS103に戻す(S114)。なお、並列分散処理実行サーバ120に対して送信されるデータブロックの処理要求は、選択したデータブロックのデータブロックIDと、前記データブロックの処理を実行するタスクIDとを含む。
 なお、ステップS107~S114の詳細は後述する。
 <データ情報管理テーブル>
 図3は、本発明の第1の実施形態を示し、データ情報管理テーブル300の一例を示す図である。
 データ情報管理テーブル300は、入力データ1241を規定サイズで分割した複数のデータブロックで構成され、各データブロックを管理するための属性情報として、各データブロックを識別するためのデータブロックID301と、データ配置サーバ名302と、データブロックの処理が既に割り当てられたか否かを示す割当状態303と、データブロックの処理が終了したか否かを示す処理状態304からひとつのエントリが構成される。
 割当状態303の欄には、「割当済み」、「未割当」等の情報が格納され、処理状態304の欄には、「処理済み」、「未処理」等の情報が格納される。データ配置サーバ名302には、並列分散処理実行サーバ120の名称または識別子が格納される。図示の例では、「サーバA」が図1Aの並列分散処理実行サーバ120-1に相当し、「サーバB」が並列分散処理実行サーバ120-1に相当するものとする。
 <S107~S114の詳細(並列分散処理実行サーバへの処理の割り当て)>
 図4A、図4Bは、図2AのS116の割当処理を示し、図2BのステップS107からS114の並列分散処理実行サーバ120への処理の割り当てに関する詳細な手順を示すフローチャートである。なお、図4A、図4Bの処理は、並列分散処理制御サーバ130上の処理割当制御部1331、データ情報管理部1332、タスク管理部1334が行なう処理である。
 まず、並列分散処理実行サーバ120から処理完了通知としてタスクIDを受信した処理割当制御部1331が、タスク管理部1334にタスク管理テーブル600の更新を要求する。また、処理割当制御部1331が、データ情報管理部1332に未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを要求する(S201)。
 次に、タスク管理テーブル600の更新要求を受信したタスク管理部1334が、タスク管理テーブル600で該当するタスクの実行状態603を「待ち」に更新し、処理データブロックID604をNULL値に更新する(S202)。
 続いて、データ情報管理部1332が、データ情報管理テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120の処理済みデータ率を算出して、データ転送制御サーバ140に処理済みデータ率と並列分散処理実行サーバ120の名称を送信する。処理済みデータ率を受信したデータ転送制御サーバ140は、受信したサーバ名の処理状況管理テーブル800の処理済みデータ率802を更新する(S203)。
 なお、処理済みデータ率の算出方法は、データ情報管理部1332が、並列分散処理実行サーバ120に格納されているデータブロック数に対する、データ情報管理テーブル300の処理状態304が「処理済み」のデータブロック数の比率を求めることで行われる。すなわち、処理済みデータ率は、並列分散処理実行サーバ120が格納している全データブロックに対して、現時点までに処理が完了したデータブロックの割合であり、以下の式(1)で算出されるものである。
 処理済みデータ率 = 格納されている「処理済み」のデータブロック数
  ÷ 格納されているデータブロック数 ・・・ (1)
 そして、データ情報管理部1332が、データ情報管理テーブル300を参照し、割当状態303が「未割当」のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを作成し、処理割当制御部1331に送信する(S204)。
 未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを受信した処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120がリストに存在するか否かを判定する(S205)。
 ステップS205の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120がリストに存在する場合(S205→Yes)は、処理割当制御部1331が、データ情報管理テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120に保存されている未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S206)。
 ステップS205の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120がリストに存在しない場合(S205→No)は図4Bの処理に進む。処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120のタスクが次に処理するデータブロックを持つ並列分散処理実行サーバ120のサーバ名をデータ転送制御サーバ140に要求する(S207)。なお、サーバ名の要求は、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストとを含む。
 次に、データ転送制御サーバ140が、処理完了通知を送信した並列分散処理実行サーバが次に処理するデータブロックを格納している並列分散処理実行サーバ120を抽出し、並列分散処理制御サーバ130の処理割当制御部1331に送信する(S208)。このステップS208の処理の詳細については後述する。
 続いて、処理割当制御部1331が、データ転送制御サーバ140から受信したサーバ名に該当する並列分散処理実行サーバ120に格納されている未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S209)。
 そして、処理割当制御部1331は、上記受信したサーバ名に該当する並列分散処理実行サーバ120に、処理完了通知を送信した並列分散処理実行サーバ120へ、選択したデータブロックの転送を実行するよう要求する(S210)。なお、データブロックの転送要求は、選択したデータブロックのデータブロックIDと、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名とを含む。
 そして、処理割当制御部1331は、データ情報管理部1332にデータ情報管理テーブル300の更新を要求し、タスク管理部1334にタスク管理テーブル600の更新を要求する(S211)。なお、データ情報管理テーブル300の更新要求は、選択したデータブロックのデータブロックID301とデータ配置サーバ名302を含み、タスク管理テーブル600の更新要求は、並列分散処理実行サーバ120から処理完了通知として受信したタスクID601と、選択したデータブロックの処理データブロックID604を含む。
 データ情報管理部1332は、受信した更新要求に含まれるデータブロックID301に該当するデータブロックの割当状態303を「割当済み」に更新し、タスク管理部1334は、受信したタスクIDに該当するタスク管理テーブル600のタスクの実行状態603を「実行中」に更新し、受信したデータブロックIDで処理対象データブロックID604を更新する(S212)。
 そして、処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120に、選択したデータブロックの処理実行要求を送信する(S213)。なお、処理実行要求は、選択したデータブロックのデータブロックIDと、処理を割り当てるタスクIDとを含む。
 <処理実行サーバ管理テーブル>
 図5は、本発明の第1の実施形態を示し、処理実行サーバ管理テーブル500の一例を示す図である。
 処理実行サーバ管理テーブル500は、並列分散処理実行サーバ120を管理する属性情報として、各並列分散処理実行サーバ120を識別するためのサーバ名501の情報を有する。
 <タスク管理テーブル>
 図6は、本発明の第1の実施形態を示し、タスク管理部1334が管理するタスク管理テーブル600の一例を示す図である。
 タスク管理テーブル600は、並列分散処理実行サーバ120の各タスクを管理する属性情報として、各タスクを識別する識別子を格納するタスクID601と、タスクが存在する並列分散処理実行サーバ120の名称または識別子を格納するサーバ名602と、タスクが処理を実行中であるか否かを示す実行状態603と、タスクが処理しているデータブロックの識別子を示す処理データブロックID604から一つのエントリを構成する。実行状態603の欄には、「実行中」、「待ち」等の情報が格納される。
 <S208の詳細(データブロックの転送元サーバの決定)>
 図7A、図7Bは、図4BのステップS208の詳細な処理手順を示すフローチャートである。なお、図7A、図7Bの処理は、データ転送制御サーバ140上の処理遅延サーバ抽出処理部1431、空きリソース量比較処理部1432、処理状況管理部1433が行なう処理である。
 上記ステップS208は、データ転送制御サーバ140が、処理完了通知を送信した並列分散処理実行サーバが次に処理するデータブロックを格納している並列分散処理実行サーバ120を抽出し、並列分散処理制御サーバ130の処理割当制御部1331にデータブロックを有するサーバ名を送信する処理である。
 まず、データ転送制御サーバ140の処理遅延サーバ抽出処理部1431が、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名のリストとを、並列分散処理制御サーバ130から受信する(S301)。このサーバ名のリストは、図4BのステップS207で処理割当制御部1331が生成した未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストである。
 次に、処理遅延サーバ抽出処理部1431は、処理状況管理部1433に、未割当のデータブロックをもつ並列分散処理実行サーバ120の処理済みデータ率を要求する(S302)。なお、処理済みデータ率の要求は、データ転送制御サーバ140の処理遅延サーバ抽出処理部1431が図4AのステップS203で受信した、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを含む。
 続いて、サーバ名リストを受信した処理状況管理部1433は、処理状況管理テーブル800を参照し、サーバ名リストに含まれる並列分散処理実行サーバ120の処理済みデータ率を抽出し、処理遅延サーバ抽出処理部1431に処理済みデータ率を送信する(S303)。
 そして、処理遅延サーバ抽出処理部1431は、処理遅延閾値テーブル1000を参照して、処理遅延閾値1001を取得する。処理遅延サーバ抽出処理部1431は、並列分散処理制御サーバ130から受信したサーバ名リストに含まれる並列分散処理実行サーバ120の処理済みデータ率と、処理遅延閾値1001を比較して、処理遅延閾値1001より処理済みデータ率が小さく、処理の進捗が遅い並列分散処理実行サーバ120を抽出する(S304)。なお、処理遅延閾値1001は、並列分散処理処理実行以前に予めユーザや管理者などが設定しておく。
 続いて、処理遅延サーバ抽出処理部1431が、ステップS304で抽出した処理の進捗の遅い並列分散処理実行サーバ120が存在するか否かを判定する(S305)。
 ステップS305の判定の結果、処理の進捗の遅い並列分散処理実行サーバ120が存在する場合(S305→Yes)は、処理遅延サーバ抽出処理部1431が、処理の進捗の遅い並列分散処理実行サーバ120のサーバ数が1台であるか判定する(図7BのS308)。
 ステップS308の判定の結果、処理の進捗の遅い並列分散処理実行サーバ120が1台の場合(S308→Yes)、処理遅延サーバ抽出処理部1431が、並列分散処理制御サーバ130に、処理完了通知を送信した並列分散処理実行サーバ120が次に処理するデータブロックの転送元サーバとして、処理の進捗の遅い並列分散処理実行サーバのサーバ名を送信する(S315)。
 ステップS308の判定の結果、処理の進捗の遅い並列分散処理実行サーバ120が複数ある場合(S308→No)、処理遅延サーバ抽出処理部1431が、処理状況管理部1433に、処理の進捗の遅い並列分散処理実行サーバ120の実行多重度を要求する(S309)。並列分散処理実行サーバ120の実行多重度は、同時に実行するタスクの数を示す。そして、ステップS309では、実行多重度を各並列分散処理実行サーバ120の単位時間当たりの処理性能として扱う。なお、実行多重度の要求は、処理の進捗の遅い並列分散処理実行サーバ120のサーバ名リストを含む。また、単位時間当たりの処理性能を示す値として、CPUの処理能力やメモリの容量等のハードウェアスペックを示す値を利用しても構わない。
 続いて、処理の進捗の遅いサーバの実行多重度を受信した処理状況管理部1433が、処理状況管理テーブル800を参照し、サーバ名リストに含まれる各並列分散処理実行サーバ120の実行多重度803を取得して、処理遅延サーバ抽出処理部1431に送信する(S311)。
 そして、処理遅延サーバ抽出処理部1431は、処理の進捗の遅い並列分散処理実行サーバ120の中で、実行多重度の最も少ない並列分散処理実行サーバ120を、処理遅延サーバとして抽出する(S311)。
 なお、単位時間当たりの処理性能として、CPUの処理能力やメモリ容量等のハードウェアスペックを利用した場合、処理遅延サーバ抽出処理部1431は、処理の進捗の遅い並列分散処理実行サーバ120の中で、ハードウェアスペックの最も低い並列分散処理実行サーバ120を処理遅延サーバとして抽出する。
 図9は、処理状況管理テーブルの変形例を示し、図8に示した処理状況管理テーブル800の実行多重度803に代わって、ハードウェアスペック903~905を用いるようにしたものである。
 図9の処理状況管理テーブル800'は、図8に示した処理状況管理テーブル800の実行多重度803に代わって、並列分散処理実行サーバ120のCPU122の種別を格納するCPU種別903と、CPU122のコア数904と、主記憶装置123の種別を格納するメモリ種別905からひとつのエントリを構成する。
 処理状況管理テーブル800'において、CPU種別903=「CPU1」は高スペック(高性能)のCPU122であることを示し、「CPU2」は低スペックのCPUを示し、メモリ種別の「メモリ1」は高スペック(高性能)のメモリ、「メモリ2」は低スペックのメモリを示しており、ハードウェアスペックの最も低い並列分散処理実行サーバ120は、1コアの「CPU2」と、低スペックの「メモリ2」と、を備えるサーバDである。なおCPU種別903に代わって、CPU122の動作クロック数とコア数及びキャッシュの容量でCPUの処理能力を表すようにしてもよい。
 続いて、処理遅延サーバ抽出処理部1431は、ステップS311で抽出した処理遅延サーバ数が1台であるか否かを判定する(S312)。
 ステップS312の判定の結果、処理遅延サーバ数が1台の場合(S312→Yes)、ステップS315の処理に進み、処理遅延サーバのサーバ名を並列分散処理制御サーバ130に送信する(S315)。
 ステップS312の判定の結果、処理遅延サーバ数が複数である場合(S312→No)、処理遅延サーバ抽出処理部1431が、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、処理遅延サーバのサーバ名リストを空きI/Oリソース量比較処理部1432に送信する(S313)。
 続いて、空きI/Oリソース量比較処理部1432が、リソース使用量管理サーバ150に、処理完了通知を送信した並列分散処理実行サーバ120と、処理遅延サーバの空きI/Oリソース量を要求する(S314)。なお、空きI/Oリソース量の要求は、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、処理遅延サーバのサーバ名リストを含む。
 ステップS305の結果、処理の進捗の遅い並列分散処理実行サーバ120が存在しない場合(S305→No)、処理遅延サーバ抽出処理部1431が、空きI/Oリソース量比較処理部1432に、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを送信する(S306)。
 そして、空きI/Oリソース量比較処理部1432が、リソース使用量管理サーバ150に処理完了通知を送信した並列分散処理実行サーバ120と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを送信し、各並列分散処理実行サーバ120の空きI/Oリソース量を要求する(S307)。なお、空きI/Oリソース量の要求は、処理完了通知を送信した並列分散処理実行サーバのサーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リストを含む。
 次に、リソース使用量管理サーバ150が、データ転送制御サーバ140から受信した処理完了通知を送信した並列分散処理実行サーバ120と、サーバ名リストに含まれる並列分散処理実行サーバ120の空きI/Oリソース量を、空きI/Oリソース量比較処理部1432に送信する(図7AのS316)。なお、空きI/Oリソース量は、ネットワークI/Oの空きリソース量と、ディスクI/Oの空きリソース量とを含む。ステップS316の処理の詳細については後述する。
 そして、空きI/Oリソース量比較処理部1432が、処理完了通知を送信した並列分散処理実行サーバ120の空きI/Oリソース量と、各並列分散処理実行サーバ120の空きI/Oリソース量を比較し、最も空きI/Oリソース量の差が小さい並列分散処理実行サーバ120を、処理完了通知を送信した並列分散処理実行サーバ120が次に処理するデータブロックの転送元サーバとして抽出する。空きI/Oリソース量比較処理部1432は、抽出した並列分散処理実行サーバ120のサーバ名を並列分散処理制御サーバ130へ送信する(S317)。
 なお、空きI/Oリソース量の比較方法は、空きI/Oリソース量比較処理部1432が、ディスクI/Oの空きリソース量の差の絶対値と、ネットワークI/Oの空きリソース量の差の絶対値を求め、各空きI/Oリソース量の差の絶対値が大きい方の値を求めることで行なわれる。すなわち、空きI/Oリソース量の差は以下の式(2)で算出されるものである。
 空きI/Oリソース量の差 = max{|ディスクI/Oの空きリソース量の差|、|ネットワークI/Oの空きリソース量の差|} ・・・ (2)
 なお、処理完了通知を送信した並列分散処理実行サーバ120が次に処理するデータブロックの転送元サーバ抽出のバリエーションとして、処理完了通知を送信した並列分散処理実行サーバの空きI/Oリソース量を、可能な限りデータブロックの転送に利用するために、ディスクI/OとネットワークI/Oの空きリソース量が、処理完了通知を送信した並列分散処理実行サーバ120より多い空きI/Oリソース量を持つ並列分散処理実行サーバ120の中から、最も空きI/Oリソース量の差が小さい並列分散処理実行サーバを抽出してもよい。
 <処理状況管理テーブル>
 図8は、本発明の第1の実施形態を示し、処理状況管理テーブル800の一例を示す図である。図9は、処理状況管理テーブルの変形例を示し、図8に示した処理状況管理テーブル800の実行多重度803に代わって、ハードウェアスペック903~905を用いるようにしたものである。
 ここで、図8は並列分散処理実行サーバ120の単位時間当たりの処理性能として、実行多重度を利用した場合を示し、図9は並列分散処理実行サーバの単位時間当たりの処理性能として、CPUやメモリ等のハードウェアスペックを利用した場合を示している。
処理状況管理テーブル800は、各並列分散処理実行サーバ120の処理の進捗状況を管理する属性情報として、各並列分散処理実行サーバ120を識別するためのサーバ名801、各並列分散処理実行サーバに格納されているデータブロックに対する、処理済みのデータブロックの割合を示す処理済みデータ率802、各並列分散処理実行サーバ120の単位時間当たりの処理性能を示す実行多重度803の各情報を有する。
 図9の処理状況管理テーブル800'は、前記処理状況管理テーブル800から、実行多重度803が削除され、各並列分散処理実行サーバ120の単位時間当たりの処理性能としてCPUのスペック名称を示すCPU種別903、CPUコア数904、メモリのスペック名称を示すメモリ種別904の各情報が追加されている。
 <処理遅延閾値管理テーブル>
 図10は、本発明の第1の実施形態を示し、処理遅延閾値管理テーブルの一例を示す図である。
 処理遅延閾値管理テーブル1000は、各並列分散処理実行サーバ120の処理の進捗が遅延しているか判定するための基準を管理する属性情報として、並列分散処理実行サーバ120の処理済みデータ率が小さく、処理が遅れているか否かを判定するための閾値の情報を有する。
 <S316の詳細(空きI/Oリソース量の取得)>
 図11は、図7AのステップS316の詳細な処理手順を示すフローチャートである。なお、図11の処理は、リソース使用量管理サーバ150上のリソース使用量管理部1531が行なう処理である。
 まず、リソース使用量管理部1531が、処理完了通知を送信した並列分散処理実行サーバ120のサーバ名と、サーバ名リストを、データ転送制御サーバ140から受信する(S401)。
 続いて、リソース使用量管理部1531が、リソース使用量管理テーブル1200を参照し、各並列分散処理実行サーバ120のネットワークI/Oの空きI/Oリソース量と、ディスクI/Oの空きI/Oリソース量を算出し、データ転送制御サーバ140へ送信する(S316)。
 <リソース使用量管理テーブル>
 図12は、本発明の第1の実施形態を示し、リソース使用量管理テーブル1200の一例を示す図である。
 リソース使用量管理テーブル1200は、各並列分散処理実行サーバ120のI/Oリソース使用量を管理する属性情報として、各並列分散処理実行サーバ120を識別するためのサーバ名1201、ネットワークI/O使用量1202、ディスクI/O使用量1203の各情報を有する。
 なお、リソース使用量管理テーブル1200では、ネットワークI/O使用量、ディスクI/O使用量を各並列分散処理実行サーバ全体のI/O帯域幅に対する使用している帯域幅の割合で示したが、使用しているI/O帯域幅をそのまま利用しても構わない。
 <データブロックの転送元となる並列分散処理実行サーバ選択の概念図>
 次に、図13を参照して、本発明の第1の実施形態を示し、データブロックの転送元となる並列分散処理実行サーバ120を選択する処理の概念を説明する。
 図13は、並列分散処理実行サーバが4台の並列分散処理実行サーバ120-1~120-4が稼動する環境下で、並列分散処理実行サーバAからタスクA3の処理完了通知を並列分散処理制御サーバ130が受信した際の、データブロックの転送元サーバ選択の例を示すものである。なお、並列分散処理実行サーバ120-1は並列分散処理実行サーバAで示し、並列分散処理実行サーバ120-2~120-4を並列分散処理実行サーバB~Dで示す。
 図13において、データ情報管理テーブル300から、未処理のデータブロックがまだ存在し、処理完了通知を送信した並列分散処理実行サーバAに格納されているデータブロック1~10は全て割当済みであることを示している。
 処理割当制御部1331は、データ情報管理部1332から未割当のデータブロックを持つ並列分散処理実行サーバ120のサーバ名リスト「サーバB、サーバC、サーバD」を取得し、処理完了通知を送信した並列分散処理実行サーバAに未割当のデータブロックが存在しないことを確認する。続いて、処理割当制御部1331は、データ転送制御サーバ140に処理完了通知を送信した並列分散処理実行サーバ120のサーバ名「サーバA」と、未割当のデータブロック20、30、40を持つ並列分散処理実行サーバ120のサーバ名リスト「サーバB、サーバC、サーバD」を送信する。
 次に、データ転送制御サーバ140の処理遅延サーバ抽出処理部1431が、受信したサーバ名リストに含まれる並列分散処理実行サーバB、C、Dの処理済みデータ率を、処理状況管理部1433から取得する。そして、処理遅延閾値管理テーブル1000に格納されている閾値と、各並列分散処理実行サーバB、C、Dの処理済みデータ率をそれぞれ比較する。比較の結果、処理の進捗の遅い並列分散処理実行サーバ120として、閾値50%よりも処理済みデータ率が小さい並列分散処理実行サーバC、Dが抽出され、抽出した並列分散処理実行サーバ120のサーバ名リスト「サーバC、サーバD」を処理状況管理部1433に送信し、各並列分散処理実行サーバ120の実行多重度を得る。
 そして、各並列分散処理実行サーバ120の実行多重度を比較し、並列分散処理実行サーバC、Dともに実行多重度は1であるため、並列分散処理実行サーバC、Dを処理遅延サーバとして抽出し、処理完了通知を送信した並列分散処理実行サーバAのサーバ名と共に、空きI/Oリソース量比較処理部1432に送信する。
 続いて、空きI/Oリソース量比較処理部1432は、処理完了通知を送信した並列分散処理実行サーバAと、処理遅延サーバB、Cの空きI/Oリソース量をリソース使用量管理サーバ150から取得する。そして、処理完了通知を送信した並列分散処理実行サーバAと、各処理遅延サーバC、Dの空きI/Oリソース量を比較する。比較の結果、並列分散処理実行サーバAと並列分散処理実行サーバCの空きI/Oリソース量の差は30%、並列分散処理実行サーバAと並列分散処理実行サーバDの空きI/Oリソース量の差は5%となり、空きI/Oリソース量比較処理部1432は、空きI/Oリソース量の差の小さい並列分散処理実行サーバDをデータブロックの転送元サーバとして選択する。続いて、空きI/Oリソース量比較処理部1423は、並列分散処理制御サーバ130に、選択した並列分散処理実行サーバ120のサーバ名「サーバD」を送信する。
 サーバ名「サーバD」を受信した並列分散処理制御サーバ130の処理割当制御部1331は、並列分散処理実行サーバDに格納されている未割当のデータブロックの中から「データ40」を選択し、並列分散処理実行サーバDに対して、「データ40」の並列分散処理実行サーバAへの転送を要求する。そして、処理割当制御部1331は、並列分散処理実行サーバAに対して、転送したデータブロック「データ40」のタスクA3での処理実行要求を送信する。
 <まとめ>
 以上のように第1の実施形態によれば、並列分散処理の実行中に利用可能なコンピュータリソースが変化し、並列分散処理の実行多重度が変化する並列分散処理システムであっても、ある並列分散処理実行サーバに他の並列分散処理実行サーバ上に格納されたデータブロックの処理を割り当てる際に、各並列分散処理実行サーバの処理の進捗状況と、単位時間当たりのデータ処理能力から、処理の進捗の遅いサーバを抽出し、抽出した並列分散処理実行サーバと、データブロックの処理を割り当てる並列分散処理実行サーバの空きI/Oリソース量を比較し、最も差の小さい並列分散処理実行サーバをデータブロックの転送元サーバとして選択することで、データ転送回数を削減し、データ転送時間を短縮して、並列分散処理全体を効率的に実行することができる。
 なお、上記第1実施形態では、上記図7BのステップS311の処理で、最も性能の低い並列分散処理実行サーバ120を選択する例として、実行多重度を用いたが、上述のようにハードウェアスペックの値を用いて、最もハードウェアスペックの低い並列分散処理実行サーバ120を最も処理性能の低い計算機として選択することができる。
 また、単位時間当たりの処理性能として、CPUの処理能力やメモリ容量等のハードウェアスペックを利用した場合、処理遅延サーバ抽出処理部1431は、処理の進捗の遅い並列分散処理実行サーバ120の中で、ハードウェアスペックの最も低い並列分散処理実行サーバ120を処理遅延サーバとして抽出するようにしてもよい。
 また、処理遅延サーバの判定は、上述の処理済みデータ率と閾値1001に限定されるものではなく、処理(タスク)の実行開始から所定時間を経過しても処理完了通知を送信していない並列分散処理実行サーバ120を処理遅延サーバとしてもよい。処理遅延サーバの判定は、この他、所定時間経過後のデータブロックの未処理の比率と閾値を比較するようにしても良い。
 また、空きI/Oリソース量を実使用量と理論値の比率で表す例を示したが、ネットワークインターフェース121や二次記憶装置124の実効値や、理論値に所定比率を乗じた値を用いることができる。すなわち、
ネットワークI/Oの空きI/Oリソース量 = (実効値-現在使用帯域)÷ 実効値
である。また、二次記憶装置124で利用可能なデータ転送速度(MByte/sec)も、
ディスクI/Oの空きI/Oリソース量 = (実効値-現在使用帯域)÷ 実効値
とすることができる。なお、実効値に代わって、理論値に所定の比率を乗じた値を用いてもよい。
 <第2実施形態>
 次に、図14A~図18を参照して、本発明の第2の実施形態について説明する。
 前述の第1の実施形態では、各並列分散処理実行サーバ120は1台の物理サーバとして稼動し、ある並列分散処理実行サーバ120に、他の並列分散処理実行サーバ120に格納されたデータブロックの処理を割り当てる際に、各並列分散処理実行サーバ120の処理の進捗率と、空きリソース量を基に、データブロックの転送元サーバを選択していた。しかし、物理サーバ上で複数の並列分散処理実行サーバ120が仮想サーバとして実行される場合、同一物理サーバ上で稼動する並列分散処理実行サーバ120間のデータ転送は、ネットワーク100を経由したデータの転送を必要とせず、物理サーバの内部での通信となるため、異なる物理サーバ上で稼動する並列分散処理実行サーバ120間のデータ転送よりも、データブロックの転送時間が短くなる可能性がある。
 そこで、第2の実施形態では、物理サーバ上に複数の並列分散処理実行サーバ120が仮想サーバとして稼動する環境下において、ある並列分散処理実行サーバ120に、他の並列分散処理実行サーバ120に格納されたデータブロックの処理を割り当てる際に、同一物理サーバ上で稼動する並列分散処理実行サーバ120からデータブロックの転送元サーバを選択することを優先した上で、各並列分散処理実行サーバ120の処理の進捗率と、空きリソース量を基に、データブロックの転送元サーバとして選択するものである。
 <システム構成>
 図14A、図14Bは、本発明の第2の実施形態を示し、計算機システム20の一例を示すブロック図である。
 図14A、図14Bに示す計算機システム20には、並列分散処理実行サーバ120は、並列分散処理を実行する仮想サーバとして物理サーバ210-1で実行される。物理サーバ210-1~210-nの総称は物理サーバ210とする。
 物理サーバ210は、物理リソース220上で実行される仮想化部230が複数の仮想サーバを提供し、各仮想サーバは並列分散処理実行サーバ120として実行される。仮想化部230は、物理リソース220を複数の並列分散処理実行サーバ120に割り当てるハイパーバイザやVMM(Virtual Machine Monitor)で構成される。物理リソース220は、CPU122、主記憶装置123、ネットワークインターフェース121、二次記憶装置124から構成される。
 仮想化部230は、各並列分散処理実行サーバ120に対して、仮想(または論理)CPU122v、仮想主記憶装置123v、仮想ネットワークインターフェース121v、仮想化された二次記憶装置124vを提供する。
 各並列分散処理実行サーバ120の機能要素は前記第1実施形態と同様である。また、並列分散処理制御サーバ130、データ転送制御サーバ140及びリソース使用量管理サーバ150も前記第1実施形態同様に構成される。ただし、処理実行サーバ管理テーブル1700と、処理状況管理テーブル1800は、前記第1実施形態の構成に、物理サーバ210と仮想サーバの対応関係が加えられた点が、前記第1実施形態との相違点である。
 <全体処理>
 図15A、図15Bは、本発明の第2の実施形態を示し、並列分散処理実行方法に関する全体処理の手順を示すフローチャートである。なお、図15A、図15Bは、第1実施形態の図2A、図2Bに対応する処理である。
 まず、クライアント装置110から並列分散処理制御サーバ130へ、処理対象データ(入力データ1241)のデータロードの要求が送信される。データロードの要求を受信した並列分散処理制御サーバ130は、ロード対象データを規定のサイズのデータブロック(入力データ1241)に分割し、複数の並列分散処理実行サーバ120に分散してロードする(S501)。
 次に、クライアント装置110から並列分散処理制御サーバ130へ、並列分散処理実行要求が送信される。並列分散処理実行要求を受信した並列分散処理制御サーバ130の処理割当制御部1331は、各並列分散処理実行サーバ120に、ロードされたデータブロックの処理実行要求を送信し、データ情報管理部1332がデータ情報管理テーブル300の処理対象となるデータブロックの割当状態303を「割当済み」に更新する(S502)。なお、処理割当制御部1331が送信するデータブロックの処理実行要求は、処理対象のデータブロックのデータブロックIDと、各データブロックの処理を実行するタスクのタスクIDとを含む。なお、ここでタスクは、処理対象のデータブロックを入力データ1241として所定の処理を実行するプログラムである。
 続いて、処理実行要求を受信した並列分散処理実行サーバ120のユーザ定義処理実行部1231は、各タスクにおいて処理実行要求で指定されたデータブロックを入力データ1241として所定の処理を実行する(S503)。すなわち、並列分散処理実行サーバ120のユーザ定義処理実行部1231は、処理実行要求で指定されたタスクを起動し、各タスクに対して処理実行要求で指定されたデータブロックを入力データ1241として割り当てて処理を実行させる。
 並列分散処理実行サーバ120は、割り当てられたタスクに入力データ1241として指定されたデータブロックの処理が完了すると、並列分散処理実行サーバ120から並列分散処理制御サーバ130へ、処理完了通知として処理の完了したタスクのタスクIDを送信する(S504)。
 そして、処理完了通知を受信した並列分散処理制御サーバ130のデータ情報管理部1332が、データ情報管理テーブル300の該当するデータブロックID301の処理状態304を「処理済み」に更新する(S505)。
 続いて、並列分散処理制御サーバ130の処理割当制御部1331がデータ情報管理テーブル300を参照し、全てのデータブロックの処理状態304が「処理済み」であるか否かを判定する(S506)。
 ステップS506の判定の結果、全てのデータブロックが「処理済み」である場合(S506→Yes)、並列分散処理制御サーバ130の処理割当制御部1331が、クライアント装置110に並列分散処理完了通知を送信し、計算機システム10は処理を終了する。
 ステップS506の判定の結果、何れかのデータブロックが「処理済み」でない場合(S506→No)、並列分散処理制御サーバ130は、データ管理情報テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120に、割当状態403が「未割当」のデータブロックが存在するか否かを判定する(S507)。
 ステップS507の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120に未割当のデータブロックが存在する場合(S507→Yes)、並列分散処理制御サーバ130の処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120に存在する未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S508)。
 ステップS507の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120に未割当のデータブロックが存在しない場合(S507→No)は、図15Bに進む。図15Bでは、並列分散処理制御サーバ130がデータ情報管理テーブル300を参照して、処理完了通知を送信した並列分散処理実行サーバ120が稼動する物理サーバ210上の他の並列分散処理実行サーバ120に、割当状態303が「未割当」のデータブロックが存在するか否かを判定する(S509)。つまり、同一の物理サーバ210上で未割当のデータブロックを有する仮想サーバを抽出する。
 ステップS509の判定の結果、未割当のデータブロックが存在する場合(S509→Yes)、並列分散処理制御サーバ130は、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名と、前記並列分散処理実行サーバ120と同一の物理サーバ上で稼動し、未割当のデータブロックを格納している並列分散処理実行サーバ120の仮想サーバ名リストをデータ転送制御サーバ140に送信する(S510)。
 ステップS509の判定の結果、同一の物理サーバ210上で未割当のデータブロックが存在しない場合(S509→No)、並列分散処理制御サーバ130の処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストをデータ転送制御サーバ140に送信する(S511)。
 次に、データ転送制御サーバ140の処理遅延サーバ抽出処理部1431が、並列分散処理制御サーバ130から受信した未割当のデータブロックを持つ仮想サーバ名リストに含まれる並列分散処理実行サーバ120の中から、処理遅延サーバを抽出し、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名と、抽出したサーバの仮想サーバ名リストと、をリソース使用量管理サーバ150へ送信し、各並列分散処理実行サーバ120の空きI/Oリソース量を要求する(S512)。
 続いて、リソース使用量管理サーバ150のリソース使用量管理部1531が、リソース使用量管理テーブル1200を参照し、処理完了通知を送信した並列分散処理実行サーバ120と、仮想サーバ名リストに含まれる並列分散処理実行サーバ120の空きI/Oリソース量を転送制御サーバ140へ送信する(S513)。なお、空きI/Oリソース量は、前記第1実施形態と同様であり、ネットワークI/Oの空きI/Oリソース量と、ディスクI/Oの空きI/Oリソース量とを含む。
 そして、データ転送制御サーバ140の空きI/Oリソース量比較処理部1432が、処理完了通知を送信した並列分散処理実行サーバ120と、各処理遅延サーバの空きI/Oリソース量を比較し、最も空きI/Oリソース量の差が小さい処理遅延サーバを抽出し、抽出した前記処理遅延サーバの仮想サーバ名を並列分散処理制御サーバ130へ送信する(S514)。
 次に、並列分散処理制御サーバ130の処理割当制御部1331が、データ転送制御サーバ140から受信した仮想サーバ名に該当する並列分散処理実行サーバ120に存在する未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S515)。
 そして、並列分散処理制御サーバ130のデータ情報管理部1332が、データ情報管理テーブル300において選択したデータブロックの割当状態303を「割当済み」に更新する。また、処理割当制御部1331が、処理完了通知を送信した並列分散処理実行サーバ120に、選択したデータブロックの処理要求を送信し、計算機システム20は処理をステップS503に戻す(S516)。なお、データブロックの処理要求は、選択したデータブロックのデータブロックIDと、前記データブロックの処理を実行するタスクIDとを含む。
 なお、ステップS507~S516の詳細については後述する。
 <S507~S516の詳細(並列分散処理実行サーバへの処理の割り当て)>
 図16A、図16Bは、図15A、図15Bに示したステップS507からステップS516の並列分散処理実行サーバ120への処理の割り当てに関する詳細な手順を示すフローチャートである。なお、図16A、図16Bの処理は、並列分散処理制御サーバ130上の処理割当制御部1331、データ情報管理部1332、タスク管理部1334が行なう処理であり、第1実施形態の図4A、図4Bに対応する処理である。
 まず、並列分散処理実行サーバ120から処理完了通知としてタスクIDを受信した、処理割当制御部1331が、タスク管理部1334にタスク管理テーブル600の更新を要求する。また、処理割当制御部1331がデータ情報管理部1332に未割当のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストを要求する(S601)。
 次に、タスク管理テーブル600の更新要求を受信したタスク管理部1334が、タスク管理テーブル600で該当するタスクの実行状態603を「待ち」に更新し、処理データブロックID604をNULL値更新する(S602)。
 続いて、データ情報管理部1332が、データ情報管理テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120の処理済みデータ率を算出して、データ転送制御サーバ140に処理済みデータ率と並列分散処理実行サーバ120の名称を送信する。処理済みデータ率を受信した転送制御サーバ140は、受信した仮想サーバ名について処理状況管理テーブル1800から処理済みデータ率1803を更新する(S603)。なお、処理済みデータ率の算出方法は、前記第1実施形態と同様であり、データ情報管理部1332が、並列分散処理実行サーバ120に格納されているデータブロック数に対する、データ情報管理テーブル300の処理状態304が「処理済み」のデータブロック数の比率を求めることで行われる。すなわち、処理済みデータ率は、並列分散処理実行サーバ120が格納している全データブロックに対して、現時点までに処理が完了したデータブロックの割合であり、前記第1実施形態に示した式(1)で算出されるものである。
 そして、データ情報管理部1332が、データ情報管理テーブル300を参照し、割当状態303が「未割当」のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストを作成し、処理割当制御部1331に送信する(S604)。
 未割当のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストを受信した処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120が仮想サーバ名リストに含まれるか否かを判定する(S605)。
 ステップS605の判定の結果、処理完了通知を送信した並列分散処理実行サーバ120がリストに存在する場合(S605→Yes)、処理割当制御部1331が、データ情報管理テーブル300を参照し、処理完了通知を送信した並列分散処理実行サーバ120に保存されている未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S606)。
 ステップS605の結果、処理完了通知を送信した並列分散処理実行サーバ120がリストに存在しない場合(S605→No)は、図16Bの処理へ進む。図16Bにおいて、処理割当制御部1331は、処理実行サーバ管理部1333に処理完了通知を送信した並列分散処理実行サーバ120と同一物理サーバ上で稼動する並列分散処理実行サーバ120の仮想サーバ名リストを要求する(S607)。なお、仮想サーバ名リストの要求は、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名を含む。
 続いて、処理実行サーバ管理部1333は、受信した仮想サーバ名に該当する並列分散処理実行サーバ120と同一の物理サーバ上の他の並列分散処理実行サーバ120の仮想サーバ名リストを処理割当制御部1331に送信する(S608)。
 そして、処理割当制御部1331が受信した仮想サーバ名リスト内に、処理完了通知を送信した並列分散処理実行サーバ120が稼動する物理サーバ210上の他の並列分散処理実行サーバ120が存在するか否かを判定する(S609)。
 ステップS609の判定の結果、他の並列分散処理実行サーバ120が存在する場合(S609→Yes)、処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名と、同一物理サーバ上で稼動し、未割当のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストをデータ転送制御サーバ140に送信する。次に処理するデータブロックを保持する並列分散処理実行サーバ120を要求する(S611)。
 ステップS609の結果、他の並列分散処理実行サーバ120が存在しない場合(S609→No)、処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120のタスクが次に処理するデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名を要求する(S610)。なお、仮想サーバ名の要求は、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名と、未割当のデータブロックを持つ並列分散処理実行サーバ120の仮想サーバ名リストとを含む。
 データ転送制御サーバ140が、処理完了通知を送信した並列分散処理実行サーバが次に処理するデータブロックを格納している並列分散処理実行サーバ120を抽出し、並列分散処理制御サーバ130に送信する(S612)。なお、ステップS612の処理は前記第1実施形態の図7A、図7Bの処理に対応する処理である。
 続いて、処理割当制御部1331が、受信した仮想サーバ名に該当する並列分散処理実行サーバ120に格納されている未割当のデータブロックの中から、任意に一つのデータブロックを選択する(S613)。
 そして、処理割当制御部1331は、データ転送制御サーバ140から受信した仮想サーバ名に該当する並列分散処理実行サーバ120に対して、処理完了通知を送信した並列分散処理実行サーバ120へ、上記ステップS613で選択したデータブロックを転送するよう要求する(S614)。なお、データブロックの転送要求は、選択したデータブロックのデータブロックIDと、処理完了通知を送信した並列分散処理実行サーバ120の仮想サーバ名とを含む。
 そして、処理割当制御部1331は、図16Aの処理に戻って、データ情報管理部1332にデータ情報管理テーブル300の更新を要求し、タスク管理部1334にタスク管理テーブル600の更新を要求する(S615)。なお、データ情報管理テーブル300の更新要求は、選択したデータブロックのデータブロックID301を含み、タスク管理テーブル600の更新要求は、並列分散処理実行サーバ120から処理完了通知として受信したタスクIDと、選択したデータブロックのデータブロックID601を含む。
 データ情報管理部1332は、受信した更新要求に含まれるデータブロックIDに該当するデータブロックに対応するデータ情報管理テーブル300の割当状態303を「割当済み」に更新する。タスク管理部1334は、受信したタスクIDに該当するタスク管理テーブル600のタスクの実行状態603を「実行中」に更新し、受信したデータブロックIDで処理対象データブロックID604を更新する(S616)。
 そして、処理割当制御部1331は、処理完了通知を送信した並列分散処理実行サーバ120に、選択したデータブロックの処理実行要求を送信する(S617)。なお、処理実行要求は、選択したデータブロックのデータブロックIDと、処理を割り当てるタスクIDとを含む。
 <処理実行サーバ管理テーブル>
 図17は、本発明の第2の実施形態を示し、処理実行サーバ管理テーブル1700の一例を示す図である。なお、図17は、第1実施形態の図5に示した処理実行サーバ管理テーブル500に対応するテーブルである。
 処理実行サーバ管理テーブル1700は、物理サーバ210と並列分散処理実行サーバ120を管理する属性情報として、各物理サーバ210を識別するための物理サーバ名1701と、仮想サーバで構成された各並列分散処理実行サーバ120を識別するための仮想サーバ名1702からひとつのエントリが構成される。
 <処理状況管理テーブル>
 図18は、本発明の第2の実施形態を示し、処理状況管理テーブル1800の他の例を示す図である。なお、図18は、第1実施形態の図8に示した処理状況管理テーブル800に対応するテーブルである。
 処理状況管理テーブル1800は、各並列分散処理実行サーバ120の処理の進捗状況を管理する属性情報として、各物理サーバ210を識別するための物理サーバ名1801、各並列分散処理実行サーバ120を識別するための仮想サーバ名1802、各並列分散処理実行サーバに格納されているデータブロックに対する処理済みのデータブロックの割合を示す処理済みデータ率1803、各並列分散処理実行サーバの単位時間当たりの処理性能を示す実行多重度1804からひとつのエントリが構成される。
 なお、処理状況管理テーブル1800には、CPUやメモリ等のハードウェアスペックの属性情報が示されていないが、これらのハードウェアスペックを含むようにしても良い。
 <まとめ>
 以上のように、第2の実施形態によれば、複数の並列分散処理実行サーバ120が仮想サーバとして物理サーバ210上で稼動する環境下において、処理実行中に利用可能なコンピュータリソースが変化し、並列分散処理の実行多重度が変化する並列分散処理システムであっても、ある並列分散処理実行サーバ120に他の並列分散処理実行サーバ120上に格納されたデータブロック40の処理を割り当てる際に、同一の物理サーバ210上で稼動する並列分散処理実行サーバ120から優先して、各並列分散処理実行サーバ120の処理の進捗状況と、単位時間当たりのデータ処理能力と、空きI/Oリソース量と、を基にデータブロックの転送元サーバとして選択することで、並列分散処理全体を効率的に実行することが出来る。
 本発明は、並列分散処理システムに適用することができ、特に、物理リソースの割り当てが変動する並列分散処理実行サーバを含む並列分散処理システムに好適である。

Claims (13)

  1.  プロセッサと記憶装置とを備えて処理対象のデータとして予め分割されたデータブロックを前記記憶装置に格納し、前記プロセッサが前記データブロックを処理するタスクを並列して実行する複数の並列分散処理実行サーバと、前記複数の並列分散処理実行サーバを制御する管理計算機と、を備えた並列分散処理システムで、前記管理計算機が、第1の並列分散処理実行サーバのタスクに割り当てるデータブロックの送信元となる第2の並列分散処理実行サーバを選択する並列分散処理システムのデータ転送制御方法であって、
     前記管理計算機が、前記第1の並列分散処理実行サーバから前記タスクが完了したことを示す完了通知を受信する第1のステップと、
     前記管理計算機が、前記複数の並列分散処理実行サーバのリソース使用量をそれぞれ収集する第2のステップと、
     前記管理計算機が、前記複数の並列分散処理実行サーバが保持するデータブロックとタスクの状態を取得する第3のステップと、
     前記管理計算機が、前記複数の並列分散処理実行サーバがそれぞれ保持するデータブロックの処理の進行状況と前記複数の並列分散処理実行サーバのリソース使用量に基づいて、前記第1の並列分散処理実行サーバへデータブロックを転送する第2の並列分散処理実行サーバを選択する第4のステップと、
     前記管理計算機が、前記選択した第2の並列分散処理実行サーバに対して前記データブロックを前記第1の並列分散処理実行サーバへ転送する指令を送信する第5のステップと、
     前記管理計算機が、前記第1の並列分散処理実行サーバに対して前記転送されたデータブロックを処理するタスクを実行する指令を送信する第6のステップと、
    を含むことを特徴とする並列分散処理システムのデータ転送制御方法。
  2.  請求項1に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第4のステップは、
     前記複数の並列分散処理実行サーバが保持するデータブロックのうち、タスクによる処理が完了した処理済みのデータブロックの比率を処理済みデータ率として演算する第7のステップと、
     前記処理済みデータ率が、予め設定した閾値未満の並列分散処理実行サーバを処理遅延サーバとして抽出する第8のステップと、
     前記抽出された処理遅延サーバから前記第2の並列分散処理実行サーバを選択する第9のステップと、
    を含むことを特徴とする並列分散処理システムのデータ転送制御方法。
  3.  請求項2に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第9のステップは、
     前記並列分散処理実行サーバの単位時間当たりの処理能力として前記タスクの実行多重度を取得し、前記実行多重度が最も少ない処理遅延サーバを前記第2の並列分散処理実行サーバとして選択することを特徴とする並列分散処理システムのデータ転送制御方法。
  4.  請求項2に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第9のステップは、
     前記並列分散処理実行サーバの単位時間当たりの処理能力として前記並列分散処理実行サーバのハードウェアスペックを示す値を取得し、前記ハードウェアスペックを示す値が最も低い処理遅延サーバを前記第2の並列分散処理実行サーバとして選択することを特徴とする並列分散処理システムのデータ転送制御方法。
  5.  請求項2に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第9のステップは、
     前記第1の並列分散処理実行サーバの空きI/Oリソース量を求める第10のステップと、
     前記処理遅延サーバの空きI/Oリソース量を求める第11のステップと、
     前記第1の並列分散処理実行サーバの空きI/Oリソース量と、前記処理遅延サーバの空きI/Oリソース量の差が最も小さい前記処理遅延サーバを第2の並列分散処理実行サーバを選択する第12のステップと、
    を含むことを特徴とする並列分散処理システムのデータ転送制御方法。
  6.  請求項5に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第10のステップは、
     前記第1の並列分散処理実行サーバのネットワークの空きI/Oリソース量と、ディスクI/Oの空きリソース量とを求め、
     前記第11のステップは、
     前記処理遅延サーバのネットワークの空きI/Oリソース量と、ディスクI/Oの空きリソース量とを求め、
     前記第12のステップは、
     前記第1の並列分散処理実行サーバのネットワークI/Oの空きリソース量と、処理遅延サーバのネットワークI/Oの空きリソース量との差の絶対値を第1の絶対値として求め、
     第1の並列分散処理実行サーバのディスクI/Oの空きリソース量と、処理遅延サーバのディスクI/Oの空きリソース量との差の絶対値を第2の絶対値として求め、
     前記第1の絶対値と第2の絶対値のうち大きい方の値を前記処理遅延サーバの絶対値として選択し、当該処理遅延サーバの絶対値のうち最も小さい値の処理遅延サーバを前記第2の並列分散処理実行サーバとして選択することを特徴とする並列分散処理システムのデータ転送制御方法。
  7.  請求項2に記載の並列分散処理システムのデータ転送制御方法であって、
     前記第9のステップは、
     前記第1の並列分散処理実行サーバの空きI/Oリソース量を求める第10のステップと、
     前記処理遅延サーバの空きI/Oリソース量を求める第11のステップと、
     前記第1の並列分散処理実行サーバの空きI/Oリソース量よりも多い空きI/Oリソース量を有する処理遅延サーバのうち、前記空きI/Oリソース量の差が最も小さい前記処理遅延サーバを第2の並列分散処理実行サーバを選択する第12のステップと、
    を含むことを特徴とする並列分散処理システムのデータ転送制御方法。
  8.  請求項1に記載の並列分散処理システムのデータ転送制御方法であって、
     前記並列分散処理実行サーバは、物理サーバ上で実行される仮想化部が提供する仮想サーバとして実行され、
     前記第4のステップは、
     前記第1の並列分散処理実行サーバを実行する物理サーバと同一の物理サーバで実行される仮想サーバを優先して前記第2の並列分散処理実行サーバとして選択することを特徴とする並列分散処理システムのデータ転送制御方法。
  9.  プロセッサと記憶装置とを備えて処理対象のデータとして予め分割されたデータブロックを前記記憶装置に格納し、前記プロセッサが前記データブロックを処理するタスクを並列して実行する複数の並列分散処理実行サーバと、
     前記複数の並列分散処理実行サーバを制御する管理計算機と、を備えた並列分散処理システムであって、
     前記管理計算機は、
     前記複数の並列分散処理実行サーバのデータブロックに対すタスクを制御する並列分散処理制御部と、
     前記複数の並列分散処理実行サーバのうち、タスクにデータブロックを割り当てる第1の並列分散処理実行サーバ対して、前記データブロックの送信元となる第2の並列分散処理実行サーバを選択するデータ転送制御部と、
     前記複数の並列分散処理実行サーバのリソース使用量をそれぞれ管理するリソース使用量管理部と、
    を有する並列分散処理システムであって、
     前記並列分散処理制御部は、
     前記第1の並列分散処理実行サーバから前記タスクが完了したことを示す完了通知を受信し、前記複数の並列分散処理実行サーバが保持するデータブロックとタスクの状態を取得し、
     前記データ転送制御部は、
     前記複数の並列分散処理実行サーバがそれぞれ保持するデータブロックの処理の進行状況と前記複数の並列分散処理実行サーバのリソース使用量に基づいて、前記第1の並列分散処理実行サーバへデータブロックを転送する第2の並列分散処理実行サーバを選択し、前記選択した第2の並列分散処理実行サーバに対して前記データブロックを前記第1の並列分散処理実行サーバへ転送する指令を送信し、
     前記並列分散処理制御部は、
     前記第1の並列分散処理実行サーバに対して前記転送されたデータブロックを処理するタスクを実行する指令を送信することを特徴とする並列分散処理システム。
  10.  請求項9に記載の並列分散処理システムであって、
     前記データ転送制御部は、
     前記複数の並列分散処理実行サーバが保持するデータブロックのうち、タスクによる処理が完了した処理済みのデータブロックの比率を処理済みデータ率として演算し、前記処理済みデータ率が、予め設定した閾値未満の並列分散処理実行サーバを処理遅延サーバとして抽出し、前記抽出された処理遅延サーバから前記第2の並列分散処理実行サーバを選択することを特徴とする並列分散処理システム。
  11.  請求項10に記載の並列分散処理システムであって、
     前記データ転送制御部は、
     前記第1の並列分散処理実行サーバの空きI/Oリソース量を求め、前記処理遅延サーバの空きI/Oリソース量を求めて、前記第1の並列分散処理実行サーバの空きI/Oリソース量と、前記処理遅延サーバの空きI/Oリソース量の差が最も小さい前記処理遅延サーバを第2の並列分散処理実行サーバを選択することを特徴とする並列分散処理システム。
  12.  請求項9に記載の並列分散処理システムであって、
     前記並列分散処理実行サーバは、物理サーバ上で実行される仮想化部が提供する仮想サーバとして実行され、
     前記データ転送制御部は、
     前記第1の並列分散処理実行サーバを実行する物理サーバと同一の物理サーバ上の仮想サーバを優先して前記第2の並列分散処理実行サーバとして選択することを特徴とする並列分散処理システム。
  13.  複数の並列分散処理実行サーバのうち、第1の並列分散処理実行サーバのタスクに割り当てるデータブロックの送信元となる第2の並列分散処理実行サーバを選択するプログラムを格納した記憶媒体であって、
     前記第1の並列分散処理実行サーバから前記タスクが完了したことを示す完了通知を受信する第1の手順と、
     前記複数の並列分散処理実行サーバのリソース使用量をそれぞれ収集する第2の手順と、
     前記複数の並列分散処理実行サーバが保持するデータブロックとタスクの状態を取得する第3の手順と、
     前記複数の並列分散処理実行サーバがそれぞれ保持するデータブロックの処理の進行状況と前記複数の並列分散処理実行サーバのリソース使用量に基づいて、前記第1の並列分散処理実行サーバへデータブロックを転送する第2の並列分散処理実行サーバを選択する第4の手順と、
     前記選択した第2の並列分散処理実行サーバに対して前記データブロックを前記第1の並列分散処理実行サーバへ転送する指令を送信する第5の手順と、
     前記第1の並列分散処理実行サーバに対して前記転送されたデータブロックを処理するタスクを実行する指令を送信する第6の手順と、
    を計算機に実行させるプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
PCT/JP2011/052435 2011-02-04 2011-02-04 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体 WO2012105056A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/978,798 US9244737B2 (en) 2011-02-04 2011-02-04 Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
PCT/JP2011/052435 WO2012105056A1 (ja) 2011-02-04 2011-02-04 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体
JP2012555678A JP5484601B2 (ja) 2011-02-04 2011-02-04 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/052435 WO2012105056A1 (ja) 2011-02-04 2011-02-04 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体

Publications (1)

Publication Number Publication Date
WO2012105056A1 true WO2012105056A1 (ja) 2012-08-09

Family

ID=46602297

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/052435 WO2012105056A1 (ja) 2011-02-04 2011-02-04 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体

Country Status (3)

Country Link
US (1) US9244737B2 (ja)
JP (1) JP5484601B2 (ja)
WO (1) WO2012105056A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102740A (ja) * 2012-11-21 2014-06-05 Fujitsu Ltd 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
JP2014235734A (ja) * 2013-06-04 2014-12-15 富士通株式会社 プロセスマイグレーション方法、プロセスマイグレーションを実行するよう動作するコンピュータシステム、そのようなシステム内の中間計算リソース、及びプロセスマイグレーション方法のためのパーティショニング前の計算リソースの選択方法
WO2015145598A1 (ja) * 2014-03-26 2015-10-01 株式会社 日立製作所 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム
JP2019035996A (ja) * 2017-08-10 2019-03-07 株式会社日立製作所 分散処理システム、分散処理方法、及び分散処理プログラム
US10936377B2 (en) 2017-02-28 2021-03-02 Hitachi, Ltd. Distributed database system and resource management method for distributed database system
CN114006898A (zh) * 2021-10-30 2022-02-01 杭州迪普信息技术有限公司 版本更换方法、装置及系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298760B1 (en) * 2012-08-03 2016-03-29 Google Inc. Method for shard assignment in a large-scale data processing job
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US11327779B2 (en) * 2015-03-25 2022-05-10 Vmware, Inc. Parallelized virtual machine configuration
WO2017006346A1 (en) * 2015-07-09 2017-01-12 Sai Venkatesh System of disseminated parallel control computing in real time
US11734064B2 (en) 2016-02-05 2023-08-22 Sas Institute Inc. Automated virtual machine resource management in container-supported many task computing
US11107037B2 (en) 2017-12-15 2021-08-31 Siemens Industry Software Inc. Method and system of sharing product data in a collaborative environment
US11748159B2 (en) 2018-09-30 2023-09-05 Sas Institute Inc. Automated job flow cancellation for multiple task routine instance errors in many task computing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268013A (ja) * 1999-03-18 2000-09-29 Nec Corp 分散ジョブ制御システムおよび分散ジョブ制御方法
JP2008299791A (ja) * 2007-06-04 2008-12-11 Hitachi Ltd 仮想計算機システム
JP2010140134A (ja) * 2008-12-10 2010-06-24 Hitachi Ltd 仮想マシン管理方法、プログラムおよび管理サーバ

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1188373A (ja) * 1997-09-12 1999-03-30 Nec Corp コネクション振り分けによる負荷分散方式
US8443372B2 (en) * 2006-03-23 2013-05-14 International Business Machines Corporation Methods and systems for partitioning data in parallel processing systems
US9378066B2 (en) * 2008-02-25 2016-06-28 Sap Se Dynamic resizing of applications running on virtual machines
US8819106B1 (en) * 2008-12-12 2014-08-26 Amazon Technologies, Inc. Managing distributed execution of programs
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8793365B2 (en) * 2009-03-04 2014-07-29 International Business Machines Corporation Environmental and computing cost reduction with improved reliability in workload assignment to distributed computing nodes
JP5323554B2 (ja) 2009-03-27 2013-10-23 株式会社日立製作所 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
US8266289B2 (en) * 2009-04-23 2012-09-11 Microsoft Corporation Concurrent data processing in a distributed system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268013A (ja) * 1999-03-18 2000-09-29 Nec Corp 分散ジョブ制御システムおよび分散ジョブ制御方法
JP2008299791A (ja) * 2007-06-04 2008-12-11 Hitachi Ltd 仮想計算機システム
JP2010140134A (ja) * 2008-12-10 2010-06-24 Hitachi Ltd 仮想マシン管理方法、プログラムおよび管理サーバ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MASAAKI YONEDA: "Cloud o Ikasu Kigyo Cookpad", MITE WAKARU CLOUD MAGAZINE, vol. 1, 10 May 2010 (2010-05-10), pages 7 - 10 *
YOSHIKI YAZAWA ET AL.: "The Design and Performance Evaluation of the Process Migratable MPI Program", IPSJ SIG NOTES, vol. 2008, no. 43, 13 May 2008 (2008-05-13), pages 31 - 36 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102740A (ja) * 2012-11-21 2014-06-05 Fujitsu Ltd 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
JP2014235734A (ja) * 2013-06-04 2014-12-15 富士通株式会社 プロセスマイグレーション方法、プロセスマイグレーションを実行するよう動作するコンピュータシステム、そのようなシステム内の中間計算リソース、及びプロセスマイグレーション方法のためのパーティショニング前の計算リソースの選択方法
WO2015145598A1 (ja) * 2014-03-26 2015-10-01 株式会社 日立製作所 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム
US10936377B2 (en) 2017-02-28 2021-03-02 Hitachi, Ltd. Distributed database system and resource management method for distributed database system
JP2019035996A (ja) * 2017-08-10 2019-03-07 株式会社日立製作所 分散処理システム、分散処理方法、及び分散処理プログラム
CN114006898A (zh) * 2021-10-30 2022-02-01 杭州迪普信息技术有限公司 版本更换方法、装置及系统

Also Published As

Publication number Publication date
JPWO2012105056A1 (ja) 2014-07-03
US9244737B2 (en) 2016-01-26
US20130290979A1 (en) 2013-10-31
JP5484601B2 (ja) 2014-05-07

Similar Documents

Publication Publication Date Title
JP5484601B2 (ja) 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体
JP5614226B2 (ja) 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法
JP5939740B2 (ja) 動的にリソースを割り当てる方法、システム及びプログラム
CN106933669B (zh) 用于数据处理的装置和方法
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
CN107111517B (zh) 针对归约器任务的虚拟机优化分配和/或生成
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN104915253B (zh) 一种作业调度的方法及作业处理器
US10193973B2 (en) Optimal allocation of dynamically instantiated services among computation resources
EP2755133B1 (en) Application execution controller and application execution method
WO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US10891164B2 (en) Resource setting control device, resource setting control system, resource setting control method, and computer-readable recording medium
US20170220385A1 (en) Cross-platform workload processing
JP6107801B2 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
JP2017041191A (ja) リソース管理装置、リソース管理プログラム、及びリソース管理方法
US10606650B2 (en) Methods and nodes for scheduling data processing
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
JP2016004328A (ja) タスク割当プログラム、タスク割当方法およびタスク割当装置
JP2017191387A (ja) データ処理プログラム、データ処理方法およびデータ処理装置
US11561843B2 (en) Automated performance tuning using workload profiling in a distributed computing environment
CN117472570A (zh) 用于调度加速器资源的方法、装置、电子设备和介质
JP6158751B2 (ja) 計算機資源割当装置及び計算機資源割当プログラム
US9710311B2 (en) Information processing system, method of controlling information processing system, and recording medium
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11857607

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012555678

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13978798

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11857607

Country of ref document: EP

Kind code of ref document: A1