PREPROCESSOR TO IMPROVE THE PERFORMANCE OF MESSAGE-PASSING-BASED PARALLEL PROGRAMS ON VIRTUALIZED MULTI-CORE PROCESSORS
First Claim
1. A compiler apparatus, which optimizes execution of a target program to be compiled by a multi-core processor, comprising:
- a recording section for recording the number of execution cores, which is the number of processor cores for execution of the target program, among processor cores included in the multi-core processor;
a path detecting section for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a single processor core, from the target program;
a cluster generating section for selecting dominant paths with the number not larger than the number of execution cores, and for thereby generating clusters of tasks to be executed by a multi-core processor any one of in parallel and in a sequential manner;
a time computing section for computing execution times for which each of the generated clusters is executed by the processor cores with the numbers equal to one or each of a plurality of natural numbers selected from the natural numbers not larger than the number of the execution cores; and
a core number selecting section for selecting the number of the processor cores to be assigned for the execution of each of the generated clusters based on the computed execution times in order to reduce the total execution time of the target program.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided is a complier which optimizes parallel processing. The complier records the number of execution cores, which is the number of processor cores that execute a target program. First, the compiler detects a dominant path, which is a candidate of an execution path to be consecutively executed by a single processor core, from a target program. Subsequently, the compiler selects dominant paths with the number not larger than the number of execution cores, and generates clusters of tasks to be executed by a multi-core processor in parallel or consecutively. After that, the compiler computes an execution time for which each of the generated clusters is executed by the processor cores with the number equal to one or each of a plurality natural numbers selected from the natural numbers not larger than the number of execution cores. Then, the compiler selects the number of processor cores to be assigned for execution of each of the clusters based on the computed execution time.
166 Citations
19 Claims
-
1. A compiler apparatus, which optimizes execution of a target program to be compiled by a multi-core processor, comprising:
-
a recording section for recording the number of execution cores, which is the number of processor cores for execution of the target program, among processor cores included in the multi-core processor;
a path detecting section for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a single processor core, from the target program;
a cluster generating section for selecting dominant paths with the number not larger than the number of execution cores, and for thereby generating clusters of tasks to be executed by a multi-core processor any one of in parallel and in a sequential manner;
a time computing section for computing execution times for which each of the generated clusters is executed by the processor cores with the numbers equal to one or each of a plurality of natural numbers selected from the natural numbers not larger than the number of the execution cores; and
a core number selecting section for selecting the number of the processor cores to be assigned for the execution of each of the generated clusters based on the computed execution times in order to reduce the total execution time of the target program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A compiler apparatus for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a same processor core from a target program to be compiled, comprising:
-
a task selecting section for selecting at least one second task of the first task in the target program, the second task depending on a processing result of a first task in the target program;
a reduced amount computing section for computing a reduced amount of a task switching time to be reduced when the second task is executed after the first task by the same processor core in comparison with a task switching time when the first task and the selected second task are executed by different processor cores; and
a path detecting section for detecting a second task and the first task inclusive in the dominant path, the second task having a maximum reduced amount to be computed. - View Dependent Claims (13, 14, 15)
-
-
16. A compile method by a compiler apparatus, which optimizes execution of a target program to be compiled by a multi-core processor, wherein the compiler apparatus comprises a recording section which records the number of the execution cores which is the number of processor cores for execution of the target program among processor cores included in the multi-core processor,
the compile method comprising the steps of: -
detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a single processor core, from the target program;
selecting dominant paths with the number not larger than the number of the execution cores, thereby generating clusters of the tasks to be executed by the multi-core processor any one of in parallel and in succession;
computing execution times for which each of the clusters is executed by the processor cores with the number equal to one or each of a plurality of natural numbers selected from the natural numbers not larger than the number of the execution cores; and
selecting the number of the processor cores to be assigned for the execution of each of the generated clusters based on the computed execution times, in order to reduce the total execution time of the target program.
-
-
17. A compile method for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a single processor core, from a target program to be compiled,
the compile method comprising the steps of: -
selecting at least one second task of a first task in the target program, the second task depending on a processing result of a first task;
computing a reduced amount of a task switching time to be reduced when the second task is executed after the first task by the same processor core in comparison with a task switching time when the first task and the selected second task are executed by different processor cores; and
detecting a second task, which has a maximum reduced amount to be computed, including in the dominant path together with the first task.
-
-
18. A compiler program which causes an information processing system to function as a compiler apparatus, which optimizes execution of a target program to be compiled by a multi-core processor,
the compiler program causing the information processing system to function as: -
a recording section for recording the number of execution cores which is the number of processor cores for execution of the target program among processor cores included in the multi-core processor;
a path detecting section for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a single processor core, from the target program;
a cluster generating section for selecting dominant paths with the number not larger than the number of the execution cores, and for generating a cluster of tasks to be executed by the multi-core processor any one of in parallel and in succession;
a time computing section for computing execution times for which each of the clusters is executed by the processor cores with the number equal to one or each of a plurality of natural numbers selected from the natural numbers not larger than the number of the execution cores; and
a core number selecting section for selecting the number of the processor cores to be assigned for the execution of each of the generated clusters, based on the computed execution times in order to reduce the total execution time of the target program.
-
-
19. A compiler program which causes an information processing system to function as a compiler apparatus for detecting a dominant path, which is a candidate of an execution path of one or more tasks to be consecutively executed by a same processor core, from a target program to be compiled,
the compiler program causing the information processing system to function as: -
a task selecting section for selecting at least one second task of a first task in the target program, the second task depending on a processing result of the first task;
a reduced amount computing section for computing a reduced amount of a task switching time to be reduced when the second task is executed after the first task by the same processor core in comparison with a task switching time when the first task and the selected second task are executed by different processor cores; and
a path detecting section for detecting a second task, which has a maximum reduced amount to be computed, including in the dominant path together with the first task.
-
Specification