{'fraction_non_alphanumeric': 0.01447876447876448, 'fraction_numerical': 0.0, 'mean_word_length': 5.361963190184049, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Reo: A Dataflow Inspired Language for Multicore

The Reo language has been well documented to address difficulties in parallel programming. It separates interaction protocol from computation code, which allows separate development, reuse, and formal proofs about the protocol correctness. Modules of computation can be composed by externally defining a protocol, without concern for their internal details. Achieving acceptable performance for code generated from Reo specifications has been a major challenge. In this paper, we address this with a combination of implementing the circuit splitting optimization and using the proto-runtime approach as a base platform for the runtime system of the Reo language. Our results show that the overhead when running Reo is so low that the performance of a k-tuple benchmark protocol compiled from its Reo specification is now up to six times faster than a straightforward hand-written thread implementation and nearly equal to a carefully optimized thread implementation of the same protocol.