page 1  (8 pages)
2to next section

152

Chapter 8. CODE 2.0 Prototype

This chapter briefly discusses a prototype implementation of the CODE 2.0 model of parallel computation. This subject is relevant because it demonstrates that the CODE model can be implemented on a target architecture (Ada [DoD83]) that is based upon synchronous communication. It also shows some examples of translation refinements that yield optimized parallel structures and improved performance.

8.1 Purpose and Nature of the Prototype

A prototype implementation of CODE 2.0 was done early on to verify that the CODE model of parallel computation could reasonably be implemented on a difficult target architecture. It also permitted some example parallel applications to be created to test the expressiveness and convenience of the CODE model. The major attributes of the prototype implementation are listed below.

[1] The prototype produces parallel programs for a target architecture that consists of Ada running on a Sequent Symmetry. Ada was chosen because it is a difficult target due to its rigid type system and reliance on synchronous communications (rendezvous) while CODE uses
asynchronous communications. Also, runtime-determined
communications topologies are problematic in Ada but are an important part of CODE.

[2] The prototype implements most of the CODE 2.0 model of parallel computation. The major exception is Name Sharing Relation nodes, although there is a mechanism for simulating read-only shared variables.

[3] The prototype is written in C++ using object-oriented techniques. It uses a simplified abstract syntax tree to represent its source model. It does not use a target model hierarchy as defined by a structured file as the current implementation of CODE does.

Once the CODE 2.0 model was defined, the implementation of the prototype required only approximately six weeks of effort by two programmers.