Lab Home | Phone | Search
Center for Nonlinear Studies  Center for Nonlinear Studies
 Home 
 People 
 Current 
 Affiliates 
 Visitors 
 Students 
 Research 
 ICAM-LANL 
 Publications 
 Conferences 
 Workshops 
 Sponsorship 
 Talks 
 Colloquia 
 Colloquia Archive 
 Seminars 
 Postdoc Seminars Archive 
 Quantum Lunch 
 Quantum Lunch Archive 
 CMS Colloquia 
 Q-Mat Seminars 
 Q-Mat Seminars Archive 
 P/T Colloquia 
 Archive 
 Kac Lectures 
 Kac Fellows 
 Dist. Quant. Lecture 
 Ulam Scholar 
 Colloquia 
 
 Jobs 
 Postdocs 
 CNLS Fellowship Application 
 Students 
 Student Program 
 Visitors 
 Description 
 Past Visitors 
 Services 
 General 
 
 History of CNLS 
 
 Maps, Directions 
 CNLS Office 
 T-Division 
 LANL 
 
Wednesday, June 10, 2015
3:00 PM - 4:00 PM
CNLS Conference Room (TA-3, Bldg 1690)

Seminar

Concurrent Collections for Both Productivity and Parallel Performance

Kathleen Knobe
Rice University

Parallel programming is hard. One reason is that it requires that we consider many different concerns at once. By isolating the concerns we can improve both productivity and performance. In general, applications express both computations and orderings among the computations. Some orderings are absolutely required by the semantics (dependences), some are for tuning (for a specific goal and platform) and some are purely arbitrary. To modify the application as it evolves, the required orderings must be deduced. During this process, unnecessary orderings might mistakenly be seen as required (it’s ineffective) or required orderings might mistakenly be seen as arbitrary (it’s error-prone). Furthermore the process takes time (it’s inefficient). CnC’s philosophy is to separate the three concerns: chunks of computations, the required orderings among them (the domain spec) and additional constraints for tuning purposes (the tuning spec). This separation leads to a simpler, more effective and more efficient development process. CnC is not a parallel programming model. There is no thinking about parallelism involved. But it isn’t a serial model either. There are no arbitrary serial orderings. We refer a CnC programming as dependence programming. The CnC domain spec is exactly a dependence graph. Because it is high level and declarative, we can and have implemented a variety of quite different execution styles for CnC. With respect to tuning, not only can a single domain spec be used, unchanged, with multiple tuning specs, in fact, it can be used, unchanged, with many different styles of tuning. The talk will introduce the CnC concepts, show various tuning approaches, describe the current state of the project and our future plans. (This work was partially supported by the DOE X-Stack project.)

Host: Susan Mniszewski & Christoph Junghans