Specification and Development of Parallel Algorithms with the Proteus System,

A. Goldberg, P. Mills, L. Nyland, J. Prins, J. Reif and J. Riely. in Specification of Parallel algorithms, G. Blelloch, K. Chandy, and S. Jagannathan, eds., AMS, 1994.



The Proteus language is a wide-spectrum parallel programming notation that supports the expression of both high-level architecture-independent specifications and lower-level architecture-specific implementations. A methodology based on successive refinement and interactive experimentation supports the development of parallel algorithms from specification to various efficient architecture-dependent implementations. The Proteus system combines the language and tools supporting this methodology. This paper presents a brief overview of the Proteus system and describes its use in the exploration and development of several non-trivial algorithms, including the fast multipole algorithm for N-body computations.