WO2015145598A1 - 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム - Google Patents

並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム Download PDF

Info

Publication number
WO2015145598A1
WO2015145598A1 PCT/JP2014/058445 JP2014058445W WO2015145598A1 WO 2015145598 A1 WO2015145598 A1 WO 2015145598A1 JP 2014058445 W JP2014058445 W JP 2014058445W WO 2015145598 A1 WO2015145598 A1 WO 2015145598A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
calculation
server
data
input
Prior art date
Application number
PCT/JP2014/058445
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 PCT/JP2014/058445 priority Critical patent/WO2015145598A1/ja
Priority to US14/910,420 priority patent/US10057338B2/en
Publication of WO2015145598A1 publication Critical patent/WO2015145598A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Definitions

  • the present invention relates to a data distribution device, a data distribution method, and a data distribution program for a parallel processing system.
  • Patent Document 1 includes, in its abstract, “Connected to the computer management server 18 and configured the first volume 51 for storing files for the purpose of providing a hierarchical storage system that achieves both high performance and low power consumption”.
  • the server 18 is sequentially executed on the computer 14.
  • the server 19 includes job information and job queue information that is being executed and waits for execution.
  • the server 19 collects and analyzes the information, identifies the volume 52 that the job accesses, and waits for execution from the job queue information.
  • Patent Document 2 states that the “minimum guarantee type” performance guarantee for the resource usage of each tenant's storage device can be easily performed and is required based on the input / output characteristics of the application.
  • the storage resource control system 100 for controlling the usable amount of resources in the storage 211 by controlling the bandwidth usage of the network 212 by the bandwidth control unit 221.
  • a resource estimation unit 120 which discloses a "configuration having a band determining unit 130 for determining the bandwidth control information 132 from the estimated usage amount 122 of the band based on the configuration policies 131.
  • Patent Literature 3 describes in claim 1 that “a first storage unit that stores an accelerator identifier that identifies an accelerator used by the application in association with an application identifier that identifies the application, and a plurality of the accelerators are mounted.
  • a second storage unit that stores an accelerator identifier of the accelerator installed in the slot in association with each slot identifier that identifies each slot of the expansion box to be received, and when an application execution request is received from a host,
  • a first identification unit (26) that identifies an accelerator identifier corresponding to an application from the first storage unit, and a second identifier that identifies a slot identifier corresponding to the accelerator identifier identified by the first identification unit from the second storage unit
  • the slot specified by the specific unit and the second specific unit It discloses a "accelerator management device and a allocation control unit to allocate a slot to be identified to the host by an identifier.
  • the present invention provides data for a parallel processing system capable of efficiently allocating data from a storage according to a program to be executed to a large number of computing nodes included in the parallel system.
  • An object is to provide a distribution device, a data distribution method, and a data distribution program.
  • One aspect of the present invention for solving the above-mentioned and other problems is a parallel processing system that executes parallel processing of an application by a plurality of calculation nodes each configured as a calculation server having a processor and a memory.
  • a data distribution device for distributing data used by the application to each of the calculation nodes In the parallel arithmetic processing system, some of the arithmetic servers are provided with an arithmetic acceleration mechanism that executes higher-speed arithmetic processing according to designation of the application when the specific application is executed, and the application uses Data to be distributed and stored in multiple storage devices,
  • the data distribution device includes: Calculation acceleration mechanism location information that is information indicating which calculation server has the calculation acceleration mechanism, and application characteristic information that is information indicating which application uses the calculation acceleration mechanism Hold Receive a job that specifies which of the applications to run, For the application to be executed specified in the job, the application characteristic information and the calculation acceleration mechanism location information are referred to determine whether the application uses the calculation server having the calculation acceleration mechanism, and the application For the data
  • the data distribution apparatus of the parallel arithmetic processing system which makes it possible to distribute data efficiently from storage according to the program executed with respect to many calculation nodes contained in a parallel system, data An allocation method and a data allocation program are provided.
  • FIG. 1 is a diagram showing an overall configuration example of a parallel system 1 to which a data distribution device according to an embodiment of the present invention is applied.
  • FIG. 2 is a sequence diagram showing a data processing operation of the parallel system 1.
  • FIG. 3 is a diagram illustrating a configuration example of the host definition information table 151.
  • FIG. 4 is a diagram illustrating a configuration example of the rank arrangement information table 152.
  • FIG. 5 is a diagram illustrating a configuration example of the acceleration mechanism location information table 153.
  • FIG. 6 is a diagram illustrating a configuration example of the application program characteristic information table 154.
  • FIG. 7 is a diagram illustrating a configuration example of the program information table 155 being executed.
  • FIG. 8 is a diagram illustrating a processing flow example of the execution program type acquisition processing.
  • FIG. 1 is a diagram showing an overall configuration example of a parallel system 1 to which a data distribution device according to an embodiment of the present invention is applied.
  • FIG. 2 is a sequence diagram showing
  • FIG. 9 is a diagram illustrating a processing flow example of the I / O bandwidth control policy determination processing.
  • FIG. 10 is a diagram illustrating a configuration example of the I / O amount hint information table 156.
  • FIG. 11A is a diagram illustrating an example of a job control script input to the parallel system 1.
  • FIG. 11B is a diagram illustrating an example of a job control script input to the parallel system 1.
  • FIG. 12 is a diagram illustrating a processing flow example of the I / O band allocation determination processing.
  • FIG. 13 is a diagram illustrating a configuration example of the calculation server necessary I / O performance information table 1200.
  • FIG. 14 is a diagram illustrating a configuration example of the necessary I / O performance / priority definition table 1300.
  • FIG. 15 is a diagram showing an example of the overall configuration of a parallel system 1 according to another embodiment of the present invention.
  • FIG. 16 is a diagram illustrating an example of a job control script input to the parallel system 1 of FIG.
  • FIG. 17 is a diagram illustrating a processing flow example of the staging data arrangement policy determination processing.
  • FIG. 18 is a diagram illustrating a configuration example of the staging data arrangement information table 1451.
  • FIG. 1 shows an example of the overall configuration of the parallel system 1.
  • the parallel system 1 includes a plurality of calculation servers 101, an I / O management server 102A (data distribution device), an I / O server 102B, a user terminal 103, a calculation acceleration mechanism 105, and a storage device 106.
  • the I / O server 102 is connected to the I / O server 102 through a communication network 104 so that they can communicate with each other.
  • each arithmetic server 101 inquires about the location of data to be used by the I / O management server 102A via the communication network 104, and according to the result, the data storage destination The data is acquired from the I / O server 102B.
  • the calculation server 101 includes a processor 112, a memory 111, and a communication interface 114, and functions as a calculation node of the parallel system 1.
  • a plurality of arithmetic servers 101 are provided in parallel, and high speed is achieved by executing a program specified by a job to be submitted in parallel on a plurality of machines.
  • the processor 112 is a general-purpose arithmetic device such as a CPU (Central Processing Unit) or an MPU (MicroProcessing Unit), and executes a parallel program execution program 131 stored in a memory 111 to be described later, thereby performing arithmetic processing of the parallel system 1. Realize.
  • the memory 111 is configured by a storage device such as a ROM (Read Only Memory) or a RAM (Random Access Memory) having an I / O performance corresponding to the processing performance of the processor 112, and performs parallel processing of programs in the parallel system 1.
  • a parallel program execution program 131 to be realized is stored.
  • the memory 111 stores a program to be processed in parallel and data used by the program.
  • the memory 111 is also provided with an input / output program for executing data input / output processing of the memory 111.
  • the parallel program execution program 131 is a program configured such that a plurality of arithmetic servers 101 can perform cooperative operations for program parallel processing in accordance with the MPI (Message Passing Interface) standard.
  • the parallel program execution program 131 can be implemented in an appropriate format according to the required specifications of the parallel system 1 to be applied.
  • the communication interface 114 includes an interface circuit and a driver for the communication network 104 that connects the I / O management server 102A, the I / O server 102B, and the arithmetic server 101.
  • the communication network 104 is a storage area based on the Fiber Channel (FC) protocol. In the case of a network (SAN), it is an FC interface.
  • FC Fiber Channel
  • a calculation acceleration mechanism 105 is connected to some calculation servers 101.
  • the arithmetic acceleration mechanism 105 is an arithmetic device provided for the purpose of processing a part of the process of an application program normally executed by the general-purpose processor 112 at a higher speed.
  • the arithmetic acceleration mechanism 105 specially executes normal graphic processing. GPU can be applied.
  • the calculation acceleration mechanism 105 may be configured by a vector type calculation device for the scalar type processor 112.
  • the calculation server 101 that uses the calculation acceleration mechanism 105 is connected to the calculation acceleration mechanism 105 through an appropriate communication line through the communication interface 113, but the calculation acceleration mechanism 105 is provided in the calculation server 101. It may be.
  • the communication network 104 can employ an appropriate network according to the required specifications of the parallel system 1 including the SAN based on the FC protocol.
  • the I / O management server 102A and the I / O server 102B manage input / output of data stored in the storage apparatus 106 described later, and data about the storage apparatus 106 in response to a data I / O request from the arithmetic server 101 A computer having a function of executing input / output processing.
  • the data stored in the managed storage device 106 is metadata relating to the data stored in the storage device 106 managed by the other I / O server 102B.
  • the configuration is different from the other I / O server 102B.
  • the I / O management server 102A and the I / O server 102B have the same hardware configuration, and include a processor 122, a memory 121, and communication I / Fs 123 and 124.
  • the processor 122 is a general-purpose arithmetic device such as a CPU or MPU, and realizes data input / output processing of the parallel system 1 by executing a parallel program execution program 141 stored in a memory 121 described later.
  • the memory 121 is configured by a storage device such as a ROM or a RAM having I / O performance corresponding to the processing performance of the processor 122, and stores a parallel program execution program 141.
  • the memory 121 stores a program for realizing efficient data distribution in the parallel system 1 of the present embodiment and various data used by the program, which will be described later. Further, programs and tables related to the modified example of the present embodiment are also stored in the memory 121, and these will be described later in connection with the description of the modified example.
  • the memory 121 stores a file system program 144 that is software for managing data files stored in the plurality of storage apparatuses 106.
  • the file system program 144 can employ a distributed file system such as a network file system (NFS), for example.
  • NFS network file system
  • the plurality of storage apparatuses 106 used in the parallel system 1 of the present embodiment have a redundant configuration adopting an appropriate RAID (Redundant Alley of Independent Disks) configuration. For example, when RAID 5 is adopted, one data file is striped into three data and one parity (3D + P) and is distributed and stored in four storage drives.
  • RAID Redundant Alley of Independent Disks
  • the communication interface 123 includes an interface circuit and a driver for the communication network 104 that connects the I / O management server 102A, the I / O server 102B, and the arithmetic server 101.
  • the communication network 104 is a storage area based on the fiber channel (FC) protocol. In the case of a network (SAN), it is an FC interface.
  • the communication interface 124 includes an interface circuit and a driver for a communication line connecting the I / O management server 102A or the I / O server 102B and the storage apparatus 106. When the communication line adopts a fiber channel (FC) protocol, it becomes an FC interface.
  • FC fiber channel
  • the memory 121 of the I / O management server 102A includes an execution program type acquisition processing program 142, an I / O bandwidth control policy determination processing program 143, and the like as configurations for realizing efficient data distribution in the present embodiment.
  • a host definition information table 151 storing rank data, a rank arrangement information table 152, an acceleration mechanism location information table 153, an application program characteristic information table 154, and an executing program information table 155 are stored. These programs and tables will be described later.
  • the memory 121 of the I / O server 102B stores the same parallel program execution program 161 and file system program 163 as the I / O management server 102A.
  • the memory 121 also stores an I / O bandwidth control processing program 162 that executes bandwidth control processing for each I / O server 102B in accordance with the bandwidth control policy determined by the I / O management server 102A.
  • the storage device 106 is a storage device that stores data used by the arithmetic server 101 as described above, and includes storage drives such as a hard disk drive (HDD) and a semiconductor drive (Solid State Drive).
  • the storage device 106 connected to the I / O management server 102A stores metadata 171 related to data 172 stored in each storage device 106 connected to the other I / O server 102B.
  • the plurality of storage apparatuses 106 are organized as a RAID configuration from the viewpoint of data integrity.
  • the user terminal 103 is a terminal device for a user who uses the parallel system 1 to input a job specifying a program to be executed by the parallel system 1 and receive a calculation result of the parallel system 1, and a processor such as a CPU or MPU 1031, a memory 1032 such as a RAM and a ROM, and a communication interface 1033.
  • the user terminal 103 is connected to the I / O management server 102A in the example of FIG. 1, but is not particularly limited thereto.
  • the terminal program 1034 is stored in the memory 1032 of the user terminal 103.
  • a terminal program 1034 receives a job input from a user through an input / output device such as a keyboard and a display monitor (not shown), transfers the job input to the I / O management server 102A, and receives and outputs a calculation result of the parallel system 1.
  • an input / output device such as a keyboard and a display monitor (not shown)
  • transfers the job input to the I / O management server 102A receives and outputs a calculation result of the parallel system 1.
  • the arithmetic server 101, the I / O management server 102 ⁇ / b> A, and the I / O server 102 ⁇ / b> B can be provided with an input / output device similar to the user terminal 103.
  • FIG. 2 is a sequence diagram showing an outline of a data processing flow in the parallel system 1.
  • a job control script is transferred to the I / O management server 102A (S201).
  • the job control script is also transferred from the user terminal 103 to each calculation server 101.
  • FIG. 2 for simplification, only one arithmetic server 101 and one I / O server 102B are shown.
  • an execution program type determination process is executed, and an application program executed by a submitted job is specified (S202).
  • the I / O management server 102A determines an I / O bandwidth control policy in accordance with the type of application to be executed (S203), registers the information in the executing program information table (S204), and the updated executing program
  • the information table is distributed to the I / O server 102B (S205).
  • the job received by the user terminal 103 is also transferred to each arithmetic server 101, and each arithmetic server 101 starts the application program specified by the job in accordance with an instruction from the parallel program execution program 131, and the application program is executed.
  • the I / O management server 102A is inquired about the location of the calculation data to be used, and an answer is obtained (S206, S207).
  • the calculation server 101 requests calculation data from the corresponding I / O server 102B based on the answer from the I / O management server 102A (S206).
  • the I / O server 102B that has received the calculation data request from the calculation server 101 refers to the program information table that is being executed (S208), and executes a bandwidth control process related to the output of the request data based on that (S209). ), The calculation data is transmitted to the calculation server 101 of the request source (S210).
  • the calculation server 101 that has received the calculation data from the I / O server 102B executes calculation processing according to the application program being executed thereby (S211), and the application program in which the parallel program execution program is defined in the job being executed If it is determined that the execution has been completed, a job end notification including the calculation result is transmitted to the I / O management server 102A (S212).
  • the I / O management server 102A that has received the job end notification from the calculation server 101 deletes the information of the program corresponding to the completed job from the executing program information table (S213), and transmits the calculation result to the user terminal 103 (S213). S214).
  • the user terminal 103 outputs the calculation result received from the I / O management server 102A and completes the accepted job (S215).
  • the bandwidth control in the data input / output processing of the I / O server 102B is executed according to the application program executed by the job designation, and the data to the arithmetic server 101 is Allocation is performed efficiently.
  • details of a configuration that enables the operation of the parallel system 1 will be sequentially described.
  • FIG. 3 shows a configuration example of the host definition information table 151.
  • the host definition information table 151 indicates the number of processes that can be executed in parallel in each computation server 101 as a computation node, and corresponds to the computation server name 301 that is an identification code for identifying each computation server 101.
  • the number of CPUs 302 provided in the calculation server 101 specified by the calculation server name 301 is recorded.
  • identification codes such as “host 1” and “host 2” are attached to the calculation server 101.
  • the host definition information table 151 is prepared by the system administrator when the parallel system 1 is constructed.
  • FIG. 4 shows a configuration example of the rank arrangement information table 152 (process arrangement information).
  • the “rank” is a code assigned so that each process to be executed can be identified from each other in a parallel program execution program such as MPI, and a consistent number is generally assigned.
  • Each process included in the program is defined by which calculation server 101 is processed by the rank assigned to the process.
  • the rank arrangement information table 152 is created for each program executed in the parallel system 1, and the rank number 301 assigned to the process and the operation server name 302 executing the process are recorded in association with each other. From the rank arrangement information table 152, it is possible to know which calculation server 101 is used to process each process.
  • FIG. 5 shows a configuration example of the acceleration mechanism location information table 153.
  • the acceleration mechanism location information table 153 records the calculation server name 501 and the presence / absence 502 of the calculation acceleration mechanism in association with each other.
  • the acceleration mechanism location information table 153 is a table indicating which of the calculation servers 101 included in the parallel system 1 is provided with the calculation acceleration mechanism 105.
  • FIG. 6 shows a configuration example of the application program characteristic information table 154.
  • the application program characteristic information table 154 stores information related to the processing capability requested by the application server executed by the parallel system 1 to the arithmetic server 101, and includes a program name 601 of the application program, use / non-use of the arithmetic acceleration mechanism 602, and Necessary data accuracy 603 is recorded in association with each other.
  • the program identified by the program name 601 “AP1” is processed by the computation server 101 having no computation acceleration mechanism, and the data accuracy 603 is 64 bits of double precision. Indicates that floating point arithmetic is required.
  • FIG. 7 shows a configuration example of the running program information table 155.
  • the in-execution program information table 155 is prepared in advance in the I / O management server 102A when the parallel system 1 is constructed, and each time a job is submitted, application program information relating to the job is obtained by an I / O bandwidth control policy determination program described later. be registered.
  • the execution program information table 155 associates the items of the calculation server name 701, the program name 702, the number of processes 703, the calculation acceleration mechanism use / non-use 704, and the I / O priority 705 with each other. To be recorded.
  • Each record in the running program information table 155 uses the program name 702 executed by the computation server 101 specified by the computation server name 701, the number of processes assigned to the program, and whether to use the computation acceleration mechanism.
  • the I / O priority of the program is shown.
  • FIG. 8 shows an example of the processing flow of the execution program type acquisition program 142 of the I / O management server 102A.
  • This processing flow example corresponds to S202 in the overall flow example of FIG.
  • the execution program type acquisition processing program 142 starts processing when a job input from the user terminal 103 is received by the parallel program execution program 141 of the I / O processing server 103 (S801), and the parallel program execution program 141, the name of the application program executed by the job is acquired based on the information acquired from the job submitted, and the host definition information table 151, the rank arrangement information table 152, and the acceleration mechanism location information table 153 are referred to.
  • the processing server 101 in charge of processing, the number of processes executed by the processing server 101, and the presence / absence of use of the acceleration mechanism are acquired (S802).
  • the execution program type acquisition processing program 142 registers the program name of the program to be executed, the name of the arithmetic server in charge, the number of processes, and whether or not the arithmetic acceleration mechanism is used in the executing program information table 155 and terminates the processing. (S803, S804).
  • the I / O bandwidth control policy determination program 143 When the I / O bandwidth control policy determination program 143 starts executing in S901, the I / O bandwidth control policy determination program 143 first refers to the record registered in the executing program information table 155 by the executing program type acquisition program 142 (S902), and registers the executing program information. It is checked whether the application program currently used uses the calculation acceleration mechanism, and whether the calculation server 101 that processes the application program has the calculation acceleration mechanism 105 (S903).
  • the I / O band control policy determination program 142 Records “high” in the I / O priority 705 for the arithmetic server 101 that executes the corresponding application program in the running program information table 155, and proceeds to the processing of S906 (S904).
  • I / O bandwidth control The policy determination program 142 records “low” in the I / O priority 705 for the computation server 101 that executes the application program in the running program information table 155, and proceeds to the processing of S806 (S905).
  • step S ⁇ b> 906 the I / O bandwidth control policy determination program 142 determines whether registration of all application programs included in the job submitted to the parallel system 1 in the executing program information table 155 has been completed. If it is determined, the process returns to S903. If it is determined that registration is complete (S906, Yes), the I / O bandwidth control policy determination program 142 distributes the updated program information table 155 to each I / O server 102B and ends the process. (S907, S908).
  • each I / O server 102B uses the application program executed on the arithmetic server 101 that is the data request source. Accordingly, the I / O band can be controlled.
  • FIG. 10 shows a configuration example of the I / O amount hint information table 156 that provides information for executing the I / O bandwidth control in this modification.
  • the I / O amount hint information table 156 in FIG. 10 indicates whether the problem to be processed by the application program executed in the parallel system 1 is large or small, in other words, data used for execution of the application program.
  • the I / O amount hint information table 156 can be created when the parallel system 1 is constructed and stored in the memory 121 of the I / O management server 102A.
  • each record of the I / O amount hint information table 156 items of program name 1001, process type 1002, problem size 1003, and calculation performance 1004 per processing unit are recorded in association with each other. Yes.
  • the program name 1001 of the application program to be executed a distinction between whether the program is processed by an ordinary general-purpose processor or an arithmetic acceleration mechanism is given to the process type 1002 and the program.
  • a large, medium, and small index indicating the amount of data is recorded as a problem size 1003, and a calculation performance to be provided for each corresponding problem size is recorded as a calculation performance 1004 per processing unit as a floating point calculation performance (FLOPS) per process.
  • FLOPS floating point calculation performance
  • FIG. 11A and FIG. 11B show a configuration example of the job control script in this modification.
  • the job control script in FIG. 11A is executed by the jcssubmit command described in the job scheduler (JCS) in FIG. 11B.
  • the process flow of FIG. 12 is executed in response to this command execution.
  • FIG. 12 shows a processing flow example of an I / O bandwidth allocation determination process executed in place of the I / O bandwidth control policy determination process (S203 in FIG. 2) of the above-described embodiment.
  • the I / O bandwidth allocation determination program 145 is stored in the memory 121 of the I / O management server 102A and starts processing upon receipt of a job (S1201). First, from the specified job control script, the calculation condition, problem size, And the name of the program to be executed is acquired (S1202). Next, the I / O bandwidth allocation determination program 145 acquires the computing performance 1004 per processing unit from the I / O amount hint information table 156 based on the acquired program name and problem size (S1204).
  • the I / O bandwidth allocation determination program 145 calculates the necessary I / O bandwidth of each computation server 101 from the computation performance 1004 per processing unit and the number of parallel execution processes 703, and the required I / O performance of the computation server 101. Information is registered (S1204).
  • the I / O bandwidth allocation determination program 145 distributes the updated program information table to each I / O server 102B and ends the process (S1106).
  • FIG. 13 shows a configuration example of the necessary I / O performance information table 157 of the arithmetic server 101.
  • the necessary I / O performance information table 157 is prepared in the memory 121 of the I / O management server 102A.
  • the computation server name 1301 and the necessary I / O performance 1302 required for the computation server 101 are recorded in association with each other.
  • the necessary I / O performance 1302 required for the arithmetic server 101 is the program name 1001 and process type (whether or not the arithmetic acceleration mechanism 105 is used) acquired from the executing program information table 155 in S1204 of FIG. ) 1002 and the problem size 1003 acquired from the job control script as illustrated in FIG.
  • FIG. 14 shows a configuration example of the necessary I / O performance / priority definition table 158.
  • the necessary I / O performance / priority definition table 158 is prepared in the memory 121 of the I / O management server 102A.
  • the necessary I / O performance / priority definition table 158 records the I / O priority 1402 corresponding to the necessary I / O performance 1401 of the calculation server 101 acquired in FIG. Therefore, the I / O bandwidth allocation determination program 145 can record the appropriate I / O priority 1402 in the executing program information table 155 with reference to the necessary I / O / priority definition table 158.
  • each I / O server 102B that has received the in-execution program information table 155 responds to the data I / O request received from the arithmetic server 101 with the I / O priority 1402 defined in FIG. Can be applied.
  • the I / O priority is classified into three stages according to the required I / O performance.
  • the I / O priority can be further divided and defined.
  • FIG. 15 shows an example of the overall configuration of the parallel system 1.
  • the parallel system 1 illustrated in FIG. 15 includes a file server 1501 (secondary storage device) and a job management server 1503 with respect to the I / O management server 102A and the I / O server 102B in the parallel system 1 of FIG. The difference is that they are connected via a communication network 1502.
  • the I / O management server 102A is provided with a staging data arrangement information table 1551 and a staging data arrangement policy determination processing program 1541.
  • data used to execute a program in the arithmetic server 101 is also stored in the storage device 1504 managed by the file server 1501.
  • the I / O management server 102 ⁇ / b> A analyzes the job input to the user terminal 103 and the data managed by the file server 1501 in advance serves as a working disk of the arithmetic server 101.
  • a staging process that is a process to be read out is executed.
  • the file server 1501 includes a processor 1512 such as a CPU and MPU, a memory 1511 such as a RAM and a ROM, and communication I / Fs 1513 and 1514, and a file system program 1521 such as NFS is stored in the memory 1511.
  • the communication I / F 1513 includes an interface circuit and driver for the communication network 1502, and the communication I / F 1514 includes a communication line with the storage apparatus 1503, for example, an interface circuit and driver for a SAN adopting the FC protocol.
  • the storage apparatus 1504 includes storage devices such as HDDs and SSDs, and adopts a RAID configuration that is organized by a plurality of storage drives from the viewpoint of data integrity.
  • I / O bandwidth control is performed according to the level of striping of data distributedly stored in a plurality of storage drives of the storage apparatus 1504.
  • the job management server 1503 includes a processor 1532 such as a CPU and MPU, a memory 1531 such as a RAM and a ROM, and a communication I / F 1533, and a job scheduler program 1561 is stored in the memory 1531.
  • the memory 1531 also stores a job control script 1571 used by the job scheduler 1561 for job execution control from the user terminal 103.
  • the communication I / F 1513 includes an interface circuit and a driver for the communication network 1502.
  • FIG. 16 shows a configuration example of the job control script 1571.
  • FIG. 16 basically assumes that the program specified by the program name “AP1” is processed in parallel by 1000 processes using MPI (the mpiexec command 1304) as in the job control script illustrated in FIG. 11A. ).
  • the stagein statement stage-in the data in the directory specified by input.dat before executing AP1.
  • “% Opt:” indicates optional processing for designating staging data arrangement in the present embodiment.
  • Reference numeral 1303 designates that the data is staged out after the execution of the program AP1.
  • “./Output:” indicates the output destination directory of the AP1 execution result.
  • FIG. 17 shows a processing flow example of staging data placement policy determination executed by the staging data placement policy determination processing program 1541 of the I / O management server 102A according to the job control script 1571.
  • the staging data placement policy determination processing program 1541 starts processing according to the job control script 1571 (S1701)
  • Obtain S1702
  • the staging data arrangement policy determination processing program 1541 acquires the computing performance 1004 per processing unit from the I / O amount hint information table 156 based on the acquired program name and problem size (S1703).
  • the staging data allocation policy decision processing program 1541 determines the necessary I / O performance of each arithmetic server 101 from the arithmetic performance per processing unit 1004 and the number of parallel execution processes (the number of processes 703 in the executing program information table 155). Calculate and register in the necessary I / O performance information table 157 of the arithmetic server 101 (S1704). Finally, the staging data allocation policy determination processing program 1541 calculates the sum of the necessary I / O amounts of all the computation servers 101 that execute the program, calculates the throughput required for executing the application program, and stores the staging storage The storage configuration is determined from the configuration information, and the process ends (S1705, S1706).
  • FIG. 18 shows a configuration example of the staging data arrangement information table 1551 regarding the necessary I / O performance of the arithmetic server 101.
  • a throughput 1801 required for the calculation server 101 and a data striping configuration 1802 to be configured in the file system 1521 of the file server 1501 are stored in association with each other. In this way, a data stripe configuration suitable for the required I / O performance for the arithmetic server 101 can be applied to the file system 1521.
  • the present invention is not limited to the above-described embodiment, and includes various modifications.
  • the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to one having all the configurations described.
  • a part of the configuration of the embodiment can be replaced with another configuration, and another configuration can be added to the configuration of a certain embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】並列演算処理システムの各計算ノードへ効率的にデータ配分を行う。 【解決手段】並列演算処理システム1は、複数の演算サーバ101がI/O管理サーバ102A,I/Oサーバ102Bを介してストレージ装置106から読み出すデータを並列処理することにより高速演算処理を行う。その際、I/O管理サーバ102Aは、ユーザ端末103からジョブが投入されると、実行されるプログラムについて、プログラムの各プロセスがどの演算サーバ101で実行されるか、各プロセスが演算加速機構105を利用するかをホスト定義情報テーブル151、ランク配置情報テーブル152、加速機構所在情報テーブル153、アプリケーション特性情報テーブル154を参照して判定し、各プロセスが演算加速機構105を利用し、かつ演算加速機構105を有する演算サーバ101で処理すると判定した場合、当該プロセスについてI/O帯域を優先割り当てすることとする。

