Strand: A practical parallel programming language

Effective parallel programming requires tools that facilitate the design and implementation of parallel algorithms and provide portability across parallel computers. Strand is the first such tool to be available on a broad range of multiprocessor architectures, including hypercubes, meshes, computing surfaces, banyan networks, shared-memory machines and local area networks. Strand is a new concurrent logic programming language. Its design is motivated by extensive experience with previous languages of this type. This experience indicated that for most practical parallel programming requirements, these research languages were too complex, inefficient and difficult to implement. Strand applies a broad variety of simplifications to achieve a practical parallel programming tool. This paper describes the issues surrounding the Strand design and reports on initial experiences with the language. 24 refs., 3 figs.