WO2016151654A1 - 並列処理システム - Google Patents

並列処理システム Download PDF

Info

Publication number
WO2016151654A1
WO2016151654A1 PCT/JP2015/006492 JP2015006492W WO2016151654A1 WO 2016151654 A1 WO2016151654 A1 WO 2016151654A1 JP 2015006492 W JP2015006492 W JP 2015006492W WO 2016151654 A1 WO2016151654 A1 WO 2016151654A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduler
processing unit
processing
notification information
status
Prior art date
Application number
PCT/JP2015/006492
Other languages
English (en)
French (fr)
Inventor
青山 俊一
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/554,153 priority Critical patent/US10162675B2/en
Priority to CN201580078148.XA priority patent/CN107408061B/zh
Priority to KR1020177026593A priority patent/KR101818410B1/ko
Priority to EP15886211.0A priority patent/EP3276489B1/en
Publication of WO2016151654A1 publication Critical patent/WO2016151654A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present invention relates to a parallel processing system, a parallel processing method, and a program.
  • Patent Document 1 is one of the techniques for performing parallel processing as described above.
  • Patent Document 1 discloses a first processor core having an operating system in which a first application program operates and OL remote control means, and a request from the OL remote control means without operating the operating system.
  • a program parallel execution system having a second processor core including a lightweight scheduler for operating a second application program. According to Patent Document 1, by having the above configuration, it is possible to perform parallel processing in which the influence of overhead due to OS intervention is reduced in processing in the second processor core.
  • Patent Document 2 is known as one method of parallel process scheduling in a parallel computer.
  • Patent Document 2 describes a technique in which another process is operated in an apparatus in a parallel synchronization waiting state of a parallel process.
  • Patent Document 2 it is possible to prevent a decrease in system throughput performance by not dispatching a parallel process waiting for parallel synchronization but dispatching a process of another job that can be executed instead. It becomes.
  • the lightweight scheduler that controls the second processor core is formed independently of the main system side. Therefore, in the case of the technique of Patent Document 1, it has been difficult for the lightweight scheduler to perform control linked with scheduling on the main system side. As a result, it may be difficult to perform efficient scheduling for the entire system.
  • Patent Document 2 is control when the program is in a waiting state by itself, and it is difficult to perform control according to the scheduling status of other devices. Therefore, even in the technique of Patent Document 2, depending on the scheduling situation of other devices such as when context switching is performed, it may be difficult to perform efficient scheduling as the entire system.
  • the object of the present invention is that when performing parallel processing, information is not shared between schedulers that manage the respective processes, and therefore it may be difficult to perform efficient scheduling as a whole system. It is to provide a parallel processing system that solves the problem.
  • a parallel processing system for executing related processes in a plurality of processing units, A first process processing unit for executing a predetermined process; A first process scheduler for detecting and managing a processing status of a process executed by the first process processing unit; A second process processing unit for executing a process related to the process executed by the first process processing unit; A second process scheduler for detecting and managing a processing status of a process executed by the second process processing unit,
  • the first process scheduler and the second process scheduler are configured to communicate with each other,
  • the first process scheduler executes the process related to the process indicated by the processing status according to the processing status of the second process processing unit detected by the second process scheduler. Control the operation of the
  • the second process scheduler executes the process related to the process indicated by the processing status according to the processing status of the first process processing unit detected by the first process scheduler.
  • the configuration is to control the operation of the part.
  • the parallel processing method which is the other form of this invention is the following.
  • a parallel processing method for executing related processes in a plurality of processing units Processes executed by the processing unit are managed by a plurality of schedulers, Communicates the processing status of processes executed by its own scheduler to other schedulers, Each scheduler adopts a configuration that controls the operation of a processing unit that executes a process related to the process indicated by the processing status according to the received processing status.
  • the program which is the other form of this invention is: A related process is executed by a plurality of processing units, and the process executed by the processing unit is performed by an information processing apparatus managed by a plurality of schedulers. Let other schedulers communicate the processing status of processes managed by their own scheduler, In accordance with the received processing status, each scheduler controls the operation of a processing unit that executes a process related to the process indicated by the processing status. It is a program for realizing this.
  • the present invention is configured as described above, and when parallel processing is performed, information is not shared between schedulers that manage the respective processes, so that it is difficult to perform efficient scheduling as a whole system. It is possible to provide a parallel processing system that solves the problem that there is a case.
  • FIG. 1 is a block diagram showing an example of the configuration of the parallel computer 4.
  • FIG. 2 is a diagram illustrating an example of a program executed by the parallel computer 4.
  • FIG. 3 is a block diagram showing an example of a detailed configuration of the parallel computer 4.
  • FIG. 4 is a diagram illustrating an example of the configuration of the main processor process scheduler.
  • FIG. 5 is a flowchart illustrating an example of an operation when the process scheduler performs context switching.
  • FIG. 6 is a flowchart showing an example of the operation when the main processor process scheduler 12 receives the state notification information.
  • FIG. 7 is a flowchart showing an example of the operation when the coprocessor process scheduler 14 receives the status notification information.
  • 8 and 9 are diagrams illustrating an example of priority change performed by the process scheduler.
  • a parallel computer 4 parallel processing system having a main processor node 1 and a coprocessor node 2 such as an accelerator
  • the parallel computer 4 in the present embodiment is configured to manage a process executed on the main processor node 1 and a process executed on the coprocessor node 2 by an independent process scheduler. As will be described later, by communicating predetermined information between process schedulers that manage each process, efficient scheduling as a whole system is realized.
  • the parallel computer 4 in this embodiment has one main processor node 1 (first node) and one or more coprocessor nodes 2 (second nodes). .
  • the main processor node 1 and one or more coprocessor nodes 2 are connected by a communication bus 3 and are configured to communicate with each other.
  • the main processor node 1 has a main processor 11 and a storage device (not shown).
  • An operating system (OS, Operating System) operates on the main processor node 1.
  • the OS operating on the main processor node 1 may be a commodity operating system used in a computer represented by Linux (registered trademark) or Windows (registered trademark).
  • a process scheduler that manages processes executed by the main processor 11 and a coprocessor 21 described later operates.
  • the main processor 11, the coprocessor 21, and the processes executed by the respective processors are managed by different process schedulers on the OS operating on the main processor node 1. Accordingly, a process scheduler corresponding to the number of main processors 11 and coprocessors 21 operates on the operating system.
  • the coprocessor node 2 has a coprocessor 21 and a storage device (not shown). Further, the OS does not operate on the coprocessor node 2. All the OSs including the control software of the coprocessor 21 operate on the main processor node 1. Further, the process state (context such as a register) of the coprocessor 21 is saved in the storage device on the main processor node 1 side via the communication bus 3.
  • the main processor node 1 and the coprocessor node 2 as described above execute a program that operates exclusively.
  • the main processor node 1 and the coprocessor node 2 execute a predetermined corresponding program such as being dependent on each other.
  • the process 1 is executed by the main processor 11 and the process 2 depending on the operation result of the process 1 is executed by the coprocessor 21.
  • the processes executed in the main processor node 1 and the processes executed in the coprocessor node 2 operate exclusively. Therefore, while the process 1 is being executed by the main processor 11, the coprocessor node 2 side is in a waiting state. Further, while the process 2 is being executed by the coprocessor 21, the main processor node 1 side is in a waiting state. During the waiting state, the state of the counterpart processor may be polled.
  • each process scheduler can determine a corresponding process (exclusive operation) by a method of matching process IDs between the process schedulers.
  • the specific determination method is not particularly limited as long as the corresponding process can be determined.
  • FIG. 3 shows an example of a more detailed configuration of the parallel computer 4 in the present embodiment.
  • the main processor node 1 includes a main processor 11 (for example, a first process processing unit, but may be a second process processing unit) and a main processor process scheduler 12 (first process processing unit).
  • a process scheduler or a second process scheduler a status notification unit 13
  • a coprocessor process scheduler 14 a first process scheduler or a second process scheduler
  • an inter-node communication unit 15. a main processor 11 (for example, a first process processing unit, but may be a second process processing unit) and a main processor process scheduler 12 (first process processing unit).
  • a process scheduler or a second process scheduler for example, a first process processing unit, but may be a second process processing unit
  • a process scheduler or a second process scheduler a status notification unit 13
  • a coprocessor process scheduler 14 a first process scheduler or a second process scheduler
  • an inter-node communication unit 15. a main processor 11 (for example, a first process processing unit, but may be a second process processing unit
  • the main processor 11 has one or more processor cores 111.
  • the processor core 111 included in the main processor 11 executes processes based on the control from the main processor process scheduler 12.
  • the main processor process scheduler 12 detects and manages the processing status of processes executed by the processor core 111.
  • the main processor process scheduler 12 performs a context switch based on a scheduling policy 122 described later. That is, the main processor process scheduler 12 switches processes executed by the processor core 11.
  • the main processor process scheduler 12 in this embodiment uses the state notification unit 13 to transmit the state notification information indicating that the context switch is to be executed to another process scheduler (for the coprocessor). Notify the process scheduler 14).
  • the main processor process scheduler 12 when the process context is saved by the context switch, the main processor process scheduler 12 notifies the coprocessor process scheduler 14 of state notification information indicating that the process has transitioned to the standby state. For example, when the process context is restored by a context switch, the main processor process scheduler 12 notifies the coprocessor process scheduler 14 of state notification information indicating that the process has been dispatched.
  • the main processor process scheduler 12 controls the priority of the process executed by the processor core 111 using the priority control means 121. Thereby, the main processor process scheduler 12 controls the process dispatched to the processor core 111.
  • the main processor process scheduler 12 receives state notification information indicating that the process has transitioned to the standby state from the coprocessor process scheduler 14. Then, the main processor process scheduler 12 confirms whether or not a process corresponding to the process indicated by the status notification information (operating exclusively) is in a waiting state by checking status information 1251 described later. To do. When the corresponding process is in a wait state, the priority control unit 121 of the main processor process scheduler 12 controls the priority of the process in the wait state to be lower than normal (see FIG. 8). Further, the main processor process scheduler 12 receives, for example, status notification information indicating that the process has been dispatched from the coprocessor process scheduler 14.
  • the main processor process scheduler 12 confirms whether or not a process corresponding to the process indicated by the state notification information is in a wait state by confirming the state information 1251.
  • the priority control unit 121 of the main processor process scheduler 12 restores the priority by increasing the priority of the waiting process (FIG. 9). reference).
  • the main processor process scheduler 12 is configured to detect the processing status (process switching) of the process executed by the processor core 111 and transmit the status notification information to other process schedulers. Yes.
  • the main processor process scheduler 12 is configured to control the operation of the processor core 111 based on the received status notification information (to control the priority of processes executed by the processor core 111).
  • the parameter indicating the degree of priority change controlled by the main processor process scheduler 12 may be configured to be changeable.
  • FIG. 4 shows an example of a configuration used when the main processor process scheduler 12 executes a context switch.
  • the main processor process scheduler 12 includes a scheduling policy 122, a process switch unit 123, a process context 124, and a process structure 125.
  • the scheduling policy 122 indicates a policy for selecting a process to be executed next when a context switch timing or context switch is executed.
  • the scheduling policy 122 is not particularly limited as long as scheduling by priority is possible, and any known policy can be applied.
  • the process switch means 123 is means for switching processes executed by the processor core 111.
  • the process switch unit 123 stores the context of the processor core 111 in which the process to be replaced by the context switch is operating as the process context 124. Then, the process switch unit 122 restores the dispatch target process context 124 to the target processor core 111.
  • the process context 124 is context data saved from the processor core 111 when the process switch unit 123 context-switches the process executed by the processor core 111.
  • the process structure 125 is a structure indicating process information, and has state information 1251.
  • the parallel computer 4 in this embodiment executes a program that operates exclusively on the main processor node 1 and the coprocessor node 2. Therefore, for example, while the process on the main processor node 1 side is being executed, the coprocessor node 2 side is in a waiting state.
  • the process structure 125 managed by the main processor process scheduler 12 is information on whether or not the other process is waiting (whether or not it is in a wait state). It has some state information 1251.
  • the status information 1251 is controlled to indicate that it is waiting for processing.
  • the status notification means 13 is used when transmitting / receiving status notification information between the main processor process scheduler 12 and the coprocessor process scheduler 14.
  • the main processor process scheduler 12 transmits state notification information to the coprocessor process scheduler 14 using the state notification means 13.
  • the coprocessor process scheduler 14 transmits the state notification information to the main processor process scheduler 12 and the other coprocessor process schedulers 14 using the state notification unit 13.
  • the coprocessor process scheduler 14 manages processes executed by the processor core 211 of the corresponding coprocessor node 2.
  • the number of coprocessor process schedulers 14 is set according to the number of coprocessor nodes 2.
  • the coprocessor process scheduler 14 has the same configuration as the main processor process scheduler 12. That is, the coprocessor process scheduler 14 is configured to be able to execute the following processing. Context switching of processes executed in the corresponding coprocessor node 2 (Note that this processing is performed via the communication bus 3). When executing a context switch, state notification information is transmitted to other process schedulers (main processor process scheduler 12 and other coprocessor process schedulers 14). The priority is controlled by the priority control unit 141 according to the status notification information received from another process scheduler.
  • the coprocessor process scheduler 14 has the same configuration as the main processor process scheduler 12 shown in FIG. That is, the coprocessor process scheduler 14 has a scheduling policy, a process switch unit, a process context, and a process structure. Further, the process structure included in the coprocessor process scheduler 14 has state information.
  • the coprocessor process scheduler 14 is configured in the same manner as the main processor process scheduler 12. Therefore, a detailed description of the coprocessor process scheduler 14 is omitted.
  • the inter-node communication means 15 is used when the main processor 11 and the coprocessor process scheduler 14 communicate with the coprocessor node 2.
  • the main processor 11 communicates with the processor core 211 of the coprocessor node 2 via the inter-node communication means 15 when processing a process executed by the processor core 111.
  • the coprocessor process scheduler 14 manages processes executed by the processor core 211 of the coprocessor node 2 via the inter-node communication means 15. That is, the main processor node 1 communicates with the coprocessor node 2 using the inter-node communication means 15.
  • the coprocessor node 2 has a coprocessor 21 and inter-node communication means 22.
  • the number of coprocessor nodes 2 may be an arbitrary number of 1 or more.
  • the coprocessor 21 has one or more coprocessor cores 211.
  • the processor core 211 included in the coprocessor 21 executes a process based on the control from the corresponding coprocessor process scheduler 14.
  • the inter-node communication means 22 is used when the coprocessor 21 communicates with the main processor node 1.
  • the coprocessor 21 communicates with the processor core 111 of the main processor node 1 via the inter-node communication means 22 when processing a process executed by the processor core 211.
  • the processes executed by the processor core 211 of the coprocessor node 2 are managed by the coprocessor process scheduler 14 connected via the inter-node communication means 22. That is, the coprocessor node 2 communicates with the main processor node 1 using the inter-node communication means 22.
  • the main processor process scheduler 12 determines a process to be replaced by a context switch in accordance with the scheduling policy 122 (step S101).
  • the scheduling policy 122 referred to by the main processor process scheduler 12 can be an official one and is not particularly limited.
  • the scheduling algorithm used by the main processor process scheduler 12 can be an official one and is not particularly limited.
  • the process switch unit 123 stores the context of the processor core 111 in which the process that is the target of context switching is operating as the process context 124. Then, the process switch unit 123 restores the process context 124 to be dispatched to the processor core 111 to be context switched.
  • the main processor process scheduler 12 executes the context switch by such an operation (step S102).
  • the main processor process scheduler 12 uses the state notification means 13 to send the state notification information indicating that the process has transitioned to the standby state and the state notification information indicating that the process has been dispatched to other processes.
  • the scheduler (the coprocessor process scheduler 14) is notified (step S103).
  • the timing at which the main processor process scheduler 12 transmits the status notification information is not limited to the above case.
  • the main processor process scheduler 12 can transmit the state notification information indicating that the process has changed to the standby state and the state notification information indicating that the process has been dispatched at different timings.
  • the main processor process scheduler 12 saves (or saves) the context of the target processor core 111 as the process context 124, and then transmits state notification information indicating that the process has transitioned to the standby state. Thereafter, the main processor process scheduler 12 restores (or restores) the process context 124 to be dispatched to the processor core 111 to be context switched, and then transmits state notification information indicating that the process has been dispatched. To do.
  • the main processor process scheduler 12 can operate as described above, for example. Further, the main processor process scheduler 12 may be configured to simultaneously notify the fact that the process has transitioned to the standby state and the fact that the process has been dispatched using one piece of state notification information.
  • the coprocessor process scheduler 14 determines a process to be replaced by the context switch according to the scheduling policy of the coprocessor process scheduler 14 (see step S101, FIG. 5).
  • the process switch means of the coprocessor process scheduler 14 stores the context of the processor core 211 in which the process subject to context switching is operating as a process context in the coprocessor process scheduler 14. That is, the process state of the processor core 211 of the coprocessor 21 is saved to the main processor node 1 side. Then, the process switch unit of the coprocessor process scheduler 14 restores the process context to be dispatched to the processor core 211 to be context switched.
  • the coprocessor process scheduler 14 executes the operation as described above by accessing the context of the processor core 211 of the coprocessor node 2 by using the internode communication means 15 via the communication bus 3. Step S102, see FIG.
  • the coprocessor process scheduler 14 uses the state notification means 13 to send the state notification information indicating that the process has changed to the standby state and the state notification information indicating that the process has been dispatched to other processes.
  • the scheduler (the main processor process scheduler 12 and the other coprocessor process scheduler 14) is notified (step S103, see FIG. 5).
  • the configuration when the coprocessor process scheduler 14 notifies the status notification information can take various forms as in the case of the main processor process scheduler 12.
  • the main processor process scheduler 12 receives status notification information indicating that the process is switched from the coprocessor process scheduler 14 by the status notification means 13 (step S201). Specifically, the main processor process scheduler 12 receives from the coprocessor process scheduler 14 status notification information indicating that the process has transitioned to the standby state or status notification information indicating that the process has been dispatched. To do. The main processor process scheduler 12 simultaneously receives from the coprocessor process scheduler 14 status notification information indicating that the process has transitioned to the standby state and status notification information indicating that the process has been dispatched. It doesn't matter.
  • the main processor process scheduler 12 refers to the state information 1251 of the process structure 125. As a result, the main processor process scheduler 12 confirms whether the process on the main processor node 1 side corresponding to the process switched on the coprocessor process scheduler 14 side is in a waiting state (step S202).
  • step S202 when the process is not in a waiting state (step S202, no), the main processor process scheduler 12 ends the process.
  • step S202 if the process is in a wait state (step S202, yes), the main processor process scheduler 12 indicates that the received state notification information indicates that the process has transitioned to the wait state, or the process is dispatched. It is confirmed whether or not it is indicated (step S203).
  • step S203 transition to the standby state
  • step S205 the main processor node 1
  • the priority (process priority) for processing the corresponding process on the side is lowered from the normal level (step S205).
  • step S203 when the main processor process scheduler 12 has received status notification information indicating that the process has been dispatched (step S203, dispatch), the corresponding process on the main processor node 1 side as shown in FIG.
  • the priority for processing (process priority) is increased and restored (step S204).
  • the main processor process scheduler 12 controls the priority according to the received status notification information, for example, by the operation as described above. As a result, the process executed by the processor core 111 is controlled.
  • the operation when the coprocessor process scheduler 14 receives status notification information from other process schedulers (the main processor process scheduler 12 and the other coprocessor process scheduler 14) will be described with reference to FIG. To do.
  • the operation when the coprocessor process scheduler 14 receives status notification information from another process scheduler is substantially the same as the operation when the main processor process scheduler 12 receives status notification information from another process scheduler. is there.
  • the coprocessor process scheduler 14 uses the status notification means 13 to indicate a status notification indicating that the process is switched from another process scheduler (the main processor process scheduler 12 or another coprocessor process scheduler 14). Information is received (step S301). Specifically, the coprocessor process scheduler 14 receives status notification information indicating that the process has transitioned to the standby state or status notification information indicating that the process has been dispatched from another process scheduler. The coprocessor process scheduler 14 may simultaneously receive status notification information indicating that the process has transitioned to the standby state and status notification information indicating that the process has been dispatched from another process scheduler. I do not care.
  • the coprocessor process scheduler 14 refers to the state information of the process structure included in the coprocessor process scheduler 14. As a result, the coprocessor process scheduler 14 checks whether the process on the coprocessor node 2 side corresponding to the process switched on the other process scheduler side is in a waiting state (step S302).
  • the coprocessor process scheduler 14 ends the process when the process is not in a waiting state (step S302, no).
  • step S302 if the process is in a wait state (step S302, yes), the coprocessor process scheduler 14 indicates that the received state notification information indicates that the process has transitioned to the wait state or the process is dispatched. It is confirmed whether or not it is indicated (step S303).
  • step S303 transition to the standby state
  • step S305 the coprocessor node The priority (process priority) for processing the corresponding process on the second side is lowered from the normal level
  • step S303 dispatch
  • step S304 the corresponding process on the coprocessor node 2 side as shown in FIG. Is raised and returned to the original level
  • the coprocessor process scheduler 14 controls the priority according to the received status notification information, for example, by the operation as described above. As a result, the process executed by the processor core 211 on the coprocessor node 2 corresponding to the coprocessor process scheduler 14 is controlled.
  • the parallel computer 4 includes the main processor process scheduler 12 that manages processes executed by the processor core 111, and the coprocessor process scheduler 14 that manages processes executed by the processor core 211. ,have.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 are configured to communicate with each other via the state notification means 13.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 can transmit state notification information to other process schedulers when context switching is performed.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 can control the priorities of related processes according to the processing status of other processes.
  • CPU Central Processing Unit
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 are configured to be able to transmit state notification information indicating that the process has transitioned to a standby state.
  • state notification information indicating that the process has transitioned to a standby state.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 transmit status notification information indicating the fact to other process schedulers. I can do it.
  • the side receiving the status notification information executes control according to the status notification information, so that the priority of the process associated with the process saved in the process context can be lowered. Accordingly, for example, it is possible to prevent unnecessary polling monitoring from being performed, and it is possible to prevent execution of another process from being hindered due to execution of an unnecessary process.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 are configured to be able to transmit status notification information indicating that the process has been dispatched.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 transmit status notification information indicating the fact to other process schedulers. I can do it.
  • the side receiving the state notification information executes control according to the state notification information, thereby increasing the priority of the process associated with the process to which the process context is dispatched. Thereby, for example, it becomes possible to restore the priority of the process as needed.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 transmit state notification information to other process schedulers.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 may be configured to transmit status notification information to, for example, a process scheduler that manages related processes.
  • the parallel computer 4 has the main processor node 1 and the coprocessor node 2.
  • the present invention can be applied without being limited to the case where the main processor node 1 and the coprocessor node 2 are provided.
  • the present invention may be configured such that, for example, when different accelerators are respectively good at each process, the state notification information is transmitted between process schedulers that manage processes executed by the respective accelerators.
  • the present invention can be implemented without limiting the specific configuration as long as the status notification information can be transmitted between schedulers that control related processes.
  • the present invention may be configured such that the state notification information is transmitted between coprocessor process schedulers that respectively manage a plurality of coprocessor nodes 2.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 control the priority of the corresponding process according to the state notification information.
  • the control according to the state notification information performed by the main processor process scheduler 12 and the coprocessor process scheduler 14 is not limited to the control for priority.
  • the main processor process scheduler 12 and the coprocessor process scheduler 14 may be configured not to control the priority and to control not to dispatch the process according to the state notification information.
  • the main processor node 1 and the coprocessor node 2 execute a program that operates exclusively.
  • the programs that operate on the main processor node 1 and the coprocessor node 2 are not necessarily limited to programs that operate exclusively. In the main processor node 1 and the coprocessor node 2, it is only necessary to execute a corresponding program in which one operation affects the other.
  • the parallel computer 5 in this embodiment has a main processor node 51 and one or more coprocessor nodes 52.
  • the main processor node 51 has a main processor 511 and a main processor process scheduler 512.
  • the coprocessor node 52 includes a coprocessor 521 and a coprocessor process scheduler 522.
  • the main processor process scheduler 512 and the coprocessor process scheduler 522 are connected by the state notification means 53 and configured to be communicable.
  • the parallel computer 5 in the present embodiment has substantially the same configuration as the parallel computer 4 described in the first embodiment, and the coprocessor process scheduler 522 is included in the coprocessor node 52. This is different from the configuration of the parallel computer 4.
  • the main processor process scheduler 512 transmits state notification information to the coprocessor process scheduler 522 using the state notification means 53 when executing the context switch. Further, when executing the context switch, the coprocessor process scheduler 522 transmits the state notification information to the main processor process scheduler 512 and other coprocessor process schedulers 522 using the state notification unit 53. .
  • the main processor process scheduler 512 controls the priority of processes executed by the main processor 511 when it receives status notification information from another process scheduler. Further, the coprocessor process scheduler 522 controls the priority of processes executed by the coprocessor 521 when it receives status notification information from another process scheduler.
  • the present invention can be applied. That is, even when the nodes having the main processor process scheduler 512 and the coprocessor process scheduler 522 are different, the main processor process scheduler 512 and the coprocessor process scheduler 522 are connected by the state notification means 53. By doing so, it is possible to perform control based on the state notification information. As a result, the main processor process scheduler 512 and the coprocessor process scheduler 512 can control the priorities of related processes in accordance with the processing status of other processes.
  • parallel computer 5 in the second embodiment can employ various modified examples as in the parallel computer 4 in the first embodiment.
  • the parallel computer 6 in this embodiment has a processor 61.
  • the processor 61 has a processor core 611, and the processes executed by the processor core 611 are managed by the main processor process scheduler 62. Further, the processor 61 has a processor core 612 corresponding to a coprocessor node, and processes executed by the processor core 612 are managed by a coprocessor process scheduler 63.
  • the main processor process scheduler 62 and the coprocessor process scheduler 63 are connected by the state notification means 64 and are configured to communicate with each other.
  • the parallel computer 6 in this embodiment has a plurality of processor cores managed by different process schedulers on one node.
  • the main processor process scheduler 62 uses the state notification unit 64 to execute the context switch to the coprocessor process scheduler 63.
  • status notification information can be transmitted.
  • the coprocessor process scheduler 63 transmits status notification information to the main processor process scheduler 62 and the other coprocessor process schedulers 63 by using the status notification means 64 when executing the context switch. I can do it.
  • the main processor process scheduler 62 can control the priority of processes executed by the processor core 611 when it receives status notification information from another process scheduler.
  • the coprocessor process scheduler 63 can control the priority of processes executed by the processor core 612 when it receives status notification information from another process scheduler.
  • the main processor process scheduler 62 and the coprocessor process scheduler 63 can control the priorities of related processes according to the processing status of other processes.
  • the present invention is applicable even when only one node is provided.
  • parallel computer 6 in the third embodiment can employ various modified examples as in the parallel computer 4 in the first embodiment and the parallel computer 5 in the second embodiment.
  • a parallel processing system 7 that executes a related process by a plurality of processing units (a first process processing unit 71 and a second process processing unit 73) will be described.
  • a first process processing unit 71 and a second process processing unit 73 a parallel processing system 7 that executes a related process by a plurality of processing units.
  • an outline of the configuration of the parallel processing system 7 will be described.
  • the parallel processing system 7 in this embodiment includes a first process processing unit 71, a first process scheduler 72, a second process processing unit 73, a second process scheduler 74, have.
  • the first process processing unit 71 is configured to execute a predetermined process.
  • the first process scheduler 72 is configured to detect and manage the processing status of processes executed by the first process processing unit 71.
  • the second process processing unit 73 is configured to execute a process related to the process executed by the first process processing unit 71.
  • the second process scheduler 74 is configured to detect and manage the processing status of processes executed by the second process processing unit 73.
  • first process scheduler 72 and the second process scheduler 74 are configured to be able to communicate with each other.
  • the first process scheduler 72 detects the processing status of the first process processing unit 71. Then, the first process scheduler 72 transmits the detected processing status of the first process processing unit 71 to the second process scheduler 74. Further, the second process scheduler 74 detects the processing status of the second process processing unit 73. Then, the second process scheduler 74 transmits the detected processing status of the second process processing unit 73 to the first process scheduler 72.
  • the first process scheduler 72 executes a process related to the process indicated by the processing status according to the processing status of the second process processing unit 73 received from the second process scheduler 74.
  • the operation of the processing unit 71 is controlled.
  • the second process scheduler 74 executes a process related to the process indicated by the processing status according to the processing status of the first process processing unit 71 received from the first process scheduler 72.
  • the operation of the processing unit 73 is controlled.
  • the parallel processing system 7 in this embodiment includes the first process scheduler 72 that manages the first process processing unit 71, the second process scheduler 74 that manages the second process processing unit 73, and have.
  • the first process scheduler 72 and the second process scheduler 74 are configured to be able to communicate with each other.
  • the first process scheduler 72 can transmit the detected processing status to the second process scheduler 74.
  • the second process scheduler 74 can transmit the detected processing status to the first process scheduler 72.
  • the first process scheduler 72 can control the operation of the first process processing unit 71 that executes a related process according to the processing status of the second process processing unit 73.
  • the second process scheduler 74 can control the operation of the second process processing unit 73 that executes a related process according to the processing status of the first process processing unit 71. As a result, it is possible to prevent unnecessary processes from being assigned, and it is possible to realize efficient scheduling in the parallel processing system 7 as a whole.
  • the parallel processing system 7 described above can be realized by incorporating a predetermined program into the information processing apparatus.
  • a program according to another aspect of the present invention executes a related process in a plurality of processing units, and the process executed in the processing unit is executed by an information processing apparatus managed by a plurality of schedulers in its own scheduler.
  • the processing status of the process managed by the system is communicated to other schedulers, and each scheduler controls the operation of the processing unit that executes the process related to the process indicated by the processing status according to the received processing status. It is a program for realizing.
  • the parallel processing method executed by operating the parallel processing system 7 described above is a parallel processing method in which related processes are executed by a plurality of processing units, and the processes executed by the plurality of processing units are a plurality of processes.
  • Managed by the scheduler and communicates the processing status of the process managed by its own scheduler to other schedulers, and each scheduler executes a process related to the process indicated by the processing status according to the received processing status. This is a method of controlling the operation of the processing unit.
  • a parallel processing system for executing related processes in a plurality of processing units A first process processing unit for executing a predetermined process; A first process scheduler for detecting and managing a processing status of a process executed by the first process processing unit; A second process processing unit for executing a process related to the process executed by the first process processing unit; A second process scheduler for detecting and managing a processing status of a process executed by the second process processing unit,
  • the first process scheduler and the second process scheduler are configured to communicate with each other,
  • the first process scheduler executes the process related to the process indicated by the processing status according to the processing status of the second process processing unit detected by the second process scheduler. Control the operation of the
  • the second process scheduler executes the process related to the process indicated by the processing status according to the processing status of the first process processing unit detected by the first process scheduler.
  • a parallel processing system that controls the operation of parts.
  • Appendix 3 The parallel processing system according to appendix 1 or 2, When the process context executed by the first process processing unit is saved, the first process scheduler transmits state notification information indicating that the process has transitioned to a standby state to the second process scheduler. Configured, The second process scheduler performs control for lowering the priority to be processed by the second processing unit of a process related to a process that has transitioned to a standby state based on the received state notification information.
  • the first process scheduler is configured to transmit status notification information indicating that a process has been allocated to the second process scheduler when restoring a process context executed by the first process processing unit.
  • the second process scheduler performs control to increase priority to be processed by the second processing unit of a process related to an assigned process based on the received status notification information.
  • the parallel processing system according to any one of appendices 1 to 4,
  • the second process scheduler executes the second process waiting process when a process associated with the process indicated by the received status notification information is in the process waiting state of the first process processing unit.
  • a parallel processing system that controls the operation of the process processor.
  • Appendix 6 A parallel processing system according to any one of appendices 1 to 5, A first node having an operation system incorporated therein, the first process processing unit, the first process scheduler, and the second process scheduler; A second node not incorporating an operating system and having the second process processor; Have The second process processing unit executes a process based on control from the second process scheduler of the first node.
  • the first process scheduler controls an operation of the first process processing unit that executes a process related to a process indicated by the status notification information based on the received status notification information.
  • a parallel processing method for executing related processes in a plurality of processing units Processes executed by the plurality of processing units are managed by a plurality of schedulers, Communicate the processing status of processes managed by its own scheduler to other schedulers, Each scheduler controls the operation of a processing unit that executes a process related to a process indicated by the processing status according to the received processing status.
  • Appendix 9-1 The parallel processing method according to appendix 8 or 9, wherein When each scheduler saves the process context executed by the processing unit managed by itself, it sends state notification information indicating that the process has transitioned to the standby state to other process schedulers, Each scheduler performs control to lower the priority of a process related to a process that has transitioned to a standby state based on the received state notification information.
  • a first process processing unit for executing a predetermined process A first process scheduler for detecting and managing a processing status of a process executed by the first process processing unit; A second process processing unit for executing a process related to the process executed by the first process processing unit; A parallel processing method realized by an information processing apparatus having a second process scheduler for detecting and managing a processing status of a process executed by the second process processing unit, The first process scheduler and the second process scheduler communicate with each other; The first process scheduler executes the process related to the process indicated by the processing status according to the processing status of the second process processing unit detected by the second process scheduler. Control the operation of the The second process scheduler executes a process related to a process executed by the first process processing unit according to a processing status of the first process processing unit detected by the first process scheduler. A parallel processing method for controlling an operation of the second process processing unit.
  • a related process is executed by a plurality of processing units, and the process executed by the processing unit is performed by an information processing apparatus managed by a plurality of schedulers. Let other schedulers communicate the processing status of processes managed by their own scheduler, A program for causing each scheduler to control the operation of a processing unit that executes a process related to a process indicated by the processing status according to the received processing status.
  • Each scheduler when switching a process executed by a processing unit managed by itself, transmits status notification information indicating that the process is switched to another scheduler,
  • Each scheduler is a program that controls the operation of a processing unit that executes a process related to the process indicated by the status notification information based on the received status notification information.
  • a first process processing unit for executing a predetermined process A first process scheduler for detecting and managing a processing status of a process executed by the first process processing unit; A second process processing unit for executing a process related to the process executed by the first process processing unit;
  • the first process scheduler executes the process related to the process indicated by the processing status according to the processing status of the second process processing unit detected by the second process scheduler.
  • the second process scheduler executes a process related to a process executed by the first process processing unit according to a processing status of the first process processing unit detected by the first process scheduler.
  • 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)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