Description

並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム
 本発明は、並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラムに関する。
 複雑な科学技術計算を高速で実行することが求められる、いわゆるスーパーコンピュータでは、演算処理を実行する個々のプロセッサを高性能化するとともに、それぞれ高性能プロセッサを含む多数の計算ノードと演算に使用するデータを格納するストレージとを高速通信ネットワークで接続してなる並列演算処理システムの構成が採用されている。このような並列演算処理システム(以下「並列システム」と略称する。)では、システム全体としての処理効率を向上させるため、ストレージに格納されているデータを多数の計算ノードに必要に応じて効率的に配分することが求められる。
 近年、プロセッサ単体の高性能化が実装密度等の点で困難となりつつあること、及び消費電力、設置面積等の制約から並列システムをより大規模化することも難しくなりつつあること等に鑑み、並列システムの処理効率を向上させるため、システムに投入されるジョブが指定するプログラムの処理内容に応じて、異なる種類のプロセッサを使用する、いわゆるヘテロ構成が提案されるようになっている。ヘテロ構成においては、一般的な演算処理を実行させる通常のプロセッサと、プログラムにおける特殊な演算処理を、通常はグラフィック処理専用に用いられるGPU(Graphics Processing Unit)にわたして実行させるGPGPU(General-Purpose computing on Graphics Processing Units)などが採用される。ヘテロ構成の採用により並列システムの各計算ノードでの演算処理高速化が期待できるが、前記したデータの効率的な配分はやはり重要である。
 この点、従来、例えば特許文献1~3に開示されている技術が提案されている。特許文献1は、その要約書に、「高性能と低消費電力を両立する階層ストレージシステムを提供する」ことを目的として、「計算機管理サーバ18と接続し、ファイル格納用第一ボリューム51を構成する第一階層ストレージ装置11と、ファイル格納用第二ボリューム52を構成する第二階層ストレージ装置12と、ストレージ管理サーバ19を含むストレージシステム2において、サーバ18は、計算機14上で逐次実行されるジョブ情報と、実行中及び実行を待つジョブキュー情報を有し、サーバ19は、これらの情報を収集・解析して、該ジョブがアクセスするボリューム52を特定し、ジョブキュー情報から実行を待つ各ジョブが実行開始されるまでの平均待ち時間、及びボリューム52を構成するディスク装置を稼働し、ボリューム52をボリューム51にコピーするのに要する閾値時間を求める。ジョブが投入された時点で、平均待ち時間が閾値時間より短いとき、該ジョブの実行を該閾値時間分遅らせる」構成を開示している。また、特許文献2は、その要約書に、「各テナントのストレージ機器のリソース使用量について「最低保証型」の性能保証を容易に行うことができ、アプリケーションの入出力特性に基づいて必要とされるリソースの使用量を予測する」ことを目的として、「帯域制御部221によってネットワーク212の帯域使用量を制御することによって、ストレージ211のリソースの使用可能量を制御するためのストレージリソース制御システム100であって、入出力処理量モデルと帯域使用量モデルからなる線形モデル112と、アプリケーションのI/O特性121から入出力処理量モデルに基づいて必要とするストレージ211のリソース使用量を予測し、さらに帯域使用量モデルに基づいて対応するネットワーク212の帯域使用量を予測するリソース予測部120と、設定ポリシー131に基づいて帯域の予測使用量122から帯域制御情報132を決定する帯域決定部130とを有する」構成を開示している。また、特許文献3は、その請求項1に、「アプリケーションを識別するアプリ識別子に対応付けて、前記アプリケーションが利用するアクセラレータを識別するアクセラレータ識別子を記憶する第1記憶部と、前記アクセラレータを複数搭載する拡張ボックスの各スロットを識別する各スロット識別子に対応付けて、前記スロットに搭載される前記アクセラレータのアクセラレータ識別子を記憶する第2記憶部と、ホストからアプリケーションの実行要求を受信した場合に、前記アプリケーションに対応するアクセラレータ識別子を前記第1記憶部から特定する第1特定部(26)と、前記第1特定部が特定したアクセラレータ識別子に対応するスロット識別子を前記第2記憶部から特定する第2特定部と、前記第2特定部が特定したスロット識別子により識別されるスロットを前記ホストに割当てる割当制御部とを有する」アクセラレータ管理装置を開示している。
