Search: 
Faculty
Students
Papers
Talks
Posters
Tasks

The Programming Concurrent Systems theme

GSRC Programming Concurrent Systems Theme

Programming today’s multi-core platforms with 4-8 cores is too time-intensive for broad utilization in the applications industry, and the results are unpredictable. It is fairly routine that a dedicated and well-intentioned project focused on porting an application to a multi-core platform may in fact result in performance degradation. Thus, if the effort required for successful parallel programming is not drastically reduced and the results made more predictable, the high cost of parallel software development will choke the flow of application innovation from the computing industry. This could, in turn, stall the growth of the semiconductor industry. At the same time, isolated efforts in re-architecting sequential software for many-core targets have demonstrated 10X – 40X (or even greater) performance improvements relative to their original sequential implementation. Thus, parallel programming offers software development not only its greatest challenge, but also its greatest opportunity, in many decades.


The Programming Concurrent Systems theme simultaneously addresses this challenge and demonstrating the opportunity. The Theme researchers have converged on three pivotal approaches that will likely create sweeping success in removing this roadblock: (i) domain specific languages and application frameworks, (ii) implicitly parallel programming approaches, and (iii) customized application interfaces for heterogeneous platforms.



Domain-specific languages and application frameworks allow domain experts to create innovative parallel applications using common parallel problem solving algorithms and computational structures crafted by parallel programming experts. The domain knowledge embedded in these languages and frameworks can also enable automation of the complex process of parallel application optimization and tuning that is painstakingly done by human programmers today. Implicitly parallel programming systems allow programmers to express parallel algorithms in ways that enhance software engineering practices and to employ an informed compilation system to complete the parallel code arrangements and tuning for improved portability and productivity. Programmers no longer need to mangle code for threaded execution, a major source of parallel programming cost. Customized parallel execution taps the domain-knowledge and the program analysis information from both clusters above and automates the use of flexible runtime software and reconfigurable hardware to drastically improve the software productivity in heterogeneous platforms while achieving execution efficiency and scalability goals.


Major collaborative research efforts are needed to develop these three approaches into concrete methodologies, coherent systems, and popular tools. We work closely with FCRP sponsors to ensure that these methodologies, systems, and tools have major impact on the infrastructure, mobile, and sensor node application segments. Furthermore, we will extend the current GSRC client application focus to server software service functions and workloads.