WO2014188643A1 - スケジュールシステム、スケジュール方法、及び、記録媒体 - Google Patents

スケジュールシステム、スケジュール方法、及び、記録媒体 Download PDF

Info

Publication number
WO2014188643A1
WO2014188643A1 PCT/JP2014/001558 JP2014001558W WO2014188643A1 WO 2014188643 A1 WO2014188643 A1 WO 2014188643A1 JP 2014001558 W JP2014001558 W JP 2014001558W WO 2014188643 A1 WO2014188643 A1 WO 2014188643A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
task
instruction
resource
accelerator
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2014/001558
Other languages
English (en)
French (fr)
Inventor
孝道 宮本
岳生 細見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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
Priority claimed from JP2013109843A external-priority patent/JP2014078215A/ja
Application filed by NEC Corp filed Critical NEC Corp
Priority to US14/787,830 priority Critical patent/US20160077882A1/en
Publication of WO2014188643A1 publication Critical patent/WO2014188643A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Definitions

  • the system 54 includes a server 40 having a processor 41, a processor 42, a processor 43, a processor 44, and the like, a task scheduler 45, and a server resource management unit 46.
  • the task scheduler 45 receives a task to be executed as an input.
  • the task scheduler 45 refers to the number of processors necessary for executing the received task and the usage status of the plurality of processors (processors 41 to 44) held by the server resource management unit 46. Allocate a processor necessary for execution.
  • the task scheduler 45 updates information held by the server resource management unit 46 and inputs tasks to the server 40.
  • the task scheduler 45 detects that the server 40 has completed the execution of the task, the task scheduler 45 updates information held by the server resource management unit 46, and then releases a processor reserved for processing the task.
  • the task scheduler 45 uses the processors (processors 41 to 44) included in the server 40 for processing a plurality of tasks by performing the above-described operation. For this reason, the processing performance in the server 40 is improved.
  • FIG. 19 is a block diagram showing a configuration of a task scheduler for a system having a many-core accelerator related to the present invention.
  • the system 55 includes a task scheduler 52, a server resource management unit 53, and a server 47.
  • FIG. 20 shows processing when the server having the many-core accelerator shown in FIG. 18 adopts the task schedule method as described above.
  • FIG. 20 is a flowchart (sequence diagram) showing the flow of processing in the task scheduler related to the present invention.
  • the task scheduler 52 receives a task to be executed as an input, and refers to resource information related to the host processor 48 and the many-core accelerator 49 necessary for executing the task.
  • the task scheduler 52 secures resources necessary for processing the task by referring to the usage status of the resources managed by the server resource management unit 53 in the resource information (step S40).
  • the task scheduler 52 inputs the task to the server 47 by designating the secured resource (step S41).
  • the task scheduler 52 detects that the server 47 has completed the processing of the task, the task scheduler 52 then transmits the fact that the completion has been detected to the server resource management unit 53 and releases resources reserved for processing the task. (Step S42).
  • FIG. 21 is a flowchart showing the flow of processing in a system having a many-core accelerator related to the present invention.
  • the program execution control method disclosed in Patent Document 1 is a method for performing power saving control in a system having different types of processors. That is, the execution control method is a control method that improves performance. According to the execution control method, the clock frequency is changed so that the tasks divided by the processors are completed simultaneously.
  • Patent Document 2 reduces the overhead required for saving / restoring according to the progress state of the interrupted process when the process is interrupted in the middle of the data process and another process is given priority.
  • Patent Document 3 further increases the processing efficiency related to task switching by performing processing according to priority by software executed on a processor and hardware dedicated to specific processing.
  • the task scheduler 52 manages the resources in the many-core accelerator 49 when the tasks are submitted, thereby allocating the tasks to the resources, and then releases the allocated resources when completing the tasks.
  • the task scheduler 52 secures the resources of the many-core accelerator 49 when a task is submitted, and then keeps securing the resources until the task is completed. For this reason, the task scheduler 52 continues to secure the resource while the host processor 48 executes the task processing in step S43 or step S47. Alternatively, the task scheduler 52 continues to secure the resource while the host processor 48 transmits data between the main memory 50 and the accelerator memory 51 in step S44, step S46, and the like.
  • the task scheduler 52 secures the maximum resources for processing the series of tasks when starting the task. For this reason, when a specific task that uses only part of the resource is processed in a series of tasks, there is a resource that is not processed in step S45. As described above, when processing a series of tasks, a problem in which there is a resource that does not perform a specific process is represented as a resource non-use problem.
  • the task scheduler 52 that employs the processing method as described above cannot avoid the resource unavailability problem. For this reason, the many-core accelerator 49 has its processing performance lowered or fails to process the task.
  • a main object of the present invention is to provide a schedule system or the like that more efficiently exhibits the processing performance of resources.
  • the schedule system according to the present invention has the following configuration.
  • the scheduling method includes: A many-core accelerator as a resource, an accelerator memory accessed by the many-core accelerator, a processor controlling the resource, a memory accessed by the processor, and a first capable of transmitting and receiving data between the many-core accelerator and the processor
  • the first communication includes a second communication path that is included in a task that is processed by a computer having a communication path, and that is capable of transmitting and receiving first data processed by the task between the memory and the accelerator memory.
  • the second communication path is secured as a second communication resource in response to a fifth instruction secured from the path, and the second communication resource is transmitted / received via the second communication resource in accordance with the first instruction to secure the resource.
  • a specific resource for processing the task is determined based on one data. To.
  • this object is also realized by such a schedule program and a computer-readable recording medium for recording the program.
  • the processing performance of resources can be exhibited more efficiently.
  • FIG. 20 is a sequence diagram illustrating a flow of processing executed by a schedule system when a scheduler secures a storage area in an accelerator memory in the eighth embodiment.
  • FIG. 1 is a block diagram showing a configuration of a schedule system 1 according to the first embodiment of the present invention.
  • FIG. 2 is a sequence diagram showing a flow of processing in the schedule system 1 according to the first embodiment.
  • the system 38 includes a server 3 (also referred to as “computer”, “calculation processing device”, and “information processing device”) that performs processing for a task 6 that is a series of processing performed by a computer, 1 has a schedule system 1 according to one embodiment.
  • the schedule system 1 has a scheduler 2.
  • the server 3 includes a host processor 4 (hereinafter also simply referred to as “processor”) and a many-core accelerator 5.
  • the host processor 4 performs processing such as control regarding the many-core accelerator 5.
  • the host processor 4 starts processing of task 6.
  • the host processor 4 reads from the task 6 an instruction to secure a resource (a many-core accelerator 5) (also referred to as an instruction; hereinafter, an instruction to secure a resource is also referred to as a “first instruction”).
  • the host processor 4 transmits a command for securing resources to the schedule system 1 in accordance with the read first instruction (step S1).
  • the scheduler 2 confirms whether or not resources can be secured for the task 6 (hereinafter abbreviated as “resource securing”) in response to receiving the instruction (step S2). .
  • resource securing determines that the resource can be secured (YES in step S2)
  • the scheduler 2 secures the resource (step S3).
  • the scheduler 2 confirms again whether the resource can be secured (step S2).
  • the many-core accelerator 5 executes a task when the scheduler 2 determines that the resource can be secured (YES in step S2) (step S4).
  • step S2 When it is determined that the resource cannot be secured (NO in step S2), the scheduler 2 waits for the resource to be released by performing the above-described processing. Next, the scheduler 2 releases the secured resources (step S5).
  • the schedule system 1 can be realized as one function in the operating system, for example.
  • the schedule system 1 can perform the above-described processing by transmitting and receiving parameters related to resources with the operating system.
  • Patent Literature 1 to Patent Literature 3 secure the maximum resources for processing a series of tasks in a period from the start of processing a task to the completion of processing the task. Keep doing. For this reason, when a series of task processing uses only some resources, some resources are not processed.
  • the schedule system 1 secures resources in response to a request from a task, and then the secured resources perform processing. Thereafter, when the host processor 4 commands the release of the resource, the schedule system 1 releases the resource. Even when the server 3 processes a series of tasks, the scheduling system 1 can allocate resources for processing each task according to the task processing. For this reason, according to the schedule system 1 which concerns on 1st Embodiment, even if it is a case where a series of tasks are processed, the situation where only some resources are processed can be reduced.
  • the processing performance of the resource can be exhibited more efficiently.
  • FIG. 3 is a block diagram showing the configuration of the schedule system 7 according to the second embodiment of the present invention.
  • FIG. 4 is a sequence diagram showing a flow of processing in the schedule system 7 according to the second embodiment.
  • the system 39 includes a schedule system 7 and a server 3. Further, the schedule system 7 includes a scheduler 8 and a management unit 9.
  • the management unit 9 manages the usage status related to the resources of the many-core accelerator 5.
  • the scheduler 8 receives a request to secure resources (step S1), it reads the management unit 9 (step S6).
  • the scheduler 8 determines whether or not resources can be allocated based on the read information (step S2).
  • the scheduler 8 can determine whether or not resources can be allocated without referring to the outside. For this reason, according to the schedule system 7 which concerns on 2nd Embodiment, a resource can be managed efficiently. Furthermore, since the second embodiment includes a configuration similar to that of the first embodiment, the second embodiment can enjoy the same effects as those of the first embodiment.
  • the processing performance of the resource can be exhibited more efficiently.
  • FIG. 5 is a block diagram showing a configuration of the schedule system 10 according to the third exemplary embodiment of the present invention.
  • FIG. 6 is a sequence diagram illustrating a processing flow in the schedule system 10 according to the third embodiment.
  • the schedule system 10 includes a scheduler 11.
  • the system 56 performs processing related to the task 12 having the first part and the second part in the server 3.
  • the host processor 4 executes the first part of the task 12 that is processed by the host processor 4 (step S7). Next, the host processor 4 transmits a command for securing resources to the scheduler 11 in response to the first instruction (step S8). Next, when the scheduler 11 determines that the resource can be secured (YES in Step S9), the scheduler 11 secures the resource (Step S10). If the scheduler 11 determines that the resource cannot be secured (NO in step S9), the scheduler 11 again determines whether the resource can be secured (step S9).
  • the resource secured by the scheduler 11 executes the second part processed by the resource (step S11).
  • the host processor 4 instructs the scheduler 11 to release the resource in response to reading an instruction for releasing the resource secured by the scheduler 11 (hereinafter, this instruction is referred to as “second instruction”).
  • this instruction is referred to as “second instruction”.
  • the scheduler 11 releases the secured resources (step S13).
  • the first instruction has information on the number of processors, for example.
  • the scheduler 11 determines the amount of resources according to the number of processors described above, but the amount of resources does not necessarily have to be the same as the above-described numerical values. Further, the scheduler 11 may transmit information on the secured resource.
  • the information on the reserved resource may include information on the number of reserved processors or a list of available processor numbers.
  • the task 12 has a first part processed by the host processor 4, a second part, and a first instruction for securing a resource for executing the second part. For this reason, the scheduler 11 secures necessary resources before the processing of the second portion, and releases the resources after the secured resources complete the processing of the second portion. That is, the schedule system 10 according to the third embodiment makes it possible to manage resources more finely than the systems disclosed in Patent Documents 1 to 3.
  • the processing performance of the resource can be exhibited more efficiently.
  • the third embodiment is based on the first embodiment, but may be based on the second embodiment. Even in that case, the third embodiment can enjoy the same effects as those of the second embodiment.
  • FIG. 7 is a block diagram showing a configuration of the schedule system 13 according to the fourth exemplary embodiment of the present invention.
  • FIG. 8 is a sequence diagram showing the flow of processing in the schedule system 13 according to the fourth embodiment.
  • the system 57 includes a server 16 that processes the task 15 and a schedule system 13 that manages resources in the server 16.
  • the server 16 includes a host processor 18, a main memory 19 that stores data processed by the host processor 18, a many-core accelerator 17, and an accelerator memory 20 that stores data processed by the many-core accelerator 17.
  • the schedule system 13 has a scheduler 14.
  • the task 15 includes a third part for transmitting data from the main memory 19 to the accelerator memory 20, and the accelerator memory 20 to the main memory 19. And a fourth portion for transmitting data.
  • the host processor 18 After executing the first part, the host processor 18 transmits a request for securing a specific resource to the schedule system 13 in accordance with the first instruction (step S14).
  • the scheduler 14 secures a specific resource in response to receiving the request (step S15).
  • Step S15 collectively represents a series of processes in Step S2 and Step S3 in FIG. 2 or a series of processes in Step S2, Step S3, and Step S6 in FIG.
  • the host processor 18 transmits data to be processed by the many-core accelerator 17 from the main memory 19 to the accelerator memory 20 (step S16).
  • step S17 the specific resource secured by the scheduler 14 executes the second part.
  • the host processor 18 transmits the data processed by the specific resource from the accelerator memory 20 to the main memory 19 (step S18).
  • step S19 the host processor 18 transmits a request for releasing a specific resource to the schedule system 13 (step S19).
  • the scheduler 14 releases a specific resource in response to receiving the request (step S20).
  • the scheduler 14 can also secure the accelerator memory 20 in addition to the processing device in the many-core accelerator 17.
  • the specific many-core accelerator 17 refers to the specific accelerator memory 20.
  • FIG. 9 is a sequence diagram showing the flow of the second process in the schedule system according to the fourth embodiment.
  • the host processor 18 After executing the first part, the host processor 18 transmits a request for securing a specific accelerator memory 20 to the schedule system 13 in accordance with the first instruction (step S30). The scheduler 14 secures a specific accelerator memory 20 in response to receiving the request (step S31). Next, the host processor 18 transmits data to be processed by the many-core accelerator 17 from the main memory 19 to the specific accelerator memory 20 (step S16).
  • Step S15 collectively represents a series of processes in Step S2 and Step S3 in FIG. 2 or a series of processes in Step S2, Step S3, and Step S6 in FIG.
  • step S17 the specific resource secured by the scheduler 14 executes the second part.
  • the host processor 18 transmits a request for releasing a specific resource to the schedule system 13 (step S19).
  • step S19 the scheduler 14 releases a specific resource in response to receiving the request (step S20).
  • step S18 the host processor 18 transmits the data processed by the specific resource from the accelerator memory 20 to the main memory 19 (step S18).
  • the host processor 18 transmits a request to release the specific accelerator memory 20 to the scheduler 14 (step S32).
  • the scheduler 14 releases the specific accelerator memory 20 in response to receiving the request (step S33).
  • the scheduling system 13 can effectively manage the resources processed by the many-core accelerator 17 and the resources or the accelerator memory 20 in the system 57 as well.
  • the processing performance of the resource can be exhibited more efficiently.
  • the fourth embodiment is based on the first embodiment, but may be based on the second embodiment or the third embodiment. Even in that case, the fourth embodiment can enjoy the same effect.
  • FIG. 10 is a block diagram showing the configuration of the schedule system 21 according to the fifth embodiment of the present invention.
  • FIG. 11 is a sequence diagram showing a flow of processing in the schedule system 21 according to the fifth embodiment.
  • the system 58 includes a schedule system 21 and a server 3 that processes the task 23.
  • the schedule system 21 has a scheduler 22.
  • the task 23 includes a fifth part to be processed by the host processor 4 instead of the many-core accelerator 5 when the scheduler 22 cannot secure a specific resource.
  • the process in the fifth part is the same as the process in the second part. That is, the result of the host processor 4 executing the fifth part matches the result of the specific resource executing the second part.
  • the host processor 4 executes the fifth part when determining that the scheduler 22 cannot allocate resources (NO in step S9) (step S21).
  • the scheduler 22 determines that the scheduler 22 can allocate resources (YES in step S9), the scheduler 22 secures specific resources (step S10).
  • the processing performance of the resource can be exhibited more efficiently.
  • FIG. 12 is a block diagram showing the configuration of the schedule system 24 according to the sixth embodiment of the present invention.
  • FIG. 13 is a sequence diagram showing the flow of processing in the schedule system 24 according to the sixth embodiment.
  • the system 59 includes a schedule system 24, a second task scheduler 26 that controls input of the task 6 to the server 3, and the server 3.
  • the schedule system 24 has a scheduler 25.
  • the second task scheduler 26 transmits information related to the task such as the number of tasks in the task 6 to the schedule system 24 (step S23).
  • the scheduler 25 calculates the amount of resources according to the received information (step S24). For example, the scheduler 25 uses the number of logical processors that the many-core accelerator 5 has divided by the number of tasks that the second task scheduler 26 inputs to the server 3 as the amount of resources, or the value calculated as described above. 2 times the resource amount.
  • the method by which the schedule system 24 calculates the amount of resources is not limited to the above-described example.
  • the schedule system 24 receives from the second task scheduler 26 information that can be used for control to allocate resources. Thereby, the scheduling system 24 can further increase the efficiency of scheduling, and can give an appropriate load to the many-core accelerator 5.
  • the processing performance of the resource can be more efficiently exhibited.
  • FIG. 14 is a block diagram showing the configuration of the schedule system 27 according to the seventh embodiment of the present invention.
  • FIG. 15 is a sequence diagram showing the flow of processing in the schedule system 27 according to the seventh embodiment.
  • the system 60 includes a schedule system 27, a second task scheduler 30, and a server 3 that processes the task 6.
  • the schedule system 27 includes a scheduler 28 and a management unit 29.
  • the scheduler 28 reads the resource load status in the many-core accelerator 5 from the management unit 29 (step S25). Next, the scheduler 28 compares the predetermined second threshold value with a load value representing the load. When the scheduler 28 determines that the load value is smaller than the predetermined second threshold value, that is, determines that the load state is low (determined YES in step S26), the scheduler 28 is configured to input more tasks. A signal is transmitted to the second task scheduler 30 (step S27). The scheduler 28 compares a predetermined first threshold value with a load value representing the load.
  • the scheduler 28 determines that the load value is greater than a predetermined first threshold value, that is, determines that the load status is high (determined NO in step S26)
  • the scheduler 28 inputs a smaller number of tasks.
  • a signal is transmitted to the two-task scheduler 30 (step S28).
  • the second task scheduler 30 adjusts the task amount according to the signal (step S29).
  • an appropriate load can be applied to the many-core accelerator 5. it can.
  • the processing performance of the resource can be exhibited more efficiently.
  • FIG. 22 is a block diagram showing the configuration of the schedule system 114 according to the eighth embodiment of the present invention.
  • FIG. 23 is a sequence diagram showing the flow of processing in the schedule system 114 according to the eighth embodiment.
  • the system 117 includes a server 100 and a schedule system 114.
  • the server 100 includes a host processor 101, a main memory 103, a many-core accelerator 102, an accelerator memory 104, and a communication path 105 that connects the host processor 101 and the many-core accelerator 102.
  • the host processor 101 and the many-core accelerator 102 communicate (referred to as access and transmission / reception) data to be referred to via the communication path 105.
  • the schedule system 114 further includes a communication channel scheduler 116 that secures communication resources of the communication channel 105.
  • the host processor 101 makes a first instruction 201 for securing resources in the many-core accelerator 102 to the schedule system 114 (step S14).
  • the scheduling system 114 secures specific resources in the many-core accelerator 102 according to the first instruction 201 (step S15).
  • the host processor 101 receives the fifth instruction 110 for the task 106 to secure the communication path 105, and secures the communication resources of the communication path 105 in the communication path scheduler 116 according to the received fifth instruction 110. (Step S101).
  • the communication path scheduler 116 receives from the host processor 101 a command for securing communication resources capable of communicating the communication amount according to the fifth instruction 110.
  • the communication channel scheduler 116 measures the communication amount on the communication channel 105 until the communication channel 105 can communicate the communication amount according to the fifth instruction 110. Thereafter, when the communication path 105 can communicate the communication amount according to the fifth instruction 110, the communication path scheduler 116 secures communication resources according to the fifth instruction 110 from the communication path 105 (step S102).
  • the host processor 101 transmits the data accessed by the many-core accelerator 102 from the main memory 103 to the accelerator memory 104 via the communication resource secured by the communication path scheduler 116 (step S16).
  • the host processor 101 transmits data from the main memory 103 to the accelerator memory 104.
  • the host processor 101 transmits a request for releasing the reserved communication resource to the communication path scheduler 116 (step S103). .
  • the communication path scheduler 116 receives a request to release the reserved communication resource, and releases the reserved communication resource in response to the received request (step S104).
  • step S17 the specific resource secured by the scheduler 115 executes the second part 107 in the task 106 by accessing the data stored in the accelerator memory 104.
  • the host processor 101 requests the communication path scheduler 116 to secure a communication resource capable of communicating the communication amount according to the seventh instruction 112 in response to the seventh instruction 112 that secures the communication resource of the communication path 105. Is transmitted (step S105).
  • the communication path scheduler 116 receives a command for securing communication resources from the host processor 101. Next, the communication path scheduler 116 measures the communication volume on the communication path 105 until a communication resource capable of communicating the communication volume indicated by the seventh instruction 112 can be secured. Thereafter, when the communication path 105 can communicate the communication amount according to the seventh instruction 112, the communication path scheduler 116 secures communication resources according to the seventh instruction 112 from the communication path 105 (step S106).
  • the host processor 101 transmits data or the like processed by a specific resource from the accelerator memory 104 to the main memory 103 via the communication resource secured by the communication path scheduler 116 (step S18).
  • the host processor 101 receives the eighth instruction 113 for releasing the secured communication resource from the task 106, and in response to the received eighth instruction 113, instructs the communication path scheduler 116 to release the secured communication resource. Transmit (step S107).
  • the communication path scheduler 116 receives the command from the host processor 101, and releases the reserved communication resources according to the received command (step S108).
  • the host processor 101 transmits an instruction to release a specific resource to the schedule system 114 in accordance with the second instruction 202 described above (step S19).
  • the schedule system 114 receives the command from the host processor 101, and releases the reserved specific resource in accordance with the received command (step S20).
  • the fifth instruction 110, the sixth instruction 111, the seventh instruction 112, and the eighth instruction 113 are instructions for securing communication resources or releasing communication resources. May be included.
  • the fifth instruction to the eighth instruction may include information for identifying the task 106 that gives the instruction or the time when the instruction is received.
  • the fifth instruction to the eighth instruction may include the size of data transmitted / received between the main memory 103 and the accelerator memory 104, information on the data structure in the main memory 103, or the like.
  • the fifth instruction 110 and the seventh instruction 112 are different instructions, but the same instruction may be used.
  • the sixth instruction 111 and the eighth instruction 113 are different instructions, they may be the same instruction.
  • the task 106 performs the fifth instruction 110 instead of performing the seventh instruction 112 and performs the eighth instruction 113 instead of performing the sixth instruction 111.
  • the communication path scheduler 116 secures processing related to the fifth instruction 110, that is, communication resources, according to the seventh instruction 112. Similarly, in response to the eighth instruction 113, the communication channel scheduler 116 releases processing related to the sixth instruction 111, that is, communication resources.
  • the third portion 108 may include a process for securing a storage area in the accelerator memory 104.
  • the fourth portion 109 may include a process for releasing a storage area in the accelerator memory 104.
  • the scheduler 115 may secure the storage area in the accelerator memory 104.
  • the schedule system 114 performs the process shown in FIG. FIG. 24 is a sequence diagram showing a flow of processing executed by the schedule system 114 when the scheduler secures a storage area in the accelerator memory in the eighth embodiment.
  • the host processor 101 transmits a command for securing a storage area having a certain size in the accelerator memory 104 to the schedule system 114 (step S30).
  • the scheduler 115 receives the command from the host processor 101, and secures a storage area having a certain size in the accelerator memory 104 in accordance with the received command (step S31).
  • the host processor 101 receives the fifth instruction 110 for the task 106 to secure the communication path 105, and secures the communication resources of the communication path 105 in the communication path scheduler 116 according to the received fifth instruction 110.
  • a command to transmit is transmitted (step S101).
  • the communication path scheduler 116 receives from the host processor 101 a command for securing communication resources according to the fifth instruction 110.
  • the communication channel scheduler 116 transmits and receives the communication amount in the communication channel 105 until the communication channel 105 can communicate the communication amount according to the fifth instruction 110 (hereinafter, “communication band” is used as a synonymous word). Measure. Thereafter, when the communication path 105 can communicate the communication amount according to the fifth instruction 110, the communication path scheduler 116 secures communication resources according to the fifth instruction 110 (step S102).
  • the host processor 101 transmits data to be processed by the many-core accelerator 102 from the main memory 103 to a specific storage area in the accelerator memory 104 via the communication resource secured by the communication path scheduler 116 (step S16).
  • the host processor 101 transmits an instruction for releasing the reserved communication resource to the communication path scheduler 116 (step S103).
  • the communication path scheduler 116 receives a command for releasing the reserved communication resource, and releases the reserved communication resource according to the received command (step S104).
  • a command for securing resources is transmitted to the schedule system 114 (step S14).
  • the scheduler 14 secures specific resources in the many-core accelerator 102 in response to receiving the command (step S15).
  • the specific resource secured by the scheduler executes the second part 107 in the task 106 by processing the data transmitted to the accelerator memory 104 (step S17).
  • the host processor 101 commands the schedule system 114 to release the specific resource in response to the second instruction 202 to release the reserved resource (Ste S19).
  • the scheduler 14 releases a specific resource according to the command (step S20).
  • the host processor 101 secures a communication resource corresponding to the seventh instruction 112 in the communication path scheduler 116 in response to the seventh instruction 112 that secures the communication resource of the communication path 105 in the task 106.
  • a command is transmitted (step S105).
  • the communication path scheduler 116 receives a command for securing communication resources from the host processor 101. Next, the communication channel scheduler 116 measures the communication amount transmitted / received in the communication channel 105 until the communication channel 105 can communicate the communication amount according to the seventh instruction 112. After that, the communication path scheduler 116 secures communication resources according to the seventh instruction 112 when the communication path 105 can communicate the communication amount according to the seventh instruction 112 (step S106).
  • the host processor 101 receives the eighth instruction 113 for releasing the reserved communication resource from the task 106, and instructs the communication path scheduler 116 to release the reserved communication resource in accordance with the received eighth instruction 113. (Step S107).
  • the communication path scheduler 116 receives the command from the host processor 101, and releases the reserved communication resources according to the received command (step S108).
  • the communication channel scheduler 116 secures communication resources in accordance with instructions in the task 106.
  • the host processor 101 and the many-core accelerator 102 transmit and receive data between the main memory 103 and the accelerator memory 104 via the communication resource. For this reason, according to the present embodiment, the possibility of communication delay in the communication path 105 is reduced. Further, when the communication channel scheduler 116 cannot secure an amount of communication resources that can handle the instruction in the task 106, transmission / reception of data necessary to process the task 106 is temporarily stopped in advance. As a result, according to the present embodiment, there is a low possibility that transmission / reception of data in tasks other than the task is hindered.
  • the scheduler 115 includes the communication channel scheduler 116, but the scheduler 115 may realize the function of the communication channel scheduler 116.
  • FIG. 25 is a block diagram showing a configuration of a schedule system 251 according to the ninth exemplary embodiment of the present invention.
  • FIG. 26 is a flowchart illustrating a process flow when the fifth instruction 110 or the seventh instruction 112 is received in the schedule system 251 according to the ninth embodiment.
  • FIG. 27 is a flowchart illustrating a process flow when the sixth instruction 111 or the eighth instruction 113 is received in the schedule system 251 according to the ninth embodiment.
  • the system 255 includes a server 100 and a schedule system 251.
  • the schedule system 251 includes a scheduler 115 and a communication path scheduler 252. Further, the communication path scheduler 252 includes a communication information unit 254 and a communication control unit 253.
  • the host processor 101 transmits a command for securing communication resources to the communication path scheduler 252 in response to the fifth instruction 110 in step S101 or the seventh instruction 112 in step S105.
  • the communication path scheduler 252 receives a command for securing communication resources from the host processor 101 (step S201).
  • the communication control unit 253 in the communication path scheduler 252 determines whether or not the communication path 105 has a communication path in an idle state (or also expressed as “sleeping”, “idle”, “standby”, etc.). Check out.
  • the “idle state” represents a state in which a target device is not assigned to a task or the like.
  • the communication control unit 253 checks whether or not the communication path 105 has an idle communication path based on the number of communication path uses that represents the total number of communication paths used by the task. In this case, the communication control unit 253 adds 1 to the number of used communication paths in accordance with the received command, and compares the calculated value with the number of communication paths that the communication path 105 originally has (step S202).
  • the communication path scheduler 252 secures communication resources from the idle communication path in accordance with the received command (step S204).
  • the communication control unit 253 stores the task identifier in the communication information unit 254 when the calculated number of used communication channels is larger than the number of communication channels included in the communication channel 105 (determined as NO in step S202). (Step S205). That is, the communication control unit 253 saves, in the communication information unit 254, the task identifier associated with the task 106 that has performed the fifth instruction 110 or the seventh instruction 112 for starting the received instruction, as shown in FIG. (Step S205).
  • the task identifier is an identifier that can uniquely identify the task.
  • FIG. 28 is a diagram conceptually illustrating an example of a task identifier that can be stored in the communication information unit 254.
  • the communication information unit 254 stores a task identifier “1”, a task identifier “3”, a task identifier “4”, and a task identifier “2”.
  • the communication path scheduler 252 allocates communication resources in the process in step S205. Not secured.
  • the host processor 101 receives the sixth instruction 111 or the eighth instruction 113 from the task 106.
  • the host processor 101 transmits an instruction to release the reserved communication resources to the communication path scheduler 252 in accordance with the received sixth instruction 111 or eighth instruction 113.
  • the communication path scheduler 252 receives a command for releasing the secured communication resource from the host processor 101 (step S211).
  • the communication control unit 253 in the communication path scheduler 252 determines whether or not the communication information unit 254 stores a task identifier (step S212).
  • the communication control unit 253 reads a specific task identifier from the communication information unit 254 (step S213).
  • the communication control unit 253 controls communication with respect to the task with the read task identifier, as shown in steps S202 to S205 in FIG. 26 (step S214).
  • the communication path scheduler 252 subtracts 1 from the number of used communication paths and sets the calculated number of used communication paths (step S215). At the same time, the communication path scheduler 252 releases the reserved communication resource in response to the command to release the communication resource (step S216). The communication path scheduler 252 may process step S216 before step S215.
  • the function implemented using the number of communication channels used in the above-described example can be implemented with the same value such as the number of communication channels in an idle state.
  • the communication information unit 254 may have a queue structure capable of storing a task identifier. That is, the communication information unit 254 may have a data structure in which task identifiers are stored in the order of reception times and the stored task identifiers can be output in the order of reception times.
  • the communication control unit 253 performs the processes shown in step S212 and subsequent steps in the order of the time when the command for securing the communication resources is received.
  • the ninth embodiment includes the same configuration as that of the eighth embodiment, the ninth embodiment can enjoy the same effects as those of the eighth embodiment.
  • the schedule system 251 according to the ninth embodiment the processing performance of resources can be more efficiently exhibited.
  • the communication channel scheduler 252 allocates communication resources to the task 106 that cannot allocate communication resources to the instruction to secure the communication channel 105 in accordance with processing for releasing communication resources for other tasks. For this reason, according to this embodiment, it becomes possible to allocate a communication resource more efficiently. As a result, it is possible to access the accelerator memory 104 and the main memory 103 more efficiently. That is, according to the schedule system 251 according to the ninth embodiment, it is possible to further reduce the deterioration of the processing performance.
  • the communication channel scheduler 252 manages communication resources in the communication channel 105 using the number of communication channels used, but the communication channel measurement function that measures the communication band used in the communication channel 105 performs communication. Resources may be managed.
  • the communication channel scheduler 252 compares the communication bandwidth measured by the communication channel measurement function with the communication bandwidth available on the communication channel 105. If the measured communication bandwidth is smaller than the available communication bandwidth, the communication channel scheduler 252 secures communication resources in response to a request to secure the communication channel 105 (step S203 in FIG. 26). On the other hand, when the measured communication bandwidth is larger than the available communication bandwidth, the communication channel scheduler 252 stores the task identifier of the task 106 that requested the communication channel 105 in the communication information unit 254 (step S205 in FIG. 26). .
  • FIG. 29 is a block diagram showing a configuration of a schedule system 301 according to the tenth embodiment of the present invention.
  • FIG. 30 is a flowchart showing the flow of processing in the priority order setting unit 303 according to the tenth embodiment.
  • FIG. 31 is a flowchart showing a flow of processing in the communication control unit 305 according to the tenth embodiment.
  • the system 306 includes a server 100 and a schedule system 301.
  • the schedule system 301 includes a scheduler 115 and a communication path scheduler 302.
  • the communication path scheduler 302 includes a communication control unit 305, a communication information unit 304, and a priority order setting unit 303.
  • first data indicates that the task with the task identifier “1” is 2048 kilobytes (hereinafter referred to as “KB”) according to the fifth instruction 110 at time “10”. Represents a request for communication resources to transmit / receive data.
  • second data is that the task with the task identifier “3” transmits / receives 100 KB data in accordance with the seventh instruction 112 at time “20”. Represents a request for communication resources.
  • the first data and the second data are associated with the priority “1” and the priority “2”, respectively. Since the priority order of the first data is lower than the priority order of the second data, the communication control unit 305 processes the first data before the second data.
  • the priority order setting unit 303 determines whether or not the data stored in the communication information unit 304 is updated (step S261). For example, when the communication control unit 305 updates the value in the communication information unit 304 in response to the fifth instruction 110 or the seventh instruction 112, the priority order setting unit 303 updates the data stored in the communication information unit 304. It is determined that
  • the communication control unit 305 determines that the data stored in the communication information unit 304 has been updated (YES in step S261), the communication control unit 305 assigns the priority to the task 106 according to the type of instruction in the task 106, and the like.
  • the rank is calculated (step S262). In this case, the communication control unit 305 calculates the priority according to a predetermined priority calculation method. Further, when the communication control unit 305 determines that the data stored in the communication information unit 304 has not been updated (NO in step S261), the communication control unit 305 does not perform the above-described processing.
  • a predetermined priority order calculation method there is a method in which a higher priority order is assigned to a task whose instruction type is “5” than a task whose instruction type is “7”.
  • the communication control unit 305 processes the task with the instruction type “5” in preference to the instruction type “7”.
  • the instruction type “7” represents the seventh instruction.
  • the instruction type “5” represents the fifth instruction.
  • the communication control unit 305 receives an instruction to release the reserved communication resource from the host processor 101 (step S211).
  • the communication control unit 305 reads whether or not the communication information unit 304 stores a task identifier (step S212).
  • the communication control unit 305 releases the reserved communication resource (step S216).
  • the communication control unit 305 calculates a value obtained by subtracting 1 from the number of communication paths used.
  • the usage number may be updated with the calculated value (step S215).
  • the communication control unit 305 determines a task identifier associated with a higher priority from the communication information unit 304. Read (step S313). For example, the communication control unit 305 may read the task identifier having the highest priority in the communication information unit 304. Next, the communication control unit 305 executes processing such as securing communication resources as shown in FIG. 26 for the task associated with the read task identifier (step S214). Thereafter, the communication control unit 305 releases the communication resource to be released according to the received command (step S216).
  • the communication control unit 305 may calculate a value obtained by subtracting 1 from the number of used communication paths, and update the value using the calculated number of used communication paths (Step S215).
  • the predetermined priority order calculation method is, for example, a calculation method as shown in FIGS. FIG. 33 to FIG. 36 are flowcharts showing an example of the processing flow in the predetermined priority order calculation method according to the tenth embodiment.
  • the task identifier stored in the communication information unit 304 has a higher priority than the task of the instruction type “7” to the task of the instruction type “5” associated with the task identifier.
  • the rank is calculated (step S271).
  • the communication control unit 305 gives priority to the task requesting the communication resource according to the fifth instruction 110 from the task requesting the communication resource prior to the task requesting the communication resource according to the seventh instruction 112. Allocate communication resources.
  • the schedule system 301 allocates the processing of the second portion 107 to the many-core accelerator 102 after securing communication resources according to the fifth instruction 110.
  • the schedule system 301 secures communication resources according to the seventh instruction 112 after the many-core accelerator 102 finishes the processing of the second portion 107.
  • the scheduling system 301 processes the task 106 that commands the fifth instruction 110 in preference to the task 106 that commands the seventh instruction 112.
  • the many-core accelerator 102 can transmit / receive the data according to the second portion 107 at an early stage via the communication resource.
  • the processing efficiency is further increased compared to the ninth embodiment.
  • the communication resources are requested in ascending order when they are associated with the same instruction type.
  • This is a method for calculating a high priority. That is, the predetermined priority order calculation method is a method of calculating a higher priority order in the order of earlier time in the task 106 associated with the instruction type “5” (step S272). . Further, the predetermined priority order calculation method is a method of calculating a higher priority order in the order from the earliest time in the task 106 associated with the instruction type “7” (step S273). Note that step S273 may be processed before step S272.
  • the predetermined priority order calculation method shown in FIG. 34 a higher priority order is assigned in order from the earliest time when communication resources are requested. Thereby, in the predetermined priority order calculation method, in addition to the effects of the predetermined priority order calculation method shown in FIG. 33, the average turnaround time required for processing the task can be further reduced. it can.
  • the predetermined priority order calculation method shown in FIG. 35 is a method of performing the subsequent processing when associated with the same time in addition to the predetermined priority order calculation method shown in FIG.
  • the predetermined priority order calculation method is a method for calculating a high priority order for the task 106 with a small size of data transmitted and received between the accelerator memory 104 and the main memory 103.
  • the predetermined priority order calculation method assigns a high priority order to the task 106 having the small data size in the task associated with the instruction type “5” and the same time (step S274). Further, the predetermined priority order calculation method assigns a higher priority order to a task having the smaller data size among the tasks associated with the instruction type “7” and the same time (step S275). Processing may be performed in the order of step S271, step S273, step S275, step S272, and step S274.
  • the time for which the task 106 waits for communication resource allocation can be shortened.
  • the scheduling system 301 assigns communication resources to the first task
  • the second task in the communication information unit 304 waits for the communication resources to be released.
  • the above-described waiting time is short.
  • the predetermined priority order calculation method in FIG. 36 is the following method. According to this method, for example, when there is a storage area in the accelerator memory 104 in an idle state (determined as YES in step S281), a priority is assigned (step S282). In this case, the predetermined priority order calculation method is a method of assigning a higher priority order to the task associated with the fifth instruction 110 than the task associated with the seventh instruction 112.
  • the predetermined priority order calculation method is a method of assigning a higher priority order to the task associated with the seventh instruction 112 than the task associated with the fifth instruction 110.
  • the schedule system 301 can allocate communication resources according to the fifth instruction 110.
  • the host processor 101 cannot transmit data necessary for processing in the second portion 107 to the accelerator memory 104.
  • the schedule system 301 creates a storage area in an idle state in the accelerator memory 104, and transmits necessary data to the storage area in the idle state. Thereby, the many-core accelerator 102 starts processing in the second portion 107.
  • the communication path scheduler 302 assigns a higher priority to the task 106 associated with the seventh instruction 112 when there is no storage area in the accelerator memory 104 in an idle state.
  • the communication path scheduler 302 first creates a storage area in an idle state in the accelerator memory 104.
  • the host processor 101 transmits reference data from the main memory 103 to the storage area in the idle state.
  • the many-core accelerator 102 performs processing in the second portion 107 based on the data.
  • the communication path scheduler 302 allocates communication resources according to the usage status of the accelerator memory 104. Therefore, the communication path scheduler 302 may allocate communication resources for transmitting the data to the task even though the accelerator memory 104 does not have a sufficient storage area for storing the data processed by the task. Reduce sexuality. That is, according to the communication path scheduler 302 according to the present embodiment, since the accelerator memory 104 cannot store the data processed by the task 106, it is possible to reduce the possibility that the processing in the many-core accelerator 102 stops.
  • the tenth embodiment includes the same configuration as that of the ninth embodiment, the tenth embodiment can enjoy the same effects as those of the ninth embodiment.
  • the schedule system 301 according to the tenth embodiment the processing performance of resources can be exhibited more efficiently.
  • FIG. 37 is a block diagram showing a configuration of a schedule system 3004 according to the eleventh embodiment of the present invention.
  • FIG. 38 is a sequence diagram showing the flow of processing in the schedule system 3004 according to the eleventh embodiment.
  • the system 3006 includes a server 100 and a schedule system 3004.
  • the schedule system 3004 has a scheduler 3005.
  • the scheduler 3005 controls the server 100 based on a task 3001 including a first instruction 3002 for securing the resources possessed by the many-core accelerator 102 and a fifth instruction 3003 for securing communication resources possessed by the communication path 105.
  • the host processor 101 transmits to the scheduler 3005 a request to secure communication resources capable of communicating the amount designated in the fifth instruction 3003 (step S3201).
  • the scheduler 3005 determines whether or not there is an idle communication resource in the communication path 105 (step S3202). If the scheduler 3005 determines that a communication resource capable of communicating the amount instructed by the fifth instruction from the communication path 105 can be allocated (YES in step S3202), the scheduler 3005 secures the communication resource (step S3202). S3203).
  • the host processor 101 reads data to be processed in the task 3001 from the main memory 103, and transmits the read data to the many-core accelerator 102 (step S3204).
  • the many-core accelerator 102 receives the data, and stores the received data in the accelerator memory 104 (step S3205).
  • the host processor 101 transmits a request for securing a resource for processing the task 3001 from the many-core accelerator 102 to the scheduler 3005 (step S3206).
  • the scheduler 3005 receives the request, and determines whether or not the many-core accelerator 102 can secure the resource according to the first instruction 3002 (step S3207). If the many-core accelerator 102 determines that the many-core accelerator 102 has an idle resource that can process the task 3001 (YES in step S3207), the scheduler 3005 secures a specific resource (step S3208). ).
  • the specific resource performs processing related to the task 3001 based on the received data in the accelerator memory 104 (step S3209).
  • the eleventh embodiment includes a configuration similar to that of the fourth embodiment, the eleventh embodiment can enjoy the same effects as those of the fourth embodiment. That is, according to the schedule system 3004 according to the eleventh embodiment, the processing performance of the resource can be more efficiently exhibited.
  • the schedule system 3004 secures a communication channel resource for transmitting the first data related to the task 3001 from the communication channel 105.
  • the scheduler 3005 secures communication resources
  • the host processor can store the first data in the main memory 103 in the accelerator memory 104 without delay.
  • the scheduler 3005 secures a specific resource, a situation in which the specific resource cannot perform the process related to the task 3001 due to the delay of the first data does not occur.
  • the non-volatile recording medium 35 can be read by a computer such as a compact disc (Compact Disc), a digital versatile disc (Digital Versatile Disc), a Blu-ray Disc (registered trademark), a universal serial bus memory (USB memory). ), Solid state drive (Solid State Drive), etc., and the program can be retained and carried even without power supply.
  • a computer such as a compact disc (Compact Disc), a digital versatile disc (Digital Versatile Disc), a Blu-ray Disc (registered trademark), a universal serial bus memory (USB memory). ), Solid state drive (Solid State Drive), etc.
  • the nonvolatile recording medium 35 is not limited to the above-described medium. Further, instead of the nonvolatile recording medium 35, the program may be carried via a communication network.
  • the CPU 32 copies a software program (computer program: hereinafter simply referred to as “program”) stored in the disk 34 to the memory 33 when executing it, and executes arithmetic processing.
  • the CPU 32 reads data necessary for program execution from the memory 33. When display is necessary, the CPU 32 displays the output result on the output device 37. When inputting a program from the outside, the CPU 32 reads the program from the input device 36.
  • the CPU 32 performs functions (processes) represented by the respective units shown in FIGS. 1, 3, 5, 7, 10, 10, 12, 14, 22, 25, 29, or 37 described above.
  • Schedule program FIG. 2, FIG. 4, FIG. 6, FIG. 8, FIG. 9, FIG. 9, FIG. 13, FIG. 15, FIG. 23, FIG. 24, FIG. 26, FIG. 27, FIG. 30, FIG. 33 to 36 and 38, the processing performed by the schedule system is interpreted and executed.
  • the CPU 32 sequentially performs the processes described in the above-described embodiments of the present invention.
  • the present invention can also be achieved by such a schedule program. Furthermore, it can be understood that the present invention can also be realized by a computer-readable recording medium on which such a schedule program is recorded.
  • a many-core accelerator as a resource an accelerator memory accessed by the many-core accelerator, a processor controlling the resource, a memory accessed by the processor, and a first capable of transmitting and receiving data between the many-core accelerator and the processor
  • the first communication includes a second communication path that is included in a task that is processed by a computer having a communication path, and that is capable of transmitting and receiving first data processed by the task between the memory and the accelerator memory.
  • the second communication path is secured as a second communication resource in response to a fifth instruction secured from the path, and the second communication resource is transmitted / received via the second communication resource in accordance with the first instruction to secure the resource.
  • a specific resource for processing the task is determined based on one data. Scheduling system with a scheduler that.
  • (Appendix 2) A first part of the task to be processed by the processor, the fifth instruction, and the first data transmitted from the memory to the accelerator memory via the second communication resource.
  • the scheduler secures the second communication resource according to the fifth instruction, releases the second communication resource according to the sixth instruction, and receives the third communication path according to the seventh instruction.
  • As a third communication resource and in response to the eighth instruction, has a channel scheduler that releases the third communication resource,
  • a resource for processing the task is secured as a specific resource
  • the processor transmits the first data from the memory to the accelerator memory via the second communication resource, and transmits the second data from the accelerator memory to the memory via the third communication resource.
  • Send data The schedule system according to claim 1, wherein the specific resource creates the second data by processing the task while accessing the first data according to the second part.
  • the task is associated with a task identifier that identifies the task;
  • the channel scheduler is Communication information means capable of storing the task identifier; If the fourth communication resource cannot be secured for the task that executes the fifth instruction or the seventh instruction, the task identifier associated with the task is stored in the communication information means, When a communication resource can be secured, a communication control process is performed to secure the communication resource from the first communication path in the idle state before the fourth communication resource, In response to the sixth instruction or the eighth instruction, the fourth communication resource is released, and then the task identifier is read from the communication information means, and the task associated with the read task identifier is The schedule system according to claim 3, further comprising: a communication control unit that performs communication control processing.
  • Priority order setting means for calculating a priority order for processing a task associated with a task identifier in the communication information means according to a predetermined priority order calculation method according to a type of instruction executed by the task;
  • the predetermined priority order calculation method is a method for calculating a higher priority order for a task whose instruction type is the fifth instruction than for a task whose instruction type is the seventh instruction. Schedule system as described in.
  • the predetermined priority order calculation method is a method for calculating a higher priority order for a task that first executes the fifth instruction in a task whose instruction type is the fifth instruction. system.
  • the predetermined priority order calculation method is a method of calculating a high priority order for a task with a small amount of data transmitted via the communication path in a task whose instruction type is the fifth instruction or the seventh instruction.
  • the schedule system according to appendix 5.
  • the instruction type is a task that is the fifth instruction.
  • the priority level is higher than the task whose type is the seventh instruction and it is determined that the storage area does not exist, the task whose instruction type is the seventh instruction has the instruction type
  • a many-core accelerator as a resource an accelerator memory accessed by the many-core accelerator, a processor controlling the resource, a memory accessed by the processor, and a first capable of transmitting and receiving data between the many-core accelerator and the processor
  • the first communication includes a second communication path that is included in a task that is processed by a computer having a communication path, and that is capable of transmitting and receiving first data processed by the task between the memory and the accelerator memory.
  • the second communication path is secured as a second communication resource in response to a fifth instruction secured from the path, and the second communication resource is transmitted / received via the second communication resource in accordance with the first instruction to secure the resource.
  • a specific resource for processing the task is determined based on one data. Schedule how to.
  • a many-core accelerator as a resource an accelerator memory accessed by the many-core accelerator, a processor controlling the resource, a memory accessed by the processor, and a first capable of transmitting and receiving data between the many-core accelerator and the processor
  • the first communication includes a second communication path that is included in a task that is processed by a computer having a communication path, and that is capable of transmitting and receiving first data processed by the task between the memory and the accelerator memory.
  • the second communication path is secured as a second communication resource in response to a fifth instruction secured from the path, and the second communication resource is transmitted / received via the second communication resource in accordance with the first instruction to secure the resource.
  • a specific resource for processing the task is determined based on one data. Recording medium storing a schedule program for implementing the schedule function to computers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

 リソースが有する処理性能を、より効率良く発揮することができるスケジュールシステム等が提供される。 スケジュールシステム3004は、リソースであるメニーコアアクセラレータ102と、アクセラレータメモリ104と、プロセッサと、メモリと、メニーコアアクセラレータ102とプロセッサ101との間においてデータを送受信可能な第1通信路105とを有する計算処理装置100にて処理するタスクに含まれるところの、タスクが処理する第1データをメモリ103とアクセラレータメモリ104との間において送受信可能な第2通信路を第1通信路105から確保する第5指示に応じて、第2通信路を第2通信リソースとして確保し、リソースを確保する第1指示に応じて、第2通信リソースを介して送受信された第1データに基づき特定のリソースを決定するスケジューラ3005を有する。