特開2010-231636号公報 特開2012-133629号公報 特開2013-196206号公報
 これらの特許文献は、ジョブの実行状況に応じてストレージの稼働を制御すること、アプリケーションのI/O特性に応じてストレージネットワークの帯域制御を行うこと、あるいはホストが利用するアクセラレータをアプリケーションに応じて柔軟に付け替えること等に関連している。しかしながら、いずれの特許文献にも、計算ノードに前記したヘテロ構成を採用する並列システムにおいてストレージから各計算ノードへのデータ配分を効率化することについては、なにも開示されていない。
 以上の課題を踏まえ、本発明は、並列システムに含まれる多数の計算ノードに対して、実行されるプログラムに応じてストレージから効率的にデータを配分することを可能とする並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラムを提供することを目的としている。
 上記の、および他の課題を解決するための本発明の一態様は、それぞれがプロセッサとメモリとを有する演算サーバとして構成されている複数の計算ノードによってアプリケーションの並列処理を実行する並列演算処理システムにおいて、前記各計算ノードに前記アプリケーションが使用するデータを配分するためのデータ配分装置であって、
 前記並列演算処理システムにおいて、一部の前記演算サーバには特定の前記アプリケーションを実行する場合に当該アプリケーションの指定に従ってより高速の演算処理を実行する演算加速機構が設けられており、前記アプリケーションが使用するデータは、複数のストレージ装置に分散して格納されており、
 前記データ配分装置は、
 いずれの前記演算サーバが前記演算加速機構を有しているかを示す情報である演算加速機構所在情報と、いずれの前記アプリケーションが前記演算加速機構を利用するかを示す情報であるアプリケーション特性情報とを保持しており、
 いずれの前記アプリケーションを実行するかが指定されているジョブを受領し、
 前記ジョブに指定されている実行すべき前記アプリケーションについて、前記アプリケーション特性情報及び前記演算加速機構所在情報を参照して、前記アプリケーションが演算加速機構を有する前記演算サーバを利用するか判定し、当該アプリケーションについて前記演算サーバから受領するデータ入出力要求に関して入出力処理優先度を高める旨を記録した入出力処理優先度情報を生成して前記各ストレージ装置に配布し、前記各ストレージ装置が当該入出力処理優先度情報に基づいて入出力帯域制御の実行を可能とする、
