Principles for coordination and composition of parallel/distributed programs are discussed. We advocate a synchronizing shared
memory model (EDA) for coordination and an algebraic approach to building programs using a linking language (LL) based on
module composition, restriction and renaming. A prototype system ErlEda illustrating these principles is described. The system
uses the concurrent programming language Erlang and its distributed environment as a basis. We illustrate the approach using
the Dirichlet problem.