Description

スケジュールシステム、スケジュール方法、及び、記録媒体
 本発明は、スケジューリングを行うスケジュールシステム等に関する。
 空間分割方法は、マルチプロセッサシステムにおいて、複数の独立したタスクを処理する場合におけるスケジュール方法である。図17を参照しながら、空間分割方法を採用するシステム54が有する構成について説明する。図17は、本発明に関連する空間分割方法を採用するコンピュータシステム(計算処理システム、情報処理システム、以降、単に「システム」とも表す)の構成を示すブロック図である。
 図17を参照すると、システム54は、プロセッサ41、プロセッサ42、プロセッサ43、プロセッサ44等を有するサーバ40と、タスクスケジューラ45と、サーバリソース管理部46とを有する。
 タスクスケジューラ45は、実行するタスクを入力として受け取る。次に、タスクスケジューラ45は、受け取ったタスクを実行するために必要とするプロセッサ数と、サーバリソース管理部46が保持する複数のプロセッサ(プロセッサ41乃至44)の利用状況とを参照することにより、実行に必要なプロセッサを確保する。次に、タスクスケジューラ45は、サーバリソース管理部46が有する情報を更新するとともに、タスクをサーバ40に投入する。タスクスケジューラ45は、サーバ40がタスクの実行を完了したことを検知すると、サーバリソース管理部46が有する情報を更新し、その後、該タスクを処理するために確保したプロセッサを解放する。
 タスクスケジューラ45は、上述した動作をすることにより、サーバ40が有するプロセッサ(プロセッサ41乃至44)を複数のタスクの処理に利用する。このため、サーバ40における処理性能は向上する。
 一方、図18に示すような、上述した構成とは異なる構成を有するサーバも存在する。図18は、本発明に関連するメニーコアアクセラレータを有するシステムの構成を示すブロック図である。図18を参照すると、サーバ47は、ホストプロセッサ48と、ホストプロセッサ48がアクセスする主記憶装置(メインメモリ、メモリ、以降、「主メモリ」と表現する)50とを有する。さらに、サーバ47は、メニーコアアクセラレータ(「Many-core accelerator」、「Multi-core accelerator」、「Multiple core accelerator」とも表す)49を有する。さらに、サーバ47は、該メニーコアアクセラレータ49がアクセスするアクセラレータメモリ51を有する。
 図19を参照しながら、上述したような構成を有するサーバ47が、上述したようなタスクスケジュール技術を採用するシステムが有する構成について説明する。図19は、本発明に関連するメニーコアアクセラレータを有するシステムに対するタスクスケジューラの構成を示すブロック図である。図19を参照すると、システム55は、タスクスケジューラ52と、サーバリソース管理部53と、サーバ47とを有する。
 図20は、図18に示すメニーコアアクセラレータを有するサーバが、上述したようなタスクスケジュール手法を採用する場合における処理を表す。図20は、本発明に関連するタスクスケジューラにおける処理の流れを示すフローチャート(シーケンス図)である。
 図19と図20とを参照すると、タスクスケジューラ52は、実行するタスクを入力として受け取り、該タスクを実行するために必要なホストプロセッサ48とメニーコアアクセラレータ49とに関するリソース情報を参照する。次に、タスクスケジューラ52は、該リソース情報において、サーバリソース管理部53が管理するリソースにおける利用状況を参照することにより、タスクを処理するのに必要なリソースを確保する(ステップS40)。次いで、タスクスケジューラ52は、確保したリソースを指定することにより、タスクをサーバ47に投入する(ステップS41)。タスクスケジューラ52は、サーバ47がタスクの処理を完了したことを検知すると、その後、サーバリソース管理部53に完了を検知したことを送信するとともに、該タスクを処理するために確保したリソースを解放する(ステップS42)。
 図21を参照しながら、サーバ47が、一つのタスクを実行する処理について説明する。図21は、本発明に関連するメニーコアアクセラレータを有するシステムにおける処理の流れを示すフローチャートである。
 図19と図21とを参照すると、サーバ47は、タスクスケジューラ52が投入するタスクを受け取り、その後、ホストプロセッサ48上において処理を開始する(ステップS43)。次いで、ホストプロセッサ48は、メニーコアアクセラレータ49において処理するデータを、主メモリ50からアクセラレータメモリ51に送信する。(ステップS44)。メニーコアアクセラレータ49は、ホストプロセッサ48が送信するデータを処理する(ステップS45)。その後、ホストプロセッサ48は、メニーコアアクセラレータ49が処理した結果を、アクセラレータメモリ51から主メモリ50に送信する(ステップS46)。次に、ホストプロセッサ48は、次のタスクを処理する(ステップS43、あるいは、ステップS44)。サーバ47は、ステップS43乃至ステップS46における処理を1回以上繰り返すことにより、ホストプロセッサ48におけるタスクの処理を完了する。その後、サーバ47は、タスクスケジューラ52に、該タスクの処理が完了したことを表す信号を送信する(ステップS47)。
 特許文献1に開示されるプログラム実行制御方法は、異種のプロセッサを有するシステムにおいて、省電力制御を行う方法である。すなわち、該実行制御方法は、パフォーマンスを向上する制御方法である。該実行制御方法に従えば、各プロセッサが分割したタスクを同時に完了するように、クロック周波数は変更される。
 特許文献2に開示されるデータ処理装置は、データ処理の途中で処理を中断して別の処理を優先する場合に、中断する処理の進捗状態に応じて退避・復帰に要するオーバーヘッドを低減する。
 特許文献3が開示するデータ処理装置は、プロセッサ上で実行されるソフトウェアと、特定の処理に専用のハードウェアとが優先順位に従って処理を実施することにより、タスク切替えに関する処理効率をより高める。