並列演算処理システムのデータ配分装置である。
 本発明によれば、並列システムに含まれる多数の計算ノードに対して、実行されるプログラムに応じてストレージから効率的にデータを配分することを可能とする並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラムが提供される。
図1は、本発明の一実施形態によるデータ配分装置を適用した並列システム1の全体構成例を示す図である。 図2は、並列システム1のデータ処理動作を示すシーケンス図である。 図3は、ホスト定義情報テーブル151の構成例を示す図である。 図4は、ランク配置情報テーブル152の構成例を示す図である。 図5は、加速機構所在情報テーブル153の構成例を示す図である。 図6は、アプリケーションプログラム特性情報テーブル154の構成例を示す図である。 図7は、実行中プログラム情報テーブル155の構成例を示す図である。 図8は、実行プログラム種別取得処理の処理フロー例を示す図である。 図9は、I/O帯域制御ポリシー決定処理の処理フロー例を示す図である。 図10は、I/O量ヒント情報テーブル156の構成例を示す図である。 図11Aは、並列システム1に投入されるジョブ制御スクリプトの一例を示す図である。 図11Bは、並列システム1に投入されるジョブ制御スクリプトの一例を示す図である。 図12は、I/O帯域割り当て決定処理の処理フロー例を示す図である。 図13は、演算サーバ必要I/O性能情報テーブル1200の構成例を示す図である。 図14は、必要I/O性能・優先度定義テーブル1300の構成例を示す図である。 図15は、本発明の他の実施形態による並列システム1の全体構成例を示す図である。 図16は、図15の並列システム1に投入されるジョブ制御スクリプトの一例を示す図である。 図17は、ステージング用データ配置ポリシー決定処理の処理フロー例を示す図である。 図18は、ステージング用データ配置情報テーブル1451の構成例を示す図である。
 以下、本発明について、その一実施形態に即して添付図面を参照しながら説明する。まず、本発明の一実施形態によるデータ配分装置が適用されている並列システム1について説明する。図1に、並列システム1の全体構成例を示している。並列システム1は複数の演算サーバ101、I/O管理サーバ102A(データ配分装置)、I/Oサーバ102B、ユーザ端末103、演算加速機構105、及びストレージ装置106を備え、各演算サーバ101と各I/Oサーバ102とは、通信ネットワーク104によって相互に通信可能に接続されている。並列システム1では、ユーザ端末103から投入されるジョブに対応して各演算サーバ101が通信ネットワーク104を介してI/O管理サーバ102Aに使用するデータの所在を問い合わせ、その結果に従ってデータ格納先のI/Oサーバ102Bから当該データを取得する。
 演算サーバ101は、それぞれプロセッサ112、メモリ111、及び通信インタフェース114を備え、並列システム1の計算ノードとして機能する。並列システム1では、複数の演算サーバ101が並列に設けられており、投入されるジョブによって指定されるプログラムを複数台で並行して実行することにより高速化を達成している。プロセッサ112はCPU(Central Processing Unit)、MPU(MicroProcessing Unit)等の汎用演算デバイスであり、後述するメモリ111に格納されている並列プログラム実行用プログラム131を実行することにより並列システム1の演算処理を実現する。メモリ111はプロセッサ112の処理性能に応じたI/O性能を有する、ROM(Read Only Memory)、RAM(Random Access Memory)等の記憶デバイスによって構成されており、並列システム1でのプログラム並列処理を実現する並列プログラム実行用プログラム131を格納している。この他、メモリ111には、並列処理されるプログラム、及びそのプログラムが使用するデータが格納される。メモリ111には、また、メモリ111のデータ入出力処理を実行する入出力プログラムも設けられる。
 並列プログラム実行用プログラム131は、MPI(Message Passing Interface)規格に従って複数の演算サーバ101がプログラム並列処理のための協調動作がとれるように構成されているプログラムである。並列プログラム実行用プログラム131は、適用される並列システム1の要求仕様に応じて適宜の形式で実装することができる。
 通信インタフェース114は、I/O管理サーバ102A、I/Oサーバ102Bと演算サーバ101とを接続する通信ネットワーク104とのインタフェース回路及びドライバを含み、通信ネットワーク104がファイバチャネル(FC)プロトコルによるストレージエリアネットワーク(SAN)である場合にはFCインタフェースとなる。
 図1に示すように、一部の演算サーバ101には、演算加速機構105が接続されている。演算加速機構105は、通常は汎用のプロセッサ112によって実行されるアプリケーションプログラムの一部のプロセスを、より高速で処理することを目的として設けられる演算デバイスであり、例えば通常グラフィック処理を専門に実行するためのGPUを適用することができる。また、スカラー型のプロセッサ112に対してベクトル型の演算デバイスによって演算加速機構105を構成してもよい。図1の例では、演算加速機構105を利用する演算サーバ101は、通信インタフェース113を通じて適宜の通信回線で演算加速機構105と接続されているが、演算加速機構105を演算サーバ101内に設けるようにしてもよい。
 通信ネットワーク104は、前記のように、FCプロトコルによるSANをはじめ、並列システム1の要求仕様に応じた適宜のネットワークを採用することができる。
 I/O管理サーバ102A、I/Oサーバ102Bは、後述のストレージ装置106に格納されるデータの入出力を管理し、演算サーバ101からのデータI/O要求に応じてストレージ装置106についてのデータ入出力処理を実行する機能を有するコンピュータである。I/O管理サーバ102Aは、管理しているストレージ装置106に格納されているデータが、他のI/Oサーバ102Bによって管理されているストレージ装置106に格納されているデータに関するメタデータであるという構成が、他のI/Oサーバ102Bと異なる。
 I/O管理サーバ102A、I/Oサーバ102Bは、ハードウェアとしては同等の構成を有し、プロセッサ122、メモリ121、及び通信I/F123、124を備えている。プロセッサ122はCPU、MPU等の汎用演算デバイスであり、後述するメモリ121に格納されている並列プログラム実行用プログラム141を実行することにより並列システム1のデータ入出力処理を実現する。メモリ121はプロセッサ122の処理性能に応じたI/O性能を有する、ROM、RAM等の記憶デバイスによって構成されており、並列プログラム実行用プログラム141を格納している。この他、メモリ121には、本実施形態の並列システム1における効率的なデータ配分を実現するためのプログラムとそれが利用する各種データが格納されているが、それらについては後述する。また、本実施形態の変形例に関するプログラム、テーブル類もメモリ121に格納されることとなるが、これらについても変形例の説明に関連して後述する。
 また、メモリ121には、複数のストレージ装置106に格納されているデータファイルを管理するためのソフトウェアであるファイルシステムプログラム144が格納されている。ファイルシステムプログラム144は、例えばネットワークファイルシステム(NFS)等の分散ファイルシステムを採用することができる。なお、複数のストレージ装置106に分散して格納されるデータファイルについては、ハードウェア障害の場合のデータ保全を考慮する必要がある。この点、本実施形態の並列システム1で用いる複数のストレージ装置106は、適宜のRAID(Redundant Alley of Independent Disks)構成を採用する冗長構成としている。例えばRAID5を採用した場合、一つのデータファイルは3つのデータと1つのパリティ(3D+P)にストライピングされて4つのストレージドライブに分散して格納される。
 通信インタフェース123は、I/O管理サーバ102A、I/Oサーバ102Bと演算サーバ101とを接続する通信ネットワーク104とのインタフェース回路及びドライバを含み、通信ネットワーク104がファイバチャネル(FC)プロトコルによるストレージエリアネットワーク(SAN)である場合にはFCインタフェースとなる。通信インタフェース124は、I/O管理サーバ102AあるいはI/Oサーバ102Bとストレージ装置106を接続する通信回線とのインタフェース回路及びドライバを含む。通信回線がファイバチャネル(FC)プロトコルを採用する場合にはFCインタフェースとなる。
 I/O管理サーバ102Aのメモリ121には、本実施形態における効率的なデータ配分を実現するための構成として、実行プログラム種別取得処理プログラム142、I/O帯域制御ポリシー決定処理プログラム143と、これらが使用するデータを格納しているホスト定義情報テーブル151、ランク配置情報テーブル152、加速機構所在情報テーブル153、アプリケーションプログラム特性情報テーブル154、及び実行中プログラム情報テーブル155が格納されている。これらのプログラム及びテーブルについては後述する。
 I/Oサーバ102Bのメモリ121には、I/O管理サーバ102Aと同じ並列プログラム実行用プログラム161、ファイルシステムプログラム163が格納される。また、メモリ121には、あわせてI/O管理サーバ102Aで決定された帯域制御ポリシーに従って各I/Oサーバ102Bに関する帯域制御処理を実行するI/O帯域制御処理プログラム162が格納される。
 ストレージ装置106は、前記したように演算サーバ101が使用するデータを格納する記憶デバイスであり、ハードディスクドライブ(HDD)、半導体ドライブ(Solid State Drive)等のストレージドライブを含む。I/O管理サーバ102Aに接続されるストレージ装置106には、他のI/Oサーバ102Bに接続される各ストレージ装置106に格納されるデータ172に関するメタデータ171が格納されている。前記のように、データ保全の観点から複数のストレージ装置106はRAID構成として編制されている。
 ユーザ端末103は、並列システム1を利用するユーザが並列システム1に実行させるプログラムを指定するジョブを入力し、また並列システム1の演算結果を受け取るための端末装置であり、CPU、MPU等のプロセッサ1031、RAM、ROM等のメモリ1032、及び通信インタフェース1033を有する。ユーザ端末103は、図1の例ではI/O管理サーバ102Aに接続されているが、特にこれに制約されるものではない。
 ユーザ端末103のメモリ1032には、端末プログラム1034が格納されている。端末プログラム1034は、図示を省略するキーボード、表示モニタ等の入出力デバイスを通じて、ユーザからのジョブ入力を受け付けてI/O管理サーバ102Aに転送し、並列システム1の演算結果を受け取って出力する機能を有する。なお、演算サーバ101、I/O管理サーバ102A、I/Oサーバ102Bについても、ユーザ端末103と同様の入出力デバイスを設けることができる。
 次に、以上説明した構成を有する並列システム1において、投入されたジョブが実行される際のデータ処理の概要を説明する。図2は、並列システム1におけるデータ処理フローの概略を示すシーケンス図である。並列システム1がすでに起動していることを前提として、まずユーザ端末103が実行すべきジョブを受け付けると、I/O管理サーバ102Aにジョブ制御スクリプトを転送する(S201)。ジョブ制御スクリプトは、ユーザ端末103から各演算サーバ101にも転送される。なお、図2では、簡略化のため、演算サーバ101、I/Oサーバ102Bは1台ずつのみ示している。I/O管理サーバ102Aでは、本実施形態の特徴的な構成として、まず実行プログラム種別判定処理が実行され、投入されたジョブによって実行されるアプリケーションプログラムが特定される(S202)。I/O管理サーバ102Aは、実行されるアプリケーション種別に応じてI/O帯域制御ポリシーを決定し(S203)、その情報を実行中プログラム情報テーブルに登録し(S204)、当該更新した実行中プログラム情報テーブルをI/Oサーバ102Bに配布する(S205)。
 一方、ユーザ端末103が受け付けたジョブは、各演算サーバ101にも転送され、各演算サーバ101は、ジョブで指定されたアプリケーションプログラムを並列プログラム実行用プログラム131の指示により起動し、そのアプリケーションプログラムが使用する演算用データの所在をI/O管理サーバ102Aに問い合わせて回答を取得する(S206、S207)。演算サーバ101は、I/O管理サーバ102Aの回答に基づいて該当するI/Oサーバ102Bに演算用データを要求する(S206)。
 演算サーバ101から演算用データ要求を受信したI/Oサーバ102Bは、保持している実行中プログラム情報テーブルを参照し(S208)、それに基づいて要求データの出力に関する帯域制御処理を実行し(S209)、要求元の演算サーバ101に演算用データを送信する(S210)。
 I/Oサーバ102Bから演算用データを受信した演算サーバ101は、それによって実行中のアプリケーションプログラムに従って演算処理を実行し(S211)、並列プログラム実行用プログラムが実行中ジョブに規定されていたアプリケーションプログラムの実行が完了したと判断すれば、I/O管理サーバ102Aに演算結果を含むジョブ終了通知を送信する(S212)。
 演算サーバ101からジョブ終了通知を受信したI/O管理サーバ102Aは、実行中プログラム情報テーブルから終了したジョブに該当するプログラムの情報を削除し(S213)、ユーザ端末103に演算結果を送信する(S214)。ユーザ端末103はI/O管理サーバ102Aから受信した演算結果を出力して受け付けたジョブを完了する(S215)。以上のように、本実施形態の並列システム1では、ジョブの指定により実行されるアプリケーションプログラムに応じて、I/Oサーバ102Bのデータ入出力処理における帯域制御が実行され、演算サーバ101へのデータ配分が効率的に行われることになる。以下、このような並列システム1の動作を可能とする構成の詳細について順次説明する。
 まず、I/O管理サーバ102Aに格納されているテーブル類について説明する。図3に、ホスト定義情報テーブル151の構成例を示す。ホスト定義情報テーブル151は、計算ノードとしての各演算サーバ101にて並列実行可能なプロセスの数を示しており、各演算サーバ101を識別するための識別符号である演算サーバ名301と、対応する演算サーバ名301で特定される演算サーバ101に設けられているCPUの数302とが記録されている。図3の例では、演算サーバ101について、「ホスト1」、「ホスト2」といった識別符号を付している。ホスト定義情報テーブル151は、並列システム1の構築時にシステム管理者によって用意される。
 図4は、ランク配置情報テーブル152(プロセス配置情報)の構成例を示している。ここで、「ランク」とは、MPI等の並列プログラム実行用プログラムにおいて、実行される各プロセスについて相互に識別可能とするために付与された符号であり、一般的には一貫番号が割り当てられる。プログラムに含まれる各プロセスは、当該プロセスに付与されたランクにより、いずれの演算サーバ101によって処理されるかが規定される。ランク配置情報テーブル152は並列システム1で実行されるプログラム毎に作成され、プロセスに付されたランク番号301とそのプロセスを実行する演算サーバ名302とが対応付けて記録される。ランク配置情報テーブル152により、各プロセスがどの演算サーバ101で処理されるかを知ることができる。
 図5は、加速機構所在情報テーブル153の構成例を示している。加速機構所在情報テーブル153は、演算サーバ名501と演算加速機構の有無502とを対応付けて記録している。加速機構所在情報テーブル153は、並列システム1に含まれている演算サーバ101のうち、いずれに演算加速機構105が設けられているかを示すテーブルである。
 図6は、アプリケーションプログラム特性情報テーブル154の構成例を示している。アプリケーションプログラム特性情報テーブル154は、並列システム1で実行されるアプリケーションプログラムが演算サーバ101に要求する処理能力に関する情報を格納しており、アプリケーションプログラムのプログラム名601、演算加速機構の利用有無602、及び必要なデータ精度603が互いに対応付けられて記録されている。図6の例では、プログラム名601が「AP1」で特定されるプログラムについては、演算加速機構を有しない演算サーバ101で処理することが指定されており、データ精度603としては64ビットの倍精度浮動小数点演算が必要であることを示している。
 図7は、実行中プログラム情報テーブル155の構成例を示している。実行中プログラム情報テーブル155は並列システム1の構築時にあらかじめI/O管理サーバ102Aに用意され、ジョブが投入される毎に後述するI/O帯域制御ポリシー決定プログラムによってそのジョブに関するアプリケーションプログラムの情報が登録される。図7の例では、実行中プログラム情報テーブル155には、演算サーバ名701、プログラム名702、プロセス数703、演算加速機構利用有無704、及びI/O優先度705の項目が互いに対応付けられて記録される。実行中プログラム情報テーブル155の各レコードは、演算サーバ名701で特定される演算サーバ101で実行されているプログラム名702、そのプログラムに関して割り当てられているプロセス数、演算加速機構を利用するか否か、そのプログラムのI/O優先度を示している。
 次に、本実施形態の並列システム1におけるデータ配分処理に関する処理フローにつき、具体的な処理フロー例に基づいて説明する。図8に、I/O管理サーバ102Aの実行プログラム種別取得プログラム142の処理フロー例を示している。この処理フロー例は、図2の全体フロー例におけるS202に対応する。実行プログラム種別取得処理プログラム142は、ユーザ端末103から投入されたジョブがI/O処理サーバ103の並列プログラム実行用プログラム141で受信されたことで処理を開始し(S801)、並列プログラム実行用プログラム141が投入されたジョブから取得した情報に基づいて、当該ジョブにより実行されるアプリケーションプログラム名を取得し、ホスト定義情報テーブル151、ランク配置情報テーブル152、及び加速機構所在情報テーブル153を参照して、処理を担当する演算サーバ101と、その演算サーバ101で実行されるプロセス数、加速機構利用の有無を取得する(S802)。次いで、実行プログラム種別取得処理プログラム142は、実行中プログラム情報テーブル155に、実行しようとするプログラムのプログラム名、担当する演算サーバ名、プロセス数、演算加速機構利用の有無を登録して処理を終了する(S803,S804)。
 次に、I/O帯域制御ポリシー決定プログラム143によるデータ処理について、図9の処理フロー例を参照して説明する。I/O帯域制御ポリシー決定プログラム143は、S901で実行開始すると、まず実行プログラム種別取得プログラム142が実行中プログラム情報テーブル155に登録したレコードを参照して(S902)、実行中プログラム情報を登録しているアプリケーションプログラムが演算加速機構を利用するか、また当該アプリケーションプログラムを処理する演算サーバ101が演算加速機構105を有しているかを調べる(S903)。当該アプリケーションプログラムが演算加速機構を利用し、かつ当該アプリケーションプログラムを処理する演算サーバ101が演算加速機構105を有していると判定した場合(S903,Yes)、I/O帯域制御ポリシー決定プログラム142は、実行中プログラム情報テーブル155の該当アプリケーションプログラムを実行する演算サーバ101について、I/O優先度705に「高」を記録してS906の処理に進む(S904)。一方、当該アプリケーションプログラムが演算加速機構を利用していない、あるいは当該アプリケーションプログラムを処理する演算サーバ101が演算加速機構105を有していないと判定した場合(S903,No)、I/O帯域制御ポリシー決定プログラム142は、実行中プログラム情報テーブル155の該当アプリケーションプログラムを実行する演算サーバ101について、I/O優先度705に「低」を記録してS806の処理に進む(S905)。
 S906では、I/O帯域制御ポリシー決定プログラム142は、並列システム1に投入されたジョブに含まれるすべてのアプリケーションプログラムについて実行中プログラム情報テーブル155への登録が完了したか判定し、完了していないと判定した場合はS903の処理に戻る。登録が完了していると判定した場合(S906,Yes)、I/O帯域制御ポリシー決定プログラム142は、各I/Oサーバ102Bに、更新した実行中プログラム情報テーブル155を配布して処理を終了する(S907,S908)。
 以上のようにして各I/Oサーバ102Bに配布された実行中プログラム情報テーブル155を利用して、各I/Oサーバ102Bは、データ要求元である演算サーバ101で実行されているアプリケーションプログラムに応じてI/O帯域の制御を行うことができる。
 次に、以上説明した実施形態の変形例として、I/O帯域制御をI/O優先度の高低よりもより細かく行うための構成について説明する。この変形例では、実行されるアプリケーションプログラムについて、演算加速機構を利用するかだけでなく、処理すべき問題のサイズ、プロセスあたりに要求される演算性能を加味するようにしている。図10に、この変形例でのI/O帯域制御を実行させるための情報を提供するI/O量ヒント情報テーブル156の構成例を示している。図10のI/O量ヒント情報テーブル156は、並列システム1で実行されるアプリケーションプログラムについて、当該アプリケーションプログラムによって処理すべき問題が大きいか小さいか、言い換えれば、アプリケーションプログラムの実行に関して使用されるデータ量が大きいか小さいかにつき、I/Oサーバ102BのI/O帯域に一定の指標を与えるものである。I/O量ヒント情報テーブル156は、並列システム1の構築時に作成し、I/O管理サーバ102Aのメモリ121に格納しておくことができる。
 図10の例では、I/O量ヒント情報テーブル156の各レコードには、プログラム名1001、プロセスタイプ1002、問題サイズ1003、及び処理単位当たり演算性能1004の項目が互いに対応付けられて記録されている。実行されるアプリケーションプログラムのプログラム名1001に対し、そのプログラムが通常の汎用プロセッサで処理されるか、あるいは演算加速機構を用いて処理されるかの区別をプロセスタイプ1002に、また当該プログラムに与えられるデータ量を示す大中小の指標を問題サイズ1003に、対応する問題サイズ毎に提供されるべき演算性能がプロセス当たりの浮動小数点演算性能(FLOPS)として処理単位当たり演算性能1004として記録されている。
 図11A、図11Bに、本変形例におけるジョブ制御スクリプトの構成例を示している。図11Aに例示するジョブ制御スクリプトにおいて、「#JCS -unit」の記述は、演算加速機構ジョブ4個を1ユニットとして,演算サーバ50台を用いて演算することを指定している。この場合、実行されるプロセスの総数は、50×4=200個である。このため、MPIジョブ実行コマンドmpiexecにおいては、実行プロセス数として「200」を指定している。また、「#JCS  -psize」に記述されている「Middle」は、問題サイズ(中)の指定を例示している。図11Aのジョブ制御スクリプトは、図11Bのジョブスケジューラ(JCS)に記述されているjcssubmitコマンドで実行される。このコマンド実行を契機に、図12の処理フローが実行される。
 図12は、前記した実施形態のI/O帯域制御ポリシー決定処理(図2のS203)に代えて実行されるI/O帯域割り当て決定処理の処理フロー例を示している。I/O帯域割り当て決定プログラム145はI/O管理サーバ102Aのメモリ121に格納され、ジョブ投入を受けて処理を開始すると(S1201)、まず指定されたジョブ制御スクリプトから、計算条件、問題サイズ、及び実行するプログラム名を取得する(S1202)。次いで、I/O帯域割り当て決定プログラム145は、取得したプログラム名と問題サイズを元に,I/O量ヒント情報テーブル156から,処理単位当たり演算性能1004を取得する(S1204)。さらに、I/O帯域割り当て決定プログラム145は、処理単位当たり演算性能1004と,並列実行プロセス数703から,各演算サーバ101の必要I/O帯域を算出し,演算サーバ101の必要I/O性能情報に登録する(S1204)。I/O帯域割り当て決定プログラム145は、各I/Oサーバ102Bに更新した実行中プログラム情報テーブルを配布して処理を終了する(S1106)。
 図13には、演算サーバ101の必要I/O性能情報テーブル157の構成例を示している。必要I/O性能情報テーブル157は、I/O管理サーバ102Aのメモリ121に用意される。必要I/O性能情報テーブル157には、演算サーバ名1301とその演算サーバ101に必要とされる必要I/O性能1302が対応付けて記録される。演算サーバ101に必要とされる必要I/O性能1302は、前記のように図12のS1204において、実行中プログラム情報テーブル155から取得されるプログラム名1001、プロセスタイプ(演算加速機構105の利用有無)1002、及び図11Aに例示されるようなジョブ制御スクリプトから取得される問題サイズ1003から処理性能当り演算性能1004を取得し、これに実行中プログラム情報テーブル155のプロセス数、所要データ精度を乗じることによって算出することができる。例えば図13の例では、演算サーバ「ホスト1」の場合、実行中プログラム情報テーブル155からプログラム「AP2」のプロセス数703が2であり、I/O量ヒント情報テーブル156の問題サイズ「中」について処理単位当たり演算性能が40MFLOPSとなる。また、アプリケーション特性情報テーブル154を参照すると、プログラム「AP2」についてはデータ精度603が単精度である。したがって、演算サーバ「ホスト1」には、図13に例示しているように、2プロセス×40MFLOPS×単精度=320MB/sを割り当てる必要があることとなる。
 図14は、必要I/O性能・優先度定義テーブル158の構成例を示している。必要I/O性能・優先度定義テーブル158は、I/O管理サーバ102Aのメモリ121に用意される。必要I/O性能・優先度定義テーブル158は、図13で取得される演算サーバ101の必要I/O性能1401に対応するI/O優先度1402を記録している。したがって、I/O帯域割り当て決定プログラム145は、必要I/O・優先度定義テーブル158を参照して、適切なI/O優先度1402を実行中プログラム情報テーブル155に記録することができる。そして、これにより、当該実行中プログラム情報テーブル155を受領した各I/Oサーバ102Bは、演算サーバ101から受けたデータI/O要求に対して、図14で規定されるI/O優先度1402を適用することができる。なお、本変形例では必要I/O性能に応じてI/O優先度を3つの段階に分類しているが、さらに細かくI/O優先度を分けて規定することもできる。
 次に、本発明の他の実施形態に係るデータ配分装置が適用された並列システム1について説明する。図15に、この並列システム1の全体構成例を示している。図15に例示する並列システム1は、図1の並列システム1におけるI/O管理サーバ102A、I/Oサーバ102Bに対して、ファイルサーバ1501(二次ストレージ装置)とジョブ管理サーバ1503とが、通信ネットワーク1502を介して接続されている点が異なる。また、この差異に応じて、I/O管理サーバ102Aには、ステージング用データ配置情報テーブル1551と、ステージング用データ配置方針決定処理プログラム1541が設けられている。図15の並列システム1では、ファイルサーバ1501が管理するストレージ装置1504にも、演算サーバ101でプログラムを実行するのに使用されるデータが格納される。このため、本並列システム1では、ユーザ端末103に投入されたジョブについてI/O管理サーバ102Aが解析を行い、あらかじめファイルサーバ1501が管理するデータを演算サーバ101のワーキングディスクとして機能するストレージ装置106に読み出しておく処理であるステージング処理が実行される。
 ファイルサーバ1501は、CPU、MPU等のプロセッサ1512、RAM,ROM等のメモリ1511、及び通信I/F1513,1514を備え、メモリ1511にはNFS等のファイルシステムプログラム1521が格納されている。通信I/F1513は、通信ネットワーク1502とのインタフェース回路及びドライバを備え、通信I/F1514はストレージ装置1503との通信回線、例えばFCプロトコルを採用するSANとのインタフェース回路及びドライバを含む。
 ストレージ装置1504は、HDD,SSD等の記憶デバイスを備え、データ保全の観点から複数のストレージドライブによって編制されるRAID構成が採用される。本実施形態の並列システム1では、ストレージ装置1504の複数ストレージドライブに分散格納されるデータのストライピングのレベルに応じてI/O帯域制御を実施するようにしている。
 ユーザ端末103から投入されるジョブは、ジョブ管理サーバ1503によってその実行が制御される。ジョブ管理サーバ1503は、CPU、MPU等のプロセッサ1532、RAM,ROM等のメモリ1531、及び通信I/F1533を備え、メモリ1531にはジョブスケジューラプログラム1561が格納されている。メモリ1531には、ユーザ端末103からのジョブ実行制御のためにジョブスケジューラ1561が使用するジョブ制御スクリプト1571も格納される。通信I/F1513は、通信ネットワーク1502とのインタフェース回路及びドライバを備えている。
 図16に、ジョブ制御スクリプト1571の構成例を示している。図16は、基本的に図11Aに例示したジョブ制御スクリプトと同様に、プログラム名「AP1」で特定されるプログラムを、MPIにより1000プロセス並行処理するものと想定している(符号1304のmpiexecコマンド)。符号1301,1302において、stagein文により、AP1を実行する前に、input.datで指定されるディレクトリのデータをステージインする。「%opt:」は、本実施形態でのステージング用データ配置を指定するオプション処理を示す。符号1303は、プログラムAP1実行終了後にデータをステージアウトする指定である。「./output:」はAP1実行結果の出力先ディレクトリを示している。
 図17は、ジョブ制御スクリプト1571にしたがって、I/O管理サーバ102Aのステージング用データ配置方針決定処理プログラム1541により実行されるステージング用データ配置方針決定の処理フロー例を示している。ステージング用データ配置方針決定処理プログラム1541は、ジョブ制御スクリプト1571にしたがって処理を開始すると(S1701)、まず指定されたジョブ制御スクリプト1571から、計算条件、問題サイズ、及びステージイン・ステージアウトするデータを取得する(S1702)。次いで、ステージング用データ配置方針決定処理プログラム1541は、取得したプログラム名と問題サイズを元に、I/O量ヒント情報テーブル156から,処理単位当たり演算性能1004を取得する(S1703)。さらに、ステージング用データ配置方針決定処理プログラム1541は、処理単位当たり演算性能1004と,並列実行プロセス数(実行中プログラム情報テーブル155のプロセス数703)から,各演算サーバ101の必要I/O性能を算出し、演算サーバ101の必要I/O性能情報テーブル157に登録する(S1704)。最後に、ステージング用データ配置方針決定処理プログラム1541は、プログラムを実行する全演算サーバ101の必要I/O量の総和を算出し、該アプリケーションプログラムの実行に必要なスループットを算出し、ステージング用ストレージ構成情報からストレージ構成を決定して処理を終了する(S1705,S1706)。
 図18には、演算サーバ101の必要I/O性能に関するステージング用データ配置情報テーブル1551の構成例を示している。ステージング用データ配置情報テーブル1551には、演算サーバ101に必要とされるスループット1801と、ファイルサーバ1501のファイルシステム1521の構成とすべきデータストライピングの構成1802とが対応付けて格納される。このようにして、演算サーバ101に対する必要I/O性能に見合ったデータストライプ構成をファイルシステム1521に適用することができる。
 以上説明したように、本発明の各実施形態によれば、並列システムに含まれる多数の計算ノードに対して、実行されるプログラムに応じてストレージから効率的にデータを配分することが可能となる。
 なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば,上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部を他の構成に置き換えることが可能であり、また、ある実施形態の構成に他の構成を加えることも可能である。
 1 並列演算処理システム  101 演算サーバ  102A I/O管理サーバ
 102B I/Oサーバ  103 ユーザ端末  105 演算加速機構
 106,1504 ストレージ装置
 131,141,161 並列プログラム実行用プログラム
 142 実行プログラム種別取得プログラム
 143 I/O帯域制御ポリシー決定プログラム
 144,163 ファイルシステムプログラム
 151 ホスト定義情報テーブル  152 ランク配置情報テーブル
 153 加速機構所在情報テーブル
 154 アプリケーションプログラム特性情報テーブル
 155 実行中プログラム情報テーブル  162 I/O帯域制御プログラム
 1501 ファイルサーバ  1503 ジョブ管理サーバ
 1541 ステージング用データ配置方針決定プログラム
 1551 ステージング用データ配置情報テーブル
 1561 ジョブスケジューラ  1571 ジョブ制御スクリプト