第1のプロセススケジューラと第2のプロセススケジューラとは、互いに通信可能なよう構成されており、第1のプロセススケジューラは、第2のプロセススケジューラが検出した第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する第1のプロセス処理部の動作を制御し、第2のプロセススケジューラは、第1のプロセススケジューラが検出した第1のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する第2のプロセス処理部の動作を制御する。

Description

並列処理システム
 本発明は、並列処理システム、並列処理方法、プログラムに関する。
 データの高速処理を可能とするため、複数のコアを同時に動かして並列処理を行う技術が知られている。
 上記のような並列処理を行う際の技術の一つとして、例えば、特許文献1がある。特許文献1には、第1のアプリケーションプログラムが動作するオペレーティングシステムと、OLリモート制御手段と、を有する第1のプロセッサコアと、オペレーティングシステムを稼働させずに、OLリモート制御手段からの要求に基づき第2のアプリケーションプログラムを動作させる軽量スケジューラを含む第2のプロセッサコアと、を有するプログラム並列実行システムが記載されている。特許文献1によると、上記構成を有することにより、第2のプロセッサコアにおける処理においてOS介在によるオーバーヘッドの影響を低減した並列処理を行うことが可能となる。
 また、並列計算機における並列プロセススケジューリングの方法の一つとして、例えば、特許文献2が知られている。特許文献2には、並列プロセスの並列同期待ち状態になった装置において、別のプロセスを動作させる、という技術が記載されている。つまり、特許文献2によると、並列同期待ち状態にある並列プロセスはディスパッチせず、代わりに実行可能な他のジョブのプロセスをディスパッチすることで、システムのスループット性能が低下することを防ぐことが可能となる。