特開2011-197803号公報 特開2010-181989号公報 特開2007-102399号公報
 図19と図21とを参照しながら、メニーコアアクセラレータ49を有するサーバ47が、上述のようなタスクスケジュールシステムを採用する場合に生じる問題について説明する。
 タスクスケジューラ52は、タスクを投入する際に、メニーコアアクセラレータ49におけるリソースを管理することにより、タスクをリソースに割り当て、その後、タスクを完了する際に、該割り当てたリソースを解放する。図19において、タスクスケジューラ52は、タスクを投入する際に、メニーコアアクセラレータ49のリソースを確保し、その後、タスクを完了するまで、該リソースを確保し続ける。このため、タスクスケジューラ52は、ステップS43、あるいは、ステップS47において、ホストプロセッサ48がタスクの処理を実行する間に、該リソースを確保し続ける。あるいは、タスクスケジューラ52は、ステップS44やステップS46等において、ホストプロセッサ48が主メモリ50とアクセラレータメモリ51との間でデータを送信する間に、該リソースを確保し続ける。
 また、タスクスケジューラ52は、一連のタスクを処理するために必要なメニーコアアクセラレータ49のリソースが変化する場合において、一連のタスクを処理する最大限のリソースを、タスクを起動する際に確保する。このため、一連のタスクにおいて、リソースの一部しか利用しない特定のタスクを処理する場合には、ステップS45において、処理を行わないリソースが存在する。上述のように、一連のタスクを処理する場合に、特定の処理を行わないリソースが存在する問題を、リソース未利用問題と表す。
 一方、上記のリソース未利用問題を回避するために、メニーコアアクセラレータ49が実際に有するリソースよりも多いリソースを有するとして、タスクスケジューラ52が認識する方法も存在する。しかし、上述したような方法によりリソース未利用問題を回避する結果、メニーコアアクセラレータ49のリソースは、実際にタスクを処理するためには不十分になる。このため、メニーコアアクセラレータ49は、タスクの処理を失敗する、あるいは、過重な負荷になる。結果的に、システム55が有する処理性能は低下する。
 つまり、上述したような処理方法を採用するタスクスケジューラ52は、リソース未利用問題を回避することができない。このため、メニーコアアクセラレータ49は、その処理性能が低下する、あるいは、タスクの処理を失敗する。
 そこで、本発明の主たる目的は、リソースが有する処理性能を、より効率良く発揮するスケジュールシステム等を提供することである。
 前述の目的を達成するために、本発明に係るスケジュールシステムは、以下の構成を有する。
 すなわち、本発明の一態様におけるスケジュールシステムは、
 リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジューラ
 を有する。
 また、本発明の他の見地として、本発明に係るスケジュール方法は、
 リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定する。
 さらに、同目的は、係るスケジュールプログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
 本発明に係るスケジュールシステム等によれば、リソースが有する処理性能を、より効率良く発揮することができる。
