System and method for compiler assisted parallelization of a stream processing operator
First Claim
1. A method of enabling compiler assisted parallelization of one or more stream processing operators in a stream processing application operating on a computer processing device, the method comprising:
- creating a theoretical model of one or more operators in a compiler, wherein the theoretical model is based on a plurality of factors comprising an average processing time per tuple, an average number of accesses to a shared state per tuple, and a time to read/write to the shared state;
specifying a parallelized version of the one or more operators in the stream processing application based on the theoretical model;
evaluating whether the theoretical model improves the performance of the one or more operators, wherein evaluating whether the theoretical model improves the performance of the one or more operators comprises;
determining the greater of the throughput of a single operator and the throughput of the parallelized operator at compile time;
computing a degree of parallelism if the theoretical model improves the performance of the one or more operators; and
replacing, by the compiler, the one or more operators with the parallelized version of the one or more operators, in response to computing the degree of parallelism.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of enabling compiler assisted parallelization of one or more stream processing operators in a stream processing application, which consists of a data flow graph with operators as vertices connected by streams. The method includes specifying a parallelized version of one or more of the operators, with a parameterized degree of parallelism, in the stream application, evaluating whether or not to use the parallelized operator, deciding the degree of parallelism of the parallelized operator, if there is a need for a parallelized operator.
-
Citations
15 Claims
-
1. A method of enabling compiler assisted parallelization of one or more stream processing operators in a stream processing application operating on a computer processing device, the method comprising:
-
creating a theoretical model of one or more operators in a compiler, wherein the theoretical model is based on a plurality of factors comprising an average processing time per tuple, an average number of accesses to a shared state per tuple, and a time to read/write to the shared state; specifying a parallelized version of the one or more operators in the stream processing application based on the theoretical model; evaluating whether the theoretical model improves the performance of the one or more operators, wherein evaluating whether the theoretical model improves the performance of the one or more operators comprises; determining the greater of the throughput of a single operator and the throughput of the parallelized operator at compile time; computing a degree of parallelism if the theoretical model improves the performance of the one or more operators; and replacing, by the compiler, the one or more operators with the parallelized version of the one or more operators, in response to computing the degree of parallelism. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer readable storage medium embodying a computer readable program code having computer readable instructions to enable compiler assisted parallelization of one or more stream processing operators in a stream processing application operating on a computer processing device which, when implemented, cause a computer to:
-
create a theoretical model of one or more operators in a compiler, wherein the theoretical model is based on a plurality of factors comprising an average processing time per tuple, an average number of accesses to a shared state per tuple, and a time to read/write to the shared state; specify a parallelized version of the one or more operators in the stream processing application based on the theoretical model; evaluate whether the theoretical model improves the performance of the one or more operators, wherein the computer readable instructions to evaluate whether the theoretical model improves the performance of the one or more operators further causes the computer to; determine the greater of the throughput of a single operator and the throughput of the parallelized operator at compile time; compute the degree of parallelism if the theoretical model improves the performance of the one or more operators; and replace, by the compiler, the one or more operators with the parallelized version of the one or more operators, in response to computing the degree of parallelism. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system of enabling compiler assisted parallelization of one or more stream processing operators in a stream processing application operating comprising
a computer processing device; - and
a memory coupled to the computer processing device, wherein the memory comprises instructions which, when executed by the computer processing device, cause the computer processing device to; create a theoretical model of one or more operators in a compiler, wherein the theoretical model is based on a plurality of factors comprising an average processing time per tuple, an average number of accesses to a shared state per tuple, and a time to read/write to the shared state; specify a parallelized version of the one or more operators in the stream processing application based on the theoretical model; evaluate whether the theoretical model improves the performance of the one or more operators, wherein the instructions to evaluate whether the theoretical model improves the performance of the one or more operators further causes the computer processing device to; determine the greater of the throughput of a single operator and the throughput of the parallelized operator at compile time; compute the degree of parallelism for the one or more operators if the theoretical model improves the performance of the one or more operators; and replace, by the compiler, the one or more operators with the parallelized version of the one or more operators, in response to computing the degree of parallelism. - View Dependent Claims (12, 13, 14, 15)
- and
Specification