1. A system comprising: a compiler for determining whether an operator of the streaming application is safe to parallelize based on a definition of the operator and an instance of the definition, said compiler forms parallel regions within the streaming application when the operator is safe to parallelize, and said compiler determines synchronization strategies for the parallel regions, the synchronization strategies being determined based on the definition of the operator and the instance of the definition; and a runtime system connected to said compiler, said runtime system enforces the synchronization strategies of the parallel regions.