Parallel programming is essential to achieve high-performance, and numerous works combined programming languages, runtime and compilers to help the de- ployment of effective high-performance applications at scale. Many recent pro- gramming models allow a specification of a task graph representing the appli- cation to be created by the programmer. For example, the depends clause in OpenMP 4.0 allows the programmers to create arbitrary dependences between OpenMP tasks. Habanero Data Driven Tasks [11] and OCR Event Driven Tasks and Events [1] provide similar capabilities as well. While these systems enable the creation of task graphs, they exhibit varying degrees of separation of concerns, or decoupling of program correctness from performance. Concurrent Collections (CnC) is a parallel programming model, with an ex- ecution semantics that is influenced by dynamic dataflow, stream-processing, and tuple spaces [4]. CnC was developed in part to address the need for making parallel programming accessible to non-expert developers. It relies on users to specify explicitly the data and control dependences between tasks, in turn allow- ing to automate the generation [10] of high-performance parallel programs for a variety of targets [5], from distributed computers to GPUs [7] to FPGAs [6]. A CnC program has a deterministic semantics: any implementation of it that follows the dependences specified in the CnC program will produce the same outputs. This deterministic semantics, and the separation of concerns between the domain experts, in charge of describing the core application dependences, and the tuning experts mapping this program to a particular hardware are the primary characteristics that differentiate CnC from other parallel programming models. In this talk, we will overview the fundamental concepts of CnC, its history, and achievements in terms of programmability and performance. We will de- scribe several iterations of CnC implementations, including CnC execution mod- els on top of Java [3] and C++ [12,11], as well as several domain-specific uses of CnC, from general-purpose programming [2], GPGPU-centric [10,7], exascale- focused [8], to centered on large, heterogeneous applications [9].
Mon 21 OctDisplayed time zone: Pacific Time (US & Canada) change
09:00 - 10:30 | Morning SessionVIVEKFEST at Pacific C Chair(s): Jens Palsberg University of California, Los Angeles (UCLA) | ||
09:00 10mTalk | Welcome (Raj Barik/Rajiv Gupta/Jens Palsberg) VIVEKFEST Raj Barik Gitar Co., Rajiv Gupta University of California at Riverside (UCR), Jens Palsberg University of California, Los Angeles (UCLA) | ||
09:10 20mResearch paper | Scalable Small Message Aggregation on Modern Interconnects VIVEKFEST | ||
09:30 20mTalk | Michael Hind (IBM Research) VIVEKFEST | ||
09:50 20mTalk | Concurrent Collections: An Overview VIVEKFEST Kathleen Knobe Rice University, Zoran Budimlic Texas A&M University, Robert Harrison , Mohammad Mahdi Javanmard Stony Brook University, NY, USA, Louis-Noël Pouchet Colorado State University | ||
10:10 20mResearch paper | Hidden assumptions in static verification of data-race free GPU programs VIVEKFEST Tiago Cogumbreiro University of Massachusetts Boston, Julien Lange Royal Holloway, University of London |