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 a theoretical model is based on a plurality of factors comprising at least one of: (i) an average processing time per tuple, (ii) an average number of accesses to a shared state per tuple, and (iii) a time to read/write to the shared state; specifying a parallelized version of the one or more operators in said stream application based on the theoretical model; evaluating whether the theoretical model improves the performance of the one or more operators; computing a degree of parallelism if the theoretical model improves the performance of the one or more operators; and replacing the one or more operators with the parallelized version of the one or more operators, in response to computing the degree of parallelism.