Claims (6)

  1.  それぞれがプロセッサとメモリとを有する演算サーバとして構成されている複数の計算ノードによってアプリケーションの並列処理を実行する並列演算処理システムにおいて、前記各計算ノードに前記アプリケーションが使用するデータを配分するためのデータ配分装置であって、
     前記並列演算処理システムにおいて、一部の前記演算サーバには特定の前記アプリケーションを実行する場合に当該アプリケーションの指定に従ってより高速の演算処理を実行する演算加速機構が設けられており、前記アプリケーションが使用するデータは、複数のストレージ装置に分散して格納されており、
     前記データ配分装置は、
     いずれの前記演算サーバが前記演算加速機構を有しているかを示す情報である演算加速機構所在情報と、いずれの前記アプリケーションが前記演算加速機構を利用するかを示す情報であるアプリケーション特性情報とを保持しており、
     いずれの前記アプリケーションを実行するかが指定されているジョブを受領し、
     前記ジョブに指定されている実行すべき前記アプリケーションについて、前記アプリケーション特性情報及び前記演算加速機構所在情報を参照して、前記アプリケーションが演算加速機構を有する前記演算サーバを利用するか判定し、当該アプリケーションについて前記演算サーバから受領するデータ入出力要求に関して入出力処理優先度を高める旨を記録した入出力処理優先度情報を生成して前記各ストレージ装置に配布し、前記各ストレージ装置が当該入出力処理優先度情報に基づいて入出力帯域制御の実行を可能とする、
    並列演算処理システムのデータ配分装置。
  2.  請求項1に記載の並列演算処理システムのデータ配分装置であって、前記アプリケーションを構成するプロセス毎にいずれの前記演算サーバを使用するかに関する情報であるプロセス配置情報を保持しており、前記各プロセス毎に前記演算加速機構を有する前記演算サーバを利用するか判定し、当該プロセスについて前記演算サーバから受領するデータ入出力要求に関して入出力処理優先度を高める旨を記録した入出力処理優先度情報を生成して前記各ストレージ装置に配布し、前記各ストレージ装置が当該入出力処理優先度情報に基づいて入出力帯域制御の実行を可能とする、並列演算処理システムのデータ配分装置。
  3.  請求項2に記載の並列演算処理システムのデータ配分装置であって、前記アプリケーションの前記プロセス毎に、前記各プロセスが処理するデータ量に対して前記演算サーバに要求する処理性能を対応付けてなる情報であるI/O量情報を保持し、前記各演算サーバに対して前記各プロセスが要求する入出力性能を算出し、当該入出力性能に応じて前記入出力処理優先度情報を生成する、並列演算処理システムのデータ配分装置。
  4.  請求項1に記載の並列演算処理システムのデータ配分装置であって、前記並列演算処理システムは、前記複数のストレージ装置の下位に接続されている二次ストレージ装置を備えており、前記並列演算処理システムに投入される前記ジョブが、前記二次ストレージ装置に格納されているデータを前記ジョブに指定されている前記アプリケーション実行前に前記複数のストレージ装置に読み出しておくことを指定していると判定した場合、前記データ配分装置は、当該アプリケーションが要求する入出力性能に応じた数に前記データをあらかじめ複数の記憶ドライブに分散して格納しておく、並列演算処理システムのデータ配分装置。
  5.  それぞれがプロセッサとメモリとを有する演算サーバとして構成されている複数の計算ノードによってアプリケーションの並列処理を実行する並列演算処理システムにおいて、前記各計算ノードに前記アプリケーションが使用するデータを配分する方法であって、
     前記並列演算処理システムの一部の前記演算サーバには特定の前記アプリケーションを実行する場合に当該アプリケーションの指定に従ってより高速の演算処理を実行する演算加速機構が設けられており、
     並列演算処理システムにおいて、前記アプリケーションが使用するデータは、複数のストレージ装置に分散して格納されており、
     プロセッサとメモリとを有するコンピュータが、
     いずれの前記演算サーバが前記演算加速機構を有しているかを示す情報である演算加速機構所在情報と、いずれの前記アプリケーションが前記演算加速機構を利用するかを示す情報であるアプリケーション特性情報とを保持しており、
     いずれの前記アプリケーションを実行するかが指定されているジョブを受領し、
     前記ジョブに指定されている実行すべき前記アプリケーションについて、前記アプリケーション特性情報及び前記演算加速機構所在情報を参照して、前記アプリケーションが演算加速機構を有する前記演算サーバを利用するか判定し、当該アプリケーションについて前記演算サーバから受領するデータ入出力要求に関して入出力処理優先度を高める旨を記録した入出力処理優先度情報を生成して前記各ストレージ装置に配布し、前記各ストレージ装置が当該入出力処理優先度情報に基づいて入出力帯域制御の実行を可能とする、
    並列演算処理システムのデータ配分方法。
  6.  それぞれがプロセッサとメモリとを有する演算サーバとして構成されている複数の計算ノードによってアプリケーションの並列処理を実行する並列演算処理システムにおいて、前記各計算ノードに前記アプリケーションが使用するデータを配分するために用いられるデータ配分プログラムであって、
     前記並列演算処理システムには、前記並列演算処理システムの一部の前記演算サーバには特定の前記アプリケーションを実行する場合に当該アプリケーションの指定に従ってより高速の演算処理を実行する演算加速機構が設けられており、
     前記並列演算処理システムにおいて、前記アプリケーションが使用するデータは、複数のストレージ装置に分散して格納されており、
     プロセッサとメモリとを有するコンピュータに、
     いずれの前記演算サーバが前記演算加速機構を有しているかを示す情報である演算加速機構所在情報と、いずれの前記アプリケーションが前記演算加速機構を利用するかを示す情報であるアプリケーション特性情報とを保持し、
     いずれの前記アプリケーションを実行するかが指定されているジョブを受領し、
     前記ジョブに指定されている実行すべき前記アプリケーションについて、前記アプリケーション特性情報及び前記演算加速機構所在情報を参照して、前記アプリケーションが演算加速機構を有する前記演算サーバを利用するか判定し、当該アプリケーションについて前記演算サーバから受領するデータ入出力要求に関して入出力処理優先度を高める旨を記録した入出力処理優先度情報を生成して前記各ストレージ装置に配布し、前記各ストレージ装置が当該入出力処理優先度情報に基づいて入出力帯域制御の実行を可能とする処理を実行させる、並列演算処理システムのデータ配分プログラム。
