Language Runtimes 2005

Validating the Productivity of Next Generation Multicore Programming Models

Themes and Goals

The goal of LaR-05 is to create an environment, which fosters creativity and collaborative discussion. LaR-05 will explicitly focus on bringing together senior industry product architects, scientists, and academic researchers to discuss in a relaxed setting how next generation parallel programming models, can be effectively utilized. To ground our discussion, and enable a meaningful comparative analysis, we propose that a single non-trivial application be implemented multiple times.

Our proposed common example is the MG multigrid benchmark from the NAS Parallel Benchmarks developed at NASA Ames Research Center. Multigrid is a popular partial differential equation solver used by a variety of high performance computing applications. The multigrid solver was chosen as a common example in part because of the numerous implementations on various hardware architectures and programming models. Additionally, a range of approaches have been used to increase the performance of multigrid including data parallelism, vectorization, and stream parallelism. We would like to see our example implemented in each of the HPCS languages, the DARPA PCA stream languages, and others.

By emphasizing a single set of algorithms, we intend to foster an in depth technical discussion, while simultaneously making it easier for LaR-05 attendees to understand the respective strengths of each of the programming models. Our aim is to aid the HPCS language designers, other parallel programming model architects, as well as the users of their respective languages by providing a venue where researchers can gain a clear understanding of the technologies discussed. Since our goal is to foster dialog and discussion, we will attempt a balance, by minimizing formality while providing enough structure to provide a useful environment.

Specific topics of interest, that we plan to discuss at our workshop include:

  • How does the programming solution help to minimize the time it takes to build a new application?
  • How easy is it to learn the core libraries of the solution?
  • Does the solution foster the construction of new reusable libraries, if so then how?
  • Does the solution enable reuse between library vendors and their asynchronous evolution?
  • How does the solution minimize the kinds of programming errors faced in highly parallel environment?
  • Is writing buggy code easy or difficult in the new solution?
  • How does the solution raise the level of abstraction or differ from today’s parallel programming solutions?
  • What semantic constructs of the solution are essential, what can be considered syntactic sugar?


Best viewed on a browser which supports cascading style sheets