特許第5453825号公報 特開H9-128351号公報
 しかしながら、特許文献1の技術の場合、第2のプロセッサコアを制御する軽量スケジューラは、メインシステム側と独立して形成されている。そのため、特許文献1の技術の場合、軽量スケジューラがメインシステム側のスケジューリングと連携した制御を行うことは難しかった。その結果、システム全体として効率的なスケジューリングを行うことが難しくなる場合があった。
 また、特許文献2の技術はプログラムが自ら待ち状態になった場合の制御であり、他の装置のスケジューリング状況に応じた制御を行うことは難しい。そのため、特許文献2の技術の場合でも、コンテキストスイッチが行われた場合など他の装置のスケジューリング状況によっては、システム全体として効率的なスケジューリングを行うことが難しくなる場合があった。
 このように、並列処理を行う場合、それぞれのプロセスを管理するスケジューラ同士で情報が共有されていないため、システム全体として効率的なスケジューリングを行うことが難しくなる場合がある、という問題が生じていた。
 そこで、本発明の目的は、並列処理を行う場合、それぞれのプロセスを管理するスケジューラ同士で情報が共有されていないため、システム全体として効率的なスケジューリングを行うことが難しくなる場合がある、という問題を解決する並列処理システムを提供することにある。
 かかる目的を達成するため本発明の一形態である並列処理システムは、
 関連するプロセスを複数の処理部で実行する並列処理システムであって、
 所定のプロセスを実行する第1のプロセス処理部と、
 前記第1のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第1のプロセススケジューラと、
 前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する第2のプロセス処理部と、
 前記第2のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第2のプロセススケジューラと、を有し、
 前記第1のプロセススケジューラと前記第2のプロセススケジューラとは、互いに通信可能なよう構成されており、
 前記第1のプロセススケジューラは、前記第2のプロセススケジューラが検出した前記第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御し、
 前記第2のプロセススケジューラは、前記第1のプロセススケジューラが検出した前記第1のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
 という構成を採る。
 また、本発明の他の形態である並列処理方法は、
 関連するプロセスを複数の処理部で実行する並列処理方法であって、
 前記処理部で実行するプロセスは複数のスケジューラで管理されており、
 自己のスケジューラが実行するプロセスの処理状況を他のスケジューラに通信し、
 各スケジューラは、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
 という構成を採る。
 また、本発明の他の形態であるプログラムは、
 関連するプロセスを複数の処理部で実行し、前記処理部で実行するプロセスは複数のスケジューラで管理されている情報処理装置に、
 自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信させ、
 各スケジューラに、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する、
 ことを実現させるためのプログラムである。
 本発明は、以上のように構成されることにより、並列処理を行う場合、それぞれのプロセスを管理するスケジューラ同士で情報が共有されていないため、システム全体として効率的なスケジューリングを行うことが難しくなる場合がある、という問題を解決する並列処理システムを提供することが可能となる。