本発明の第1の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第1の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の第2の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第2の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の第3の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第3の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の第4の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第4の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第4の実施形態に係るスケジュールシステムにおける第2の処理の流れを示すシーケンス図である。 本発明の第5の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第5の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の第6の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第6の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の第7の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第7の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 本発明の各実施形態に係るスケジュールシステムを実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。 本発明に関連する空間分割方法を採用するシステムの構成を示すブロック図である。 本発明に関連するメニーコアアクセラレータを有するシステムの構成を示すブロック図である。 本発明に関連するメニーコアアクセラレータを有するシステムに対するタスクスケジューラの構成を示すブロック図である。 本発明に関連するタスクスケジューラにおける処理の流れを示すフローチャートである。 本発明に関連するメニーコアアクセラレータを有するシステムにおける処理の流れを示すフローチャートである。 本発明の第8の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第8の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。 第8の実施形態において、スケジューラがアクセラレータメモリに記憶領域を確保する場合に、スケジュールシステムが実行する処理の流れを示すシーケンス図である。 本発明の第9の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第9の実施形態に係るスケジュールシステムにおける第5指示または第7指示を受け取る場合における処理の流れを示すフローチャートである。 第9の実施形態に係るスケジュールシステムにおける第6指示または第8指示を受け取る場合における処理の流れを示すフローチャートである。 通信情報部254が記憶可能なタスク識別子の一例を概念的に表す図である。 本発明の第10の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第10の実施形態に係る優先順位設定部における処理の流れを示すフローチャートである。 第10の実施形態に係る通信制御部における処理の流れを示すフローチャートである。 第10の実施形態に係る通信情報部が記憶可能な情報を概念的に表す図である。 第10の実施形態に係る所定の優先順位算出方法における処理の流れの一例を示すフローチャートである。 第10の実施形態に係る所定の優先順位算出方法における処理の流れの一例を示すフローチャートである。 第10の実施形態に係る所定の優先順位算出方法における処理の流れの一例を示すフローチャートである。 第10の実施形態に係る所定の優先順位算出方法における処理の流れの一例を示すフローチャートである。 本発明の第11の実施形態に係るスケジュールシステムの構成を示すブロック図である。 第11の実施形態に係るスケジュールシステムにおける処理の流れを示すシーケンス図である。
 次に、本発明を実施する実施形態について図面を参照して詳細に説明する。
 <第1の実施形態>
 本発明の第1の実施形態に係るスケジュールシステム1が有する構成と、スケジュールシステム1が行う処理とについて、図1と図2とを参照しながら詳細に説明する。図1は、本発明の第1の実施形態に係るスケジュールシステム1の構成を示すブロック図である。図2は、第1の実施形態に係るスケジュールシステム1における処理の流れを示すシーケンス図である。
 図1を参照すると、システム38は、コンピュータが処理する一連の処理であるタスク6に対する処理を行うサーバ3(「コンピュータ」、「計算処理装置」、「情報処理装置」とも表現する)と、第1の実施形態に係るスケジュールシステム1とを有する。スケジュールシステム1は、スケジューラ2を有する。サーバ3は、ホストプロセッサ4(以降、単に、「プロセッサ」とも表現する)と、メニーコアアクセラレータ5とを有する。
 ホストプロセッサ4は、メニーコアアクセラレータ5に関する制御等の処理を行う。まず、ホストプロセッサ4は、タスク6の処理を開始する。次に、ホストプロセッサ4は、タスク6からリソース(メニーコアアクセラレータ5)を確保する指示(命令とも表す、以降、リソースを確保する指示を「第1指示」とも表す)を読み取る。次に、ホストプロセッサ4は、該読み取った第1指示に従い、スケジュールシステム1に対してリソースを確保する命令を送信する(ステップS1)。
 次に、スケジューラ2は、該命令を受信するのに応じて、タスク6に対してリソースを確保すること(以降、「リソース確保」と略記する)ができるか否かを確認する(ステップS2)。スケジューラ2は、リソース確保が可能であると判定する(ステップS2にてYESと判定)場合に、リソースを確保する(ステップS3)。スケジューラ2は、リソース確保が可能でないと判定する(ステップS2にてNOと判定)場合に、リソース確保が可能であるか否かを、再度、確認する(ステップS2)。
 メニーコアアクセラレータ5は、スケジューラ2が、リソース確保が可能であると判定する(ステップS2にてYESと判定)場合に、タスクを実行する(ステップS4)。
 スケジューラ2は、リソース確保が可能でないと判定する(ステップS2にてNOと判定)場合に、上述した処理を行うことにより、リソースが解放されるのを待つ。次に、スケジューラ2は、確保したリソースを解放する(ステップS5)。
 スケジュールシステム1は、たとえば、オペレーティングシステムにおける1つの機能としても実現できる。スケジュールシステム1は、たとえば、オペレーティングシステムと、リソースに関するパラメタ等を送受信することによって、上述したような処理を行うこともできる。
 特許文献1乃至特許文献3のシステムは、「背景技術」にて説明したように、タスクを処理し始めてから、タスクを処理し終えるまでの期間に、一連のタスクを処理する最大のリソースを確保し続ける。このため、一連のタスク処理が一部のリソースのみ利用する場合において、一部のリソースは処理を行わない。
 しかし、第1の実施形態に係るスケジュールシステム1は、タスクからの要求に応じて、リソースを確保し、その後、確保したリソースが処理を行う。その後、ホストプロセッサ4がリソースの解放を命ずることにより、スケジュールシステム1は、リソースを解放する。サーバ3が一連のタスクを処理する場合であっても、スケジュールシステム1は、タスクの処理に応じて、各タスクを処理するリソースを割り当てることができる。このため、第1の実施形態に係るスケジュールシステム1によれば、一連のタスクを処理する場合であっても、一部のリソースしか処理を行わない状況を軽減することができる。
 すなわち、第1の実施形態に係るスケジュールシステム1によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第2の実施形態>
 次に、上述した第1の実施形態を基本とする第2の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図3と図4とを参照しながら、本発明の第2の実施形態に係るスケジュールシステム7が有する構成と、スケジュールシステム7が行う処理とについて説明する。図3は、本発明の第2の実施形態に係るスケジュールシステム7の構成を示すブロック図である。図4は、第2の実施形態に係るスケジュールシステム7における処理の流れを示すシーケンス図である。
 図3を参照すると、システム39は、スケジュールシステム7と、サーバ3とを有する。さらに、スケジュールシステム7は、スケジューラ8と、管理部9とを有する。管理部9は、メニーコアアクセラレータ5が有するリソースに関する利用状況を管理する。スケジューラ8は、リソースを確保する要求を受け取ると(ステップS1)、その後、管理部9を読み取る(ステップS6)。次に、スケジューラ8は、読み取った情報を基に、リソースを割り当てることが可能か否かを判定する(ステップS2)。
 管理部9がリソースに関する利用状況を管理するため、スケジューラ8は、外部を参照することなく、リソースを割り当てることが可能か否かを判定することができる。このため、第2の実施形態に係るスケジュールシステム7によれば、効率良く、リソースを管理することができる。更に、第2の実施形態は、第1の実施形態と同様の構成を含むので、第2の実施形態は、第1の実施形態と同様の効果を享受することができる。
 すなわち、第2の実施形態に係るスケジュールシステム7によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第3の実施形態>
 次に、上述した第1の実施形態を基本とする第3の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図5と図6とを参照しながら、本発明の第3の実施形態に係るスケジュールシステム10が有する構成と、スケジュールシステム10が行う処理とについて説明する。図5は、本発明の第3の実施形態に係るスケジュールシステム10の構成を示すブロック図である。図6は、第3の実施形態に係るスケジュールシステム10における処理の流れを示すシーケンス図である。
 図5を参照すると、スケジュールシステム10は、スケジューラ11を有する。システム56は、第1部分と第2部分とを有するタスク12に関する処理を、サーバ3にて行う。
 ホストプロセッサ4は、タスク12のうち、ホストプロセッサ4にて処理する第1部分を実行する(ステップS7)。次に、ホストプロセッサ4は、第1指示に応じて、スケジューラ11にリソースを確保する命令を送信する(ステップS8)。次に、スケジューラ11は、リソースを確保することが可能であると判定する(ステップS9にてYESと判定)場合に、リソースを確保する(ステップS10)。スケジューラ11は、リソースを確保することが可能でないと判定する(ステップS9にてNOと判定)場合に、再び、リソースを確保することが可能であるか否かを判定する(ステップS9)。
 次に、スケジューラ11が確保したリソース(メニーコアアクセラレータ5に含まれる)は、リソースにて処理をする第2部分を実行する(ステップS11)。次に、ホストプロセッサ4は、スケジューラ11が確保したリソースを解放する命令(以降、この命令を、「第2指示」と表す)を読み取るのに応じて、スケジューラ11に、リソースを解放する命令を発する(ステップS12)。スケジューラ11は、該命令を受け取るのに応じて、確保したリソースを解放する(ステップS13)。
 第1指示は、たとえば、プロセッサ数等に関する情報を有する。スケジューラ11は、上述したプロセッサ数等に応じて、リソースの量を決定するが、必ずしも、リソースの量は、上述した数値とは同一でなくてもよい。また、スケジューラ11は、確保したリソースに関する情報を送信してもよい。該確保したリソースに関する情報は、確保したプロセッサ数、あるいは、利用可能なプロセッサ番号のリスト等に関する情報を含んでもよい。
 タスク12は、ホストプロセッサ4にて処理する第1部分と、第2部分と、その第2部分を実行するリソースを確保する第1指示とを有する。このため、スケジューラ11は、第2部分の処理前に必要なリソースを確保し、確保したリソースが第2部分の処理を完了した後に、該リソースを解放する。すなわち、第3の実施形態に係るスケジュールシステム10は、特許文献1乃至3が開示するシステムと比較して、より細かく、リソースを管理することを可能にする。
 すなわち、第3の実施形態に係るスケジュールシステム10によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 尚、説明の便宜上、上述した説明において、第3の実施形態は、第1の実施形態を基本としたが、第2の実施形態を基本とすることもできる。その場合であっても、第3の実施形態は、第2の実施形態と同様の効果を享受することができる。
 <第4の実施形態>
 次に、上述した第1の実施形態を基本とする第4の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図7と図8とを参照しながら、本発明の第4の実施形態に係るスケジュールシステム13が有する構成と、スケジュールシステム13が行う処理とについて説明する。図7は、本発明の第4の実施形態に係るスケジュールシステム13の構成を示すブロック図である。図8は、第4の実施形態に係るスケジュールシステム13における処理の流れを示すシーケンス図である。
 図7を参照すると、システム57は、タスク15を処理するサーバ16と、サーバ16におけるリソースを管理するスケジュールシステム13とを有する。
 サーバ16は、ホストプロセッサ18と、ホストプロセッサ18が処理するデータを記憶する主メモリ19と、メニーコアアクセラレータ17と、メニーコアアクセラレータ17が処理するデータを記憶するアクセラレータメモリ20とを有する。
 スケジュールシステム13は、スケジューラ14を有する。タスク15は、上述したような第1部分と、第1指示と、第2部分との他に、主メモリ19からアクセラレータメモリ20にデータを送信する第3部分と、アクセラレータメモリ20から主メモリ19にデータを送信する第4部分とを有する。
 ホストプロセッサ18は、第1部分を実行した後、第1指示に応じて、スケジュールシステム13に特定のリソースを確保する要求を送信する(ステップS14)。スケジューラ14は、該要求を受信するのに応じて、特定のリソースを確保する(ステップS15)。ステップS15は、図2におけるステップS2と、ステップS3とにおける一連の処理、あるいは、図4におけるステップS2と、ステップS3と、ステップS6とにおける一連の処理をひとまとめにして表現している。次に、ホストプロセッサ18は、メニーコアアクセラレータ17が処理するデータを、主メモリ19からアクセラレータメモリ20に送信する(ステップS16)。
 次に、スケジューラ14が確保した特定のリソースは、第2部分を実行する(ステップS17)。次に、ホストプロセッサ18は、特定のリソースが処理したデータを、アクセラレータメモリ20から主メモリ19に送信する(ステップS18)。次に、ホストプロセッサ18は、第2指示に応じて、スケジュールシステム13に特定のリソースを解放する要求を送信する(ステップS19)。次に、スケジューラ14は、該要求を受信するのに応じて、特定のリソースを解放する(ステップS20)。
 第4の実施形態において、スケジューラ14は、メニーコアアクセラレータ17における処理装置の他に、アクセラレータメモリ20を確保することもできる。この場合に、特定のメニーコアアクセラレータ17は、特定のアクセラレータメモリ20を参照することになる。図9を参照しながら、スケジューラ14がアクセラレータメモリ20を確保する場合の処理について説明する。図9は、第4の実施形態に係るスケジュールシステムにおける第2の処理の流れを示すシーケンス図である。
 ホストプロセッサ18は、第1部分を実行した後、第1指示に応じて、スケジュールシステム13に特定のアクセラレータメモリ20を確保する要求を送信する(ステップS30)。スケジューラ14は、該要求を受信するのに応じて、特定のアクセラレータメモリ20を確保する(ステップS31)。次に、ホストプロセッサ18は、メニーコアアクセラレータ17が処理するデータを、主メモリ19から特定のアクセラレータメモリ20に送信する(ステップS16)。
 次に、ホストプロセッサ18は、スケジュールシステム13に特定のリソースを確保するための要求をする(ステップS14)。スケジューラ14は、その要求を受け取った後、特定のリソースを確保する(ステップS15)。ステップS15は、図2におけるステップS2と、ステップS3とにおける一連の処理、あるいは、図4におけるステップS2と、ステップS3と、ステップS6とにおける一連の処理をひとまとめにして表現している。
 次に、スケジューラ14が確保した特定のリソースは、第2部分を実行する(ステップS17)。次に、ホストプロセッサ18は、第2指示に応じて、スケジュールシステム13に特定のリソースを解放する要求を送信する(ステップS19)。次に、スケジューラ14は、該要求を受信するのに応じて、特定のリソースを解放する(ステップS20)。次に、ホストプロセッサ18は、特定のリソースが処理したデータを、アクセラレータメモリ20から主メモリ19に送信する(ステップS18)。
 次に、ホストプロセッサ18は、スケジューラ14に、特定のアクセラレータメモリ20を解放する要求を送信する(ステップS32)。次に、スケジューラ14は、該要求を受信するのに応じて、特定のアクセラレータメモリ20を解放する(ステップS33)。
 第4の実施形態に係るスケジュールシステム13は、メニーコアアクセラレータ17が処理するデータを、システム57においても、有効にリソース、あるいは、アクセラレータメモリ20を管理することができる。
 すなわち、第4の実施形態に係るスケジュールシステム13によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 尚、説明の便宜上、上述した説明において、第4の実施形態は、第1の実施形態を基本としたが、第2の実施形態、あるいは、第3の実施形態を基本とすることもできる。その場合であっても、第4の実施形態は、同様の効果を享受することができる。
 <第5の実施形態>
 次に、上述した第3の実施形態を基本とする第5の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第3の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図10と図11とを参照しながら、本発明の第5の実施形態に係るスケジュールシステム21が有する構成と、スケジュールシステム21が行う処理とについて説明する。図10は、本発明の第5の実施形態に係るスケジュールシステム21の構成を示すブロック図である。図11は、第5の実施形態に係るスケジュールシステム21における処理の流れを示すシーケンス図である。
 図10を参照すると、システム58は、スケジュールシステム21と、タスク23を処理するサーバ3とを有する。スケジュールシステム21は、スケジューラ22を有する。タスク23は、第1部分と、第2部分とに加え、スケジューラ22が特定のリソースを確保できない場合に、メニーコアアクセラレータ5に代わり、ホストプロセッサ4が処理する第5部分とを含む。第5部分における処理は、第2部分における処理と同様である。すなわち、ホストプロセッサ4が第5部分を実行した結果と、特定のリソースが第2部分を実行した結果とは一致する。
 ホストプロセッサ4は、スケジューラ22がリソースを割り当てることができないと判定する(ステップS9にてNOと判定)場合に、第5部分を実行する(ステップS21)。スケジューラ22は、スケジューラ22がリソースを割り当てることができると判定する(ステップS9にてYESと判定)場合に、特定のリソースを確保する(ステップS10)。
 第5の実施形態に係るスケジュールシステム21によれば、メニーコアアクセラレータ5におけるリソースの状況に応じて、メニーコアアクセラレータ5に代わり、ホストプロセッサ4でも処理を行うことができる。すなわち、タスク23は、第5の実施形態に係るスケジュールシステム21により、一層、効果的に処理をすることが可能になる。
 すなわち、第5の実施形態に係るスケジュールシステム21によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第6の実施形態>
 次に、上述した第1の実施形態を基本とする第6の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図12と図13とを参照しながら、本発明の第6の実施形態に係るスケジュールシステム24が有する構成と、スケジュールシステム24が行う処理とについて説明する。図12は、本発明の第6の実施形態に係るスケジュールシステム24の構成を示すブロック図である。図13は、第6の実施形態に係るスケジュールシステム24における処理の流れを示すシーケンス図である。
 図12を参照すると、システム59は、スケジュールシステム24と、タスク6をサーバ3への投入を制御する第2タスクスケジューラ26と、サーバ3とを有する。スケジュールシステム24は、スケジューラ25を有する。
 第2タスクスケジューラ26は、たとえば、タスク6におけるタスク数等、タスクに関連する情報を、スケジュールシステム24に送信する(ステップS23)。次に、スケジューラ25は、該受け取った情報に応じて、リソースの量を算出する(ステップS24)。たとえば、スケジューラ25は、メニーコアアクセラレータ5が有する論理プロセッサ数を、第2タスクスケジューラ26がサーバ3に投入するタスク数で割った数を、リソースの量とすることや、上述のように算出した値の2倍をリソースの量とすることもできる。スケジュールシステム24がリソースの量を算出する方法は、上述した例に限定されない。
 スケジュールシステム24は、リソースを割り当てる制御に利用可能な情報を、第2タスクスケジューラ26から受信する。それにより、スケジュールシステム24は、スケジューリングの効率を、より上げることができ、メニーコアアクセラレータ5に対して適切な負荷を与えることができる。
 すなわち、第6の実施形態に係るスケジュールシステム24によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第7の実施形態>
 次に、上述した第2の実施形態を基本とする第7の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図14と図15とを参照しながら、本発明の第7の実施形態に係るスケジュールシステム27が有する構成と、スケジュールシステム27が行う処理とについて説明する。図14は、本発明の第7の実施形態に係るスケジュールシステム27の構成を示すブロック図である。図15は、第7の実施形態に係るスケジュールシステム27における処理の流れを示すシーケンス図である。
 図14を参照すると、システム60は、スケジュールシステム27と、第2タスクスケジューラ30と、タスク6を処理するサーバ3とを有する。スケジュールシステム27は、スケジューラ28と、管理部29とを有する。
 スケジューラ28は、管理部29から、メニーコアアクセラレータ5におけるリソースの負荷の状況を読み取る(ステップS25)。次に、スケジューラ28は、所定の第2閾値と、該負荷を表す負荷値とを比較する。スケジューラ28は、該負荷値が所定の第2閾値よりも小さいと判定する、すなわち、該負荷の状況が低いと判定する(ステップS26にてYESと判定)場合に、より多いタスクを投入するよう第2タスクスケジューラ30に信号を送信する(ステップS27)。スケジューラ28は、所定の第1閾値と、該負荷を表す負荷値とを比較する。ケジューラ28は、該負荷値が所定の第1閾値より大きいと判定する、すなわち、該負荷の状況が高いと判定する(ステップS26にてNOと判定)場合に、より少ないタスクを投入するよう第2タスクスケジューラ30に信号を送信する(ステップS28)。
 次に、第2タスクスケジューラ30は、該信号に応じて、タスク量を調整する(ステップS29)。
 スケジュールシステム27は、リソースの負荷状況について、第2タスクスケジューラ30に信号を送信するため、第7の実施形態に係るスケジュールシステム27によれば、メニーコアアクセラレータ5に対して適切な負荷を与えることができる。
 すなわち、第7の実施形態に係るスケジュールシステム27によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第8の実施形態>
 次に、上述した第4の実施形態を基本とする第8の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第4の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図22と図23とを参照しながら、本発明の第8の実施形態に係るスケジュールシステム114が有する構成と、スケジュールシステム114が行う処理とについて説明する。図22は、本発明の第8の実施形態に係るスケジュールシステム114の構成を示すブロック図である。図23は、第8の実施形態に係るスケジュールシステム114における処理の流れを示すシーケンス図である。
 システム117は、サーバ100と、スケジュールシステム114とを有する。
 サーバ100は、ホストプロセッサ101、主メモリ103、メニーコアアクセラレータ102、アクセラレータメモリ104、及び、ホストプロセッサ101とメニーコアアクセラレータ102とを接続する通信路105を有する。ホストプロセッサ101、及び、メニーコアアクセラレータ102は、通信路105を介することにより、参照するデータを通信(アクセス、送受信とも表す)する。
 スケジュールシステム114は、スケジューラ115に加え、さらに、通信路105が有する通信リソースを確保する通信路スケジューラ116を有する。
 まず、ホストプロセッサ101は、メニーコアアクセラレータ102におけるリソースを確保する第1指示201を、スケジュールシステム114に行う(ステップS14)。スケジュールシステム114は、第1指示201に応じて、メニーコアアクセラレータ102における特定のリソースを確保する(ステップS15)。次に、ホストプロセッサ101は、タスク106が通信路105を確保する第5指示110を受け取り、受け取った第5指示110に応じて、通信路スケジューラ116に、通信路105が有する通信リソースを確保するように命じる(ステップS101)。
 次に、通信路スケジューラ116は、第5指示110に応じた通信量を通信可能な通信リソースを確保する命令をホストプロセッサ101から受信する。通信路スケジューラ116は、通信路105が第5指示110に応じた通信量を通信可能になるまで、通信路105における通信量を計測する。その後、通信路スケジューラ116は、通信路105が第5指示110に応じた通信量を通信可能な場合に、通信路105から第5指示110に応じた通信リソースを確保する(ステップS102)。
 次に、ホストプロセッサ101は、通信路スケジューラ116が確保した通信リソースを介して、メニーコアアクセラレータ102がアクセスするデータを、主メモリ103からアクセラレータメモリ104に送信する(ステップS16)。
 ホストプロセッサ101は、データを主メモリ103からアクセラレータメモリ104に送信する。次に、ホストプロセッサ101は、確保していた通信リソースを解放する第6指示111に応じて、通信路スケジューラ116に対して、確保していた通信リソースを解放する要求を送信する(ステップS103)。
 通信路スケジューラ116は、確保していた通信リソースを解放する要求を受信し、受信した要求に応じて、確保していた通信リソースを解放する(ステップS104)。
 次に、スケジューラ115が確保した特定のリソースは、アクセラレータメモリ104が記憶するデータにアクセスすることにより、該タスク106における第2部分107を実行する(ステップS17)。
 その後、ホストプロセッサ101は、通信路105が有する通信リソースを確保する第7指示112に応じて、通信路スケジューラ116に、第7指示112に応じた通信量を通信可能な通信リソースを確保する要求を送信する(ステップS105)。
 通信路スケジューラ116は、ホストプロセッサ101から通信リソースを確保する命令を受信する。次に、通信路スケジューラ116は、第7指示112が指示する通信量を通信可能な通信リソースを確保できるまで、通信路105における通信量を計測する。その後、通信路スケジューラ116は、通信路105が第7指示112に応じた通信量を通信可能な場合に、通信路105から第7指示112に応じた通信リソースを確保する(ステップS106)。
 ホストプロセッサ101は、通信路スケジューラ116が確保した通信リソースを介して、特定のリソースが処理したデータ等を、アクセラレータメモリ104から主メモリ103に送信する(ステップS18)。
 ホストプロセッサ101は、タスク106から確保した通信リソースを解放する第8指示113を受け取り、受け取った第8指示113に応じて、通信路スケジューラ116に、確保していた通信リソースを解放するよう命令を送信する(ステップS107)。
 その後、通信路スケジューラ116は、ホストプロセッサ101から該命令を受信し、受信した命令に応じて、確保していた通信リソースを解放する(ステップS108)。
 その後、ホストプロセッサ101は、上述した第2指示202に応じて、スケジュールシステム114に特定のリソースを解放する命令を送信する(ステップS19)。
 スケジュールシステム114は、ホストプロセッサ101から該命令を受信し、受信した命令に応じて、確保していた特定のリソースを解放する(ステップS20)。
 上述した例において、第5指示110、第6指示111、第7指示112、及び、第8指示113は、通信リソースを確保する指示、または、通信リソースを解放する指示であるとしたが、その他の情報を含んでいてもよい。たとえば、第5指示乃至第8指示は、該指示を命じるタスク106を識別する情報、または、指示を受けた時刻を含んでもよい。あるいは、第5指示乃至第8指示は、主メモリ103とアクセラレータメモリ104との間において送受信されるデータの大きさ、または、主メモリ103におけるデータ構造に関する情報等を含んでいてもよい。
 さらに、上述した例において、第5指示110と第7指示112とは異なる指示であるとしたが、同じ指示であってもよい。同様に、第6指示111と第8指示113とは異なる指示であるとしたが、同じ指示でもあってもよい。この場合に、タスク106は、第7指示112を行う代わりに、第5指示110を行うとともに、第6指示111を行う代わりに第8指示113を行う。
 上述した例の場合に、たとえば、通信路スケジューラ116は、第7指示112に応じて、第5指示110に関連する処理、すなわち、通信リソースを確保する。同様に、通信路スケジューラ116は、第8指示113に応じて、第6指示111に関連する処理、すなわち、通信リソースを解放する。
 また、第3部分108は、アクセラレータメモリ104における記憶領域を確保する処理を含んでもよい。同様に、第4部分109は、アクセラレータメモリ104における記憶領域を解放する処理を含んでもよい。
 さらに、本実施形態においては、スケジューラ115がアクセラレータメモリ104における記憶領域を確保する態様であってもよい。この場合に、スケジュールシステム114は、図24に示す処理を行う。図24は、第8の実施形態において、スケジューラがアクセラレータメモリに記憶領域を確保する場合に、スケジュールシステム114が実行する処理の流れを示すシーケンス図である。
 まず、ホストプロセッサ101は、スケジュールシステム114に対して、アクセラレータメモリ104における、ある大きさを有する記憶領域を確保する命令を送信する(ステップS30)。次に、スケジューラ115は、ホストプロセッサ101から該命令を受信し、受信した命令に応じて、アクセラレータメモリ104において、ある大きさを有する記憶領域を確保する(ステップS31)。
 次に、ホストプロセッサ101は、タスク106が通信路105を確保する第5指示110を受信し、受信した第5指示110に応じて、通信路スケジューラ116に、通信路105が有する通信リソースを確保する命令を送信する(ステップS101)。
 次に、通信路スケジューラ116は、第5指示110に応じた通信リソースを確保する命令をホストプロセッサ101から受信する。通信路スケジューラ116は、通信路105が第5指示110に応じた通信量を通信可能になるまで、通信路105において送受信される通信量(以降、同義の語として、「通信帯域」を用いる)を計測する。その後、通信路スケジューラ116は、通信路105が第5指示110に応じた通信量を通信可能な場合に、該第5指示110に応じた通信リソースを確保する(ステップS102)。
 次に、ホストプロセッサ101は、通信路スケジューラ116が確保した通信リソースを介して、メニーコアアクセラレータ102が処理するデータを、主メモリ103からアクセラレータメモリ104における特定の記憶領域に送信する(ステップS16)。
 その後、ホストプロセッサ101は、確保していた通信リソースを解放する第6指示111に応じて、通信路スケジューラ116に対して、確保していた通信リソースを解放する命令を送信する(ステップS103)。
 通信路スケジューラ116は、確保していた通信リソースを解放する命令を受信し、受信した命令に応じて、確保していた通信リソースを解放する(ステップS104)。
 次に、ホストプロセッサ101、メニーコアアクセラレータ102におけるリソースを確保する第1指示201に応じて、スケジュールシステム114にリソースを確保する命令を送信する(ステップS14)。スケジューラ14は、該命令を受信するのに応じて、メニーコアアクセラレータ102における特定のリソースを確保する(ステップS15)。
 その後、スケジューラが確保した特定のリソースは、アクセラレータメモリ104に送信されたデータを処理することにより、該タスク106における第2部分107を実行する(ステップS17)。
 特定のリソースが第2部分107における処理を終了した後、ホストプロセッサ101は、確保していたリソースを解放する第2指示202に応じて、スケジュールシステム114に特定のリソースを解放するように命じる(ステップS19)。次に、スケジューラ14は、該命令に応じて、特定のリソースを解放する(ステップS20)。
 次に、ホストプロセッサ101は、タスク106において、通信路105が有する通信リソースを確保する第7指示112に応じて、通信路スケジューラ116に、第7指示112に応じた通信リソースを確保するように命令を送信する(ステップS105)。
 通信路スケジューラ116は、ホストプロセッサ101から通信リソースを確保する命令を受信する。次に、通信路スケジューラ116は、通信路105が第7指示112に応じた通信量を通信可能になるまで、通信路105において送受信される通信量を計測する。その後、通信路スケジューラ116は、通信路105が第7指示112に応じた通信量を通信可能な場合に、第7指示112に応じた通信リソースを確保する(ステップS106)。
 ホストプロセッサ101は、通信路スケジューラ116が確保した通信リソースを介して、特定のリソースが処理したデータ等を、アクセラレータメモリ104から主メモリ103に送信する(ステップS18)。
 ホストプロセッサ101は、タスク106から確保した通信リソースを解放する第8指示113を受け取り、受け取った第8指示113に応じて、通信路スケジューラ116に、確保していた通信リソースを解放するように命じる(ステップS107)。
 その後、通信路スケジューラ116は、ホストプロセッサ101から該命令を受信し、受信した命令に応じて、確保していた通信リソースを解放する(ステップS108)。
 さらに、ホストプロセッサ101は、スケジューラに、確保していた特定の記憶領域を解放する命令を送信する(ステップS32)。次に、スケジューラ14は、該命令を受信するのに応じて、確保していた特定の記憶領域を解放する(ステップS33)。
 第8の実施形態は、第4の実施形態と同様の構成を含むので、第8の実施形態は、第4の実施形態と同様の効果を享受することができる。すなわち、第8の実施形態に係るスケジュールシステム114によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 本実施形態において、通信路スケジューラ116は、タスク106における指示に応じて通信リソースを確保する。ホストプロセッサ101及びメニーコアアクセラレータ102は、該通信リソースを介して、主メモリ103とアクセラレータメモリ104との間においてデータを送受信する。このため、本実施形態によれば、通信路105において通信が遅延する可能性は低減する。また、通信路スケジューラ116がタスク106における指示に対応可能な量の通信リソースを確保できない場合に、該タスク106を処理するのに必要なデータの送受信を、あらかじめ一時的に停止する。この結果、本実施形態によれば、該タスク以外のタスクにおけるデータの送受信を妨げる可能性は低い。
 すなわち、本実施形態によれば、通信路スケジューラ116は、通信路105の通信性能に応じて、主メモリ103とアクセラレータメモリ104との間において送受信される通信を制御する。このため、単位時間当たりに主メモリ103とアクセラレータメモリ104との間を送信すべきデータ量は、通信路105が単位時間当たり送信可能な送信量以下になる。従って、通信路105における通信遅延により、メニーコアアクセラレータ102における処理が遅延する可能性は低くなる。その結果、本実施形態によれば、さらにリソースが有する処理性能を、さらに効率良く発揮することができる。
 尚、本実施形態において、説明の便宜上、スケジューラ115は、通信路スケジューラ116を含むとしたが、スケジューラ115が通信路スケジューラ116における機能を実現してもよい。
 <第9の実施形態>
 次に、上述した第8の実施形態を基本とする第9の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第8の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図25乃至図27を参照しながら、本発明の第9の実施形態に係るスケジュールシステム251が有する構成と、スケジュールシステム251が行う処理とについて説明する。図25は、本発明の第9の実施形態に係るスケジュールシステム251の構成を示すブロック図である。図26は、第9の実施形態に係るスケジュールシステム251における第5指示110または第7指示112を受信する場合における処理の流れを示すフローチャートである。図27は、第9の実施形態に係るスケジュールシステム251における第6指示111または第8指示113を受信する場合における処理の流れを示すフローチャートである。
 システム255は、サーバ100と、スケジュールシステム251とを有する。
 スケジュールシステム251は、スケジューラ115と、通信路スケジューラ252とを有する。さらに、通信路スケジューラ252は、通信情報部254と、通信制御部253とを有する。
 まず、ホストプロセッサ101は、ステップS101における第5指示110、または、ステップS105における第7指示112に応じて、通信路スケジューラ252に通信リソースを確保する命令を送信する。
 次に、通信路スケジューラ252は、ホストプロセッサ101から通信リソースを確保する命令を受信する(ステップS201)。次に、通信路スケジューラ252における通信制御部253は、通信路105が遊休した(あるいは、「休眠した」、「アイドル」、「待機した」等とも表す)状態にある通信路を有するか否かを調べる。ここで、「遊休した状態」とは、タスク等に対象である装置が割り当てられていない状態を表す。
 たとえば、通信制御部253は、タスクが使用する通信路数の総計を表す通信路利用数に基づいて、通信路105が遊休した状態にある通信路を有するか否かを調べる。この場合に、通信制御部253は、受信した命令に応じて、通信路利用数に1を加え、算出した値と、そもそも通信路105が有する通信路数とを比較する(ステップS202)。
 通信制御部253は、算出した通信路利用数が、通信路105が有する通信路数以下である場合(ステップS202にてYESと判定)に、通信路利用数を算出した値に更新する(ステップS203)。
 その後、通信路スケジューラ252は、受信した命令に応じて、遊休した状態にある通信路から通信リソースを確保する(ステップS204)。
 通信制御部253は、算出した通信路利用数が、通信路105が有する通信路数よりも大きな値である場合に(ステップS202にてNOと判定)、タスク識別子を、通信情報部254に保存する(ステップS205)。すなわち、通信制御部253は、図28に示すように、受け取った命令を起動する第5指示110または第7指示112を行ったタスク106に関連付けされたタスク識別子を、通信情報部254に保存する(ステップS205)。ここで、タスク識別子は、タスクを一意に識別可能な識別子である。図28は、通信情報部254が記憶可能なタスク識別子の一例を概念的に表す図である。
 たとえば、通信情報部254は、タスク識別子「1」、タスク識別子「3」、タスク識別子「4」、及び、タスク識別子「2」を記憶する。この場合に、タスク識別子「1」、タスク識別子「3」、タスク識別子「4」、及び、タスク識別子「2」のタスクに対して、通信路スケジューラ252は、ステップS205における処理において、通信リソースを確保していない。
 次に、ホストプロセッサ101が、ステップS103における第6指示111、または、ステップS107における第8指示113に応じて、通信路スケジューラ252に、確保した通信リソースを解放するように命令する場合における処理について説明する。
 まず、ホストプロセッサ101は、タスク106から、第6指示111または第8指示113を受信する。次に、ホストプロセッサ101は、受信した第6指示111または第8指示113に応じて、通信路スケジューラ252に、確保した通信リソースを解放する命令を送信する。次に、通信路スケジューラ252は、ホストプロセッサ101から確保した通信リソースを解放する命令を受信する(ステップS211)。
 次に、通信路スケジューラ252における通信制御部253は、通信情報部254がタスク識別子を記憶するか否かを判定する(ステップS212)。通信制御部253は、通信情報部254がタスク識別子を記憶すると判定する場合(ステップS212にてYESと判定)に、通信情報部254から特定のタスク識別子を読み取る(ステップS213)。次に、通信制御部253は、読み取ったタスク識別子のタスクに対して、図26のステップS202乃至ステップS205に示すように、通信を制御する(ステップS214)。
 次に、通信路スケジューラ252は、通信路利用数から1を引き、通信路利用数を算出した値に設定する(ステップS215)。これとともに、通信路スケジューラ252は、通信リソースを解放する命令に応じて、確保していた通信リソースを解放する(ステップS216)。通信路スケジューラ252は、ステップS216をステップS215よりも先に処理してもよい。
 また、上述した例において通信路利用数を用いて実装した機能を、遊休した状態にある通信路数等、同様の値にて実装することもできる。
 さらに、通信情報部254は、タスク識別子を記憶可能なキュー構造を有してもよい。すなわち、通信情報部254は、タスク識別子を受信する時刻の順に記憶し、受信した時刻の順に記憶しているタスク識別子を出力することが可能なデータ構造を有していてもよい。この場合に、通信制御部253は、通信リソースを確保する命令を受け取った時刻順に、ステップS212以降に示す処理を実施する。
 第9の実施形態は、第8の実施形態と同様の構成を含むので、第9の実施形態は、第8の実施形態と同様の効果を享受することができる。すなわち、第9の実施形態に係るスケジュールシステム251によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 さらに、通信路スケジューラ252は、通信路105を確保する命令に対して通信リソースを割り当てることができないタスク106に対して、他のタスクに対する通信リソースを解放する処理に応じて、通信リソースを割り当てる。このため、本実施形態によれば、さらに効率的に通信リソースを割り当てることが可能になる。その結果、アクセラレータメモリ104と主メモリ103との間において、より効率的にアクセスすることができる。すなわち、第9の実施形態に係るスケジュールシステム251によれば、さらに、処理性能の劣化を低減することができる。
 尚、上述した例において、通信路スケジューラ252は、通信路利用数を用いて通信路105における通信リソースを管理するが、通信路105において利用される通信帯域を計測する通信路計測機能により、通信リソースを管理してもよい。
 この例の場合に、通信路スケジューラ252は、通信路計測機能が計測した通信帯域と、通信路105において利用可能な通信帯域とを比較する。通信路スケジューラ252は、計測した通信帯域が利用可能な通信帯域よりも小さな場合に、通信路105を確保する要求に応じて、通信リソースを確保する(図26におけるステップS203)。一方、通信路スケジューラ252は、計測した通信帯域が利用可能な通信帯域よりも大きな場合に、通信路105を要求したタスク106のタスク識別子を通信情報部254に格納する(図26におけるステップS205)。
 <第10の実施形態>
 次に、上述した第9の実施形態を基本とする第10の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第9の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図29乃至図31を参照しながら、本発明の第10の実施形態に係るスケジュールシステム301が有する構成と、スケジュールシステム301が行う処理とについて説明する。図29は、本発明の第10の実施形態に係るスケジュールシステム301の構成を示すブロック図である。図30は、第10の実施形態に係る優先順位設定部303における処理の流れを示すフローチャートである。図31は、第10の実施形態に係る通信制御部305における処理の流れを示すフローチャートである。
 システム306は、サーバ100と、スケジュールシステム301とを有する。
 スケジュールシステム301は、スケジューラ115と、通信路スケジューラ302とを有する。通信路スケジューラ302は、通信制御部305と、通信情報部304と、優先順位設定部303とを有する。
 通信情報部304は、図32に示すように、タスク識別子と、該タスク識別子に関連付けされたタスク106を処理する順序を表す優先順位とを関連付けて記憶することができる。図32は、第10の実施形態に係る通信情報部304が記憶可能な情報を概念的に表す図である。たとえば、通信情報部304は、さらに、該タスク106から通信リソースを受信する時刻、該タスク106から受信する指示の種類(たとえば、第5指示110、または、第7指示112等を表す)に関連付けて記憶することもできる。さらに、通信情報部304は、通信リソースを介して送受信するデータのサイズ等に関連付けて記憶することもできる。
 たとえば、図32の1行目(以降、「第1データ」と表す)は、タスク識別子「1」のタスクが、時刻「10」において、第5指示110により、2048キロバイト(以降「KB」と表す)のデータを送受信するために、通信リソースを要求することを表す。同様に、図32の2行目は(以降、「第2データ」と表す)、タスク識別子「3」のタスクが、時刻「20」において、第7指示112により、100KBのデータを送受信するために、通信リソースを要求することを表す。
 第1データ及び第2データは、それぞれ、優先順位「1」及び優先順位「2」に関連付けされている。第1データの優先順位が、第2データの優先順位よりも小さいため、通信制御部305は、第2データよりも第1データを先に処理する。
 優先順位設定部303は、通信情報部304が記憶するデータが更新されるか否かを判定する(ステップS261)。たとえば、通信制御部305が、第5指示110または第7指示112に応じて通信情報部304における値を更新する場合に、優先順位設定部303は、通信情報部304が記憶するデータが更新されたと判定する。
 通信制御部305は、通信情報部304が記憶するデータが更新されたと判定する場合(ステップS261にてYESと判定)に、タスク106における指示の種類等に応じて、タスク106に、上述した優先順位を算出する(ステップS262)。この場合に、通信制御部305は、所定の優先順位算出方法に従い、優先順位を算出する。また、通信制御部305は、通信情報部304が記憶するデータが更新されていないと判定する場合(ステップS261にてNOと判定)に、上述した処理を実施しない。
 たとえば、所定の優先順位算出方法として、指示種類が「7」であるタスクよりも、指示種類が「5」であるタスクに対して、高い優先順位を割り当てる方法がある。この場合に、通信制御部305は、指示種類が「5」であるタスクを、指示種類が「7」であるよりも優先して処理する。この場合、指示種類「7」は、第7指示を表す。同様に、指示種類「5」は、第5指示を表す。
 通信制御部305は、第6指示111または第8指示113に応じて、確保していた通信リソースを解放する命令をホストプロセッサ101から受信する(ステップS211)。次に、通信制御部305は、通信情報部304がタスク識別子を記憶するか否かを読み取る(ステップS212)。通信制御部305は、通信情報部304がタスク識別子を記憶していないと判定する場合(ステップS212にてNOと判定)に、確保していた通信リソースを解放する(ステップS216)。
 たとえば、上述した例のように、通信路利用数により通信路105における通信リソースが管理されている場合に、通信制御部305は、通信路利用数から1を引いた値を算出し、通信路利用数を算出した値により更新してもよい(ステップS215)。
 一方、通信制御部305は、通信情報部304がタスク識別子を記憶していると判定する場合(ステップS212にてYESと判定)に、通信情報部304から高い優先順位に関連付けされたタスク識別子を読み取る(ステップS313)。たとえば、通信制御部305は、通信情報部304において、最も高い優先順位を有するタスク識別子を読み取ってもよい。次に、通信制御部305は、読み取ったタスク識別子に関連付けされたタスクに、図26に示すような、通信リソースを確保する等の処理を実行する(ステップS214)。その後、通信制御部305は、受信した命令に従い解放する対象である通信リソースを解放する(ステップS216)。
 上述した処理と同様に、通信制御部305は、通信路利用数から1を引いた値を算出し、通信路利用数を算出した値により更新してもよい(ステップS215)。
 所定の優先順位算出方法は、たとえば、図33乃至図36に示すような算出方法である。図33乃至図36は、第10の実施形態に係る所定の優先順位算出方法における処理の流れの一例を示すフローチャートである。
 たとえば、図33に示す例においては、通信情報部304が記憶するタスク識別子に対して、該タスク識別子に関連付けされた指示種類「5」のタスクに、指示種類「7」のタスクよりも高い優先順位を算出する(ステップS271)。この場合に、通信制御部305は、通信リソースを要求するタスクのうち、第7指示112により通信リソースを要求するタスクよりも優先して、第5指示110により通信リソースを要求するタスクに対して通信リソースを割り当てる。
 スケジュールシステム301は、第5指示110に応じて通信リソースを確保した後に、メニーコアアクセラレータ102に第2部分107の処理を割り当てる。一方、スケジュールシステム301は、メニーコアアクセラレータ102が第2部分107の処理を終了した後に、第7指示112に応じて通信リソースを確保する。スケジュールシステム301は、第7指示112を命じるタスク106よりも優先して第5指示110を命じるタスク106を処理する。これにより、メニーコアアクセラレータ102は、第2部分107に係るデータを、通信リソースを介して早期に送受信することができる。その結果、メニーコアアクセラレータ102において、処理効率は、第9の実施形態に比べ、さらに高くなる。
 たとえば、図34に示す所定の優先順位算出方法は、図33に示す算出方法(すなわち、ステップS271)に加え、同一の指示種類に関連付けされている場合に、通信リソースを要求する時刻が早い順に高い優先順位を算出する方法である。すなわち、該所定の優先順位算出方法は、指示種類「5」に関連付けされたタスク106において、時刻が早い順に高い優先順位を算出する(ステップS272)方法である。。さらに、該所定の優先順位算出方法は、指示種類「7」に関連付けされたタスク106において、時刻が早い順に高い優先順位を算出する(ステップS273)方法である。尚、ステップS273をステップS272よりも先に処理してもよい。
 図34に示す所定の優先順位算出方法において、通信リソースを要求する時刻が早い順に高い優先順位を割り当てる。これにより、該所定の優先順位算出方法においては、図33に示す該所定の優先順位算出方法が有する効果に加え、さらに、タスクを処理するのに要する平均的なターンアラウンドタイムを短縮することができる。
 さらに、たとえば、図35に示す所定の優先順位算出方法は、図34に示す所定の優先順位算出方法に加え、同一の時刻に関連付けされている場合に、以降の処理を行う方法である。すなわち、所定の優先順位算出方法は、アクセラレータメモリ104と主メモリ103との間において送受信するデータのサイズが小さいタスク106に、高い優先順位を算出する方法である。
 すなわち、該所定の優先順位算出方法は、指示種類「5」及び同一時刻に関連付けされたタスクにおいて、該データのサイズが小さいタスク106に高い優先順位を割り当てる(ステップS274)。さらに、該所定の優先順位算出方法は、指示種類「7」及び同一時刻に関連付けされたタスクにおいて、該データサイズが小さいタスクに高い優先順位を割り当てる(ステップS275)。ステップS271、ステップS273、ステップS275、ステップS272、及び、ステップS274の順に処理を行ってもよい。
 本実施形態によれば、タスク106が通信リソースの割り当てを待つ時間を短くすることができる。
 スケジュールシステム301が第1のタスクに通信リソースを割り当てる場合に、通信情報部304における第2のタスクは、通信リソースが解放されるのを待つ。アクセラレータメモリ104と主メモリ103との間において送受信するデータのサイズが大きいほど、該データの送受信に要する時間は長くなるため、タスクが通信リソースの割り当てを待つ時間は長くなる。本実施形態によれば、データのサイズが小さいタスクに高い優先順位を算出するため、上述した待ち時間は短い。
 また、たとえば、図36における所定の優先順位算出方法は、以下に示す方法である。該方法によれば、たとえば、アクセラレータメモリ104における遊休した状態にある記憶領域がある場合(ステップS281にてYESと判定)に、優先順位を割り当てる(ステップS282)。この場合に、所定の優先順位算出方法は、第7指示112に関連付けされたタスクよりも、第5指示110に関連付けされたタスクに高い優先順位を割り当てる方法である。
 また、該方法によれば、アクセラレータメモリ104における遊休した状態にある記憶領域がない場合(ステップS281にてNOと判定)に、優先順位を割り当てる(ステップS283)。この場合に、所定の優先順位算出方法は、第5指示110に関連付けされたタスクよりも、第7指示112に関連付けされたタスクに高い優先順位を割り当てる方法である。
 アクセラレータメモリ104に遊休した状態にある記憶領域がない場合に、スケジュールシステム301は、第5指示110に応じて通信リソースを割り当てることができる。しかし、ホストプロセッサ101は、第2部分107における処理に必要なデータをアクセラレータメモリ104に送信することができない。この場合、スケジュールシステム301は、アクセラレータメモリ104に遊休した状態にある記憶領域を作成し、該遊休した状態にある記憶領域に必要なデータを送信する。これにより、メニーコアアクセラレータ102は、第2部分107における処理を開始する。
 すなわち、通信路スケジューラ302は、アクセラレータメモリ104に遊休した状態にある記憶領域がない場合に、第7指示112に関連付けされたタスク106に高い優先順位を割り当てる。これにより、通信路スケジューラ302は、先に、アクセラレータメモリ104に遊休した状態にある記憶領域を作成する。ホストプロセッサ101は、主メモリ103から該遊休した状態にある記憶領域に参照するデータを送信する。その後、メニーコアアクセラレータ102は、該データに基づいて第2部分107における処理を行う。
 すなわち、本実施形態に係る通信路スケジューラ302は、アクセラレータメモリ104の利用状況に応じて通信リソースを割り当てる。したがって、通信路スケジューラ302は、アクセラレータメモリ104内に、タスクが処理するデータを記憶する十分な記憶領域が存在しないにもかかわらず、該データを送信する通信リソースを、該タスクに割り当ててしまう可能性を低減する。すなわち、本実施形態に係る通信路スケジューラ302によれば、タスク106が処理するデータをアクセラレータメモリ104が記憶できないために、メニーコアアクセラレータ102における処理が停止する可能性を低減することができる。
 さらに、第10の実施形態は、第9の実施形態と同様の構成を含むので、第10の実施形態は、第9の実施形態と同様の効果を享受することができる。すなわち、第10の実施形態に係るスケジュールシステム301によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 <第11の実施形態>
 次に、上述した第4の実施形態を基本とする第11の実施形態について説明する。
 以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第4の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
 図37と図38とを参照しながら、本発明の第11の実施形態に係るスケジュールシステム3004が有する構成と、スケジュールシステム3004が行う処理とについて説明する。図37は、本発明の第11の実施形態に係るスケジュールシステム3004の構成を示すブロック図である。図38は、第11の実施形態に係るスケジュールシステム3004における処理の流れを示すシーケンス図である。
 システム3006は、サーバ100と、スケジュールシステム3004とを有する。
 スケジュールシステム3004は、スケジューラ3005を有する。
 まず、スケジューラ3005は、メニーコアアクセラレータ102が有するリソースを確保する第1指示3002と、通信路105が有する通信リソースを確保する第5指示3003とを含むタスク3001に基づいて、サーバ100を制御する。
 ホストプロセッサ101は、タスク3001における第5指示3003に応じて、スケジューラ3005に、第5指示3003に指示された量を通信可能な通信リソースを確保する要求を送信する(ステップS3201)。
 次に、スケジューラ3005は、該要求を受信するのに応じて、通信路105において、遊休した状態にある通信リソースがあるか否かを判定する(ステップS3202)。スケジューラ3005は、通信路105から第5指示に指示された量を通信可能な通信リソースを割り当て可能であると判定する(ステップS3202にてYESと判定)場合に、該通信リソースを確保する(ステップS3203)。
 次に、ホストプロセッサ101は、主メモリ103からタスク3001にて処理するデータを読み取り、読み取ったデータをメニーコアアクセラレータ102に送信する(ステップS3204)。次に、メニーコアアクセラレータ102は、該データを受信し、受信したデータをアクセラレータメモリ104に格納する(ステップS3205)。
 次に、ホストプロセッサ101は、第1指示3002に応じて、スケジューラ3005に対し、メニーコアアクセラレータ102から、タスク3001を処理するリソースを確保する要求を送信する(ステップS3206)。
 スケジューラ3005は、該要求を受信し、メニーコアアクセラレータ102において、第1指示3002に応じたリソースを確保可能であるか否かを判定する(ステップS3207)。スケジューラ3005は、メニーコアアクセラレータ102が、タスク3001を処理することが可能な遊休した状態にあるリソースを有すると判定する(ステップS3207にてYESと判定)場合に、特定のリソースを確保する(ステップS3208)。
 次に、特定のリソースは、アクセラレータメモリ104における受信したデータに基づいて、タスク3001に関する処理を行う(ステップS3209)。
 第11の実施形態は、第4の実施形態と同様の構成を含むので、第11の実施形態は、第4の実施形態と同様の効果を享受することができる。すなわち、第11の実施形態に係るスケジュールシステム3004によれば、リソースが有する処理性能を、より効率良く発揮することができる。
 さらに、スケジュールシステム3004は、タスク3001に関する第1データを送信する通信路リソースを、通信路105から確保する。スケジューラ3005が通信リソースを確保する場合に、ホストプロセッサは、主メモリ103における第1データを、アクセラレータメモリ104に、遅延することなく格納することができる。その結果、スケジューラ3005が特定のリソースを確保したにもかかわらず、特定のリソースが、第1データの遅延により、タスク3001に関する処理を実施できない状況が生じない。
 すなわち、本実施形態に係るスケジュールシステム3004によれば、上述した効果に加え、より一層、リソースが有する処理性能を、効率よく発揮することができる。
 (ハードウェア構成例)
 上述した本発明の各実施形態におけるスケジュールシステムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係るスケジュールシステムは、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係るスケジュールシステムは、専用の装置として実現してもよい。
 図16は、第1の実施形態乃至第11の実施形態に係るスケジュールシステムを実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置31は、中央処理演算装置(Central Processing Unit、以降「CPU」と表す)32、メモリ33、ディスク34、不揮発性記録媒体35、入力装置36、および、出力装置37を有する。
 不揮発性記録媒体35は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc。登録商標)、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid State Drive)などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体35は、上述した媒体に限定されない。また、不揮発性記録媒体35の代わりに、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
 すなわち、CPU32は、ディスク34が記憶するソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ33にコピーし、演算処理を実行する。CPU32は、プログラム実行に必要なデータをメモリ33から読み取る。表示が必要な場合には、CPU32は、出力装置37に出力結果を表示する。外部からプログラムを入力する場合に、CPU32は、入力装置36からプログラムを読み取る。CPU32は、上述した図1、図3、図5、図7、図10、図12、図14、図22、図25、図29、あるいは、図37に示した各部が表す機能(処理)に対応するメモリ33にあるスケジュールプログラム(図2、図4、図6、図8、図9、図11、図13、図15、図23、図24、図26、図27、図30、図31、図33乃至図36、図38においてスケジュールシステムが行う処理)を解釈し実行する。CPU32は、上述した本発明の各実施形態において説明した処理を順次行う。
 すなわち、このような場合に、本発明は、係るスケジュールプログラムによっても成し得ると捉えることができる。更に、係るスケジュールプログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捉えることができる。
 尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
 (付記1)
 リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジューラを有する
 スケジュールシステム。
 (付記2)
 前記タスクに含まれるところの、前記プロセッサにて処理する第1部分と、前記第5指示と、前記メモリから前記アクセラレータメモリに、前記第2通信リソースを介して、前記第1データを送信する第3部分と、前記第2通信リソースを解放する第6指示と、前記リソースのうち前記タスクを処理するリソースを確保する第1指示と、前記タスクを処理するリソースにて処理する第2部分と、前記第1通信路から、前記アクセラレータメモリから前記メモリに送信する第2データを送受信可能な第3通信路を確保する第7指示と、前記アクセラレータメモリから前記メモリに、前記第3通信路を介して、前記第2データを送信する第4部分と、前記第3通信路を解放する第8指示と、前記タスクを処理するリソースを解放する第2指示とに基づき、
 前記スケジューラは、前記第5指示に応じて前記第2通信リソースを確保し、前記第6指示に応じて、前記第2通信リソースを解放し、前記第7指示に応じて、前記第3通信路を第3通信リソースとして確保し、前記第8指示に応じて、前記第3通信リソースを解放する通信路スケジューラを有するともに、
 前記プロセッサが行う前記第1部分の実行と、前記プロセッサが行う前記第3部分の実行との間において、前記第1指示に応じて、前記タスクを処理するリソースを特定のリソースとして確保するとともに、前記プロセッサが行う前記第4部分の実行の後に、前記第2指示に応じて、前記特定のリソースを解放し、
 前記プロセッサは、前記メモリから、前記第2通信リソースを介して、前記アクセラレータメモリに前記第1データを送信するとともに、前記アクセラレータメモリから、前記第3通信リソースを介して、前記メモリに前記第2データを送信し、
 前記特定のリソースは、前記第2部分に応じて、前記第1データにアクセスしつつ前記タスクを処理することにより、前記第2データを作成する
 付記1に記載のスケジュールシステム。
 (付記3)
 前記通信路スケジューラは、
 前記第5指示または前記第7指示に応じて、前記第1通信路のうち遊休した状態にある通信路から第4通信リソースを確保し、前記第1通信路のうち前記遊休した状態にある通信路を有さない場合に、前記第4通信リソースを確保しない
 付記2に記載のスケジュールシステム。
 (付記4)
 前記タスクは、タスクを識別するタスク識別子と関連付けされており、
 前記通信路スケジューラは、
 前記タスク識別子を記憶可能な通信情報手段と、
  前記第5指示または前記第7指示を実行する前記タスクに対して、前記第4通信リソースを確保できない場合に、前記タスクに関連付けされた前記タスク識別子を前記通信情報手段に保存し、前記第4通信リソースを確保可能な場合に、前記遊休した状態にある前記第1通信路から前第4記通信リソースを確保する通信制御処理を行うとともに、
  前記第6指示または前記第8指示に応じて、前記第4通信リソースを解放し、その後、前記通信情報手段から前記タスク識別子を読み取り、読み取ったタスク識別子に関連付けされた前記タスクに対して、前記通信制御処理を行う通信制御手段と
 を有する
 付記3に記載のスケジュールシステム。
 (付記5)
 前記通信情報手段におけるタスク識別子に関連付けされたタスクを処理する優先順位を、前記タスクが実行する指示の種類に応じて、所定の優先順位算出方法に従い、算出する優先順位設定手段を有し、
 前記通信制御手段は、前記優先順位に基づいて、前記通信情報手段から前記タスク識別子を読み取る
 付記4に記載のスケジュールシステム。
 (付記6)
 前記所定の優先順位算出方法は、前記指示の種類が前記第5指示であるタスクに対し、前記指示の種類が前記第7指示であるタスクよりも高い前記優先順位を算出する方法である
 付記5に記載のスケジュールシステム。
 (付記7)
 前記所定の優先順位算出方法は、前記指示の種類が前記第5指示であるタスクにおいて、先に前記第5指示を実行するタスクに高い前記優先順位を算出する方法である
 付記5に記載のスケジュールシステム。
 (付記8)
 前記所定の優先順位算出方法は、前記指示の種類が前記第7指示であるタスクにおいて、先に前記第7指示を実行するタスクに高い前記優先順位を算出する方法である
 付記7に記載のスケジュールシステム。
 (付記9)
 前記所定の優先順位算出方法は、前記指示の種類が前記第5指示または前記第7指示であるタスクにおいて、前記通信路を介して送信するデータ量が少ないタスクに高い前記優先順位を算出する方法である
 付記5に記載のスケジュールシステム。
 (付記10)
 前記所定の優先順位算出方法は、前記アクセラレータメモリにおいて前記データを記憶可能な遊休した状態にある記憶領域が存在すると判定する場合に、前記指示の種類が前記第5指示であるタスクに、前記指示の種類が前記第7指示であるタスクよりも高い優先順位を算出し、前記記憶領域が存在しないと判定する場合に、前記指示の種類が前記第7指示であるタスクに、前記指示の種類が前記第5指示であるタスクよりも高い前記優先順位を算出する方法である
 付記5に記載のスケジュールシステム。
 (付記11)
 付記1乃至付記10のいずれかに記載のスケジュールシステムを含むオペレーティングシステム。
 (付記12)
 リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定する
 スケジュール方法。
 (付記13)
 リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジュール機能を
 コンピュータに実現させるスケジュールプログラムを格納する記録媒体。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2013年5月24日に出願された日本出願特願2013-109843を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  スケジュールシステム
 2  スケジューラ
 3  サーバ
 4  ホストプロセッサ
 5  メニーコアアクセラレータ
 6  タスク
 7  スケジュールシステム
 8  スケジューラ
 9  管理部
 10  スケジュールシステム
 11  スケジューラ
 12  タスク
 13  スケジュールシステム
 14  スケジューラ
 15  タスク
 16  サーバ
 17  メニーコアアクセラレータ
 18  ホストプロセッサ
 19  主メモリ
 20  アクセラレータメモリ
 21  スケジュールシステム
 22  スケジューラ
 23  タスク
 24  スケジュールシステム
 25  スケジューラ
 26  第2タスクスケジューラ
 27  スケジュールシステム
 28  スケジューラ
 29  管理部
 30  第2タスクスケジューラ
 31  計算処理装置
 32  CPU
 33  メモリ
 34  ディスク
 35  不揮発性記録媒体
 36  入力装置
 37  出力装置
 38  システム
 39  システム
 40  サーバ
 41  プロセッサ
 42  プロセッサ
 43  プロセッサ
 44  プロセッサ
 45  タスクスケジューラ
 46  サーバリソース管理部
 47  サーバ
 48  ホストプロセッサ
 49  メニーコアアクセラレータ
 50  主メモリ
 51  アクセラレータメモリ
 52  タスクスケジューラ
 53  サーバリソース管理部
 54  システム
 55  システム
 56  システム
 57  システム
 58  システム
 59  システム
 60  システム
 100  サーバ
 101  ホストプロセッサ
 102  メニーコアアクセラレータ
 103  主メモリ
 104  アクセラレータメモリ
 105  通信路
 106  タスク
 107  第2部分
 108  第3部分
 109  第4部分
 110  第5指示
 111  第6指示
 112  第7指示
 113  第8指示
 117  システム
 201  第1指示
 202  第2指示
 114  スケジュールシステム
 115  スケジューラ
 116  通信路スケジューラ
 117  システム
 251  スケジュールシステム
 252  通信路スケジューラ
 253  通信制御部
 254  通信情報部
 255  システム
 301  スケジュールシステム
 302  通信路スケジューラ
 303  優先順位設定部
 304  通信情報部
 305  通信制御部
 306  システム
 3001  タスク
 3002  第1指示
 3003  第5指示
 3004  スケジュールシステム
 3005  スケジューラ
 3006  システム

