Browsing by Author "Knobe, Kathleen"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
Item The Concurrent Collections Programming Model(2010-01-04) Budimlić, Zoran; Burke, Michael G.; Cavé, Vincent; Knobe, Kathleen; Lowney, Geoff; Palsberg, Jens; Peixotto, David; Sarkar, Vivek; Schlimbach, Frank; Taşırlar, SağnakWe introduce the Concurrent Collections (CnC) programming model. In this model, programs are written in terms of high-level operations. These operations are partially ordered according to only their semantic constraints. These partial orderings correspond to data dependences and control dependences. The role of the domain expert, whose interest and expertise is in the application domain, and the role of the tuning expert, whose interest and expertise is in performance on a specific architecture, can be viewed as separate concerns. The CnC programming model pro vides a high-level specification that can be used as a common language between the two experts, raising the level of their discourse. The model facilitates a significant degree of separation, which simplifies the task of the domain expert, who can focus on the application rather than scheduling concerns and mapping to the target architecture. This separation also simplifies the work of the tuning expert, who is given the maximum possible freedom to map the computation onto the target architecture and is not required to understand the details of the domain. However, the domain and tuning expert may still be the same person. We formally describe the execution semantics of CnC and prove that this model guarantees deterministic computation. We evaluate the performance of CnC implementations on several applications and show that CnC can effectively exploit several different kinds of parallelism and offer performance and scalability that is equivalent to or better than that offered by the current low-level parallel programming models. Further, with respect to ease of programming, we discuss the tradeoffs between CnC and other parallel program ming models on these applications.Item The Concurrent Collections Programming Model(2010-12-16) Burke, Michael G.; Knobe, Kathleen; Newton, Ryan; Sarkar, VivekParallel computing has become firmly established since the 1980’s as the primary means of achieving high performance from supercomputers. 1 Concurrent Collections (CnC) was developed to address the need for making parallel programming accessible to non-professional programmers. One approach that has historically addressed this problem is the creation of domain specific languages (DSLs) that hide the details of parallelism when programming for a specific application domain. In contrast, CnC is a model for adding parallelism to any host language (which is typically serial and may be a DSL). In this approach, the parallel implementation details of the application are hidden from the domain expert, but are instead addressed separately by users (and tools) that serve the role of tuning experts. The basic concepts of CnC are widely applicable. Its premise is that domain experts can identify the intrinsic data dependences and control dependences in an application, irrespective of lower-level implementation choices. The dependences are specified in a CnC graph for an application. Parallelism is implicit in a CnC graph. A CnC graph has a deterministic semantics, in that all executions are guaranteed to produce the same output state for the same input. This deterministic semantics and the separation of concerns between the domain and tuning experts are the primary characteristics that differentiate CnC from other parallel programming models.