PCT/JP2014/058445 2014-03-26 2014-03-26 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム WO2015145598A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2014/058445 WO2015145598A1 (ja) 2014-03-26 2014-03-26 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム
US14/910,420 US10057338B2 (en) 2014-03-26 2014-03-26 Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/058445 WO2015145598A1 (ja) 2014-03-26 2014-03-26 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム

Publications (1)

Publication Number Publication Date
WO2015145598A1 true WO2015145598A1 (ja) 2015-10-01

Family

ID=54194196

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/058445 WO2015145598A1 (ja) 2014-03-26 2014-03-26 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム

Country Status (2)

Country Link
US (1) US10057338B2 (ja)
WO (1) WO2015145598A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6327994B2 (ja) 2014-07-28 2018-05-23 ルネサスエレクトロニクス株式会社 制御システムおよび半導体装置
US10356158B2 (en) 2016-05-16 2019-07-16 Carbonite, Inc. Systems and methods for aggregation of cloud storage
US10404798B2 (en) * 2016-05-16 2019-09-03 Carbonite, Inc. Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services
US11100107B2 (en) 2016-05-16 2021-08-24 Carbonite, Inc. Systems and methods for secure file management via an aggregation of cloud storage services
US10116629B2 (en) 2016-05-16 2018-10-30 Carbonite, Inc. Systems and methods for obfuscation of data via an aggregation of cloud storage services
CN110543361B (zh) * 2019-07-29 2023-06-13 中国科学院国家天文台 一种天文数据并行处理装置和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109952A1 (ja) * 2009-03-27 2010-09-30 日本電気株式会社 資源割り当て要求装置、資源割り当て装置、資源割り当て要求方法および資源割り当て方法
WO2012105056A1 (ja) * 2011-02-04 2012-08-09 株式会社日立製作所 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体
JP2013527516A (ja) * 2010-03-26 2013-06-27 バーチャルメトリックス・インコーポレイテッド コンピュータシステムの細粒度パフォーマンスリソース管理

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533141B2 (en) * 2003-01-24 2009-05-12 Sun Microsystems, Inc. System and method for unique naming of resources in networked environments
US8619775B2 (en) * 2008-07-21 2013-12-31 Ltn Global Communications, Inc. Scalable flow transport and delivery network and associated methods and systems
JP5246872B2 (ja) 2009-03-27 2013-07-24 国立大学法人東北大学 ストレージシステムおよびストレージ管理方法
JP2012133629A (ja) 2010-12-22 2012-07-12 Nomura Research Institute Ltd ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法
JP5884578B2 (ja) 2012-03-16 2016-03-15 富士通株式会社 アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
US9619297B2 (en) * 2012-06-25 2017-04-11 Microsoft Technology Licensing, Llc Process migration in data center networks
US9521187B2 (en) * 2013-07-12 2016-12-13 Clearwire Ip Holdings Llc Managed filed transfer utilizing dynamic horizontal and vertical scaling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109952A1 (ja) * 2009-03-27 2010-09-30 日本電気株式会社 資源割り当て要求装置、資源割り当て装置、資源割り当て要求方法および資源割り当て方法
JP2013527516A (ja) * 2010-03-26 2013-06-27 バーチャルメトリックス・インコーポレイテッド コンピュータシステムの細粒度パフォーマンスリソース管理
WO2012105056A1 (ja) * 2011-02-04 2012-08-09 株式会社日立製作所 並列分散処理システムのデータ転送制御方法、並列分散処理システム及び記憶媒体