Claims (10)

  1.  リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジューラを有する
     スケジュールシステム。
  2.  前記タスクに含まれるところの、前記プロセッサにて処理する第1部分と、前記第5指示と、前記メモリから前記アクセラレータメモリに、前記第2通信リソースを介して、前記第1データを送信する第3部分と、前記第2通信リソースを解放する第6指示と、前記リソースのうち前記タスクを処理するリソースを確保する第1指示と、前記タスクを処理するリソースにて処理する第2部分と、前記第1通信路から、前記アクセラレータメモリから前記メモリに送信する第2データを送受信可能な第3通信路を確保する第7指示と、前記アクセラレータメモリから前記メモリに、前記第3通信路を介して、前記第2データを送信する第4部分と、前記第3通信路を解放する第8指示と、前記タスクを処理するリソースを解放する第2指示とに基づき、
     前記スケジューラは、前記第5指示に応じて前記第2通信リソースを確保し、前記第6指示に応じて、前記第2通信リソースを解放し、前記第7指示に応じて、前記第3通信路を第3通信リソースとして確保し、前記第8指示に応じて、前記第3通信リソースを解放する通信路スケジューラを有するともに、
     前記プロセッサが行う前記第1部分の実行と、前記プロセッサが行う前記第3部分の実行との間において、前記第1指示に応じて、前記タスクを処理するリソースを特定のリソースとして確保するとともに、前記プロセッサが行う前記第4部分の実行の後に、前記第2指示に応じて、前記特定のリソースを解放し、
     前記プロセッサは、前記メモリから、前記第2通信リソースを介して、前記アクセラレータメモリに前記第1データを送信するとともに、前記アクセラレータメモリから、前記第3通信リソースを介して、前記メモリに前記第2データを送信し、
     前記特定のリソースは、前記第2部分に応じて、前記第1データにアクセスしつつ前記タスクを処理することにより、前記第2データを作成する
     請求項1に記載のスケジュールシステム。
  3.  前記通信路スケジューラは、
     前記第5指示または前記第7指示に応じて、前記第1通信路のうち遊休した状態にある通信路から第4通信リソースを確保し、前記第1通信路のうち前記遊休した状態にある通信路を有さない場合に、前記第4通信リソースを確保しない
     請求項2に記載のスケジュールシステム。
  4.  前記タスクは、タスクを識別するタスク識別子と関連付けされており、
     前記通信路スケジューラは、
     前記タスク識別子を記憶可能な通信情報手段と、
      前記第5指示または前記第7指示を実行する前記タスクに対して、前記第4通信リソースを確保できない場合に、前記タスクに関連付けされた前記タスク識別子を前記通信情報手段に保存し、前記第4通信リソースを確保可能な場合に、前記遊休した状態にある前記第1通信路から前第4記通信リソースを確保する通信制御処理を行うとともに、
      前記第6指示または前記第8指示に応じて、前記第4通信リソースを解放し、その後、前記通信情報手段から前記タスク識別子を読み取り、読み取ったタスク識別子に関連付けされた前記タスクに対して、前記通信制御処理を行う通信制御手段と
     を有する
     請求項3に記載のスケジュールシステム。
  5.  前記通信情報手段におけるタスク識別子に関連付けされたタスクを処理する優先順位を、前記タスクが実行する指示の種類に応じて、所定の優先順位算出方法に従い、算出する優先順位設定手段を有し、
     前記通信制御手段は、前記優先順位に基づいて、前記通信情報手段から前記タスク識別子を読み取る
     請求項4に記載のスケジュールシステム。
  6.  前記所定の優先順位算出方法は、前記指示の種類が前記第5指示であるタスクに対し、前記指示の種類が前記第7指示であるタスクよりも高い前記優先順位を算出する方法である
     請求項5に記載のスケジュールシステム。
  7.  前記所定の優先順位算出方法は、前記指示の種類が前記第5指示であるタスクにおいて、先に前記第5指示を実行するタスクに高い前記優先順位を算出する方法である
     請求項5に記載のスケジュールシステム。
  8.  前記所定の優先順位算出方法は、前記指示の種類が前記第7指示であるタスクにおいて、先に前記第7指示を実行するタスクに高い前記優先順位を算出する方法である
     請求項7に記載のスケジュールシステム。
  9.  リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジュール方法。
  10.  リソースであるメニーコアアクセラレータと、前記メニーコアアクセラレータがアクセスするアクセラレータメモリと、前記リソースを制御するプロセッサと、前記プロセッサがアクセスするメモリと、前記メニーコアアクセラレータと前記プロセッサとの間においてデータを送受信可能な第1通信路とを有する計算処理装置にて処理するタスクに含まれるところの、前記タスクが処理する第1データを前記メモリと前記アクセラレータメモリとの間において送受信可能な第2通信路を前記第1通信路から確保する第5指示に応じて、前記第2通信路を第2通信リソースとして確保し、前記リソースを確保する第1指示に応じて、前記第2通信リソースを介して送受信された前記第1データに基づき前記タスクを処理する特定のリソースを決定するスケジュール機能を
     コンピュータに実現させるスケジュールプログラムを格納する記録媒体。
