WO2015068382A1 - 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法 - Google Patents
情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法 Download PDFInfo
- Publication number
- WO2015068382A1 WO2015068382A1 PCT/JP2014/005561 JP2014005561W WO2015068382A1 WO 2015068382 A1 WO2015068382 A1 WO 2015068382A1 JP 2014005561 W JP2014005561 W JP 2014005561W WO 2015068382 A1 WO2015068382 A1 WO 2015068382A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- calculation
- core
- processing
- exception
- control
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 939
- 230000010365 information processing Effects 0.000 title claims abstract description 85
- 238000012545 processing Methods 0.000 title claims description 257
- 238000003672 processing method Methods 0.000 title claims description 33
- 238000000034 method Methods 0.000 claims abstract description 653
- 230000008569 process Effects 0.000 claims abstract description 634
- 238000001514 detection method Methods 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 36
- 238000004886 process control Methods 0.000 claims abstract description 9
- 238000012546 transfer Methods 0.000 claims description 55
- 230000008859 change Effects 0.000 claims description 18
- 238000011161 development Methods 0.000 abstract description 10
- 230000015654 memory Effects 0.000 description 67
- 230000006870 function Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 15
- 238000011109 contamination Methods 0.000 description 10
- 230000000630 rising effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Definitions
- the present invention relates to an information processing apparatus, an information processing method, a recording medium, a calculation processing apparatus, and a calculation processing method.
- the present invention relates to a calculation processing method.
- a NUMA (Non-Uniform Memory Access) type parallel computer in which a plurality of nodes each consisting of a processor and memory pair are connected by an interconnect is known.
- the NUMA type parallel computer is a system in which the access cost to the local memory of the same node as the processor and the access cost to the remote memory of another node are non-uniform.
- a parallel computer As an example of such a parallel computer, a plurality of clusters including one or more processors and a main memory used by the one or more processors are provided, and are resident in a real memory in a part of a virtual space of the process.
- a parallel computer provided with a communication area is known. This parallel computer can reduce the overhead of inter-process data communication (Patent Document 1).
- Patent Document 2 a computer system that includes a control node and an operation node and can be set to execute only a remote process in the operation node is known (Patent Document 2).
- data that is not used by application programs may be stored in the cache due to memory access that occurs when OS processing such as a kernel process operates.
- OS processing such as a kernel process operates.
- cache pollution a problem called cache pollution in which data used in the application program is evicted from the cache may occur.
- accelerator type computers it is also conceivable to use an accelerator type computer as a method to alleviate such problems.
- the OS does not operate on an accelerator type computer.
- accelerator type computers do not have API (Application Programming Interface) (for example, POSIX (Portable Operating System UNIX (registered trademark)) API, which is followed by widely used programming languages (such as C language). System control cannot be performed.
- API Application Programming Interface
- POSIX Portable Operating System UNIX (registered trademark) API
- C language widely used programming languages
- System control cannot be performed.
- accelerator-type computers need to be developed in a dedicated language, making it difficult to use past programming assets.
- virtualization using a virtual machine may be considered. For example, by introducing a virtual machine that emulates a commodity architecture to a computer having an architecture different from that of the commodity, development of an OS or a device driver can be made unnecessary. In general, a virtual machine is usually simpler than an OS. Therefore, it is considered that the development cost can be reduced by introducing a virtual machine.
- a virtual machine is usually simpler than an OS. Therefore, it is considered that the development cost can be reduced by introducing a virtual machine.
- overhead occurs due to emulation by the virtual machine.
- virtualization using a virtual machine cannot solve the above-described problems of OS jitter and cache contamination.
- an object of the present invention is to provide an information processing apparatus that solves the problems described above, that is, the problem that OS jitter and cache contamination occur in a parallel computer, and the problem of loss of versatility and high development costs. There is to do.
- an information processing apparatus provides: A control core in which an operating system is incorporated, and at least one calculation core controlled by the control core and performing predetermined calculation processing,
- the control core includes a calculation core control unit that instructs the calculation core that is stopped to instruct the calculation core to start the calculation process,
- the calculation core includes calculation processing control means for controlling the calculation core so as to start the calculation processing in response to an instruction to start the calculation processing from the calculation core control means, and during execution of the calculation processing.
- an exception detection unit that detects a preset exception process that has occurred and stops execution of the calculation process in which the exception process has occurred.
- a computer-readable recording medium is A computer including an information processing apparatus including a control core in which an operating system is incorporated and at least one calculation core controlled by the control core and performing predetermined calculation processing, A calculation core control process that instructs the calculation core to stop the calculation core to start the calculation process; A calculation processing control process for controlling the calculation core to start the calculation process in response to an instruction to start the calculation process; A program that detects a preset exception process that occurs during execution of the calculation process and executes an exception detection process that stops execution of the calculation process in which the exception process has occurred is recorded.
- an information processing method includes: In response to an instruction to start the calculation process from the control core, the calculation core starts the predetermined calculation process, When a preset exception process occurs during execution of the calculation process by the calculation core, the calculation core detects the exception process and stops the calculation process in which the exception process has occurred.
- calculation processing apparatus which is the other form of this invention, A calculation processing device that performs predetermined calculation processing under the control of an external device, A calculation processing control means for controlling the calculation processing device so as to start the calculation processing in response to an instruction to start the calculation processing from an external device, and a preset exception processing generated during the execution of the calculation processing And exception detection means for stopping the execution of the calculation process in which the exception process has occurred.
- a computer-readable storage medium is A calculation process control process for controlling the calculation processing apparatus to start the calculation process in response to an instruction to start the calculation process from an external apparatus, and a preset exception process that occurs during the execution of the calculation process And a program for executing an exception detection process for stopping the execution of the calculation process in which the exception process has occurred.
- a calculation processing method includes: In response to an instruction to start calculation processing from an external device, the predetermined calculation processing is started, When a preset exception process occurs during execution of the calculation process, the exception process is detected, and the calculation process in which the exception process has occurred is stopped.
- the present invention which is configured as described above, can provide an inexpensive and versatile information processing apparatus while solving the problems of OS jitter and cache contamination.
- FIG. 1 is a block diagram showing a configuration of a parallel computer 1 assumed in the present embodiment.
- FIG. 2 is a block diagram showing the configuration of the parallel computer 1 in the present embodiment.
- FIG. 3 is a block diagram illustrating a configuration of the calculation core 611 included in the calculation node 6.
- FIG. 4 is a functional block diagram showing the configuration of the proxy process 511.
- FIG. 5 is a table showing an example of data stored in association with the process correspondence table 522.
- FIG. 6 is a table showing an example of data stored in the calculation process DB 521.
- FIG. 7 is a flowchart showing how necessary operations are performed from the start to the end of the calculation process in the first embodiment.
- 8 to 13 are flowcharts showing operations required from the start to the end of the calculation process.
- NUMA is a node in which a plurality of nodes each consisting of a pair of a memory and a processor exist and are connected by an interconnect.
- the parallel computer 1 in the present embodiment is used in the field of HPC (High Performance Computing), for example.
- the parallel computer 1 in this embodiment includes a node 2 and a node 3.
- the node 2 includes a CPU (Central Processing Unit) 21, a memory 22, and a data transfer circuit 23.
- the node 3 includes a CPU 31, a memory 32, and a data transfer circuit 33. Further, the node 2 and the node 3 are communicably connected via an inter-node communication device 4 (including a part of the data transfer circuit).
- an inter-node communication device 4 including a part of the data transfer circuit.
- both the node 2 and the node 3 included in the parallel computer 1 include the CPU (21, 31), the memory (22, 32), and the data transfer circuit (23, 33). Configured. Further, the configurations of the node 2 and the node 3 are the same. Therefore, the configuration of the node 2 will be described below.
- the parallel computer 1 in the present embodiment may be configured to include two or more nodes.
- Each node may adopt a different architecture such as x86 and ARM (registered trademark).
- the CPU 21 includes a single or multiple processor cores.
- the CPU 21 includes a plurality of processor cores 211, 212,..., 21m (m is a natural number) (hereinafter referred to as the processor core 211 unless otherwise distinguished).
- Each processor core 211 has a communication path to the memory 22 and the data transfer circuit 23. That is, each of the plurality of processor cores 211 included in the CPU 21 is configured to be able to communicate with the memory 22 and the data transfer circuit 23.
- the memory 22 stores data, programs to be executed, and the like.
- the memory 22 is shared by a plurality of processor cores 211 (processor cores of the same node) included in the CPU 21.
- the memory 22 in the present embodiment is configured by a semiconductor memory such as a RAM (Random Access Memory), for example.
- the data transfer circuit 23 is configured to have two functions, a DMA (Direct Memory Access) engine function 231 and a CPU communication function 232.
- the DMA engine function 231 is a function for accessing the memory 22 without using the CPU 21.
- the CPU communication function 232 is a function for accessing a resource such as a register on the CPU 21. That is, the data transfer circuit 23 has a function of accessing the memory 22 without using the CPU 21 and a function of accessing resources such as a register on the CPU 21.
- the CPU communication function 232 may be configured such that resources such as registers on the CPU 21 are allocated to the memory space and accessed from the DMA engine function 231.
- the node 3 has the same configuration as the node 2. That is, the node 3 includes a CPU 31, a memory 32, and a data transfer circuit 33.
- the CPU 31 includes a plurality of processor cores 311, 312,..., 31 m (hereinafter referred to as a processor core 311 unless otherwise specified).
- the data transfer circuit 33 includes a DMA engine function 331 and a CPU communication function 332. The details of each component have already been described using the node 2 and will be omitted.
- the inter-node communication device 4 can be realized by, for example, an interconnect having a DMA function such as PCI (Peripheral Components Interconnect) Express, Infiniband, or an RDMA (Remote DMA) function and a transmission path.
- DMA Peripheral Components Interconnect
- PCI Peripheral Components Interconnect Express
- Infiniband Infiniband
- RDMA Remote DMA
- the parallel computer 1 in the present embodiment includes one control node and one or more calculation nodes.
- the control node has an OS function, but the calculation node does not have an OS function.
- the control node has a function of deploying a plurality of processes on the calculation node and executing the calculation processing at the same time as a normal OS performs.
- the process developed on the calculation node by the control node is referred to as a calculation process.
- the calculation process is generated when the application program operating on the calculation node is started, and is discarded when the execution is completed.
- the parallel computer 1 is constructed with the node 2 shown in FIG. 1 as the control node 5 and the node 3 as the calculation node 6 will be described in detail with reference to FIG.
- the processor core 311 on the calculation node 6 is referred to as a calculation core.
- the calculation node 6 is a node on which the OS does not operate (no OS is incorporated).
- the parallel computer 1 according to the present embodiment is configured to be able to adopt a calculation model realized by a general computer on a calculation node 6 where the OS does not operate.
- the computing node 6 implements an alternative function of a service provided by a general OS by transmitting / receiving data to / from the control node 5 via the inter-node communication device 4.
- the calculation node 6 (corresponding to the node 3 in FIG. 1) in the present embodiment includes the CPU 31, the memory 32, and the data transfer circuit 33 (see FIG. 1).
- the CPU 31 includes a plurality of processor cores 311.
- the calculation node 6 includes a plurality of calculation cores 611, 612,..., 61 m (hereinafter referred to as calculation core 611 unless otherwise distinguished).
- each of the plurality of calculation cores 611 shown in FIG. 2 is the same as each of the plurality of processor cores 311 shown in FIG. 1 (as described above, the processor cores on the calculation node 6 are 311 is called a calculation core 611). That is, the CPU 31 included in the calculation node 6 includes a plurality of calculation cores 611. Each of the plurality of calculation cores 611 is configured to be able to communicate with the memory 32 and the data transfer circuit 33. As described above, the processor core 311 may be singular. That is, the calculation core 611 may be singular. The detailed configuration of the calculation core 611 will be described later.
- the memory 32 is shared by the calculation cores 611 on the same calculation node 6.
- the memory 32 on the calculation node 6 is configured to store a plurality of data related to the calculation process as shown in FIG.
- data related to the calculation process stored in the memory 32 is referred to as process images 321, 322,..., 32n (n is a natural number) (hereinafter referred to as process image 321 unless otherwise distinguished). Call.
- Each process image 321 has communication buffer areas 3211, 3221,..., 32n1 (hereinafter referred to as a communication buffer area 3211 unless otherwise specified) for reading and writing data of a calculation process from the control node 5. included. Further, the architecture state of the computing core 611 that operates the process image 321 is referred to as a context 611A, 612B,..., 61mC (hereinafter referred to as a context 611A unless otherwise distinguished).
- the total number of process images 321 that can be stored in the memory 32 can take an arbitrary value as long as the total capacity does not exceed the capacity of the physical memory. Therefore, the number of calculation cores 611 and the number of process images 321 stored in the memory 32 do not necessarily match.
- each calculation core 611 stores one calculation process context 611A. Then, each calculation core 611 performs a calculation process using the process image 321 stored on the memory 32 associated with the stored context 611A.
- the context 611A that cannot be stored in the calculation core 611 cannot be executed at that time. In that case, it is possible to make it appear that the total number of the calculation cores 611 is virtually increased by replacing the context 611A stored in the calculation core 611. Details of the context 611A replacement method (context switch) will be described later.
- the data transfer circuit 33 is not particularly different from the function described in the configuration of the node 2. Therefore, detailed description is omitted.
- the calculation core 611 includes a general-purpose register group 6111, a control register group 6112 (calculation processing control unit), an exception detection unit 6113 (exception detection unit), and an exception notification unit 6114 (exception detection unit). And a register group access unit 6115 (a part of the data transfer circuit).
- the calculation core 611 is configured to be able to communicate with the inter-node communication device 4 via the data transfer circuit 33. Further, the calculation core 611 is configured to be able to communicate with the memory 32.
- the general-purpose register group 6111 has the same configuration as a general processor such as x86 or ARM. That is, the general-purpose register group 6111 includes a program counter (PC: Program Counter), a general-purpose register (GPR: General-Purpose Register) that stores the operation result, and the like.
- PC Program Counter
- GPR General-Purpose Register
- the control register group 6112 is a register for controlling execution of instructions by the calculation core 611.
- the control node 5 instructs the control register group 6112 through the data transfer circuits 23 and 33 and the inter-node communication device 4 to start execution of the instruction or to stop execution of the instruction. Send “Stop Execution”.
- the calculation core 611 starts calculation processing according to the contents of the general-purpose register group 6111. Specifically, when the control register group 6112 receives an instruction to “start execution”, the calculation core 611 fetches an instruction stored in the memory 32 according to the value of the program counter stored in the general-purpose register group 6111. Then, the calculation core 611 decodes and executes the fetched instruction. Thereafter, the calculation core 611 updates the contents of the general-purpose register group 6111 and the memory 32 in accordance with the execution of the instruction. Such a state in which an instruction is executed by the calculation core 611 (a calculation process is being performed) is referred to as an “instruction execution state”.
- the control node 5 transmits “stop execution” to the control register group 6112. Then, the calculation core 611 stops executing a new instruction. As a result, the calculation core 611 stops executing the instruction. Such a state in which “execution stopped” is transmitted and no instruction is in progress on the calculation core 611 is referred to as an “instruction execution stopped state”. Once the state transitions to the “instruction execution stop state”, the calculation core 611 does not execute a new instruction (calculation process) until the control node 5 issues a “start execution” instruction again.
- control register group 6112 is configured such that the state of the calculation core 611 (instruction execution state or instruction execution stop state) can be referred to from the control node 5.
- the control register group 6112 (calculation core 611) does not have a function to be referred to, the calculation core 611 notifies the control node 5 of the state of the calculation core 611 by sending exception information described later. It may be configured so that
- the exception detection unit 6113 is a part that detects an exception that has occurred when an exception occurs during execution of an instruction by the control register group 6112. Specifically, the exception detection unit 6113 transmits an instruction to “stop execution” to the control register group 6112 when any exception is detected during execution of the instruction. At the same time (or before and after), the exception detection unit 6113 requests an exception notification to the exception notification unit 6114 (notifies the occurrence of an exception). A request for exception notification to the exception notification unit 6114 by the exception detection unit 6113 is performed, for example, when the exception detection unit 6113 transmits exception detection information to the exception notification unit 6114.
- the exception detected by the exception detection unit 6113 indicates an operation exception such as a division by zero exception. Also, for example, it refers to memory access exceptions such as memory access boundary violations, and exceptions mounted on general processors such as software traps for calling system calls. When such an exception occurs during execution of an instruction, the exception detection unit 6113 detects the generated exception.
- the exception notification unit 6114 notifies the control node 5 that the calculation core 611 has been stopped. Specifically, the exception notification unit 6114 notifies the control node 5 of “stop of execution” to the control node 5 via the inter-node communication device 4 based on the exception detection information received from the exception detection unit 6113. To do.
- the exception notification means performed by the exception notification unit 6114 may be implemented in any way as long as it can notify the control node 5 of the occurrence of the exception.
- the exception notification unit 6114 for example, there is a method of using an interrupt function of the inter-node communication device 4 such as PCI Express MSI (Message Signaled Interrupts) / MSI-X (MSI Extended). Further, for example, a method of performing DMA writing to a memory area reserved in advance (memory 22 provided in the control node 5) may be used.
- control node 5 When such a method of notifying the occurrence of an exception to the control node 5 by DMA writing to the memory 22 is adopted, the control node 5 (the computation node management process described later) notifies the exception from the computation node 6. The presence or absence of this is monitored by a method such as polling.
- the exception notification unit 6114 can be configured so as to be able to suppress notification of occurrence of an exception to the control node 5 by setting from the control node 5 side.
- the control node 5 can directly monitor the execution state of the control register group 6112 (polling or the like). 5 may be configured.
- the register group access unit 6115 reads from and writes to each register of the general-purpose register group 6111 and the control register group 6112 based on the instruction transmitted from the control node 5.
- the general-purpose register group 6111 and the control register group 6112 transmit / receive data to / from the control node 5 via the register group access unit 6115, the data transfer circuit 33, and the inter-node communication device 4.
- the register group access unit 6115 can be configured not to permit reading and writing to the general-purpose register group 6111 of the calculation core 611 in the “instruction execution state”.
- the register group access unit 6115 can be configured so that the register group access unit 6115 performs reading and writing to the general-purpose register group 6111 only to the calculation core 611 in the “instruction execution stopped state”. In this case, the operation at the time of accessing the general-purpose register group 6111 by the register group access unit 6115 with respect to the calculation core 611 in the “instruction execution state” becomes undefined (for example, ignored).
- the control node 5 has the same configuration as a normal stand-alone computer system that employs an OS. As described above, the control node 5 is configured to be able to provide the OS function service to the computation node 6.
- control node OS 50 the OS installed on the control node 5 is referred to as a control node OS 50.
- control node OS 50 for example, a commodity OS used in a general computer represented by Linux (registered trademark), Windows (registered trademark), or the like can be used.
- control node 5 (corresponding to the node 2 in FIG. 1) in the present embodiment includes the CPU 21 (control core, exception processing proxy unit, calculation core control unit), memory 22, and data transfer circuit 23. (Refer to FIG. 1).
- the CPU 21 includes a plurality of processor cores 211.
- control node OS 50 operates on the control node 5. Therefore, unlike the calculation node 6, the control node 5 can virtualize the hardware (processor core 211, memory 22) using the system management function of the OS. Accordingly, the process configuration on the control node 5 will be described below with reference to FIG.
- the control node 5 calculates, on the control node OS 50, a plurality of proxy processes 511, 512,..., 51n (hereinafter referred to as a proxy process 511 unless otherwise specified) (corresponding to an exception processing proxy unit),
- the node management process 52 (corresponding to a calculation core control unit) is expanded. Further, the management node management process 52 includes a calculation process DB (DataBase) 521 and a process correspondence table 522.
- the proxy process 511 is a process generated corresponding to each of the calculation processes developed on the calculation node 6. That is, the proxy process 511 is generated in a one-to-one correspondence with each of the plurality of process images 321 stored in the memory 32 on the calculation node 6. Therefore, the number of proxy processes 511 deployed on the control node 5 is the same as the number of process images 321 stored in the memory 32 of the calculation node 6.
- the proxy process 511 receives a request to the OS transmitted by the calculation process on the corresponding calculation node 6 via the inter-node communication device 4. Then, the proxy process 511 performs necessary processing as an alternative to the OS that should exist on the computation node 6. In other words, the proxy process 511 is used to process a system call instead of the calculation node 6 that does not have an OS when it becomes necessary to call a system call while executing an instruction on the calculation core 611. The proxy process 511 is used when starting a calculation process, as will be described later.
- the proxy process 511 has an argument writing area 5111 and a data buffer area 5112 as shown in FIG. As for the data buffer area 5112, the proxy process 511 may be configured to secure the area as necessary.
- Argument writing area 5111 is an area for writing a system call number and an argument.
- the argument writing area 5111 is an area in which the reference destination data of the pointer is written when the pointer is in the argument of the system call.
- a general ABI Application Binary Interface
- the OS is not incorporated in the calculation core 611 of this embodiment. Therefore, in the system of this embodiment, the system call number and the argument are written in the argument writing area 5111 in the proxy process 511.
- the data buffer area 5112 is an area used when a buffer is transferred from the calculation core 611 to the proxy process 511, for example, when it is determined from the content of the system call that the buffer needs to be transferred. Buffer transfer is required, for example, with a write system call.
- the proxy process 511 is a process used when it becomes necessary to call a system call in the calculation core 611.
- the two areas of the argument write area 5111 and the data buffer area 5112 are areas used before and after generating a software exception in order to exchange data necessary for calling a system call in the calculation core 611. It is.
- the two areas of the argument write area 5111 and the data buffer area 5112 are substituted so that the calculation core 611 is notified before each area becomes necessary (or when it becomes necessary).
- Process 511 is configured. Therefore, the calculation core 611 can write appropriate data in each area when it becomes necessary to request a system call while executing an instruction. Then, after writing necessary data in each area, the calculation core 611 generates a software exception. With this configuration, the calculation core 611 can cause the control node 5 to process a system call.
- the calculation node management process 52 is a process generated for the calculation node 6.
- the calculation node management process 52 manages hardware resources such as the calculation core 611 (processor core 311) and the memory 32 on the calculation node 6.
- the management node management process 52 also mediates access from the proxy process 511 to the calculation core 611 for some resources.
- the calculation node management process 52 assigns the calculation cores 611 that execute the calculation processes.
- the management node management process 52 performs memory management on the calculation node 6 and the like. In this manner, the management node management process 52 performs an operation that requires arbitration between processes.
- the calculation node management process 52 includes hardware resources such as a calculation core 611 and a memory 32 on the calculation node 6, virtualized resources such as a calculation process and a proxy process, To manage the association.
- the calculation node management process 52 in the present embodiment associates the proxy process 511 and the calculation core 611 and stores them in the process correspondence table 522 for management.
- An example of data stored in association with the process correspondence table 522 is shown in FIG.
- “calculation process ID” and “allocated calculation core number” are stored in association with each other.
- the “calculation process ID” is an ID assigned to each proxy process 511 (calculation process), and is used to identify the proxy process 511 and the calculation process.
- the “assigned calculation core number” is a number assigned to the calculation core 611 in order to identify the calculation core 611 that is executing the calculation process indicated by the “calculation process ID”. In this way, by associating the proxy process 511 (calculation process) with the calculation core 611 that is executing the calculation process, the calculation node management process 52 has a hardware resource, a virtualized resource, Can be linked and managed.
- calculation node management process 52 stores the calculation process information on the calculation node 6 in the calculation process DB 521 for management.
- FIG. 6 is a diagram illustrating an example of a database generated by the calculation process saving information stored in the general-purpose register group 6111 on the calculation core 611 to the control node 5 side.
- the calculation process DB 521 includes information on the calculation process such as a calculation process ID, a process state, a proxy process ID, and each register (register A, register B, register C,%) Included in the general-purpose register group. As an item.
- the calculation process DB 521 also includes information such as an allocated memory area, for example.
- information indicating the state of the calculation process such as that the calculation process is operable and the operation of the calculation process is stored is stored is stored.
- the column of each register item stores the value of each register (register A, register B, register C).
- One row of the table in the database stored in the calculation process DB 521 corresponds to the context of one calculation process.
- the above is the process configuration deployed on the control node 5.
- a plurality of calculation node management processes 52 are generated for each calculation node.
- the calculation process can access its own process image 321, its own context 611A, and the argument writing area 5111 into which its proxy process 511 has written data.
- the proxy process 511 can access the resources accessible by the corresponding calculation process and all the resources accessible as processes on the control node 5. That is, the proxy process 511 can access the process image 321 and the context 611A.
- a resource accessible as a process on the control node 5 for example, a file of a file system existing on the control node 5 is applicable.
- the calculation node management process 52 can access all resources on the calculation node 6, the calculation process DB 521, and the process correspondence table 522. Further, the calculation node management process 52 can notify all proxy processes 511 of the occurrence of an exception caused by the calculation process.
- all the resources on the calculation node 6 are all of the memory 32 on the calculation node 6, the general-purpose register group 6111 of all the calculation cores 611 on the calculation node 6, and the control register group 6112. . Since all the memories 32 on the calculation node 6 can be accessed, the calculation node management process 52 has an access right to the process image 321 of all the calculation processes.
- calculation node management process 52 can access the calculation process DB 521 as described above. Therefore, the management node management process 52 has an access right to the context 611A of all the calculation processes.
- the computing node management process 52 does not necessarily need to be able to access the resources of the proxy process 511, for example, the memory area and context of the proxy process 511.
- the above is the configuration of the parallel computer 1 in the present embodiment. By configuring in this way, it is possible to configure an inexpensive and versatile parallel computer while solving the problems of OS jitter and cache contamination.
- FIG. 7 is a flowchart showing how necessary operations are performed from the start to the end of the calculation process developed in the parallel computer 1 having the above-described configuration. As shown in FIG. 7, the following operations are required to develop a calculation process on the parallel computer 1 (start the calculation process and end the calculation process). 1. Start of calculation process (start of program) 2. Stop execution of calculation process (stop program) 3. Exception handling that occurred in the calculation process (exception handling) 4). Processing when a calculation process requires an OS service (system call) 5. Changing assignment of calculation process to calculation core (context switch) 6). End of the calculation process (end of program).
- calculation core 611 continues to execute the program (instruction, calculation processing) until the program being executed is terminated or stopped by any of the above operations.
- the OS on the calculation node 6 is eliminated, and a service on the assumption of the presence of an OS such as POSIX API is provided on the calculation node 6. I can do it. That is, by realizing the above operation, it is possible to cover the operation of a process in a general OS environment. Details of each of the above operations will be described below.
- FIG. 8 is a flowchart showing an example of an operation when program execution is started on the computation node 6.
- control node OS 50 operating on the control node 5 generates a proxy process 511 (step S001).
- the proxy process 511 passes the argument writing area 5111 of the proxy process 511 to the management process 52 for computing nodes. Then, the proxy process 511 requests the calculation node management process 52 to generate a calculation process for executing the program (step S002).
- step S003 the calculation node management process 52 requested to generate the calculation process generates a calculation process.
- the calculation node management process 52 creates a new context 611A.
- the management node management process 52 generates a process image 321 related to the calculation process in the memory 32 of the calculation node 6.
- the management node management process 52 adds the generated context 611A associated with the proxy process 511 to the calculation process DB 521.
- the calculation node management process 52 associates the added context 611A of the calculation process DB 521 with the argument write area 5111 passed from the proxy process 511, and the contents of the argument write area 5111 are associated with the context 611A. Add to.
- the calculation node management process 52 generates a calculation process.
- the management node management process 52 returns a handle for accessing the generated calculation process to the proxy process 511.
- a handle there are an ID given by the calculation node management process 52, a process ID, a file descriptor, and the like.
- a region where the process image 321 is mapped by mmap or a pointer to the mapped region may be included.
- the proxy process 511 writes the program to be operated on the computation node 6 and data used for executing the program in the process image 321 of the memory 32 provided in the computation node 6 (step S004).
- the proxy process 511 reads a program to be executed by the calculation core 611. For example, when a program to be executed by the calculation process is stored in a file, the program is read by calling a read system call of the control node OS 50.
- the proxy process 511 places a program to be executed by the calculation core 611 at a location specified by the program in the process image 321 on the memory 32 using the handle passed from the calculation node management process 52. For example, if the handle includes an area where the process image 321 is memory mapped, the proxy process 511 issues a memory store directly to the location specified in the program. For example, when the handle is an ID, a process ID, a file descriptor, or the like given by the calculation node management process 52, the proxy process 511 calculates the position on the process image 321 and the contents to be written to the calculation node. To the management process 52. Then, the proxy process 511 requests the computing node management process 52 to write to the process image 321.
- the proxy process 511 sets an initial value as a register value in the context 611A stored in the calculation process DB 521.
- the proxy process 511 requests the execution start of the calculation program (step S005). Specifically, the proxy process 511 changes the calculation process to an executable state using the handle acquired from the calculation node process 52. By changing the calculation process to the executable state in this way, when there is a calculation core 611 that is not used (not in the instruction execution state) in the calculation node 6, execution of the program is started by the calculation core 611. Details of this operation will be described later (see step S055).
- FIG. 9 is a flowchart illustrating an example of an operation when the calculation core 611 corresponding to the proxy process 511 is stopped from the control node 5 side.
- the calculation node management process 52 refers to the process correspondence table 522 and associates the “calculation process ID” with the “calculation process ID” indicating the calculation process associated with the process image 321 to be stopped.
- the assigned “assigned calculation core number” is acquired.
- step S014 when the calculation node management process 52 cannot find the “assigned calculation core number” associated with the “calculation process ID”, it does not perform the operations of step S012 and step S013.
- the context state of the calculation process DB 521 is updated.
- step S011 when the calculation core 611 is assigned to the calculation process (YES in step S011), the calculation node management process 52 sends the control register group 6112 to the control register group 6112 via the register group access unit 6115.
- the stop of the calculation core 611 is instructed (step S012). That is, when the calculation core 611 is assigned to the calculation process, the calculation node management process 52 instructs the control register group 6112 to “stop execution”.
- calculation node management process 52 checks the operation state of the calculation core 611 with respect to the control register group 6112 via the register group access unit 6115 (step S013).
- calculation node management The process 52 confirms the operation state of the calculation core 611 again after a predetermined time has elapsed.
- the calculation node management process 52 determines that the calculation core number (assigned calculation core number) is stopped. ) Including the process correspondence table 522 is updated. Further, the management node management process 52 updates the state of the context 611A in the calculation process DB 521 including the calculation process ID associated with the assigned calculation core number (step S014).
- FIG. 10 is a flowchart illustrating an example of an operation when an exception occurs during execution of a program (instruction, calculation process) in the calculation core 611.
- step S021 it is assumed that an exception occurs during execution of a program by the calculation core 611 (step S021). Note that the definition of the exception has already been described when the configuration of the parallel computer 1 is described, and will be omitted.
- the exception detection unit 6113 detects the generated exception. Then, the exception detection unit 6113 instructs the control register group 6112 to “stop execution” (step S022).
- the exception detection unit 6113 notifies the exception notification unit 6114 of the occurrence of the exception.
- the exception notification unit 6114 that has received the notification of the occurrence of the exception from the exception detection unit 6113 notifies the calculation node management process 52 in the control node 5 of the occurrence of the exception (step S023).
- the exception notification unit 6114 may be realized by any method.
- FIG. 11 is a flowchart showing an example of an operation when processing a system call called by the calculation node 6.
- the process image 321 calls a system call while operating on the calculation core 611, in general ABI (Application Binary Interface), the system call number and the general-purpose register or stack on the processor core 311 (calculation core 611) are stored. Write arguments.
- the OS is not incorporated in the calculation core 611 of this embodiment. Therefore, it becomes necessary to perform an operation described later.
- the calculation process of the present embodiment writes the system call number and the argument in the argument write area 5111 in the proxy process 511 (step S031).
- the proxy process 511 in which the system call number and the argument are written determines whether or not there is a pointer in the argument of the system call to be called (step S032). If there is no pointer in the argument (NO in step S032), step S033 and step S034 described later are skipped, and the processing of step S035 described later is performed by the calculation core 611. On the other hand, if there is a pointer in the argument (YES in step S032), proxy process 511 continues to determine whether the size of the data referred to by the pointer is smaller than the size of argument write area 5111.
- the proxy process 511 may refer to the value of an argument that specifies the size when determining the size of the data to be referred to. Alternatively, the proxy process 511 may use an argument type for size determination (step S033).
- step S034 described later is skipped, and the calculation core 611 performs the process of step S035 described later.
- proxy process 511 writes the reference reference data of the pointer in argument write area 5111 (step S034). ).
- the calculation core 611 generates a system call exception (step S035).
- system call exceptions are handled in the same node (in the calculation node 6).
- the calculation node 6 notifies the control node 5 by a method such as interruption. Since the details of the exception generation process have already been described, a description thereof will be omitted.
- the calculation node management process 52 that has received the notification of the occurrence of the exception refers to the process correspondence table 522 and obtains the calculation process ID from the number of the calculation core 611 that is the source of the exception.
- the calculation node management process 52 refers to the calculation process DB 521 to obtain the proxy process 511 stored corresponding to the number of the calculation core 611 that is the exception generation source. Subsequent processing is performed mainly by the proxy process 511.
- the proxy process 511 analyzes the argument written in its own argument write area 5111 and checks whether or not it is necessary to transfer the buffer in order to execute the system call (step S036).
- proxy process 511 When proxy process 511 confirms that buffer transfer is necessary (YES in step S036), proxy process 511 secures data buffer area 5112 in proxy process 511 (step S037). Then, the proxy process 511 instructs the data transfer circuit 33 (DMA engine function 331) to transfer the contents of the buffer of the process image 321 corresponding to the proxy process 511 to the data buffer area 5112 of the proxy process 511. . Thereby, the contents of the buffer are transferred from the calculation node 6 to the control node 5 (step S038). Such transfer of the contents of the buffer from the calculation node 6 to the control node 5 is required by, for example, a write system call.
- the proxy process 511 makes a system call to the control node OS 50. (Execute a function) (step S039).
- the proxy process 511 determines whether it is necessary to transfer the contents of the buffer in the proxy process 511 to the communication buffer area 3211 of the process image 321 corresponding to the proxy process 511. (Step S040).
- the proxy process 511 instructs the data transfer circuit 33 (DMA engine 331) to transfer the buffer (step S041).
- DMA engine 331 The transfer of the buffer from the control node 5 to the calculation node 6 is required by, for example, a read system call.
- the calculation node management process 52 sets the return value of the system call. Write to the general-purpose register group 6111 (step S042). Note that the return value of the system call to the general-purpose register group 6111 by the calculation node management process 52 is written via the register group access 6115 in the calculation core 611. In general ABI, the return value of the system call is written in a general-purpose register in the same node. However, in the parallel computer 1, the return value of the system call is written from the control node 5 to the general-purpose register group 6111 of the calculation node 6.
- step S043 Since the operation when the calculation core 611 starts executing the program has already been described, a description thereof will be omitted.
- FIG. 12 is a flowchart illustrating an example of an operation when context switching is performed when there are more calculation processes than the number of calculation cores 611.
- the calculation node management process 52 in the control node 5 selects the calculation core 611 to be stopped (step S051).
- the selection of the calculation core 611 to be stopped by the calculation node management process 52 is performed, for example, every time a predetermined time elapses.
- An arbitrary method may be adopted as a method for selecting the computation core 611 to be stopped by the computation node management process 52.
- step S052 the calculation node management process 52 stops the calculation core 611 selected in step S051 (step S052). Since the operation when stopping the calculation core 611 has already been described, the description thereof is omitted.
- the calculation node management process 52 accesses the general-purpose register group 6111 using the register group access unit 6115 in the stopped calculation core 611. Then, the management node management process 52 raises the context 611A from the general-purpose register group 6111 and stores the raised context 611A in the calculation process DB 521 (step S053).
- the management process 52 for the computing node can copy the process image 321 to the control node 5. In this way, by copying the process image 321 to the control node 5, it is possible to create checkpoint data for each process.
- the management process for calculation node 52 updates the process correspondence table 522 based on the calculation process ID that operates next in the calculation core 611 (step S054).
- the calculation process ID that operates next in the calculation core 611 is selected according to an existing scheduling algorithm.
- the calculation node management process 52 only needs to be configured so that the calculation process ID can be selected by some method.
- the management process for calculation node 52 refers to the calculation process DB 521 based on the calculation process ID that operates next in the calculation core 611, and obtains the register value (context) of the calculation process ID that operates next in the calculation core 611. . Then, the calculation node management process 52 stores the acquired register value in the context 611A of the general-purpose register group 6111 included in the calculation core 611 via the register group access unit 6115 (step S055).
- checkpoint data in the next calculation process operating in the calculation core 611 it can be restored to the process image 321 at the time of checkpoint acquisition by transferring to the calculation node at this timing.
- the computation node management process 52 starts executing the context-switched computation core (step S056).
- FIG. 13 is a flowchart showing an example of the operation when the program being executed on the computation node 6 is terminated.
- the calculation core 611 When the program being executed on the calculation core 611 has ended, the calculation core 611 first notifies the proxy process 511 of an exception that ends the calculation process (step S061). Examples of exceptions that terminate the calculation process include an exit system call and a memory access system exception. Note that the description of the occurrence of the exception has been already described and will be omitted.
- the proxy process 511 that has received the exception notification notifies the calculation node management process 52 of the end of the calculation process (step S062).
- the calculation node management process 52 notified of the end of the calculation process searches the process correspondence table 522 and releases the resources used by the calculation process (step S063). This ends the calculation process.
- the management node management process 52 first deletes the context 611A stored in the calculation process DB 521 associated with the proxy process 511 to be terminated. In addition, the management node management process 52 releases the process image 321 corresponding to the proxy process 511 ending from the memory 32. If the context 611A corresponding to the proxy process 511 to be terminated is operating in any of the calculation cores 611 in the calculation node 6, the calculation node management process 52 releases the calculation core 611. Can be configured. In this case, when the calculation core 611 is released, the calculation node management process 52 may be configured to context-switch the context of the calculation core 611 to be released to another context.
- the proxy process 511 ends (step S064).
- step S062, step S063, and step S064 may not be performed in this order.
- the proxy process 511 may be terminated when the termination system call is received in step S061.
- the calculation process end is notified to the calculation node management process 52.
- the calculation node management process 52 that has received the notification of the completion of the calculation process releases the resources of the calculation process to be ended and ends the calculation process.
- the parallel computer 1 can adopt a calculation model realized by a general computer on the calculation node 6 where the OS does not operate.
- the parallel computer 1 including one control node 5 and a plurality of calculation nodes 6 has been described.
- the parallel computer 1 may include a plurality of node groups including, for example, one control node 5 and a plurality of calculation nodes 6. That is, the number of control nodes 5 is not necessarily limited to 1.
- the parallel computer 1 includes the control node 5 in which the OS is incorporated and the computation node 6 in which the OS is not incorporated.
- a proxy process 511 and a calculation node management process 52 are deployed on the control node 5.
- the calculation node 6 includes a general-purpose register group 6111 and a control register group 6112.
- the control node 5 can manage the operation of the calculation node 6. That is, the parallel computer 1 can employ a calculation model realized by a general computer on the calculation node 6 where the OS does not operate. As a result, the parallel computer 1 can solve the problems of OS jitter and cache contamination due to the OS operating on the computation node 6.
- control node 5 can perform control of an I / O device that requires privilege on behalf of the user.
- control node 5 adopts a commodity hardware configuration, it is not necessary to write a dedicated device driver for the calculation node 6. In other words, the problems of loss of versatility and rising development costs can be solved.
- the calculation core 611 in this embodiment includes an exception detection unit 6113 and an exception notification unit 6114.
- the exception process can be detected and notified to the control core 6 including the OS.
- the control node 5 can provide an OS function such as a system call to the calculation node, for example. That is, it is possible to adopt a calculation model realized by a general computer on the calculation node 6 where the OS does not operate.
- FIG. 14 is a block diagram showing a configuration of the information processing apparatus 7 in the present embodiment.
- this embodiment includes a control unit (control node) having an OS function and a calculation unit (calculation node) having no OS function. Therefore, if the OS function area and the OS function area do not exist, this embodiment can be implemented without necessarily using the parallel computer 1 described in the first embodiment. .
- the information processing apparatus 7 including two areas, that is, an area that is under the control of the OS and an area that is not under the control of the OS will be described.
- the information processing apparatus 7 in the present embodiment is realized by, for example, a semiconductor integrated circuit including the above two areas.
- the information processing apparatus 7 includes an OS operation control unit 8 that is an area that is under the control of the OS and an OS non-operation calculation unit that is an area that is not under the control of the OS. 9.
- the information processing apparatus 7 according to the present embodiment employs a calculation model realized by a general computer on the OS non-operation calculation unit 9 in which the OS does not operate (not under OS control).
- An operation control unit 8 and an OS non-operation calculation unit 9 are configured.
- an OS that is operated by the OS operation control unit 8 is referred to as a control unit OS 80.
- the control unit OS 80 for example, a commodity OS such as Linux or Windows can be used.
- the OS operation control unit 8 and the OS non-operation calculation unit 9 are connected so as to communicate with each other.
- the OS operation control unit 8 includes a storage device (such as a memory) (not shown) and an arithmetic device (such as a CPU).
- the OS operation control unit 8 is an area placed under the control of the control unit OS 80. Therefore, the OS operation control unit 8 can virtualize the hardware (storage device, arithmetic device) under the control. Therefore, in the following, a process for development on the OS operation control unit 8 will be described. Note that these processes can be realized by an arithmetic device under the control of the OS operation control unit 8 reading and executing a program stored in a storage device under the control of the OS operation control unit 8.
- the control unit OS 80 develops a proxy process 81 and an OS non-operation calculation unit management process 82.
- the OS non-operation calculation unit management process 82 includes a calculation process DB 83 and a process correspondence table 84.
- the configuration of the proxy process 81 is the same as that of the first embodiment.
- the OS non-operating calculation unit management process 82 corresponds to the calculation node management process in the first embodiment. Therefore, detailed description of each component is omitted.
- the OS non-operation calculation unit 9 includes a calculation core 91 and a memory 92. Further, the OS non-operation calculation unit 9 includes a data transfer circuit (not shown).
- the configuration of the calculation core 91 is the same as that of the first embodiment.
- the configurations of the memory 92 and the data transfer circuit are the same as those in the first embodiment. Therefore, the details of each configuration are omitted.
- the information processing apparatus 7 in this embodiment is configured in this way. With such a configuration, the information processing apparatus 7 performs the same operation as in the first embodiment. Since the operation of the information processing apparatus 7 is the same as that of the first embodiment, a description thereof will be omitted.
- the information processing apparatus 7 in this embodiment includes the OS operation control unit 8 that is under the control of the OS and the OS non-operation calculation unit 9 that is not under the control of the OS. Further, on the OS operation control unit 8, a proxy process 81 and an OS non-operation calculation unit management process 82 are deployed. Further, the OS non-operation calculation unit 9 includes a calculation core 91. Therefore, the OS non-operation calculation unit 9 can execute the calculation process in the same manner as the OS is provided. That is, the information processing apparatus 7 can solve the problems of OS jitter and cache contamination caused by the OS operating on the OS non-operation calculator 9.
- the OS operation control unit 8 can perform the control of the I / O device requiring the privilege on behalf of the OS non-operation calculation unit 9.
- the OS operation control unit 8 adopts a commodity hardware configuration, it is not necessary to write a dedicated device driver for the OS non-operation calculation unit 9. In other words, the problems of loss of versatility and rising development costs can be solved.
- FIG. 15 is a block diagram showing an outline of the configuration of the information processing apparatus 70 in the present embodiment.
- the information processing apparatus 70 in the present embodiment includes a control core 71 and a calculation core 72.
- the control core 71 includes a calculation core control unit 711.
- the calculation core 72 includes a calculation processing control unit 721 and an exception detection unit 722.
- control core 71 is an arithmetic unit in which an operating system (OS) is incorporated.
- calculation core 72 is an arithmetic unit that performs a predetermined calculation process by being controlled by the control core 71. Specifically, an operating system is not incorporated in the calculation core 72.
- the calculation core control unit 711 is a part that instructs the stopped calculation core 72 to start calculation processing performed by the calculation core. As will be described later, when the calculation core controller 711 instructs the stopped calculation core 72 to start the calculation process, the stopped calculation core 72 starts the calculation process.
- the calculation processing control unit 721 is a part that controls the calculation core 72 so that a calculation processing start instruction is issued in response to a calculation processing start instruction from the calculation core control unit 711.
- the exception detection unit 722 is a part that detects a preset exception process that occurs during execution of a calculation process and stops the execution of the calculation process in which the exception process has occurred. Examples of exception processing set in advance include operation exceptions, memory access system exceptions, and exceptions mounted on general processors.
- calculation core 72 that has once stopped executing the calculation process does not start a new calculation process and continues to stop until receiving an instruction to start another calculation process from the calculation core control unit 711 of the control core 71.
- the information processing apparatus 70 includes the control core 71 in which the OS is incorporated and the calculation core 72.
- the control core 71 includes a calculation core control unit 711
- the calculation core 72 includes a calculation processing control unit 721.
- the calculation core 72 can perform a predetermined calculation process by being controlled by the control core 71. That is, the information processing apparatus 70 can perform predetermined calculation processing on the calculation core 72 where the OS does not operate. As a result, the information processing apparatus 70 can solve the problems of OS jitter and cache contamination caused by the OS operating on the calculation core 72.
- control core 71 can perform control of an I / O device that requires a privilege on behalf of the user.
- control core 71 adopts a commodity hardware configuration, there is no need to write a dedicated device driver for the calculation core 72. In other words, the problems of loss of versatility and rising development costs can be solved.
- the calculation core 72 in this embodiment includes an exception detection unit 722.
- the calculation core 72 can detect an exception process that occurs during the execution of the calculation process, and can stop the execution of the calculation process in which the exception process has occurred.
- the information processing apparatus 70 can perform predetermined calculation processing more completely on the information processing apparatus 70 in which the OS does not operate.
- a program according to another embodiment of the present invention is a program for causing an information processing apparatus to realize the following processes (a) to (c).
- the information processing apparatus includes a control core in which an operating system is incorporated, and at least one calculation core that is controlled by the control core and performs predetermined calculation processing.
- a process for instructing a stopped calculation core to start a calculation process performed by the calculation core (B) a process of controlling the calculation core so as to start the calculation process in response to an instruction to start the calculation process; (C) A process of detecting a preset exception process that occurs during execution of a calculation process and stopping the execution of the calculation process in which the exception process has occurred.
- the calculation core starts predetermined calculation processing in response to an instruction to start calculation processing from the control core. Then, when a preset exception process occurs during execution of the calculation process by the calculation core, the calculation core detects the exception process and stops the calculation process in which the exception process has occurred. Is the method.
- FIG. 16 is a block diagram showing an outline of the configuration of the calculation processing apparatus 10 in the present embodiment.
- the calculation processing device 10 is a device that performs predetermined calculation processing under the control of an external device. That is, the calculation processing apparatus 10 does not incorporate an OS. As shown in FIG. 16, the calculation processing device 10 in this embodiment includes a calculation processing control unit 101 and an exception detection unit 102.
- the calculation processing control unit 101 is a part that controls the calculation processing device to start the calculation processing in response to an instruction to start the calculation processing from an external device.
- the exception detection unit 102 is a part that detects a preset exception process that occurs during the execution of the calculation process. Examples of exception processing set in advance include operation exceptions, memory access system exceptions, and exceptions mounted on general processors.
- the calculation processing device 10 is configured to stop the execution of the calculation processing in which the exception processing occurs when the exception detection unit 102 detects the exception processing. Note that the calculation processing apparatus 10 that has stopped executing the calculation process does not start the calculation process and continues to stop until receiving an instruction to start the calculation process again from the external device.
- the calculation processing device 10 in the present embodiment is a device that starts the calculation processing in response to an instruction to start the calculation processing from the external device. Further, the calculation processing apparatus 10 includes a calculation processing control unit 101. With such a configuration, the calculation processing apparatus 10 can perform a predetermined calculation process under the control of an external apparatus even though it does not include an OS. As a result, the calculation processing apparatus 10 can solve the problems of OS jitter and cache contamination caused by the OS operating on the calculation processing apparatus 10.
- the calculation processing device 10 in the present embodiment includes an exception detection unit 102.
- the calculation processing apparatus 10 can detect an exception process that occurs during execution of the calculation process, and can stop the execution of the calculation process in which the exception process has occurred. That is, the calculation processing device 10 can perform predetermined calculation processing more completely on the calculation processing device 10 in which the OS does not operate.
- the above-described calculation processing device can be realized by incorporating a predetermined program into the calculation processing device.
- the program according to another embodiment of the present invention includes a process for controlling the calculation processing device to start the calculation processing in response to an instruction to start the calculation processing from the external device. And a process for detecting a preset exception process that occurs during the execution of the calculation process.
- the program is a program having a function of stopping execution of a calculation process in which an exception process occurs when the exception process is detected.
- the calculation processing method executed by the operation of the above-described calculation processing apparatus starts predetermined calculation processing in response to an instruction to start calculation processing from an external device, and is preset during execution of the calculation processing.
- This is a calculation processing method in which when the exception processing occurs, the exception processing is detected and the calculation processing in which the exception processing has occurred is stopped.
- the control core includes a calculation core control unit that instructs the calculation core that is stopped to instruct the calculation core to start the calculation process
- the calculation core includes calculation processing control means for controlling the calculation core so as to start the calculation processing in response to an instruction to start the calculation processing from the calculation core control means, and during execution of the calculation processing.
- An exception detection means for detecting the exception processing that has been set in advance and stopping the calculation processing in which the exception processing has occurred, Information processing device.
- the information processing apparatus includes a control core in which an operating system is incorporated, and at least one calculation core that is controlled by the control core and performs predetermined calculation processing. Further, the control core includes a calculation core control means. Further, the calculation core includes calculation processing control means. With this configuration, it is possible to perform a predetermined calculation process on a calculation core where the OS does not operate. As a result, the information processing apparatus can solve the problems of OS jitter and cache contamination caused by the OS operating on a calculation core that performs calculation processing.
- the calculation core includes the exception detection means.
- the calculation core can detect an exception process that occurs during the execution of the calculation process, and can stop the execution of the calculation process in which the exception process has occurred.
- the information processing apparatus can perform predetermined calculation processing more completely on the information processing apparatus in which the OS does not operate.
- (Appendix 2) An information processing apparatus according to attachment 1, wherein The calculation core control means instructs the calculation core to start the calculation process according to the exception process detected by the exception detection means, The calculation processing control means controls the calculation core to start the calculation processing when receiving an instruction to start the calculation processing from the calculation core control means.
- Information processing device An information processing apparatus according to attachment 1, wherein The calculation core control means instructs the calculation core to start the calculation process according to the exception process detected by the exception detection means, The calculation processing control means controls the calculation core to start the calculation processing when receiving an instruction to start the calculation processing from the calculation core control means.
- control core of the information processing apparatus is configured to instruct the calculation core to start the calculation process according to the exception process detected by the exception detection unit.
- the information processing apparatus can perform predetermined calculation processing more completely on the information processing apparatus in which the OS does not operate.
- Appendix 3 An information processing apparatus according to appendix 2, wherein The exception detection means notifies the control core that the exception detection means has detected the exception processing, The calculation core control means instructs the calculation core to start the calculation process according to the exception process indicated by the notification received from the exception detection means. Information processing device.
- the calculation core is configured to notify the control core when an exception is detected.
- the information processing apparatus can perform predetermined calculation processing more completely on the information processing apparatus in which the OS does not operate.
- the calculation core includes data transfer means for transferring data necessary for processing the exception processing detected by the exception detection means to the control core,
- the control core includes exception processing proxy means for processing the exception processing on behalf of the calculation core using the data transferred by the data transfer means.
- the calculation core includes data transfer means, and the control core includes exception handling proxy means.
- the control core can handle exception processing on behalf of the calculation core.
- system call processing can be performed by the control core on behalf of the calculation core.
- appendix 5 An information processing apparatus according to appendix 4, wherein The data transfer means, when the exception processing generated in the calculation core is a system call, transfers data necessary for the processing of the system call to a buffer area included in the exception processing proxy means of the control core. Information processing device.
- the calculation core control means is configured to be able to instruct the calculation core to stop the calculation processing performed by the calculation core, and to the calculation core that is stopping the calculation processing. Is configured to be able to instruct to change the content of the calculation process to be processed by the calculation core,
- the calculation processing control means controls the calculation core to stop the calculation processing being executed in response to an instruction to stop the calculation processing from the calculation core control means, and from the calculation core control means Changing the content of the calculation process to be processed by the calculation core in response to an instruction to change the content of the calculation process; Information processing device.
- control core is configured to be able to issue an instruction to stop the calculation process and an instruction to change the calculation process to the calculation core. Further, the calculation core can stop and change the calculation process in accordance with an instruction from the control core. As a result, the information processing apparatus can perform a context switch, for example.
- Appendix 7 An information processing apparatus according to appendix 6, wherein When the number of the calculation processes performed by the calculation core is larger than the number of the calculation cores, The calculation core control means selects the calculation core that is executing the calculation processing based on a predetermined criterion at a predetermined time, and stops the calculation processing by the selected calculation core. To change the content of the calculation process to be processed by the calculation core that stopped the calculation process, Information processing device.
- a computer including an information processing apparatus including a control core in which an operating system is incorporated and at least one calculation core controlled by the control core and performing predetermined calculation processing, A calculation core control process that instructs the calculation core to stop the calculation core to start the calculation process; A calculation processing control process for controlling the calculation core to start the calculation process in response to an instruction to start the calculation process; A computer-readable recording for recording a program that detects a preset exception process that occurs during execution of the calculation process and that executes an exception detection process that stops execution of the calculation process in which the exception process has occurred Medium.
- Appendix 8-1 The recording medium according to appendix 8, wherein The calculation core control process includes a process of instructing the calculation core to start the calculation process according to the exception process detected by the exception detection process. recoding media.
- appendix 9 The recording medium according to appendix 8, wherein The exception detection process includes a process of notifying the control core that the exception process has been detected. recoding media.
- Appendix 10 The recording medium according to appendix 9, wherein A data transfer process for transferring data necessary for processing the detected exception process to the control core; A program for causing the computer to further execute an exception processing proxy process that processes the exception process on behalf of the calculation core using the transferred data; recoding media.
- Appendix 10-1 The recording medium according to appendix 10, wherein The data transfer process includes a process of transferring data necessary for the process of the system call to a buffer area included in the control core when the exception process generated in the calculation core is a system call. recoding media.
- the calculation core control process instructs the calculation core to stop the calculation process performed by the calculation core and sets the calculation core to be processed by the calculation core.
- the calculation process control process includes a process of stopping the calculation process being executed in response to an instruction to stop the calculation process by the calculation core control process, and an instruction to change the content of the calculation process by the calculation core control process And changing the content of the calculation process to be processed by the calculation core according to recoding media.
- the calculation core control process selects the calculation core that is executing the calculation process based on a predetermined criterion at a predetermined time, and stops the calculation process by the selected calculation core. Including a process of changing the content of the calculation process to be processed by the calculation core, recoding media.
- the calculation core In response to an instruction to start the calculation process from the control core, the calculation core starts the predetermined calculation process, The calculation core detects the exception processing when a preset exception processing occurs during execution of the calculation processing by the calculation core, and stops the calculation processing in which the exception processing has occurred. Information processing method.
- a calculation processing device that performs predetermined calculation processing under the control of an external device, A calculation processing control means for controlling the calculation processing device so as to start the calculation processing in response to an instruction to start the calculation processing from an external device, and a preset exception processing generated during the execution of the calculation processing And an exception detection means for stopping the execution of the calculation processing in which the exception processing has occurred, Calculation processing device.
- Appendix 18 The calculation processing device according to appendix 16 or 17, Data transfer means for transferring data necessary for processing the exception processing detected by the exception detection means to the external device; Calculation processing device.
- the calculation processing device according to any one of supplementary notes 16 to 18,
- the calculation processing control means controls the calculation processing device to stop the calculation processing being executed in response to an instruction to stop the calculation processing from the external device, and the calculation processing from the external device. Changing the content of the calculation processing to be processed by the calculation processing device in accordance with an instruction to change the content of Calculation processing device.
- a calculation process control process for controlling the calculation processing apparatus to start the calculation process in response to an instruction to start the calculation process from an external apparatus, and a preset exception process that occurs during the execution of the calculation process
- a computer-readable storage medium storing a program for executing an exception detection process for stopping execution of the calculation process in which the exception process has occurred.
- Appendix 21 The storage medium according to appendix 20, wherein The exception detection process includes a process of notifying an external device that the exception process has been detected. Storage medium.
- Appendix 22 The storage medium according to appendix 20 or 21, wherein Recording a program for causing the calculation processing device to further execute a data transfer processing for transferring data necessary for processing the detected exception processing to the external device; Storage medium.
- the storage medium according to any one of appendices 20 to 22,
- the calculation process control process is a process of stopping the calculation process being executed in response to an instruction to stop the calculation process from the external apparatus, and an instruction to change the content of the calculation process from the external apparatus. And changing the content of the calculation process to be processed by the calculation core. Storage medium.
- the programs described in the above embodiments and supplementary notes are stored in a storage device or recorded on a computer-readable recording medium.
- the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御手段を備え、
前記計算コアは、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を備えている。
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置を備えたコンピュータに、
停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御処理と、
前記計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算コアを制御する計算処理制御処理と、
前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記録する。
制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する。
外部装置からの制御により所定の計算処理を行う計算処理装置であって、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を備える。
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御処理と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記憶する。
外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する。
本発明の第1の実施形態を、図1乃至図13を用いて説明する。図1は、本実施形態が想定する並列計算機1の構成を示すブロック図である。図2は、本実施形態における並列計算機1の構成を示すブロック図である。図3は、計算ノード6が備える計算コア611の構成を示すブロック図である。図4は、代理プロセス511の構成を示す機能ブロック図である。図5は、プロセス対応表522に対応づけて格納するデータの一例を示す表である。図6は、計算プロセスDB521に格納するデータの一例を示す表である。図7は、第1の実施形態において、計算プロセスが開始してから終了するまでに、必要となる動作がどのように作用するかを示したフローチャートである。図8乃至13は、計算プロセスが開始してから終了するまでに必要となる動作を示すフローチャートである。
本発明の第1の実施形態では、NUMA型のメモリを持つ並列計算機1について説明する。NUMAとは、メモリとプロセッサとの対からなるノードが複数存在し、それらをインターコネクトで接続したものである。本実施形態における並列計算機1は、例えば、HPC(High Performance Computing)分野において利用される。
図7は、上述した構成の並列計算機1で展開される計算プロセスが開始してから終了するまでに、必要となる動作がどのように作用するかを示したフローチャートである。図7で示すように、並列計算機1上で計算プロセスを展開する(計算プロセスを開始して計算プロセスを終了する)には、以下の動作が必要となる。
1.計算プロセスの開始(プログラムの開始)
2.計算プロセスの実行停止(プログラムの停止)
3.計算プロセス上で発生した例外処理(例外処理)
4.計算プロセスがOSのサービスを必要とする場合の処理(システムコール)
5.計算プロセスの計算コアへの割り当ての変更(コンテキストスイッチ)
6.計算プロセスの終了(プログラムの終了)。
次に、本発明の第2の実施形態について、図14を用いて説明する。図14は、本実施形態における情報処理装置7の構成を示すブロック図である。
次に、本発明の第3の実施形態について、図15を用いて説明する。図15は、本実施形態における情報処理装置70の構成の概略を示すブロック図である。
(a)停止している計算コアに対して当該計算コアが行う計算処理の開始を指示する処理、
(b)計算処理の開始の指示に応じて計算処理の開始を行うように計算コアを制御する処理、
(c)計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する処理。
次に、本発明の第4の実施形態について、図16を用いて説明する。図16は、本実施形態における計算処理装置10の構成の概略を示すブロック図である。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御手段を備え、
前記計算コアは、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理を停止する例外検出手段と、を備えた、
情報処理装置。
付記1に記載の情報処理装置であって、
前記計算コア制御手段は、前記例外検出手段が検出した前記例外処理に応じて前記計算コアに対して前記計算処理の開始を指示し、
前記計算処理制御手段は、前記計算コア制御手段から前記計算処理の開始の指示を受けた場合に、当該計算処理を開始するように前記計算コアを制御する、
情報処理装置。
付記2に記載の情報処理装置であって、
前記例外検出手段は、該例外検出手段が前記例外処理を検出した旨を前記制御コアに通知し、
前記計算コア制御手段は、前記例外検出手段から受けた通知が示す前記例外処理に応じて前記計算コアに対して前記計算処理の開始の指示をする、
情報処理装置。
付記1乃至3いずれか1項に記載の情報処理装置であって、
前記計算コアは、前記例外検出手段によって検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を備え、
前記制御コアは、前記データ転送手段によって転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理手段を備える
情報処理装置。
付記4に記載の情報処理装置であって、
前記データ転送手段は、前記計算コアにて発生した前記例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアの前記例外処理代理手段が有するバッファ領域に転送する、
情報処理装置。
付記1乃至5のいずれか1項に記載の情報処理装置であって、
前記計算コア制御手段は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示することが可能であるように構成されるとともに、前記計算処理を停止中の前記計算コアに対して当該計算コアによる処理の対象となる前記計算処理の内容を変更する指示を行うことが可能であるように構成され、
前記計算処理制御手段は、前記計算コア制御手段からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算コアを制御し、前記計算コア制御手段からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理装置。
付記6に記載の情報処理装置であって、
前記計算コアが行う前記計算処理の数が前記計算コアの数よりも多い場合、
前記計算コア制御手段は、予め定められた時間毎に、予め定められた基準に基づいて前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理装置。
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置を備えたコンピュータに、
停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御処理と、
前記計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算コアを制御する計算処理制御処理と、
前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記録するコンピュータで読み取り可能な記録媒体。
付記8に記載の記録媒体であって、
前記計算コア制御処理は、前記例外検出処理によって検出された前記例外処理に応じて、前記計算コアに対して前記計算処理の開始を指示する処理を含む、
記録媒体。
付記8に記載の記録媒体であって、
前記例外検出処理は、前記例外処理を検出した旨を前記制御コアに通知する処理を含む、
記録媒体。
付記9に記載の記録媒体であって、
前記検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送処理と、
前記転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理処理と、を前記コンピュータに更に実行させるプログラムを記録する、
記録媒体。
付記10に記載の記録媒体であって、
前記データ転送処理は、前記計算コアにて発生した例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアが備えるバッファ領域に転送する処理を含む、
記録媒体。
付記8乃至10のいずれか1項に記載の記録媒体であって、
前記計算コア制御処理は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示するとともに、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容を変更する処理を含み、
前記計算処理制御処理は、前記計算コア制御処理による前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する処理と、前記計算コア制御処理による前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する処理と、を含む、
記録媒体。
付記11に記載の記録媒体であって、
前記計算コアが行う計算処理の数が当該計算コアの数よりも多い場合、
前記計算コア制御処理は、予め定められた時間毎に、予め定められた基準に基づいて前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算コアによる処理の対象となる前記計算処理の内容を変更する処理を含む、
記録媒体。
制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
情報処理方法。
付記12に記載の情報処理方法であって、
前記計算コアは、前記例外処理を検出した場合、当該例外処理を検出した旨を前記制御コアに通知する、
情報処理方法。
付記13に記載の情報処理方法であって、
前記計算コアは、前記例外処理を処理する際に必要なデータを前記制御コアに転送し、 前記制御コアは、転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する、
情報処理方法。
付記12乃至14のいずれか1項に記載の情報処理方法であって、
前記制御コアは、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容の変更を指示し、
前記計算コアは、前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理方法。
付記15に記載の情報処理方法であって、
前記計算コアが行う計算処理の数が当該計算コアの数よりも多い場合、
予め定められた時間毎に、予め定められた基準により前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止させ、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理方法。
外部装置からの制御により所定の計算処理を行う計算処理装置であって、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を備えた、
計算処理装置。
付記16に記載の計算処理装置であって、
前記例外検出手段は、該例外検出手段が前記例外処理を検出した旨を前記外部装置に通知する、
計算処理装置。
付記16又は17に記載の計算処理装置であって、
前記例外検出手段によって検出された前記例外処理を処理する際に必要なデータを前記外部装置へ転送するデータ転送手段を備える、
計算処理装置。
付記16乃至18いずれか1項に記載の計算処理装置であって、
前記計算処理制御手段は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算処理装置を制御し、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算処理装置による処理の対象となる前記計算処理の内容を変更する、
計算処理装置。
計算処理装置に、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御処理と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記憶するコンピュータ読み取り可能な記憶媒体。
付記20に記載の記憶媒体であって、
前記例外検出処理は、前記例外処理を検出した旨を外部装置へ通知する処理を含む、
記憶媒体。
付記20又は21に記載の記憶媒体であって、
前記検出された当該例外処理を処理する際に必要なデータを前記外部装置に転送するデータ転送処理を、前記計算処理装置に更に実行させるプログラムを記録する、
記憶媒体。
付記20乃至22いずれか1項に記載の記憶媒体であって、
前記計算処理制御処理は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する処理と、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する処理と、を含む、
記憶媒体。
外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
計算処理方法。
付記24に記載の計算処理方法であって、
前記例外処理を検出した場合、当該例外処理を検出した旨を前記外部装置に通知する、 計算処理方法。
付記25に記載の計算処理方法であって、
前記例外処理を検出した場合、当該例外処理を処理する際に必要なデータを前記制御コアに転送する、
計算処理方法。
2、3 ノード
21、31 CPU
211、311 プロセッサコア
22、32 メモリ
321 プロセスイメージ
3211 通信バッファ領域
23、33 データ転送回路
231、331 DMAエンジン機能
232、332 対CPU通信機能
4 ノード間通信デバイス
5 制御ノード
511 代理プロセス
5111 引数書き込み領域
5112 データバッファ領域
52 計算ノード用管理プロセス
521 計算プロセスDB
522 プロセス対応表
6 計算ノード
611 計算コア
611A コンテキスト
6111 汎用レジスタ群
6112 制御レジスタ群
6113 例外検出部
6114 例外通知部
6115 レジスタ群アクセス部
7、70 情報処理装置
71 制御コア
711 計算コア制御部
72 計算コア
721 計算処理制御部
722 例外検出部
8 OS稼動制御部
80 制御用OS
81 代理プロセス
82 OS非稼動計算部用管理プロセス
9 OS非稼動計算部
91 計算コア
92 メモリ
10 計算処理装置
101 計算処理制御部
102 例外検出部
Claims (26)
- オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御手段を備え、
前記計算コアは、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理を停止する例外検出手段と、を備えた、
情報処理装置。 - 前記計算コア制御手段は、前記例外検出手段が検出した前記例外処理に応じて前記計算コアに対して前記計算処理の開始を指示し、
前記計算処理制御手段は、前記計算コア制御手段から前記計算処理の開始の指示を受けた場合に、当該計算処理を開始するように前記計算コアを制御する、
請求項1に記載の情報処理装置。 - 前記例外検出手段は、該例外検出手段が前記例外処理を検出した旨を前記制御コアに通知し、
前記計算コア制御手段は、前記例外検出手段から受けた通知が示す前記例外処理に応じて前記計算コアに対して前記計算処理の開始の指示をする、
請求項2に記載の情報処理装置。 - 前記計算コアは、前記例外検出手段によって検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を備え、
前記制御コアは、前記データ転送手段によって転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理手段を備える、
請求項1から3のいずれか1項に記載の情報処理装置。 - 前記データ転送手段は、前記計算コアにて発生した前記例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアの前記例外処理代理手段が有するバッファ領域に転送する、
請求項4に記載の情報処理装置。 - 前記計算コア制御手段は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示することが可能であるように構成されるとともに、前記計算処理を停止中の前記計算コアに対して当該計算コアによる処理の対象となる前記計算処理の内容を変更する指示を行うことが可能であるように構成され、
前記計算処理制御手段は、前記計算コア制御手段からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算コアを制御し、前記計算コア制御手段からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
請求項1から5のいずれか1項に記載の情報処理装置。 - 前記計算コアが行う前記計算処理の数が前記計算コアの数よりも多い場合、
前記計算コア制御手段は、予め定められた時間毎に、予め定められた基準に基づいて前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
請求項6に記載の情報処理装置。 - オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置を備えたコンピュータに、
停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御処理と、
前記計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算コアを制御する計算処理制御処理と、
前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記録するコンピュータで読み取り可能な記録媒体。 - 前記例外検出処理は、前記例外処理を検出した旨を前記制御コアに通知する処理を含む、請求項8に記載の記録媒体。
- 前記検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送処理と、
前記転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理処理と、を前記コンピュータに更に実行させるプログラムを記録する、請求項9に記載の記録媒体。 - 前記計算コア制御処理は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示するとともに、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容を変更する処理を含み、
前記計算処理制御処理は、前記計算コア制御処理による前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する処理と、前記計算コア制御処理による前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する処理と、を含む、
請求項8から10のいずれか1項に記載の記録媒体。 - 制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
情報処理方法。 - 前記計算コアは、前記例外処理を検出した場合、当該例外処理を検出した旨を前記制御コアに通知する、
請求項12に記載の情報処理方法。 - 前記計算コアは、前記例外処理を処理する際に必要なデータを前記制御コアに転送し、 前記制御コアは、転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する、
請求項13に記載の情報処理方法。 - 前記制御コアは、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容の変更を指示し、
前記計算コアは、前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
請求項12から14のいずれか1項に記載の情報処理方法。 - 外部装置からの制御により所定の計算処理を行う計算処理装置であって、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を備えた、
計算処理装置。 - 前記例外検出手段は、該例外検出手段が前記例外処理を検出した旨を前記外部装置に通知する、
請求項16に記載の計算処理装置。 - 前記例外検出手段によって検出された前記例外処理を処理する際に必要なデータを前記外部装置へ転送するデータ転送手段を備える、
請求項16または17に記載の計算処理装置。 - 前記計算処理制御手段は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算処理装置を制御し、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算処理装置による処理の対象となる前記計算処理の内容を変更する、
請求項16から18のいずれか1項に記載の計算処理装置。 - 計算処理装置に、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御処理と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出処理と、を実行させるプログラムを記憶するコンピュータ読み取り可能な記憶媒体。 - 前記例外検出処理は、前記例外処理を検出した旨を外部装置へ通知する処理を含む、
請求項20に記載の記憶媒体。 - 前記検出された当該例外処理を処理する際に必要なデータを前記外部装置に転送するデータ転送処理を、前記計算処理装置に更に実行させるプログラムを記録する、
請求項20または21に記載の記憶媒体。 - 前記計算処理制御処理は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する処理と、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する処理と、を含む、
請求項20から22のいずれか1項に記載の記憶媒体。 - 外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
計算処理方法。 - 前記例外処理を検出した場合、当該例外処理を検出した旨を前記外部装置に通知する、 請求項24に記載の計算処理方法。
- 前記例外処理を検出した場合、当該例外処理を処理する際に必要なデータを前記制御コアに転送する、
請求項25に記載の計算処理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14860668.4A EP3067796A4 (en) | 2013-11-08 | 2014-11-05 | Information processing device, information processing method, recording medium, calculation processing device, calculation processing method |
KR1020167014916A KR101783164B1 (ko) | 2013-11-08 | 2014-11-05 | 정보 처리 장치, 정보 처리 방법, 기록 매체, 계산 처리 장치, 계산 처리 방법 |
US15/035,065 US10241829B2 (en) | 2013-11-08 | 2014-11-05 | Information processing device, information processing method, recording medium, calculation processing device, calculation processing method |
CN201480061338.6A CN105723340B (zh) | 2013-11-08 | 2014-11-05 | 信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013-232197 | 2013-11-08 | ||
JP2013232197A JP5867482B2 (ja) | 2013-11-08 | 2013-11-08 | 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015068382A1 true WO2015068382A1 (ja) | 2015-05-14 |
Family
ID=53041177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/005561 WO2015068382A1 (ja) | 2013-11-08 | 2014-11-05 | 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10241829B2 (ja) |
EP (1) | EP3067796A4 (ja) |
JP (1) | JP5867482B2 (ja) |
KR (1) | KR101783164B1 (ja) |
CN (1) | CN105723340B (ja) |
WO (1) | WO2015068382A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010556A (ja) * | 2015-06-22 | 2017-01-12 | エルエス産電株式会社Lsis Co., Ltd. | Plcシステム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7000858B2 (ja) | 2015-12-09 | 2022-01-19 | Agc株式会社 | 硬化性組成物および硬化物 |
JP6798211B2 (ja) * | 2016-09-21 | 2020-12-09 | 日本電気株式会社 | 並列計算機システムおよび管理方法 |
JP6249119B1 (ja) * | 2017-03-15 | 2017-12-20 | 日本電気株式会社 | 制御装置、制御方法、プログラム、情報処理装置 |
CN111291373B (zh) * | 2020-02-03 | 2022-06-14 | 思客云(北京)软件技术有限公司 | 用于分析数据污染传播的方法、设备和计算机可读存储介质 |
JP7405008B2 (ja) * | 2020-06-08 | 2023-12-26 | 富士通株式会社 | 情報処理装置、情報処理プログラム、及び、情報処理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619856A (ja) | 1991-09-20 | 1994-01-28 | Hitachi Ltd | 並列計算機 |
JP2000029866A (ja) * | 1998-05-14 | 2000-01-28 | Advanced Risc Mach Ltd | ベクトル命令の処理の間に生じる例外の処理 |
JP2008165318A (ja) | 2006-12-27 | 2008-07-17 | Hitachi Ltd | 計算機システム |
JP2013232197A (ja) | 2007-09-24 | 2013-11-14 | Apple Inc | 電子デバイスに組み込まれた認証システム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200502847A (en) * | 2003-07-08 | 2005-01-16 | Benq Corp | Control device and method for reducing number of interrupts in a processor |
JP5239752B2 (ja) * | 2008-10-31 | 2013-07-17 | 富士通株式会社 | 同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム |
US8271990B2 (en) | 2009-02-27 | 2012-09-18 | International Business Machines Corporation | Removing operating system jitter-induced slowdown in virtualized environments |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8537832B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Exception detection and thread rescheduling in a multi-core, multi-thread network processor |
WO2012014285A1 (ja) | 2010-07-27 | 2012-02-02 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
KR101783686B1 (ko) | 2010-11-17 | 2017-10-10 | 루바타 아플레톤 엘엘씨 | 알칼리 집전체 애노드 |
US20140351617A1 (en) * | 2013-05-27 | 2014-11-27 | Motorola Mobility Llc | Method and Electronic Device for Bringing a Primary Processor Out of Sleep Mode |
-
2013
- 2013-11-08 JP JP2013232197A patent/JP5867482B2/ja active Active
-
2014
- 2014-11-05 WO PCT/JP2014/005561 patent/WO2015068382A1/ja active Application Filing
- 2014-11-05 US US15/035,065 patent/US10241829B2/en active Active
- 2014-11-05 KR KR1020167014916A patent/KR101783164B1/ko active IP Right Grant
- 2014-11-05 CN CN201480061338.6A patent/CN105723340B/zh active Active
- 2014-11-05 EP EP14860668.4A patent/EP3067796A4/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619856A (ja) | 1991-09-20 | 1994-01-28 | Hitachi Ltd | 並列計算機 |
JP2000029866A (ja) * | 1998-05-14 | 2000-01-28 | Advanced Risc Mach Ltd | ベクトル命令の処理の間に生じる例外の処理 |
JP2008165318A (ja) | 2006-12-27 | 2008-07-17 | Hitachi Ltd | 計算機システム |
JP2013232197A (ja) | 2007-09-24 | 2013-11-14 | Apple Inc | 電子デバイスに組み込まれた認証システム |
Non-Patent Citations (2)
Title |
---|
See also references of EP3067796A4 * |
TAKUYA NAGATA ET AL.: "SPE Observer: An OS Monitoring System Running on an SPE in Cell /B.E.", IPSJ SIG NOTES, 2011 (HEISEI 23) NENDO ?6? [ DVD -ROM, no. 120, 15 April 2012 (2012-04-15), pages 1 - 8, XP055342772 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010556A (ja) * | 2015-06-22 | 2017-01-12 | エルエス産電株式会社Lsis Co., Ltd. | Plcシステム |
US10324440B2 (en) | 2015-06-22 | 2019-06-18 | Lsis Co., Ltd. | Programmable logic controller system |
Also Published As
Publication number | Publication date |
---|---|
KR20160083916A (ko) | 2016-07-12 |
US10241829B2 (en) | 2019-03-26 |
EP3067796A1 (en) | 2016-09-14 |
JP5867482B2 (ja) | 2016-02-24 |
KR101783164B1 (ko) | 2017-09-28 |
CN105723340A (zh) | 2016-06-29 |
JP2015094974A (ja) | 2015-05-18 |
CN105723340B (zh) | 2019-12-10 |
US20160371113A1 (en) | 2016-12-22 |
EP3067796A4 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5180373B2 (ja) | 仮想化環境における割り込みメッセージ終了のレイジー処理 | |
WO2015068382A1 (ja) | 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法 | |
US10037267B2 (en) | Instruction set architecture and software support for register state migration | |
US9760386B2 (en) | Accelerator functionality management in a coherent computing system | |
US9652247B2 (en) | Capturing snapshots of offload applications on many-core coprocessors | |
US8544010B2 (en) | Providing notification to speculatively waking up target virtual machine for an I/O event using multiple virtual machines and processors | |
JP5479802B2 (ja) | ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム | |
US8131814B1 (en) | Dynamic pinning remote direct memory access | |
US9946870B2 (en) | Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment | |
CN101183315A (zh) | 一种并行多处理器虚拟机系统 | |
JP6508382B1 (ja) | 情報処理装置、情報処理方法、プログラム | |
KR20170095607A (ko) | 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램 | |
US10565135B2 (en) | Information processing device, information processing method, main processor core, program, information processing method, and sub processor core | |
US10545697B1 (en) | Reverse order request queueing by para-virtual device drivers | |
WO2016067496A1 (ja) | 情報処理装置 | |
KR20180111737A (ko) | 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램 | |
US20230236889A1 (en) | Distributed accelerator | |
van der Grinten et al. | Managarm: A Fully Asynchronous Operating System | |
Wang et al. | Implementation of CAPI and Traditional PCIe and Delay of Comparison | |
CN117311896A (zh) | 基于虚拟内核环境的直接内存访问的测试方法及装置 | |
JP2020095446A (ja) | 情報処理装置、メモリ初期化制御方法及びプログラム | |
KR20170124744A (ko) | 가상 머신의 입출력 처리 방법 |
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: 14860668 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15035065 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20167014916 Country of ref document: KR Kind code of ref document: A |
|
REEP | Request for entry into the european phase |
Ref document number: 2014860668 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014860668 Country of ref document: EP |