A hardware independent parallel programming model
Parallel programming faces two major challenges: how to efficiently map computations to different parallel hardware architectures, and how to do it in a modular way, i.e., without rewriting the problem solving code. We propose to treat dependencies as first class entities in programs. Programming a highly parallel machine or chip can then be formulated as finding an efficient embedding of the computation's data dependency into the underlying hardware's communication layout. With the data dependency pattern of a computation extracted as an explicit entity in a program, one has a powerful tool to deal with parallelism. (C) 2009 Elsevier Inc. All rights reserved.
embedding data dependency algebra parallel computation parallel hardware architectures and chips