It is clear that writing software for parallel architectures is a non-trivial process. This has encouraged much research in an effort to provide tools to assist parallel software development. However, while these tools may cater for architecture-specific problems, they do little for the concept of parallel software engineering, as the end product is usually neither scaleable nor portable. The introduction of a level of abstraction in the expression of parallel algorithms can elevate the reasoning process above architectural constraints and assist the production of more flexible code. This paper outlines an object-oriented parallel algorithm development paradigm based on a task and channel notation, and examines the utilisation of Java TM technologies in the development of a distributed Java TM virtual machine architecture on which algorithms expressed in this notation may be executed dynamically.
展开▼