本発明の第1の実施形態に係る並列計算機の構成の一例を示すブロック図である。 本発明の第1の実施形態に係る並列計算機で実行されるプログラムの一例を示す図である。 本発明の第1の実施形態に係る並列計算機の詳細な構成の一例を示すブロック図である。 本発明の第1の実施形態に係るプロセススケジューラの構成の一例を示す図である。 本発明の第1の実施形態に係るプロセススケジューラがコンテキストスイッチを行う際の動作の一例を示すフローチャートである。 本発明の第1の実施形態に係るメインプロセッサ用プロセススケジューラが状態通知情報を受信した際の動作の一例を示すフローチャートである。 本発明の第1の実施形態に係るコプロセッサ用プロセススケジューラが状態通知情報を受信した際の動作の一例を示すフローチャートである。 本発明の第1の実施形態に係るプロセススケジューラが行う優先度の変更の一例を示す図である。 本発明の第1の実施形態に係るプロセススケジューラが行う優先度の変更の一例を示す図である。 本発明の第2の実施形態に係る並列計算機の構成の一例を示すブロック図である。 本発明の第3の実施形態に係る並列計算機の構成の一例を示すブロック図である。 本発明の第4の実施形態に係る並列処理システムの構成の一例を示すブロック図である。
[第1の実施形態]
 図1は、並列計算機4の構成の一例を示すブロック図である。図2は、並列計算機4で実行されるプログラムの一例を示す図である。図3は、並列計算機4の詳細な構成の一例を示すブロック図である。図4は、メインプロセッサ用プロセススケジューラの構成の一例を示す図である。図5は、プロセススケジューラがコンテキストスイッチを行う際の動作の一例を示すフローチャートである。図6は、メインプロセッサ用プロセススケジューラ12が状態通知情報を受信した際の動作の一例を示すフローチャートである。図7は、コプロセッサ用プロセススケジューラ14が状態通知情報を受信した際の動作の一例を示すフローチャートである。図8、図9は、プロセススケジューラが行う優先度の変更の一例を示す図である。
 本発明の第1の実施形態では、メインプロセッサノード1と、アクセラレータなどのコプロセッサノード2と、を有する並列計算機4(並列処理システム)について説明する。本実施形態における並列計算機4は、メインプロセッサノード1上で実行されるプロセスと、コプロセッサノード2上で実行されるプロセスと、を独立したプロセススケジューラで管理するよう構成されている。後述するように、それぞれのプロセスを管理するプロセススケジューラ間で所定の情報を通信することで、システム全体としての効率的なスケジューリングを実現することになる。
 図1を参照すると、本実施形態における並列計算機4は、1つのメインプロセッサノード1(第1のノード)と、1つ以上のコプロセッサノード2(第2のノード)と、を有している。また、メインプロセッサノード1と1つ以上のコプロセッサノード2とは、通信バス3で接続されており、互いに通信可能なよう構成されている。
 メインプロセッサノード1は、メインプロセッサ11と図示しない記憶装置とを有している。また、メインプロセッサノード1上では、オペレーティングシステム(OS、Operating System)が動作する。メインプロセッサノード1上で動作するOSは、Linux(登録商標)やWindows(登録商標)などに代表される計算機に用いられるコモディティのオペレーティングシステムであって構わない。
 メインプロセッサノード1のオペレーティングシステム上では、メインプロセッサ11、後述するコプロセッサ21、で実行されるプロセスを管理するプロセススケジューラが動作する。本実施形態においては、メインプロセッサ11、コプロセッサ21、それぞれのプロセッサが実行するプロセスは、メインプロセッサノード1上で動作するOS上の別のプロセススケジューラでそれぞれ管理される。従って、オペレーティングシステム上には、メインプロセッサ11とコプロセッサ21の数に応じたプロセススケジューラが動作することになる。
 コプロセッサノード2は、コプロセッサ21と図示しない記憶装置とを有している。また、コプロセッサノード2上では、OSが動作しない。コプロセッサ21の制御ソフトウェアを含むOSは、全てメインプロセッサノード1上で動作することになる。また、コプロセッサ21のプロセス状態(レジスタなどのコンテキスト)は、通信バス3を介してメインプロセッサノード1側の記憶装置に退避される。
 本実施形態においては、上記のようなメインプロセッサノード1とコプロセッサノード2とで、排他的に動作するプログラムを実行する。つまり、メインプロセッサノード1とコプロセッサノード2とでは、相互に依存関係にあるなど、所定の対応するプログラムが実行されることになる。具体的には、例えば、図2で示すように、プロセス1をメインプロセッサ11で実行するとともに、プロセス1の演算結果に依存するプロセス2をコプロセッサ21で実行する。上記のように、メインプロセッサノード1で実行されるプロセスとコプロセッサノード2で実行されるプロセスとはそれぞれ排他的に動作する。従って、メインプロセッサ11でプロセス1を実行している間は、コプロセッサノード2側は待ち状態になることになる。また、コプロセッサ21でプロセス2を実行している間は、メインプロセッサノード1側は待ち状態になることになる。なお、待ち状態である間は、相手プロセッサの状態をポーリング監視することがある。
 また、本実施形態においては、プロセススケジューラ間でプロセスIDを一致させておくなどの方法により、各プロセススケジューラは対応する(排他的な動作をする)プロセスを判断することが出来るものとする。なお、対応するプロセスを判別可能であれば、具体的な判別方法は特に限定されない。
 次に、図3を参照して、並列計算機4のより具体的な構成について説明する。図3は、本実施形態における並列計算機4のより詳細な構成の一例を示している。
 図3を参照すると、メインプロセッサノード1は、メインプロセッサ11(例えば、第1のプロセス処理部。ただし、第2のプロセス処理部でも構わない。)と、メインプロセッサ用プロセススケジューラ12(第1のプロセススケジューラ又は第2のプロセススケジューラ)と、状態通知手段13と、コプロセッサ用プロセススケジューラ14(第1のプロセススケジューラ又は第2のプロセススケジューラ)と、ノード間通信手段15と、を有している。
 メインプロセッサ11は、1つ以上のプロセッサコア111を有している。メインプロセッサ11が有するプロセッサコア111は、メインプロセッサ用プロセススケジューラ12からの制御に基づいて、プロセスを実行する。
 メインプロセッサ用プロセススケジューラ12は、プロセッサコア111で実行するプロセスの処理状況を検出して管理する。
 例えば、メインプロセッサ用プロセススケジューラ12は、後述するスケジューリングポリシ122に基づいて、コンテキストスイッチを行う。つまり、メインプロセッサ用プロセススケジューラ12は、プロセッサコア11で実行されるプロセスを切り替える。また、本実施形態におけるメインプロセッサ用プロセススケジューラ12は、コンテキストスイッチを実行する際に、状態通知手段13を用いて、コンテキストスイッチを実行する旨を示す状態通知情報を他のプロセススケジューラ(コプロセッサ用プロセススケジューラ14)に通知する。
 具体的には、例えば、メインプロセッサ用プロセススケジューラ12は、コンテキストスイッチによりプロセスコンテキストを退避させると、プロセスが待機状態に遷移した旨を示す状態通知情報をコプロセッサ用プロセススケジューラ14に通知する。また、メインプロセッサ用プロセススケジューラ12は、例えば、コンテキストスイッチによりプロセスコンテキストを復元させると、プロセスがディスパッチされた旨を示す状態通知情報をコプロセッサ用プロセススケジューラ14に通知する。
 また、メインプロセッサ用プロセススケジューラ12は、他のプロセススケジューラから状態通知情報を受信すると、優先度制御手段121を用いて、プロセッサコア111で実行するプロセスの優先度を制御する。これにより、メインプロセッサ用プロセススケジューラ12は、プロセッサコア111にディスパッチされるプロセスを制御する。
 具体的には、例えば、メインプロセッサ用プロセススケジューラ12は、コプロセッサ用プロセススケジューラ14からプロセスが待機状態に遷移した旨を示す状態通知情報を受信する。すると、メインプロセッサ用プロセススケジューラ12は、当該状態通知情報が示すプロセスと対応する(排他的な動作をする)プロセスが待ち状態にあるか否かを、後述する状態情報1251を確認することで確認する。そして、当該対応するプロセスが待ち状態にある場合、メインプロセッサ用プロセススケジューラ12の優先度制御手段121は、待ち状態にあるプロセスの優先度を通常より低くなるよう制御する(図8参照)。また、メインプロセッサ用プロセススケジューラ12は、例えば、コプロセッサ用プロセススケジューラ14からプロセスがディスパッチされた旨を示す状態通知情報を受信する。すると、メインプロセッサ用プロセススケジューラ12は、当該状態通知情報が示すプロセスと対応するプロセスが待ち状態にあるか否かを、状態情報1251を確認することで確認する。そして、当該対応するプロセスが待ち状態にある場合、メインプロセッサ用プロセススケジューラ12の優先度制御手段121は、待ち状態にあるプロセスの優先度を高くすることにより、優先度を元に戻す(図9参照)。
 このように、メインプロセッサ用プロセススケジューラ12は、プロセッサコア111で実行されるプロセスの処理状況(プロセスの切り替え)を検出して、他のプロセススケジューラに対して状態通知情報を送信するよう構成されている。また、メインプロセッサ用プロセススケジューラ12は、受信した状態通知情報に基づいて、プロセッサコア111の動作を制御する(プロセッサコア111で実行されるプロセスの優先度を制御する)ように構成されている。
 なお、メインプロセッサ用プロセススケジューラ12が該当プロセスの優先度をどの程度上げるか、下げるか、は任意である。メインプロセッサ用プロセススケジューラ12が制御する優先度の変更度合を示すパラメータは、変更可能なよう構成されても構わない。
 図4は、メインプロセッサ用プロセススケジューラ12がコンテキストスイッチを実行する際に用いる構成の一例を示している。図4を参照すると、メインプロセッサ用プロセススケジューラ12は、スケジューリングポリシ122と、プロセススイッチ手段123と、プロセスコンテキスト124と、プロセス構造体125と、を有している。
 スケジューリングポリシ122は、コンテキストスイッチのタイミングや、コンテキストスイッチを実行する際に次に実行すべきプロセスを選定するためのポリシを示している。スケジューリングポリシ122は、優先度によるスケジューリングが可能であれば、特に限定せず公知なものが適用可能である。
 プロセススイッチ手段123は、プロセッサコア111で実行されるプロセスを切り替える手段である。例えば、プロセススイッチ手段123は、コンテキストスイッチで入れ替える対象となるプロセスが動作しているプロセッサコア111のコンテキストをプロセスコンテキスト124として保存する。そして、プロセススイッチ手段122は、ディスパッチ対象のプロセスコンテキスト124を対象のプロセッサコア111に復元する。
 プロセスコンテキスト124は、プロセススイッチ手段123がプロセッサコア111で実行されているプロセスをコンテキストスイッチした際にプロセッサコア111から退避されたコンテキストデータである。
 プロセス構造体125は、プロセスの情報を示す構造体であり、状態情報1251を有している。上述したように、本実施形態における並列計算機4では、メインプロセッサノード1とコプロセッサノード2とで排他的に動作するプログラムを実行する。そのため、例えば、メインプロセッサノード1側のプロセスが実行されている間、コプロセッサノード2側は待ち状態になることになる。このような待ちの状態をプロセススケジューラから判別するため、メインプロセッサ用プロセススケジューラ12が管理するプロセス構造体125は、相手側プロセスを待っているか否か(待ち状態であるか否か)の情報である状態情報1251を持つことになる。状態情報1251は、プロセス構造体125が示すプロセスが関連するプロセスの処理待ちである場合に、処理待ちである旨を示すよう制御される。
 状態通知手段13は、メインプロセッサ用プロセススケジューラ12とコプロセッサ用プロセススケジューラ14との間で状態通知情報を送受信する際に用いられる。例えば、メインプロセッサ用プロセススケジューラ12は、状態通知手段13を用いて、コプロセッサ用プロセススケジューラ14に対して状態通知情報を送信する。また、例えば、コプロセッサ用プロセススケジューラ14は、状態通知手段13を用いて、メインプロセッサ用プロセススケジューラ12と他のコプロセッサ用プロセススケジューラ14に対して状態通知情報を送信する。
 コプロセッサ用プロセススケジューラ14は、対応するコプロセッサノード2のプロセッサコア211で実行するプロセスを管理する。コプロセッサ用プロセススケジューラ14は、コプロセッサノード2の数に応じた数が設けられている。
 コプロセッサ用プロセススケジューラ14は、メインプロセッサ用プロセススケジューラ12と同様の構成を有している。すなわち、コプロセッサ用プロセススケジューラ14は、下記で示す処理を実行可能なよう構成されている。
