Frame: An Imperative Coordination Language for Parallel Programming
We present Frame, a simple language which facilitates structured expression of imperative parallelism. Programs are described at two levels. The top level captures the main parallel algorithmic structure (which may be nested) and is independent of the language used in the lower level to describe the building blocks of sequential or unstructured parallel code which it coordinates. In the current instantiation of Frame the lower level code is expressed in C with calls to MPI. Frame exists as a simple demonstration of the principle of combining nested imperative parallel control structure with properly contained ad-hoc parallelism. Subsequent languages in the Frame family should augment it with further control constructs, more sophisticated interfaces to the ad-hoc level and optimised implementation strategies.