The design, implementation, and evaluation of Jade

MC Rinard, MS Lam - ACM Transactions on Programming Languages …, 1998 - dl.acm.org
ACM Transactions on Programming Languages and Systems (TOPLAS), 1998dl.acm.org
Jade is a portable, implicitly parallel language designed for exploiting task-level
concurrency. Jade programmers start with a program written in a standard serial, imperative
language, then use Jade constructs to declare how parts of the program access data. The
Jade implementation uses this data access information to automatically extract the
concurrency and map the application onto the machine at hand. The resulting parallel
execution preserves the semantics of the original serial program. We have implemented …
Jade is a portable, implicitly parallel language designed for exploiting task-level concurrency.Jade programmers start with a program written in a standard serial, imperative language, then use Jade constructs to declare how parts of the program access data. The Jade implementation uses this data access information to automatically extract the concurrency and map the application onto the machine at hand. The resulting parallel execution preserves the semantics of the original serial program. We have implemented Jade as an extension to C, and Jade implementations exist for s hared-memory multiprocessors, homogeneous message-passing machines, and heterogeneous networks of workstations. In this atricle we discuss the design goals and decisions that determined the final form of Jade and present an overview of the Jade implementation. We also present our experience using Jade to implement several complete scientific and engineering applications. We use this experience to evaluate how the different Jade language features were used in practice and how well Jade as a whole supports the process of developing parallel applications. We find that the basic idea of preserving the serial semantics simplifies the program development process, and that the concept of using data access specifications to guide the parallelization offers significant advantages over more traditional control-based approaches. We also find that the Jade data model can interact poorly with concurrency patterns that write disjoint pieces of a single aggregate data structure, although this problem arises in only one of the applications.
ACM Digital Library