・対応するコプロセッサノード2で実行されるプロセスをコンテキストスイッチする(なお、この処理は、通信バス3を介して行われる)。
・コンテキストスイッチを実行する際に、他のプロセススケジューラ(メインプロセッサ用プロセススケジューラ12と他のコプロセッサ用プロセススケジューラ14)に対して状態通知情報を送信する。
・他のプロセススケジューラから受信した状態通知情報に応じて、優先度制御手段141により優先度を制御する。
 また、コプロセッサ用プロセススケジューラ14は、図4で示すメインプロセッサ用プロセススケジューラ12と同様の構成を有している。つまり、コプロセッサ用プロセススケジューラ14は、スケジューリングポリシと、プロセススイッチ手段と、プロセスコンテキストと、プロセス構造体と、を有している。また、コプロセッサ用プロセススケジューラ14が有するプロセス構造体は、状態情報を有している。
 このように、コプロセッサ用プロセススケジューラ14は、メインプロセッサ用プロセススケジューラ12と同様に構成されている。そのため、コプロセッサ用プロセススケジューラ14についての詳細な説明は省略する。
 ノード間通信手段15は、メインプロセッサ11及びコプロセッサ用プロセススケジューラ14がコプロセッサノード2と通信を行う際に用いられる。例えば、メインプロセッサ11は、プロセッサコア111で実行するプロセスを処理する際にノード間通信手段15を介してコプロセッサノード2のプロセッサコア211と通信する。また、コプロセッサ用プロセススケジューラ14は、ノード間通信手段15を介してコプロセッサノード2のプロセッサコア211で実行されるプロセスの管理を行う。つまり、メインプロセッサノード1側からは、ノード間通信手段15を用いてコプロセッサノード2と通信することになる。
 また、図3を参照すると、コプロセッサノード2は、コプロセッサ21と、ノード間通信手段22と、を有している。コプロセッサノード2の数は、1以上の任意の数であって構わない。
 コプロセッサ21は、1つ以上のコプロセッサコア211を有している。コプロセッサ21が有するプロセッサコア211は、対応するコプロセッサ用プロセススケジューラ14からの制御に基づいて、プロセスを実行する。
 ノード間通信手段22は、コプロセッサ21がメインプロセッサノード1と通信を行う際に用いられる。例えば、コプロセッサ21は、プロセッサコア211で実行するプロセスを処理する際にノード間通信手段22を介してメインプロセッサノード1のプロセッサコア111と通信する。また、コプロセッサノード2のプロセッサコア211で実行されるプロセスは、ノード間通信手段22を介して接続されたコプロセッサ用プロセススケジューラ14で管理される。つまり、コプロセッサノード2側からは、ノード間通信手段22を用いてメインプロセッサノード1と通信することになる。
 以上が、並列計算機4の構成についての説明である。次に、並列計算機4の動作について説明する。まず、図5を参照して、メインプロセッサ用プロセススケジューラ12がメインプロセッサ11内のプロセッサコア111についてコンテキストスイッチする際の動作について説明する。
 図5を参照すると、メインプロセッサ用プロセススケジューラ12は、スケジューリングポリシ122に従って、コンテキストスイッチで入れ替えるプロセスを決定する(ステップS101)。上述したように、メインプロセッサ用プロセススケジューラ12が参照するスケジューリングポリシ122は、公的なものが適用可能であり特に限定しない。また、メインプロセッサ用プロセススケジューラ12が用いるスケジューリングアルゴリズムも公的なものが適用可能であり特に限定しない。
 次に、プロセススイッチ手段123が、コンテキストスイッチの対象となったプロセスが動作しているプロセッサコア111のコンテキストをプロセスコンテキスト124として保存する。そして、プロセススイッチ手段123は、ディスパッチ対象のプロセスコンテキスト124をコンテキストスイッチの対象となるプロセッサコア111に復元する。メインプロセッサ用プロセススケジューラ12は、このような動作によりコンテキストスイッチを実行する(ステップS102)。
 その後、メインプロセッサ用プロセススケジューラ12は、状態通知手段13を用いて、プロセスが待機状態に遷移した旨を示す状態通知情報と、プロセスがディスパッチされた旨を示す状態通知情報と、を他のプロセススケジューラ(コプロセッサ用プロセススケジューラ14)に通知する(ステップS103)。
 なお、メインプロセッサ用プロセススケジューラ12が状態通知情報を送信するタイミングは上記場合に限定されない。例えば、メインプロセッサ用プロセススケジューラ12は、プロセスが待機状態に遷移した旨を示す状態通知情報とプロセスがディスパッチされた旨を示す状態通知情報とを、異なるタイミングで送信することが出来る。例えば、メインプロセッサ用プロセススケジューラ12は、対象のプロセッサコア111のコンテキストをプロセスコンテキスト124として保存した後(又は保存するとともに)、プロセスが待機状態に遷移した旨を示す状態通知情報を送信する。その後、メインプロセッサ用プロセススケジューラ12は、ディスパッチ対象のプロセスコンテキスト124をコンテキストスイッチの対象となるプロセッサコア111に復元した後(又は復元するとともに)、プロセスがディスパッチされた旨を示す状態通知情報を送信する。メインプロセッサ用プロセススケジューラ12は、例えば、上記のように動作することが出来る。また、メインプロセッサ用プロセススケジューラ12は、プロセスが待機状態に遷移した旨と、プロセスがディスパッチされた旨とを、1つの状態通知情報で同時に通知するように構成しても構わない。
 続いて、コプロセッサ用プロセススケジューラ14がコプロセッサ21内のコプロセッサコア211についてコンテキストスイッチする際の動作について説明する。
 コプロセッサ用プロセススケジューラ14がコプロセッサ21内のコプロセッサコア211についてコンテキストスイッチする際の動作は、概ね図5で示すメインプロセッサ用プロセススケジューラ12がコンテキストスイッチする際の動作と同様である。
 すなわち、コプロセッサ用プロセススケジューラ14は、コプロセッサ用プロセススケジューラ14が有するスケジューリングポリシに従って、コンテキストスイッチで入れ替えるプロセスを決定する(ステップS101、図5参照)。
 続いて、コプロセッサ用プロセススケジューラ14のプロセススイッチ手段は、コンテキストスイッチの対象となったプロセスが動作しているプロセッサコア211のコンテキストを、コプロセッサ用プロセススケジューラ14内にプロセスコンテキストとして保存する。つまり、コプロセッサ21のプロセッサコア211のプロセス状態は、メインプロセッサノード1側に退避されることになる。そして、コプロセッサ用プロセススケジューラ14のプロセススイッチ手段は、ディスパッチ対象のプロセスコンテキストをコンテキストスイッチの対象となるプロセッサコア211に復元する。コプロセッサ用プロセススケジューラ14は、ノード間通信手段15を用いて通信バス3を介することで、コプロセッサノード2のプロセッサコア211のコンテキストにアクセスして上記のような動作を実行することになる(ステップS102、図5参照)。
 その後、コプロセッサ用プロセススケジューラ14は、状態通知手段13を用いて、プロセスが待機状態に遷移した旨を示す状態通知情報と、プロセスがディスパッチされた旨を示す状態通知情報と、を他のプロセススケジューラ(メインプロセッサ用プロセススケジューラ12と他のコプロセッサ用プロセススケジューラ14)に通知する(ステップS103、図5参照)。なお、コプロセッサ用プロセススケジューラ14が状態通知情報を通知する際の構成は、メインプロセッサ用プロセススケジューラ12の場合と同様にさまざまな形を採ることが出来る。
 次に、図6を参照して、メインプロセッサ用プロセススケジューラ12が他のプロセススケジューラ(コプロセッサ用プロセススケジューラ14)から状態通知情報を受信した際の動作について説明する。
 図6を参照すると、メインプロセッサ用プロセススケジューラ12は、状態通知手段13により、コプロセッサ用プロセススケジューラ14からプロセスを切り替える旨を示す状態通知情報を受信する(ステップS201)。具体的には、メインプロセッサ用プロセススケジューラ12は、コプロセッサ用プロセススケジューラ14から、プロセスが待機状態に遷移した旨を示す状態通知情報、又は、プロセスがディスパッチされた旨を示す状態通知情報を受信する。なお、メインプロセッサ用プロセススケジューラ12は、コプロセッサ用プロセススケジューラ14から、プロセスが待機状態に遷移した旨を示す状態通知情報と、プロセスがディスパッチされた旨を示す状態通知情報と、を同時に受信しても構わない。
 続いて、メインプロセッサ用プロセススケジューラ12は、プロセス構造体125の状態情報1251を参照する。これにより、メインプロセッサ用プロセススケジューラ12は、コプロセッサ用プロセススケジューラ14側で切り替えられたプロセスと対応するメインプロセッサノード1側のプロセスが、待ち状態であるか否かを確認する(ステップS202)。
 そして、メインプロセッサ用プロセススケジューラ12は、当該プロセスが待ち状態でなかった場合(ステップS202、no)、その処理を終了する。
 一方、当該プロセスが待ち状態であった場合(ステップS202、yes)、メインプロセッサ用プロセススケジューラ12は、受信した状態通知情報が、プロセスが待機状態に遷移した旨を示すか、又は、プロセスがディスパッチされた旨を示すか、を確認する(ステップS203)。
 そして、メインプロセッサ用プロセススケジューラ12は、プロセスが待機状態に遷移した旨を示す状態通知情報を受信していた場合(ステップS203、待機状態に遷移)、図8で示すように、メインプロセッサノード1側の対応するプロセスを処理する優先度(プロセス優先度)を通常より下げる(ステップS205)。
 一方、メインプロセッサ用プロセススケジューラ12は、プロセスがディスパッチされた旨を示す状態通知情報を受信していた場合(ステップS203、ディスパッチ)、図9で示すように、メインプロセッサノード1側の対応するプロセスを処理する優先度(プロセス優先度)を上げて元に戻す(ステップS204)。
 メインプロセッサ用プロセススケジューラ12は、例えば上記のような動作により、受け取った状態通知情報に応じて優先度を制御する。その結果、プロセッサコア111が実行するプロセスが制御されることになる。
 次に、図7を参照して、コプロセッサ用プロセススケジューラ14が他のプロセススケジューラ(メインプロセッサ用プロセススケジューラ12と他のコプロセッサ用プロセススケジューラ14)から状態通知情報を受信した際の動作について説明する。なお、コプロセッサ用プロセススケジューラ14が他のプロセススケジューラから状態通知情報を受信した際の動作は、メインプロセッサ用プロセススケジューラ12が他のプロセススケジューラから状態通知情報を受信した際の動作と概ね同様である。
 図7を参照すると、コプロセッサ用プロセススケジューラ14は、状態通知手段13により、他のプロセススケジューラ(メインプロセッサ用プロセススケジューラ12又は他のコプロセッサ用プロセススケジューラ14)からプロセスを切り替える旨を示す状態通知情報を受信する(ステップS301)。具体的には、コプロセッサ用プロセススケジューラ14は、他のプロセススケジューラから、プロセスが待機状態に遷移した旨を示す状態通知情報、又は、プロセスがディスパッチされた旨を示す状態通知情報を受信する。なお、コプロセッサ用プロセススケジューラ14は、他のプロセススケジューラから、プロセスが待機状態に遷移した旨を示す状態通知情報と、プロセスがディスパッチされた旨を示す状態通知情報と、を同時に受信しても構わない。
 続いて、コプロセッサ用プロセススケジューラ14は、当該コプロセッサ用プロセススケジューラ14が有するプロセス構造体の状態情報を参照する。これにより、コプロセッサ用プロセススケジューラ14は、他のプロセススケジューラ側で切り替えられたプロセスと対応する当該コプロセッサノード2側のプロセスが、待ち状態であるか否かを確認する(ステップS302)。
 そして、コプロセッサ用プロセススケジューラ14は、当該プロセスが待ち状態でなかった場合(ステップS302、no)、その処理を終了する。
 一方、当該プロセスが待ち状態であった場合(ステップS302、yes)、コプロセッサ用プロセススケジューラ14は、受信した状態通知情報が、プロセスが待機状態に遷移した旨を示すか、又は、プロセスがディスパッチされた旨を示すか、を確認する(ステップS303)。
 そして、コプロセッサ用プロセススケジューラ14は、プロセスが待機状態に遷移した旨を示す状態通知情報を受信していた場合(ステップS303、待機状態に遷移)、図8で示すように、当該コプロセッサノード2側の対応するプロセスを処理する優先度(プロセス優先度)を通常より下げる(ステップS305)。
 一方、コプロセッサ用プロセススケジューラ14は、プロセスがディスパッチされた旨を示す状態通知情報を受信していた場合(ステップS303、ディスパッチ)、図9で示すように、コプロセッサノード2側の対応するプロセスを処理する優先度(プロセス優先度)を上げて元に戻す(ステップS304)。
 コプロセッサ用プロセススケジューラ14は、例えば上記のような動作により、受け取った状態通知情報に応じて優先度を制御する。その結果、コプロセッサ用プロセススケジューラ14に応じたコプロセッサノード2上のプロセッサコア211が実行するプロセスが制御されることになる。
 このように、本実施形態における並列計算機4は、プロセッサコア111で実行されるプロセスを管理するメインプロセッサ用プロセススケジューラ12と、プロセッサコア211で実行されるプロセスを管理するコプロセッサ用プロセススケジューラ14と、を有している。そして、メインプロセッサ用プロセススケジューラ12とコプロセッサ用プロセススケジューラ14とは、状態通知手段13を介して通信可能なよう構成されている。このような構成により、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、コンテキストスイッチする際に状態通知情報を他のプロセススケジューラに対して送信することが出来る。その結果、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、他のプロセスの処理状況に応じて、関連するプロセスの優先度を制御することが可能となる。これにより、不必要なプロセスのCPU(Central Processing Unit)割り当てを低減し、並列計算機4全体でのスケジューリング効率化を実現することが可能となる。また、その結果として、CPUをより効率的に利用することが可能となる。
 また、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、プロセスが待機状態に遷移した旨を示す状態通知情報を送信可能なよう構成されている。このような構成により、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、コンテキストスイッチによりプロセスコンテキストを退避する際に、その旨を示す状態通知情報を他のプロセススケジューラに対して送信することが出来る。その結果、上記状態通知情報を受け取った側が上記状態通知情報に応じた制御を実行することで、プロセスコンテキストが退避したプロセスと関連するプロセスの優先度を下げることが可能となる。これにより、例えば、不要なポーリング監視を実行することなどを防ぐことが可能となり、不要なプロセスが実行されることで別のプロセスの実行が妨げられることを防ぐことが可能となる。
 また、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、プロセスがディスパッチされた旨を示す状態通知情報を送信可能なよう構成されている。このような構成により、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、コンテキストスイッチによりプロセスコンテキストをディスパッチする際に、その旨を示す状態通知情報を他のプロセススケジューラに対して送信することが出来る。その結果、上記状態通知情報を受け取った側が上記状態通知情報に応じた制御を実行することで、プロセスコンテキストがディスパッチされたプロセスと関連するプロセスの優先度を上げることが可能となる。これにより、例えば、必要に応じてプロセスの優先度を元に戻すことが可能となる。
 なお、本実施形態においては、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、他のプロセススケジューラに対して状態通知情報を送信するとした。しかしながら、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、例えば、関連するプロセスを管理するプロセススケジューラに対して状態通知情報を送信するように構成しても構わない。
 また、本実施形態においては、並列計算機4は、メインプロセッサノード1とコプロセッサノード2とを有するとした。しかしながら、本発明は上記メインプロセッサノード1とコプロセッサノード2とを有する場合に限定されず適用可能である。本発明は、例えば、別々のアクセラレータにそれぞれ得意なことをやらせる場合に、それぞれのアクセラレータで実行されるプロセスを管理するプロセススケジューラ同士で状態通知情報を送信するよう構成しても構わない。このように、関連するプロセスを制御するスケジューラ同士で状態通知情報を送信可能であれば、本発明は具体的な構成を限定せず実施可能である。本発明は、例えば、複数のコプロセッサノード2をそれぞれ管理するコプロセッサ用プロセススケジューラ同士で状態通知情報を送信するよう構成しても構わない。
 また、本実施形態においては、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、状態通知情報に応じて、対応するプロセスの優先度を制御するとした。しかしながら、メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14が行う状態通知情報に応じた制御は、優先度に対する制御に限定されない。メインプロセッサ用プロセススケジューラ12、コプロセッサ用プロセススケジューラ14は、例えば、優先度を制御せずに、状態通知情報に応じたプロセスをディスパッチしないように制御するよう構成しても構わない。
 また、本実施形態においては、メインプロセッサノード1とコプロセッサノード2とで、排他的に動作するプログラムを実行するとした。しかしながら、メインプロセッサノード1とコプロセッサノード2とで動作するプログラムは、必ずしも排他的に動作するプログラムに限られない。メインプロセッサノード1とコプロセッサノード2とでは、一方の動作が他方にも影響する、対応するプログラムが実行されていれば構わない。
