Archetypes: A Critical Evaluation of an Ongoing Project
Next: Previous Work
Up: Concurrent Program Archetypes
Previous: Education
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.
-
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.
-
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.
-
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.
-
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.
-
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: Previous Work
Up: Concurrent Program Archetypes
Previous: Education
mani@cs.caltech.edu