Multi-cores / Many-cores 2007
Motivation
When developing new multi-core architectures, parallel execution environments, multi-level parallel programming languages, or their tools, it's imperative to have a clear understanding of how these technologies will be used in concert to solve a particular application problem. Far too often, toy benchmarks are used to test the features of a new programming solution. Little consideration is given towards how application libraries or user level tools will interact with the new programming model solution. In many research and academic systems, many programming model features are ÒleveragedÓ from other previous systems, without the careful consideration of their actual utility in practice. Although benchmarks have their place, they are not a true test of the utility of a programming solution.
As in all projects, resource constraints compromised the original goals of the Language Runtimes 2005 (LaR-05) Workshop. Instead of using a non-trivial application, the NAS MG benchmark was used as the common example to compare programming models. Nevertheless, it is important to recognize that multigrid is a framework of algorithms. The NAS MG makes an arbitrary set of choices in its algorithm selection. Thus, a true Òstress testÓ of practical utility of a solution-implementing multigrid would be the user level configurability of the algorithms that comprise the multigrid framework. Most presenters at LaR-05 simply ported the NAS MG codebase with varying levels of utilization of even their own language features. Unfortunately, not a single programming model presenter at LaR-05 mentioned the utilization of their solutions support constructs for library construction. The LaR-05 experience, illustrates the utility of having an applications perspective throughout the solution design and development process.