[第2の実施形態]
 本発明の第2の実施形態では、第1の実施形態で説明した並列計算機4の他の構成例について説明する。
 図10を参照すると、本実施形態における並列計算機5は、メインプロセッサノード51と、1以上のコプロセッサノード52と、を有している。
 メインプロセッサノード51は、メインプロセッサ511と、メインプロセッサ用プロセススケジューラ512と、を有している。また、コプロセッサノード52は、コプロセッサ521と、コプロセッサ用プロセススケジューラ522と、を有している。そして、メインプロセッサ用プロセススケジューラ512とコプロセッサ用プロセススケジューラ522とは、状態通知手段53で接続されており、通信可能なよう構成されている。
 このように、本実施形態における並列計算機5は、第1の実施形態で説明した並列計算機4とほぼ同様の構成を有しており、コプロセッサ用プロセススケジューラ522をコプロセッサ用ノード52が有している点が、並列計算機4の構成と異なっている。
 上記のような構成により、メインプロセッサ用プロセススケジューラ512は、コンテキストスイッチを実行する際に、状態通知手段53を用いて、コプロセッサ用プロセススケジューラ522に対して状態通知情報を送信する。また、コプロセッサ用プロセススケジューラ522は、コンテキストスイッチを実行する際に、状態通知手段53を用いて、メインプロセッサ用プロセススケジューラ512と他のコプロセッサ用プロセススケジューラ522に対して状態通知情報を送信する。
 また、メインプロセッサ用プロセススケジューラ512は、他のプロセススケジューラから状態通知情報を受信すると、メインプロセッサ511で実行するプロセスの優先度を制御する。また、コプロセッサ用プロセススケジューラ522は、他のプロセススケジューラから状態通知情報を受信すると、コプロセッサ521で実行するプロセスの優先度を制御する。
 このように、メインプロセッサノード51がメインプロセッサ用プロセススケジューラ512を有し、コプロセッサノード52がコプロセッサ用プロセススケジューラ522を有する場合であっても、本発明は適用可能である。つまり、メインプロセッサ用プロセススケジューラ512とコプロセッサ用プロセススケジューラ522とを有しているノードが異なっている場合でも、メインプロセッサ用プロセススケジューラ512とコプロセッサ用プロセススケジューラ522とを状態通知手段53で接続することで、状態通知情報に基づいた制御を行うことを可能とすることが出来る。その結果、メインプロセッサ用プロセススケジューラ512、コプロセッサ用プロセススケジューラ512は、他のプロセスの処理状況に応じて、関連するプロセスの優先度を制御することが可能となる。
 なお、第2の実施形態における並列計算機5も、第1の実施形態における並列計算機4と同様に様々な変形例を採用することが出来る。