PCT/JP2014/001558 2012-09-20 2014-03-18 スケジュールシステム、スケジュール方法、及び、記録媒体 Ceased WO2014188643A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/787,830 US20160077882A1 (en) 2012-09-20 2014-03-18 Scheduling system, scheduling method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013109843A JP2014078215A (ja) 2012-09-20 2013-05-24 スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP2013-109843 2013-05-24

Publications (1)

Publication Number Publication Date
WO2014188643A1 true WO2014188643A1 (ja) 2014-11-27

Family

ID=51939002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/001558 Ceased WO2014188643A1 (ja) 2012-09-20 2014-03-18 スケジュールシステム、スケジュール方法、及び、記録媒体

Country Status (1)

Country Link
WO (1) WO2014188643A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119098A1 (ja) * 2016-01-07 2017-07-13 株式会社日立製作所 計算機システム及び計算機の制御方法
CN109426566A (zh) * 2017-08-22 2019-03-05 英特尔公司 使用开关来连接加速器资源
CN111459645A (zh) * 2020-04-22 2020-07-28 百度在线网络技术(北京)有限公司 一种任务调度方法、装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249910A (ja) * 1998-02-27 1999-09-17 Hitachi Ltd 記憶サブシステム及びデータ転送制御方法
JP2005018620A (ja) * 2003-06-27 2005-01-20 Toshiba Corp 情報処理システムおよびメモリ管理方法
JP2005309534A (ja) * 2004-04-16 2005-11-04 Sony Corp 画像表示装置
JP2007220064A (ja) * 2006-01-17 2007-08-30 Hitachi Ltd 制御装置および情報システムの制御方法
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
JP2012164050A (ja) * 2011-02-04 2012-08-30 Canon Inc 情報処理装置、タスク管理方法、及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249910A (ja) * 1998-02-27 1999-09-17 Hitachi Ltd 記憶サブシステム及びデータ転送制御方法
JP2005018620A (ja) * 2003-06-27 2005-01-20 Toshiba Corp 情報処理システムおよびメモリ管理方法
JP2005309534A (ja) * 2004-04-16 2005-11-04 Sony Corp 画像表示装置
JP2007220064A (ja) * 2006-01-17 2007-08-30 Hitachi Ltd 制御装置および情報システムの制御方法
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
JP2012164050A (ja) * 2011-02-04 2012-08-30 Canon Inc 情報処理装置、タスク管理方法、及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119098A1 (ja) * 2016-01-07 2017-07-13 株式会社日立製作所 計算機システム及び計算機の制御方法
JPWO2017119098A1 (ja) * 2016-01-07 2018-11-08 株式会社日立製作所 計算機システム及び計算機の制御方法
CN109426566A (zh) * 2017-08-22 2019-03-05 英特尔公司 使用开关来连接加速器资源
CN111459645A (zh) * 2020-04-22 2020-07-28 百度在线网络技术(北京)有限公司 一种任务调度方法、装置和电子设备
CN111459645B (zh) * 2020-04-22 2023-06-30 百度在线网络技术(北京)有限公司 一种任务调度方法、装置和电子设备

