Controlling chaos on safe side-effects in data-parallel operations

Stephan Herhut, Sven-Bodo Scholz, Clemens Grelck

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    1 Citation (Scopus)

    Abstract

    With the rising variety of hardware designs for multi-core systems, the effectiveness in exploiting implicit concurrency of programs plays a more vital role for programming such systems than ever before. We believe that a combination of a data-parallel approach with a declarative programming-style is up to that task: Data-parallel approaches are known to enable compilers to make efficient use of multi-processors without requiring low-level program annotations. Combining the data-parallel approach with a declarative programming-style guarantees semantic equivalence between sequential and concurrent executions of data parallel operations. Furthermore, the side-effect free setting and explicit model of dependencies enables compilers to maximise the size of the data-parallel program sections.

    However, the strength of the rigidity of the declarative approach also constitutes its weakness: Being bound to observe all data dependencies categorically rules out the use of side-effecting operations within data-parallel sections. Not only does this limit the size of these regions in certain situations, but it may also hamper an effective workload distribution. Considering side effects such as plotting individual pixels of an image or output for debugging purposes, there are situations where a non-deterministic order of side-effects would not be considered harmful at all.

    We propose a mechanism for enabling such non-determinism on the execution of side-effecting operations within data-parallel sections without sacrificing the side-effect free setting in general. Outside of the data-parallel sections we ensure single-threading of side-effecting operations using uniqueness typing. Within data-parallel operations however we allow the side-effecting operations of different threads to occur in any order, as long as effects of different threads are not interleaved. Furthermore, we still model the dependencies arising from the manipulated states within the data parallel sections. This measure preserves the explicitness of all data dependencies and therefore it preserves the transformational potential of any restructuring compiler.
    Original languageEnglish
    Title of host publicationProceedings of the 4th workshop on Declarative aspects of multicore programming
    PublisherACM Press
    Pages59-67
    Number of pages9
    ISBN (Print)978-1-60558-417-1
    DOIs
    Publication statusPublished - 2009
    EventDAMP'09 - Savannah, Georgia, United States
    Duration: 21 Jan 200923 Jan 2009

    Conference

    ConferenceDAMP'09
    Country/TerritoryUnited States
    CitySavannah, Georgia
    Period21/01/0923/01/09

    Fingerprint

    Dive into the research topics of 'Controlling chaos on safe side-effects in data-parallel operations'. Together they form a unique fingerprint.

    Cite this