[第3の実施形態]
 本発明の第3の実施形態では、第1の実施形態で説明した並列計算機4、第2の実施形態で説明した並列計算機5の他の構成例について説明する。本実施形態においては、ノードが1つの場合について説明する。具体的には、例えば、コプロセッサノードがメインプロセッサノード内の1つ以上のプロセッサコアで構成されている場合について説明する。
 図11を参照すると、本実施形態における並列計算機6は、プロセッサ61を有している。また、プロセッサ61はプロセッサコア611を有しており、プロセッサコア611で実行するプロセスは、メインプロセッサ用プロセススケジューラ62で管理されている。さらに、プロセッサ61は、コプロセッサノードに相当するプロセッサコア612を有しており、プロセッサコア612で実行するプロセスは、コプロセッサ用プロセススケジューラ63で管理されている。そして、メインプロセッサ用プロセススケジューラ62とコプロセッサ用プロセススケジューラ63とは、状態通知手段64で接続されており、通信可能なよう構成されている。
 このように、本実施形態における並列計算機6は、1つのノード上に、異なるプロセススケジューラで管理する複数のプロセッサコアを有している。このような構成であったとしても、状態通知手段64を有することで、メインプロセッサ用プロセススケジューラ62は、コンテキストスイッチを実行する際に、状態通知手段64を用いて、コプロセッサ用プロセススケジューラ63に対して状態通知情報を送信することが出来る。また、コプロセッサ用プロセススケジューラ63は、コンテキストスイッチを実行する際に、状態通知手段64を用いて、メインプロセッサ用プロセススケジューラ62と他のコプロセッサ用プロセススケジューラ63に対して状態通知情報を送信することが出来る。また、メインプロセッサ用プロセススケジューラ62は、他のプロセススケジューラから状態通知情報を受信すると、プロセッサコア611で実行するプロセスの優先度を制御することが出来る。また、コプロセッサ用プロセススケジューラ63は、他のプロセススケジューラから状態通知情報を受信すると、プロセッサコア612で実行するプロセスの優先度を制御することが出来る。
 その結果、メインプロセッサ用プロセススケジューラ62、コプロセッサ用プロセススケジューラ63は、他のプロセスの処理状況に応じて、関連するプロセスの優先度を制御することが可能となる。このように、本発明は、1つのノードのみを有する場合でも適用可能である。
 なお、第3の実施形態における並列計算機6も、第1の実施形態における並列計算機4、第2の実施形態における並列計算機5、と同様に様々な変形例を採用することが出来る。
[第4の実施形態]
 本発明の第4の実施形態では、関連するプロセスを複数の処理部(第1のプロセス処理部71と第2のプロセス処理部73)で実行する並列処理システム7について説明する。本実施形態においては、並列処理システム7の構成の概要について説明する。
 図12を参照すると、本実施形態における並列処理システム7は、第1のプロセス処理部71と、第1のプロセススケジューラ72と、第2のプロセス処理部73と、第2のプロセススケジューラ74と、を有している。
 第1のプロセス処理部71は、所定のプロセスを実行するよう構成されている。また、第1のプロセススケジューラ72は、第1のプロセス処理部71で実行されるプロセスの処理状況を検出して管理するよう構成されている。
 第2のプロセス処理部73は、第1のプロセス処理部71で実行されるプロセスと関連するプロセスを実行するよう構成されている。また、第2のプロセススケジューラ74は、第2のプロセス処理部73で実行されるプロセスの処理状況を検出して管理するよう構成されている。
 また、第1のプロセススケジューラ72と第2のプロセススケジューラ74とは、互いに通信可能なよう構成されている。
 このような構成により、第1のプロセススケジューラ72は、第1のプロセス処理部71の処理状況を検出する。そして、第1のプロセススケジューラ72は、検出した第1のプロセス処理部71の処理状況を、第2のプロセススケジューラ74に対して送信する。また、第2のプロセススケジューラ74は、第2のプロセス処理部73の処理状況を検出する。そして、第2のプロセススケジューラ74は、検出した第2のプロセス処理部73の処理状況を、第1のプロセススケジューラ72に対して送信する。
 また、第1のプロセススケジューラ72は、第2のプロセススケジューラ74から受信した第2のプロセス処理部73の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する第1のプロセス処理部71の動作を制御する。また、第2のプロセススケジューラ74は、第1のプロセススケジューラ72から受信した第1のプロセス処理部71の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する第2のプロセス処理部73の動作を制御する。
 このように、本実施形態における並列処理システム7は、第1のプロセス処理部71を管理する第1のプロセススケジューラ72と、第2のプロセス処理部73を管理する第2のプロセススケジューラ74と、を有している。また、第1のプロセススケジューラ72と第2のプロセススケジューラ74とは、互いに通信可能なよう構成されている。このような構成により、第1のプロセススケジューラ72は、検出した処理状況を第2のプロセススケジューラ74に対して送信することが出来る。また、第2のプロセススケジューラ74は、検出した処理状況を第1のプロセススケジューラ72に対して送信することが出来る。その結果、第1のプロセススケジューラ72は、第2のプロセス処理部73の処理状況に応じて、関連するプロセスを実行する第1のプロセス処理部71の動作を制御することが出来る。また、第2のプロセススケジューラ74は、第1のプロセス処理部71の処理状況に応じて、関連するプロセスを実行する第2のプロセス処理部73の動作を制御することが出来る。これにより、不必要なプロセスが割り当てられることを防止することが可能となり、並列処理システム7全体でのスケジューリング効率化を実現することが可能となる。
 また、上述した並列処理システム7は、情報処置装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、関連するプロセスを複数の処理部で実行し、処理部で実行するプロセスは複数のスケジューラで管理されている情報処理装置に、自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信させ、各スケジューラに、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する、ことを実現させるためのプログラムである。
 また、上述した並列処理システム7が作動することにより実行される並列処理方法は、関連するプロセスを複数の処理部で実行する並列処理方法であって、複数の処理部で実行するプロセスは複数のスケジューラで管理されており、自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信し、各スケジューラは、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する、という方法である。
 上述した構成を有する、プログラム、又は、並列処理方法、の発明であっても、上記並列処理システム7と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における並列処理システムなどの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 関連するプロセスを複数の処理部で実行する並列処理システムであって、
 所定のプロセスを実行する第1のプロセス処理部と、
 前記第1のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第1のプロセススケジューラと、
 前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する第2のプロセス処理部と、
 前記第2のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第2のプロセススケジューラと、を有し、
 前記第1のプロセススケジューラと前記第2のプロセススケジューラとは、互いに通信可能なよう構成されており、
 前記第1のプロセススケジューラは、前記第2のプロセススケジューラが検出した前記第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御し、
 前記第2のプロセススケジューラは、前記第1のプロセススケジューラが検出した前記第1のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
 並列処理システム。
(付記2)
 付記1に記載の並列処理システムであって、
 前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
 前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
 並列処理システム。
(付記3)
 付記1又は2に記載の並列処理システムであって、
 前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスコンテキストを退避する際に、プロセスが待機状態に遷移した旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
 前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、待機状態に遷移したプロセスと関連するプロセスの前記第2の処理部で処理する優先度を下げる制御を行う
 並列処理システム。
(付記4)
 付記1乃至3の何れかに記載の並列処理システムであって、
 前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスコンテキストを復元する際に、プロセスが割り当てられた旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
 前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、割り当てられたプロセスと関連するプロセスの前記第2の処理部で処理する優先度を上げる制御を行う
 並列処理システム。
(付記5)
 付記1乃至4の何れかに記載の並列処理システムであって、
 前記第2のプロセススケジューラは、受信した前記状態通知情報が示すプロセスと関連するプロセスが前記第1のプロセス処理部の処理待ち状態である場合に、当該処理待ち状態のプロセスを実行する前記第2のプロセス処理部の動作を制御する
 並列処理システム。
(付記6)
 付記1乃至5の何れかに記載の並列処理システムであって、
 オペレーションシステムが組み込まれ、前記第1のプロセス処理部と、前記第1のプロセススケジューラと、前記第2のプロセススケジューラと、を有する第1のノードと、
 オペレーティングシステムが組み込まれておらず、前記第2のプロセス処理部を有する第2のノードと、
 を有し、
 前記第2のプロセス処理部は、前記第1のノードが有する前記第2のプロセススケジューラからの制御に基づいてプロセスを実行する
 並列処理システム。
(付記7)
 付記6に記載の並列処理システムであって、
 前記第2のプロセススケジューラは、前記第2のプロセス処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を前記第1のプロセススケジューラに送信するよう構成され、
 前記第1のプロセススケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御する
 並列処理システム。
(付記8)
 関連するプロセスを複数の処理部で実行する並列処理方法であって、
 前記複数の処理部で実行するプロセスは複数のスケジューラで管理されており、
 自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信し、
 各スケジューラは、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
 並列処理方法。
(付記9)
 付記8に記載の並列処理方法であって、
 各スケジューラは、自己が管理する処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を他のスケジューラに送信し、
 各スケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
 並列処理方法。
(付記9-1)
 付記8又は9に記載の並列処理方法であって、
 各スケジューラは、自己が管理する処理部で実行するプロセスコンテキストを退避する際に、プロセスが待機状態に遷移した旨を示す状態通知情報を他のプロセススケジューラに送信し、
 各スケジューラは、受信した前記状態通知情報に基づいて、待機状態に遷移したプロセスと関連するプロセスの優先度を下げる制御を行う
 並列処理方法。
(付記9-2)
 所定のプロセスを実行する第1のプロセス処理部と、
 前記第1のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第1のプロセススケジューラと、
 前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する第2のプロセス処理部と、
 前記第2のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第2のプロセススケジューラと、を有する情報処理装置で実現される並列処理方法であって、
 前記第1のプロセススケジューラと前記第2のプロセススケジューラとは、互いに通信し、
 前記第1のプロセススケジューラは、前記第2のプロセススケジューラが検出した前記第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御し、
 前記第2のプロセススケジューラは、前記第1のプロセススケジューラが検出した前記第1のプロセス処理部の処理状況に応じて、前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
 並列処理方法。
