{'fraction_non_alphanumeric': 0.02004008016032064, 'fraction_numerical': 0.004008016032064128, 'mean_word_length': 5.128834355828221, '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}}
Fractional Permissions for Race-Free Mutable References in a Dataflow Intermediate Language

ParalleX is an execution model tailored to exascale computing. To this aim, it employs a global shared memory and supports multi-level parallelism. In systems that mix parallelism and mutable shared memory, the definition of a memory model becomes challenging. Following the advice of Adve and Boehm (2010), we balance efficiency and simplicity by going the route of statically enforcing data-race freedom (DRF), which makes sequential consistency efficient to implement on weak memory models. In this paper, we report on a type system that ensures DRF for the core of the dataflow intermediate language used within ParalleX. The type system adapts the notion of fractional permissions to the dataflow context and provides a novel treatment of mutable references, using a combination of affine variables and fractional sums. We give an overview of the type system and demonstrate its use in some examples.