View Item 
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        JavaScript is disabled for your browser. Some features of this site may not work without it.

        Browse

        All of UU Student Theses RepositoryBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

        Accelerating Sum Types

        Thumbnail
        View/Open
        main.pdf (979.8Kb)
        Publication date
        2022
        Author
        Hoef, Rick van
        Metadata
        Show full item record
        Summary
        Parallel array languages are programming languages that make it possible to write highly parallel programs without knowing the intricacies of parallel programming and hardware. In this thesis, we present an optimization for the memory usage of parallel array languages, specifically geared towards sum types. Sum types are algebraic data types with more than one constructor, which are used to denote a choice between multiple different variants. Examples of applications of sum types in parallel programs are material choices in a ray tracer and parameters to a fluid simulation. We introduce a new representation of sum types that aligns with the struct-of-arrays memory layout that parallel array languages commonly use. We show that this representation is close to optimal with respect to memory usage, and that it is an improvement over existing representations that are suited for a struct-of-arrays memory layout. This representation is implemented in the POSable library, which generically converts non-recursive Haskell 98 data types to this representation. Accelerate is a functional parallel array language embedded in Haskell that supports sum types. The POSable library has been integrated in Accelerate, which shows the viability of the approach.
        URI
        https://studenttheses.uu.nl/handle/20.500.12932/41929
        Collections
        • Theses
        Utrecht university logo