(付記10)
 関連するプロセスを複数の処理部で実行し、前記処理部で実行するプロセスは複数のスケジューラで管理されている情報処理装置に、
 自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信させ、
 各スケジューラに、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
 ことを実現させるためのプログラム。
(付記11)
 請求項10に記載のプログラムであって、
 各スケジューラは、自己が管理する処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を他のスケジューラに送信し、
 各スケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
 プログラム。
(付記11-1)
 所定のプロセスを実行する第1のプロセス処理部と、
 前記第1のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第1のプロセススケジューラと、
 前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する第2のプロセス処理部と、
 前記第2のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第2のプロセススケジューラと、を有する情報処理装置において、
 前記第1のプロセススケジューラと前記第2のプロセススケジューラとを互いに通信させ、
 前記第1のプロセススケジューラは、前記第2のプロセススケジューラが検出した前記第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御し、
 前記第2のプロセススケジューラは、前記第1のプロセススケジューラが検出した前記第1のプロセス処理部の処理状況に応じて、前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
 ことを実現させるためのプログラム。
 なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
 なお、本発明は、日本国にて2015年3月23日に特許出願された特願2015-059545の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
1、51 メインプロセッサノード
11、511 メインプロセッサ
111、211、611、612 プロセッサコア
12、512、62 メインプロセッサ用プロセススケジューラ
121 優先度制御手段
122 スケジューリングポリシ
123 プロセススイッチ手段
124 プロセスコンテキスト
125 プロセス構造体
1251 状態情報
13、53、64 状態通知手段
14、522、63 コプロセッサ用プロセススケジューラ
141 優先度制御手段
15 ノード間通信手段
2、52 コプロセッサノード
21、521 コプロセッサ
22 ノード間通信手段
3 通信バス
4、5、6 並列計算機
61 プロセッサ
7 並列処理システム
71 第1のプロセス処理部
72 第1のプロセススケジューラ
73 第2のプロセス処理部
74 第2のプロセススケジューラ

 

Claims (11)

  1.  関連するプロセスを複数の処理部で実行する並列処理システムであって、
     所定のプロセスを実行する第1のプロセス処理部と、
     前記第1のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第1のプロセススケジューラと、
     前記第1のプロセス処理部で実行されるプロセスと関連するプロセスを実行する第2のプロセス処理部と、
     前記第2のプロセス処理部で実行されるプロセスの処理状況を検出して管理する第2のプロセススケジューラと、を有し、
     前記第1のプロセススケジューラと前記第2のプロセススケジューラとは、互いに通信可能なよう構成されており、
     前記第1のプロセススケジューラは、前記第2のプロセススケジューラが検出した前記第2のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御し、
     前記第2のプロセススケジューラは、前記第1のプロセススケジューラが検出した前記第1のプロセス処理部の処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
     並列処理システム。
  2.  請求項1に記載の並列処理システムであって、
     前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
     前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する前記第2のプロセス処理部の動作を制御する
     並列処理システム。
  3.  請求項1又は2に記載の並列処理システムであって、
     前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスコンテキストを退避する際に、プロセスが待機状態に遷移した旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
     前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、待機状態に遷移したプロセスと関連するプロセスの前記第2の処理部で処理する優先度を下げる制御を行う
     並列処理システム。
  4.  請求項1乃至3の何れかに記載の並列処理システムであって、
     前記第1のプロセススケジューラは、前記第1のプロセス処理部で実行するプロセスコンテキストを復元する際に、プロセスが割り当てられた旨を示す状態通知情報を前記第2のプロセススケジューラに送信するよう構成され、
     前記第2のプロセススケジューラは、受信した前記状態通知情報に基づいて、割り当てられたプロセスと関連するプロセスの前記第2の処理部で処理する優先度を上げる制御を行う
     並列処理システム。
  5.  請求項1乃至4の何れかに記載の並列処理システムであって、
     前記第2のプロセススケジューラは、受信した前記状態通知情報が示すプロセスと関連するプロセスが前記第1のプロセス処理部の処理待ち状態である場合に、当該処理待ち状態のプロセスを実行する前記第2のプロセス処理部の動作を制御する
     並列処理システム。
  6.  請求項1乃至5の何れかに記載の並列処理システムであって、
     オペレーションシステムが組み込まれ、前記第1のプロセス処理部と、前記第1のプロセススケジューラと、前記第2のプロセススケジューラと、を有する第1のノードと、
     オペレーティングシステムが組み込まれておらず、前記第2のプロセス処理部を有する第2のノードと、
     を有し、
     前記第2のプロセス処理部は、前記第1のノードが有する前記第2のプロセススケジューラからの制御に基づいてプロセスを実行する
     並列処理システム。
  7.  請求項6に記載の並列処理システムであって、
     前記第2のプロセススケジューラは、前記第2のプロセス処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を前記第1のプロセススケジューラに送信するよう構成され、
     前記第1のプロセススケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する前記第1のプロセス処理部の動作を制御する
     並列処理システム。
  8.  関連するプロセスを複数の処理部で実行する並列処理方法であって、
     前記複数の処理部で実行するプロセスは複数のスケジューラで管理されており、
     自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信し、
     各スケジューラは、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
     並列処理方法。
  9.  請求項8に記載の並列処理方法であって、
     各スケジューラは、自己が管理する処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を他のスケジューラに送信し、
     各スケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
     並列処理方法。
  10.  関連するプロセスを複数の処理部で実行し、前記処理部で実行するプロセスは複数のスケジューラで管理されている情報処理装置に、
     自己のスケジューラが管理するプロセスの処理状況を他のスケジューラに通信させ、
     各スケジューラに、受信した処理状況に応じて、当該処理状況が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
     ことを実現させるためのプログラム。
  11.  請求項10に記載のプログラムであって、
     各スケジューラは、自己が管理する処理部で実行するプロセスを切り替える際に、当該プロセスを切り替える旨を示す状態通知情報を他のスケジューラに送信し、
     各スケジューラは、受信した前記状態通知情報に基づいて、当該状態通知情報が示すプロセスと関連するプロセスを実行する処理部の動作を制御する
     プログラム。

     
PCT/JP2015/006492 2015-03-23 2015-12-28 並列処理システム WO2016151654A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/554,153 US10162675B2 (en) 2015-03-23 2015-12-28 Parallel processing system
CN201580078148.XA CN107408061B (zh) 2015-03-23 2015-12-28 并行处理系统
KR1020177026593A KR101818410B1 (ko) 2015-03-23 2015-12-28 병렬 처리 시스템
EP15886211.0A EP3276489B1 (en) 2015-03-23 2015-12-28 Parallel processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015059545A JP6079805B2 (ja) 2015-03-23 2015-03-23 並列計算装置
JP2015-059545 2015-03-23

Publications (1)

Publication Number Publication Date
WO2016151654A1 true WO2016151654A1 (ja) 2016-09-29

Family

ID=56977117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/006492 WO2016151654A1 (ja) 2015-03-23 2015-12-28 並列処理システム

Country Status (6)

Country Link
US (1) US10162675B2 (ja)
EP (1) EP3276489B1 (ja)
JP (1) JP6079805B2 (ja)
KR (1) KR101818410B1 (ja)
CN (1) CN107408061B (ja)
WO (1) WO2016151654A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599481B2 (en) 2017-06-04 2020-03-24 Apple Inc. Scheduler for amp architecture using a closed loop performance controller and deferred inter-processor interrupts

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301655A (ja) * 1993-04-14 1994-10-28 Hitachi Ltd 分散処理システム
JPH1021094A (ja) * 1996-07-08 1998-01-23 Mitsubishi Electric Corp リアルタイム制御方式
JP2013061700A (ja) * 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3573546B2 (ja) 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
JP3730740B2 (ja) * 1997-02-24 2006-01-05 株式会社日立製作所 並列ジョブ多重スケジューリング方法
US20020184290A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation Run queue optimization with hardware multithreading for affinity
US7542473B2 (en) * 2004-12-02 2009-06-02 Nortel Networks Limited High-speed scheduling apparatus for a switching node
JP2008108075A (ja) 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
CN100570566C (zh) 2007-12-13 2009-12-16 中兴通讯股份有限公司 一种异构多核间协调调度的方法及异构多核系统
US9367350B2 (en) * 2008-10-03 2016-06-14 Microsoft Technology Licensing, Llc Meta-scheduler with meta-contexts
JP5453825B2 (ja) 2009-02-05 2014-03-26 日本電気株式会社 プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法
US9122522B2 (en) * 2011-12-14 2015-09-01 Advanced Micro Devices, Inc. Software mechanisms for managing task scheduling on an accelerated processing device (APD)
US8893140B2 (en) 2012-01-24 2014-11-18 Life Coded, Llc System and method for dynamically coordinating tasks, schedule planning, and workload management
CN103761106A (zh) 2014-02-07 2014-04-30 张战 流程的控制方法及流程引擎

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301655A (ja) * 1993-04-14 1994-10-28 Hitachi Ltd 分散処理システム
JPH1021094A (ja) * 1996-07-08 1998-01-23 Mitsubishi Electric Corp リアルタイム制御方式
JP2013061700A (ja) * 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3276489A4 *

Also Published As

Publication number Publication date
KR20170117594A (ko) 2017-10-23
US20180074853A1 (en) 2018-03-15
JP6079805B2 (ja) 2017-02-15
KR101818410B1 (ko) 2018-02-21
CN107408061A (zh) 2017-11-28
JP2016181016A (ja) 2016-10-13
CN107408061B (zh) 2018-10-19
EP3276489A1 (en) 2018-01-31
US10162675B2 (en) 2018-12-25
EP3276489A4 (en) 2018-08-01
EP3276489B1 (en) 2020-11-18

Similar Documents

Publication Publication Date Title
EP3468151B1 (en) Acceleration resource processing method and apparatus
JP5405320B2 (ja) 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
JP6914900B2 (ja) スイッチ装置、スイッチング方法及びプログラム
KR101585813B1 (ko) 통신 디바이스의 하드웨어 자원들을 관리하기 위한 가상화 관리 방법 및 관련 장치
JP4529767B2 (ja) クラスタ構成コンピュータシステム及びその系リセット方法
WO2017179537A1 (ja) ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
WO2016033755A1 (zh) 任务处理装置、电子设备及方法
US9389923B2 (en) Information processing device and method for controlling information processing device
CN104102548A (zh) 任务资源调度处理方法和系统
JP6955163B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20160098289A1 (en) System and method for handling an interrupt
JP6079805B2 (ja) 並列計算装置
US20130185726A1 (en) Method for Synchronous Execution of Programs in a Redundant Automation System
WO2021002054A1 (ja) 計算機システム及びプログラム実行方法
KR20110018618A (ko) 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법
JPWO2018235180A1 (ja) 分散処理システム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP2012190101A (ja) クラスタシステム
JP2010020683A (ja) スレッド制御方法およびスレッド制御装置ならびにリアルタイムシステム
US11936514B2 (en) Processing apparatus, processing system, processing method and processing program
JP4877317B2 (ja) 情報処理装置、割り込み制御方法
WO2019188178A1 (ja) マルチコアシステム
KR101615577B1 (ko) 클러스터 시스템에서 클러스터를 처리하기 위한 방법과 장치 및 시스템
JP2012256240A (ja) 二重化システム、およびメモリ同期方法

Legal Events

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

Ref document number: 15886211

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15554153

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2015886211

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20177026593

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE