The present invention relates to a scheduling system, etc. that perform scheduling.
A space division method is a scheduling method used in a multiprocessor system when a plurality of independent tasks is processed. Referring to
Referring to
The task scheduler 45 receives a task to be executed as an input. Then, the task scheduler 45 reserves, by referencing the number of processors required for executing the received task and information about usage status of a plurality of processors (the processors 41 to 44) held by the server resource management unit 46, a processor (or processors) required for the execution. Then, the task scheduler 45 updates information held by the server resource management unit 46 and puts the task to the server 40. The task scheduler 45 updates the information held by the server resource management unit 46 after detecting completion of task execution by the server 40. The task scheduler 45 releases the processor reserved for processing the task.
The task scheduler 45 uses the processors (the processors 41 to 44) included in the server 40 for processing a plurality of tasks in accordance with the aforementioned operation. Thus, processing performance in the server 40 improves.
On the other hand, as illustrated in
Referring to
Referring to
Referring to
Referring to
A program execution control method disclosed in PTL 1 represents a method for power-saving control in a system including different types of processors. In other words, the program execution control method is a control method for performance improvement. In accordance with the execution control method, a clock frequency is changed so that respective processors complete split tasks simultaneously.
A data processing apparatus disclosed in PTL 2 reduces overhead required for saving and restoration, depending on progress status of the interrupted process when interrupting a process in data processing to give priority to another process.
In a data processing apparatus disclosed by PTL 3, software executed on a processor and hardware dedicated to a specific process are carried out in order of priority. The data processing apparatus enhances processing efficiency related to task switching.
[PTL 1] Japanese Laid-open Patent Application No. 2011-197803
[PTL 2] Japanese Laid-open Patent Application No. 2010-181989
[PTL 3] Japanese Laid-open Patent Application No. 2007-102399
Referring to
A task scheduler 52 allocates a task to a resource by managing a resource in the many-core accelerator 49 when putting a task to the server 47. The task scheduler 52 releases the allocated resource when completing the task. In
Further, the task scheduler 52 reserves a maximum resource for processing the series of tasks on task activation even if a resource of the many-core accelerator 49 required for processing a series of tasks changes. Therefore, when a specific task using just part of a resource is processed in the series of tasks, there is a redundant resource that does not perform a process in Step S45.
A problem that, as described above, there is a redundant resource that does not perform a specific process when a series of tasks are processed is referred to as an unused resource problem.
On the other hand, there exists a method in which, in order to avoid the aforementioned unused resource problem, the task scheduler 52 recognizes that the many-core accelerator 49 holds a more resource than the actual resource. However, as a result of avoiding the unused resource problem by such a method as described above, a resource of the many-core accelerator 49 becomes insufficient for actually processing a task. Therefore, the many-core accelerator 49 fails to process the task, or task processing becomes an excessively heavy load in the many-core accelerator 49. Consequently, processing performance possessed by a system 55 degrades.
In other words, a task scheduler 52 that adopts such a processing method as described above is not able to avoid the unused resource problem. Therefore, the many-core accelerator 49 degrades processing performance or fails task processing.
A main objective of the present invention is to provide a scheduling system, etc. more efficiently enabling processing performance possessed by a resource to be exhibited.
In order to achieve the object mentioned above, a scheduling system includes the following configuration.
In other word, a scheduling system including:
a scheduler configured to determine a specific resource that processes a task in accordance with a first instruction to be included in the task processed by a calculation processing apparatus, which includes a many-core accelerator being resource and a processor controlling the resource, and to reserve the resource.
Also, as another aspect of the present invention, a scheduling method includes:
determining a specific resource that processes a task in accordance with a first instruction to be included in the task processed by a calculation processing apparatus, which includes a many-core accelerator being resource and a processor controlling the resource, and reserving the resource.
A scheduling system, etc. according to the present invention is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, exemplary embodiments of the present invention will be described in detail with reference to drawings.
A configuration included in a scheduling system 1 according to a first exemplary embodiment of the present invention and processes performed by the scheduling system 1 will be described in detail referring to
Referring to
The host processor 4 performs processing such as control related to the many-core accelerator 5. First, the host processor 4 starts processing of the task 6. The host processor 4 reads an instruction (also referred to as command; hereinafter an instruction for reserving a resource is also referred to as “first instruction”) to reserve a resource (many-core accelerator 5) from the task 6. Then, the host processor 4 transmits a command for reserving a resource to the scheduling system 1 in accordance with the read first instruction (Step S1).
Next, the scheduler 2 checks whether or not a resource (hereinafter abbreviated as “resource reservation”) for the task 6 is allocatable when receiving the command (Step S2). The scheduler 2 reserves a resource (Step S3) when resource a resource is decided to be allocatable (YES in Step S2). The scheduler 2 checks again whether or not resource reservation is possible (Step S2) when resource is decided not to be allocatable (NO in Step S2), When the scheduler 2 decides that resource is allocatable (YES in Step S2), the many-core accelerator 5 executes the task 6 (Step S4).
When resource is decided not to be allocatable (NO in Step S2), the scheduler 2 waits for the resource to be released by performing the aforementioned process. Then, the scheduler 2 releases the reserved resource (Step S5).
The scheduling system 1 may be realized as, for example, a function in an operating system. The scheduling system 1 may also, for example, perform such a process as described above by transmitting/receiving a parameter, etc. related to a resource to/from an operating system.
As described in “BACKGROUND ART” a system described in PTL 1 to PTL 3 continues reserving a maximum resource that processes a series of tasks during a period between start and end of task processing. Therefore, when processing of a series of tasks uses only part of a resource, some part of the resource does not perform processing.
On the other hand, the scheduling system 1 according to the first exemplary embodiment reserves a resource in accordance with a request from a task, and then the reserved resource performs processing. The scheduling system 1 releases the resource by the host processor 4 commanding release of the resource. Even when the server 3 processes a series of tasks, the scheduling system 1 is able to allocate a resource for processing each task depending on task processing. Therefore, the scheduling system 1 according to the first exemplary embodiment is capable of, even when a series of tasks are processed, alleviating a situation in which only part of a resource performs processing.
In other words, the scheduling system 1 according to the first exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, a second exemplary embodiment based on the aforementioned first exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned first exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
Since the management unit 9 manages information about usage status of a resource, the scheduler 8 is able to decide whether or not a resource can be allocated without referencing the outside. Therefore, the scheduling system 7 according to the second exemplary embodiment provides efficient management of a resource. Further, since the second exemplary embodiment includes a similar configuration to the first exemplary embodiment, the second exemplary embodiment can enjoy the similar effect to the first exemplary embodiment.
In other words, the scheduling system 7 according to the second exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, a third exemplary embodiment based on the aforementioned first exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned first exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
A host processor 4 executes the first part to be processed by the host processor 4 in the task 12 (Step S7). Then, the host processor 4 transmits a command for reserving a resource to the scheduler 11 in accordance with a first instruction (Step S8). When a resource is decided to be allocatable (YES in Step S9), the scheduler 11 reserves a resource (Step S10). When a resource is decided not to be allocatable (NO in Step S9), the scheduler 11 decides again whether or not a resource is allocatable (Step S9).
Next, the resource (included in the many-core accelerator 5) reserved by the scheduler 11 executes the second part to be processed by the resource (Step S11). Then, the host processor 4 issues a command for releasing the resource to the scheduler 11 in response to receiving a command for releasing the resource reserved by the scheduler 11 (hereinafter this command is referred to as “second instruction”) (Step S12). The scheduler 11 releases the reserved resource (Step S13) in response to receiving the command.
The first instruction includes, for example, information about the number of processors, etc. While the scheduler 11 determines an amount of resource on the basis of the aforementioned number of processors, etc., the amount of resource does not necessarily need to be equivalent to the aforementioned value. Further, the scheduler 11 may transmit information about a reserved resource. The information about the reserved resource may include information about the number of reserved processors, a list of available processor numbers, etc.
The task 12 includes the first part processed by the host processor 4, the second part, and the first instruction that reserves a resource for execution of the second part. Therefore, the scheduler 11 reserves a required resource before processing of the second part, and releases the resource after the reserved resource completes processing of the second part. In other words, the scheduling system 10 according to the third exemplary embodiment provides more detailed resource management compared with a system disclosed in PTL 1 to 3.
In other words, the scheduling system 10 according to the third exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
While, for convenience of description, the third exemplary embodiment is based on the first exemplary embodiment in the aforementioned description, the third exemplary embodiment may also be based on the second exemplary embodiment. In that case, the third exemplary embodiment can enjoy the similar effect to the second exemplary embodiment.
Next, a fourth exemplary embodiment based on the aforementioned first exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned first exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
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 scheduling system 13 includes a scheduler 14. The task 15 includes, in addition to the aforementioned first part, first instruction, and second part, a third part that is an instruction for transmitting data from the main memory 19 to the accelerator memory 20 and a fourth part that is an instruction for transmitting data from the accelerator memory 20 to the main memory 19.
In accordance with the first instruction after executing the first part, the host processor 18 transmits a request for reserving a specific resource to the scheduling system 13 (Step S14). The scheduler 14 reserves a specific resource after receiving the request (Step S15). Step S15 is a collective expression including a series of processes in Steps S2 and S3 in
Next, the specific resource reserved by the scheduler 14 executes the second part (Step S17). Then, the host processor 18 transmits data processed by the specific resource from the accelerator memory 20 to the main memory 19 (Step S18). Then, the host processor 18 transmits a request for releasing the specific resource to the scheduling system 13 in accordance with the second instruction (Step S19). Then, the scheduler 14 releases the specific resource after receiving the request (Step S20).
In the fourth exemplary embodiment, the scheduler 14 may reserve the accelerator memory 20 in addition to a processing apparatus in the many-core accelerator 17. In this case, a specific many-core accelerator 17 refers a specific accelerator memory 20. Referring to
After executing the first part, the host processor 18 transmits a request for reserving a specific accelerator memory 20 to the scheduling system 13 in accordance with the first instruction (Step S30). The scheduler 14 reserves a specific accelerator memory in response to receiving the request (Step S31). Then, the host processor 18 transmits data processed by the many-core accelerator 17 from the main memory 19 to the specific accelerator memory (Step S16).
Next, the host processor 18 makes a request for reserving a specific resource to the scheduling system 13 (Step S14). The scheduler 14 reserves a specific resource after receiving the request (Step S15). Step S15 is a collective expression including a series of processes in Steps S2 and S3 in
Next, the specific resource reserved by the scheduler 14 executes the second part (Step S17). Then, the host processor 18 transmits a request for releasing the specific resource to the scheduling system 13 in accordance with the second instruction (Step S19). Then, the scheduler 14 releases the specific resource in response to receiving the request (Step S20). Then, the host processor 18 transmits data processed by the specific resource from the accelerator memory 20 to the main memory 19 (Step S18).
Next, the host processor 18 transmits a request for releasing the specific accelerator memory 20 to the scheduler 14 (Step S32). Then, the scheduler 14 releases the specific accelerator memory 20 in response to receiving the request (Step S33).
The scheduling system 13 according to the fourth exemplary embodiment is also capable of efficiently managing the accelerator memory 20 in the system 57. The system 57 includes a configuration where data processed by the many-core accelerator 17 is transmitted from the main memory 19 to the accelerator memory 20.
In other words, the scheduling system 13 according to the fourth exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
While, for convenience of description, the fourth exemplary embodiment is based on the first exemplary embodiment in the aforementioned description, the fourth exemplary embodiment may be based on the second exemplary embodiment or the third exemplary embodiment. In that case, the fourth exemplary embodiment can enjoy the similar effect to the second or third exemplary embodiment.
Next, a fifth exemplary embodiment based on the aforementioned third exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned third exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
When the scheduler 22 decides that a resource cannot be allocated (NO in Step S9), the host processor 4 executes the fifth part (Step S21). When the scheduler 22 decides that a resource can be allocated (YES in Step S9), the scheduler 22 reserves a specific resource (Step S10).
The scheduling system 21 according to the fifth exemplary embodiment allows the host processor 4 to perform processing instead of the many-core accelerator 5 depending on resource status in the many-core accelerator 5. In other words, the task 23 can be processed more efficiently with the scheduling system 21 according to the fifth exemplary embodiment.
In other words, the scheduling system 21 according to the fifth exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, a sixth exemplary embodiment based on the aforementioned first exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned first exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
The second task scheduler 26 transmits, for example, information related to a task such as the number of tasks in the task 6 to the scheduling system 24 (Step S23). Then, the scheduler 25 calculates an amount of resource on the basis of the received information (Step S24). For example, the scheduler 25 may calculate an amount of resource by dividing the number of logical processors included in the many-core accelerator 5 by the number of tasks put to the server 3 by the second task scheduler 26, or may calculate an amount of resource by multiplying the amount of the value calculated above by two. A method by which the scheduling system 24 calculates an amount of resource is not limited to the aforementioned example.
The scheduling system 24 receives information usable for resource allocation control from the second task scheduler 26. Thus, the scheduling system 24 is able to perform scheduling more efficiently and adjust a load to the many-core accelerator 5.
In other words, the scheduling system 24 according to the sixth exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, a seventh exemplary embodiment based on the aforementioned second exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned second exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
The scheduler 28 reads load information including a load value representing the load of a resource in the many-core accelerator 5 from the management unit 29 (Step S25). Then, the scheduler 28 compares a predetermined second threshold value with the read load value. When the read load value is decided to be less than the predetermined second threshold value, in other words, when the load status is decided to be low (YES in Step S26), the scheduler 28 transmits a signal requesting more tasks to be input to the second task scheduler 30 (Step S27). The scheduler 28 compares a predetermined first threshold value with the read load value. When the read load value is decided to be greater than the predetermined first threshold value, in other words, when the load status is decided to be high (NO in Step S26), the scheduler 28 transmits a signal requesting less tasks to be input to the second task scheduler 30 (Step S28).
Next, the second task scheduler 30 adjusts a task amount in accordance with the signal (Step S29).
Since the scheduling system 27 transmits a signal to the second task scheduler 30 regarding load information about a resource, the scheduling system 27 according to the seventh exemplary embodiment is able to adjust a load to the many-core accelerator 5 to an appropriate level.
In other words, the scheduling system 27 according to the seventh exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, an eighth exemplary embodiment based on the aforementioned fourth exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned fourth exemplary embodiment (mainly
Referring to
Referring to
The scheduling system 100 receives a request for reserving a resource (Step S14 in
First, the scheduler 102 transmits the received resource reservation request to the recommended resource amount calculation unit 101.
The recommended resource amount calculation unit 101 receives the resource reservation request transmitted by the scheduler 102 and calculates a recommended resource amount in accordance with the received resource reservation request. Information received by the recommended resource amount calculation unit 101 includes, for example, a capacity of a storage area reserved by a task in an accelerator memory 20 (illustrated in
An “unused state” represents a state in which a target apparatus is not assigned to a task, etc.
Next, the recommended resource amount calculation unit 101 calculates, on the basis of the received information, a recommended resource amount in accordance with a predetermined resource calculation method (Step S151).
For example, the recommended resource amount calculation unit 101 calculates a first recommended resource candidate in accordance with Equation 1.
First recommended resource candidate=x÷y×z (1)
(where x denotes a capacity of a storage area in the accelerator memory 20 reserved by a task,
y denotes a capacity of a storage area originally included in the accelerator memory 20, and
z denotes a resource amount originally included in a calculation resource in the many-core accelerator 17 [for example, “the number of threads that can be processed in parallel or in pseudo-parallel (hereinafter collectively referred to as ‘in parallel’)”]).
For example, a resource amount originally included in the many-core accelerator 17 can be calculated in accordance with Equation 2 when a core includes a hyper-threading function.
z=“the number of cores”דthe number of threads that can be processed in parallel by the hyper-threading function” (2)
A resource amount originally included in the many-core accelerator 17 does not necessarily need to be expressed by Equation 2.
Alternatively, the recommended resource amount calculation unit 101 may calculate a first recommended resource candidate in accordance with Equation 3.
First recommended resource candidate=x÷(x+a)×b (3)
(where x denotes a capacity of a storage area reserved by a task in the accelerator memory 20,
a denotes a capacity of a storage area in an unused state in the accelerator memory, and
b denotes a resource amount in an unused state within a resource in the many-core accelerator 17).
The recommended resource amount calculation unit 101 outputs the calculated first recommended resource candidate as a recommended resource amount.
Further, the recommended resource amount calculation unit 101 may compare a requested amount in the received resource reservation request (hereinafter referred to as “received requested amount”) with the first recommended resource candidate and calculate a recommended resource amount on the basis of the comparison result.
For example, when the received request amount is greater than the first recommended resource candidate, the recommended resource amount calculation unit 101 outputs the received requested amount as a recommended resource amount. On the other hand, when the first recommended resource candidate is smaller than the received requested amount, the recommended resource amount calculation unit 101 may output the first recommended resource candidate as a recommended resource amount. In this case, a predetermined resource calculation method is a calculation method in which the smaller value of the received requested amount and the first recommended resource candidate is outputted as a recommended resource amount. A recommended resource amount calculated in such a manner is hereinafter referred to as “second recommended resource candidate”.
Further, the recommended resource amount calculation unit 101 may compare a resource amount originally included in the many-core accelerator 17 with the second recommended resource candidate and calculate a recommended resource amount on the basis of the comparison result.
For example, when a resource amount originally included in the many-core accelerator 17 is decided to be greater than the second recommended resource candidate, the recommended resource amount calculation unit 101 outputs the second recommended resource candidate as a recommended resource amount. Further, when a resource amount originally included in the many-core accelerator 17 is decided to be smaller than the second recommended resource candidate, the recommended resource amount calculation unit 101 compares the received requested amount with the first recommended resource candidate. When the received requested amount is decided to be smaller than the first recommended resource candidate, the recommended resource amount calculation unit 101 outputs the received requested amount as a recommended resource amount. Further, when the received requested amount is decided to be greater than the first recommended resource candidate, the recommended resource amount calculation unit 101 outputs the first recommended resource candidate as a recommended resource amount.
The recommended resource amount calculation unit 101 may read information about a capacity of a storage area reserved by the task within the accelerator memory 20 from the many-core accelerator 17. Alternatively, the recommended resource amount calculation unit 101 may read the aforementioned area information and a resource reservation request requested to the scheduling system 100 by the task.
Further, the recommended resource amount calculation unit 101 may calculate a capacity of a storage area reserved by the task in the accelerator memory 20 on the basis of two types of information described below. The two types of information are, a history of reservation of the accelerator memory by the scheduler 102 (Step S31 in
The recommended resource amount calculation unit 101 transmits the calculated recommended resource amount to the scheduler 102.
The scheduler 102 receives the recommended resource amount transmitted by the recommended resource amount calculation unit 101. Then, the scheduler 102 reserves a resource out of a resource included in the many-core accelerator 17 depending on the received recommended resource amount (Step S152). Then, the resource reserved by the scheduler 102 executes processing in a second part (Step S17 in
Since the eighth exemplary embodiment includes a similar configuration to the fourth exemplary embodiment, the eighth exemplary embodiment can enjoy the similar effect to the fourth exemplary embodiment. In other words, the scheduling system 100 according to eighth exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
When a plurality of tasks reserve a storage area beyond a capacity of a storage area in the accelerator memory 20, the many-core accelerator 17 is not able to perform processes in the accelerator memory 20 in spite of having a capability to process the tasks. In other words, a situation in which the processing performance possessed by a resource cannot be exhibited in the many-core accelerator 17 may occur.
On the other hand, in the eighth exemplary embodiment, the recommended resource amount calculation unit 101 calculates a recommended resource amount depending on a capacity of a storage area reserved by a task in the accelerator memory 20 as explained by referring to Equation 1. Consequently, the scheduling system 100 according to the present exemplary embodiment is able to avoid the aforementioned situation. In other words, the scheduling system 100 according to the eighth exemplary embodiment is capable of yet more efficiently enabling processing performance possessed by a resource to be exhibited.
Next, a ninth exemplary embodiment based on the aforementioned eighth exemplary embodiment will be described.
In the following description, characteristic matters according to the present exemplary embodiment will be mainly described and an overlapping description of the same configuration as in the aforementioned eighth exemplary embodiment will be omitted by assigning the same reference sign thereto.
Referring to
Referring to
The resource allocation determining unit 103 determines a specific resource that processes a second part out of a resource reserved by the scheduler 104 in accordance with a predetermined selection method (Step S153). For example, the resource allocation determining unit 103 determines a specific resource by selecting a combination of resources capable of most efficiently processing the second part (Step S17).
For example, the resource allocation determining unit 103 selects a combination of resources capable of providing efficient processing on the basis of a characteristic possessed by a many-core accelerator 17 (not illustrated; see, for example,
A characteristic possessed by the many-core accelerator 17 includes, for example, a characteristic of a hyper-threading function described below. For example, it is assumed that each core in the many-core accelerator 17 has a hyper-threading function capable of processing 4 threads in parallel. It is further assumed that each core does not get performance improvement corresponding to the number of threads even if the number of threads processed in parallel increases.
It is further assumed that a recommended resource amount is 8 (threads) and a resource reserved by the scheduler 104 is 4 cores. In this case, processing performance of processing the second part by a hyper-threading function for “4 cores×2 threads” is higher than processing the second part by a hyper-threading function for “2 cores×4 threads”. This is because, due to the aforementioned characteristic possessed by each core, a hyper-threading function for 4 threads in parallel gets less performance improvement corresponding to the number of threads.
In other words, in the aforementioned example, the resource allocation determining unit 103 determines a hyper-threading function for “4 cores×2 threads” as a specific resource on the basis of the aforementioned characteristic. In this case, the predetermined selection method is a method for selecting a resource capable of providing efficient processing on the basis of the aforementioned characteristic.
Alternatively, the resource allocation determining unit 103 may calculate a specific resource associated with the best processing performance on the basis of information associating a configuration included in a specific resource with performance of processing the second part by the specific resource. In this case, the predetermined selection method is a method for selecting a resource capable of providing efficient processing on the basis of the aforementioned information.
Since the ninth exemplary embodiment includes a similar configuration to the eighth exemplary embodiment, the ninth exemplary embodiment can enjoy similar effect to the eighth exemplary embodiment. In other words, the scheduling system according to the ninth exemplary embodiment is capable of more efficiently enabling processing performance possessed by a resource to be exhibited.
Further, in the ninth exemplary embodiment, the resource allocation determining unit 103 specifies a resource with the best processing performance as described above. Therefore, the scheduling system 105 according to the ninth exemplary embodiment is capable of yet more efficiently enabling processing performance possessed by a resource to be exhibited.
A configuration example of a hardware resource realizing a scheduling system according to each exemplary embodiment of the present invention described above with a single calculation processing apparatus (information processing apparatus, computer) will be described. Such a scheduling system may be physically or functionally realized by use of at least two calculation processing apparatuses. Further, such a scheduling system may be realized as a dedicated apparatus.
The non-volatile recording medium 35 refers to, for example, a Compact Disc, a Digital Versatile Disc, a Blu-ray Disc (registered trademark), a Universal Serial Bus memory (USB memory), etc. that are computer-readable, capable of holding such a program without power supply, and portable. The non-volatile recording medium 35 is not limited to the aforementioned media. Further, such a program may be transferred via a communication network instead of the non-volatile recording medium 35.
When executing a software program (computer program, hereinafter simply referred to as “program”) stored in the disk 34, the CPU 32 copies the program to the memory 33 and performs arithmetic processing. The CPU 32 reads data required for executing the program from the memory 33. When a display is required, the CPU 32 displays an output result on the output apparatus 37. When inputting a program from outside, the CPU 32 reads the program from the input apparatus 36. The CPU 32 interprets and executes a scheduling program (processes performed by the scheduling system in
In such a case, the present invention can be regarded as realizable also by such a scheduling program. Further, the present invention can be regarded as realizable also by a computer-readable recording medium containing such a scheduling program.
The aforementioned respective exemplary embodiments may also be described in whole or part as the following Supplemental Notes. However, the present invention exemplified in each of the aforementioned exemplary embodiments is not limited to the following.
A scheduling system including:
a scheduler configured to determine a specific resource that processes a task in accordance with a first instruction to be included in the task processed by a calculation processing apparatus, which includes a many-core accelerator being resource and a processor controlling the resource, and to reserve the resource.
The scheduling system according to Supplemental Note 1, further comprising:
management means configured to manage usage status of the resource, wherein
the scheduler determines the specific resource by reading the usage status stored in the management means.
The scheduling system according to Supplemental Note 1 or 2, wherein
the task includes a first part processed by the processor, the first instruction, a second part processed by the resource, and a second instruction for releasing the specific resource, and
the scheduler reserves the specific resource in accordance with the first instruction after the processor processes the first part, and releases the specific resource in accordance with the second instruction after the specific resource processes the second part.
The scheduling system according to Supplemental Note 3, wherein
the calculation processing apparatus further includes a memory accessed by the processor and an accelerator memory accessed by the many-core accelerator,
the task includes the first part, the first instruction, a third part for transferring data from the memory to the accelerator memory, the second part, a fourth part for transferring data from the accelerator memory to the memory, and the second instruction, and
the scheduler reserves the specific resource during processing of the first part performed by the processor and processing of the third part performed by the processor in accordance with the first instruction, and releases the specific resource after processing of the fourth part performed by the processor in accordance with the second instruction.
The scheduling system according to Supplemental Note 4, wherein
the scheduler reserves a specific accelerator memory in accordance with the first instruction, reserves the specific resource after processing of the third part performed by the processor, releases the specific resource in accordance with the second instruction after processing of the second part performed by the specific resource, and releases the specific accelerator memory after processing of the fourth part performed by the processor.
The scheduling system according to Supplemental Note 3 or 4, wherein
the task further includes a fifth part for directing a process included in the second part to the processor, and
the scheduler determines that the processor performs processing of the fifth part when the specific resource cannot be reserved in the usage status, and determines that the specific resource performs processing of the second part when the specific resource can be determined.
The scheduling system according to any one of Supplemental Notes 1 to 6, further comprising:
a second task scheduler configured to control an allocation of the task to the calculation processing apparatus, wherein
the scheduler determines the specific resource in accordance with information related to the task notified to the scheduler by the second task scheduler.
The scheduling system according to any one of Supplemental Notes 2 to 6, wherein
the scheduler transmits a command for reducing the task to the second task scheduler when a load on the resource is greater than a predetermined first threshold value and transmits a command for increasing the task when a load on the resource is smaller than a predetermined second threshold value by referencing the control means.
The scheduling system according to Supplemental Note 3 or 4, further comprising:
recommended resource amount calculation means configured to calculate a recommended resource amount in accordance with a predetermined resource calculation method on the basis of at least one type of information out of a storage capacity of the accelerator memory reserved by the task issuing the first instruction, a storage capacity originally included in the accelerator memory, a resource amount requested by the task, or a resource amount originally included in the resource in the many-core accelerator and a storage capacity of an area in an unused state in the accelerator memory, wherein
the scheduler reserves a specific resource depending on the recommended resource amount.
The scheduling system according to Supplemental Note 9, further comprising:
resource allocation determining means configured to select a resource capable of processing the second part in accordance with a predetermined selection method out of the specific resource.
An operating system including the scheduling system according to any one of Supplemental Notes 1 to 10.
A scheduling method comprising:
determining a specific resource that processes a task, in accordance with a first instruction, being included in the task processed by a calculation processing apparatus, which includes a many-core accelerator as a resource and a processor that controls the resource, and reserving the resource.
A recording medium storing a scheduling program that causes a computer to realize a scheduling function, the function comprising
determining a specific resource that processes a task, in accordance with a first instruction being included in the task processed by a calculation processing apparatus which includes a many-core accelerator as a resource and a processor that controls the resource, and reserving the resource.
The present invention has been described with the aforementioned exemplary embodiments as exemplary examples. However, the present invention is not limited to the aforementioned exemplary embodiments. In other words, various embodiments that can be understood by those skilled in the art may be applied to the present invention, within the scope thereof.
This application claims priority based on Japanese Patent Application No. 2013-107578 filed on May 22, 2013, the disclosure of which is hereby incorporated by reference thereto in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2013-107578 | May 2013 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2014/001557 | 3/18/2014 | WO | 00 |