Also Published As

Publication number Publication date
US10057338B2 (en) 2018-08-21
US20160182620A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
US10277525B2 (en) Method and apparatus for disaggregated overlays via application services profiles
US11778057B2 (en) System and method for intent-based service deployment
WO2015145598A1 (ja) 並列演算処理システムのデータ配分装置、データ配分方法、及びデータ配分プログラム
US10715460B2 (en) Opportunistic resource migration to optimize resource placement
US9262199B2 (en) Virtualization and dynamic resource allocation aware storage level reordering
US8904384B2 (en) Reducing data transfer overhead during live migration of a virtual machine
Ananthanarayanan et al. True elasticity in multi-tenant data-intensive compute clusters
US9400664B2 (en) Method and apparatus for offloading storage workload
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
US11573946B2 (en) Management of memory usage using usage analytics
US20200159587A1 (en) Releasable resource based preemptive scheduling
US20180227240A1 (en) Data and task reallocation in distributed computing platforms
US10776173B1 (en) Local placement of resource instances in a distributed system
KR102052964B1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
US20150088816A1 (en) Cost reduction for servicing a client through excess network performance
US10990433B2 (en) Efficient distributed arrangement of virtual machines on plural host machines
US20130185531A1 (en) Method and apparatus to improve efficiency in the use of high performance storage resources in data center
US20190012083A1 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
US10095625B2 (en) Storage system and method for controlling cache
CN107528871B (zh) 存储系统中的数据分析
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
JP2021513137A (ja) 階層型ストレージ管理システムにおけるデータ・マイグレーション
JP6653786B2 (ja) I/o制御方法およびi/o制御システム
WO2015052823A1 (ja) クラウド管理装置、その管理方法、およびそのシステム
US11442633B2 (en) Method, electronic device and computer program product for storage management

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14910420

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP