Patent ID: 9170794
Filing Date: 2015-10-27
Classification: G06F

Abstract:
1. A method for exploiting stateless and stateful data parallelism in a streaming application, said method comprising: determining with a compiler whether an operator of the streaming application is safe to parallelize, said determining whether an operator of the streaming application is safe to parallelize being based on a definition of the operator and an instance of the definition, the definition of the operator including a template of the operator, and the instance of the definition including a modified version of the template, the operator being not safe to parallelize when the operator has selectivity greater than 1, the selectivity being a number of output tuples generated for each input tuple; forming parallel regions within the streaming application with the compiler when the operator is safe to parallelize; determining synchronization strategies for the parallel regions with the compiler, the synchronization strategies being determined based on the definition of the operator and the instance of the definition; enforcing the synchronization strategies of the parallel regions with a runtime system; and performing a shuffle when two adjacent parallel regions include incompatible keys.