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.