Archetypes: A Critical Evaluation of an Ongoing Project


next up previous
Next: Previous Work Up: Concurrent Program Archetypes Previous: Education

Archetypes: A Critical Evaluation of an Ongoing Project

The archetypes project is risky. We have no conclusive evidence that an archetype library can be constructed effectively, or that it will serve its purpose of simplifying parallel programming and improving productivity. The project can fail for several reasons, a few of which are listed below.

  1. Most applications may be so diverse that there may be very little similarity between different applications. The archetype project is predicated on the assumption that solution methods can be categorized into groups of similar methods.

    We also expect to be able to ``scavenge'' code, ideas and documentation from an archetype if an archetype is similar to an application, but does not exactly fit the application. Scavenging takes material from an archetype and then modifies it to fit the problem. At this point, we do not have evidence that scavenging from archetypes is effective.

  2. An archetype may be so general, that the amount of effort required to tailor the application may be as much as the time required to develop the application from scratch.
  3. The amount of effort required to develop an archetype library, even for a few reference implementations (say C, Fortran with MPI and threads package, and a couple of programming languages) and reference architectures (say networks of workstations, single address space multiprocessors, and distributed address space supercomputers) may be so large that we can only develop a small number of archetypes.
  4. We have limited experience with structuring archetypes so that archetypes use one another. Though we are hopeful that we can develop methods and theories of archetype composition, we have not done so yet. Success of the effort will depend on the ease with which archetypes can be composed.
  5. The structure and ease of use of the electronic documentation is critical to the success of archetype-based design. We may not do this crucial part of the project well, even though we have a lot of very useful code; and if we don't do the documentation effectively, we will not succeed.


next up previous
Next: Previous Work Up: Concurrent Program Archetypes Previous: Education


mani@cs.caltech.edu