Sven Stork Ph.D. Thesis Defense in Software Engineering
| ||Date: Tuesday, March 19, 14:00 p.m. (10:00 a.m. at CMU)
Place: Sala dos Capelos of the Universidade de Coimbra or 5324 Wean Hall (Via Video Conference from Portugal)
Sven Stork is a dual degree doctoral student in Software Engineering, at Universidade de Coimbra and Carnegie Mellon University
Advisors: Paulo Marques (Universidade de Coimbra) and Jonathan Aldrich (Carnegie Mellon University)
Abstract:AEminium: Freeing Programmers from the Shackles of Sequentiality
The aim of this doctoral thesis was to study the implications of having a concurrent-by- default programming language. This includes language design, runtime system, performance and software engineering considerations. We conduct our study through the design of the concurrent-by-default ÆMINIUM programming language. ÆMINIUM leverages the permission flow of object and group permissions through the program to validate the program's correctness and to automatically infer a possible parallelization strategy via a dataflow graph. ÆMINIUM supports regular parallelism (such as fork-join parallelism) as well as irregular parallelism (e.g., as dataflow).
In this thesis we present a formal system, called μÆMINIUM , modeling the core concepts of ÆMINIUM. μÆMINIUM static type system is based on “Featherweight Java” with ÆMINIUM specific extensions. Besides checking for correctness ÆMINIUM’s type system it also uses the permission flow to compute a potential parallel execution strategy for the program.
We use various case studies to evaluate ÆMINIUM's applicability and to demonstrate that ÆMINIUM parallelized code has some performance improvements compared to its sequential counterpart. We chose to use case studies of common domains or problems that are known to benefit from parallelization, to show that ÆMINIUM is powerful enough to encode them. We demonstrate through a webserver application, which evaluates ÆMINIUM’s impact on latency-bound applications, that ÆMINIUM can achieve a 70% performance improvement over the sequential counter part. In another case study we chose to implement a dictionary function to evaluate ÆMINIUM’s capabilities to express essential data structures. Our evaluation demonstrates that ÆMINIUM can be use to express parallelism in such data-structures and that the performance benefits scale with the amount of annotation effort which is put in to the implementation. We chose an integral computation example to evaluate pure functional programming and computational intensive use cases. Our experiments show that ÆMINIUM is capable of extracting parallelism from functional code and achieving performance improvements up to the limits of Plaid inherent performance bounds.
Jonathan Aldrich (Co-Chair)
University of Coimbra
Paulo Marques (Co-Chair)
More information available at: http://calendar.cs.cmu.edu/scsEvents/demo/8430.html