Similar Documents

Publication Publication Date Title
US9135060B2 (en) Method and apparatus for migrating task in multicore platform
US9933951B2 (en) Reducing read latency using a pool of processing cores
US9442763B2 (en) Resource allocation method and resource management platform
JP5972363B2 (ja) デュアル動作システムに対する複数のリソースのためのリソース割り当て
US8429666B2 (en) Computing platform with resource constraint negotiation
US20140250440A1 (en) System and method for managing storage input/output for a compute environment
CN120144326B (zh) 一种数据处理系统、方法、设备、介质及程序产品
WO2020162211A1 (ja) 制御装置、制御方法及びプログラム
JP2014078215A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
US8726039B2 (en) Reducing decryption latency for encryption processing
CN114036078A (zh) 用于管理存储系统中的缓存设备的方法和系统
JP6007516B2 (ja) リソース配分システム、リソース配分方法、及びリソース配分プログラム
CN111352735A (zh) 数据加速方法、装置、存储介质及设备
WO2014188643A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
JP2015143943A (ja) 情報処理装置、制御方法、および制御プログラム
JP2012059152A (ja) データ処理を行うシステムおよびメモリを割り当てる方法
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
CN119806840A (zh) 一种资源调控方法和装置
CN120295766A (zh) 一种缓存资源的请求方法、装置、设备和介质
CN117707796B (zh) 资源管理方法、装置、电子设备以及存储介质
US11061733B2 (en) Shared and exclusive accelerator access
US20170083258A1 (en) Information processing device, information processing system, memory management method, and program recording medium
WO2015052823A1 (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: 14801167

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14787830

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14801167

Country of ref document: EP

Kind code of ref document: A1