The same forces that spurred the development of multicomputers - the demand forbetter performance and economy - are driving the evolution of multicomputers inthe direction of more abundant and less expensive computing nodes - the directionof fine-grain multicomputers. This evolution in multicomputer architecture derivesfrom advances in integrated circuit, packaging, and message-routing technologies,and carries far-reaching implications in programming and applications. This thesispursues that trend with a balanced treatment of multicomputer programming andapplications. First, a reactive-process programming system - Reactive-C - isinvestigated; then, a model application- discrete-event simulation - is developed;finally, a number of logic-circuit simulators written in the Reactive-C notation areevaluated.
One difficulty m multicomputer applications is the inefficiency of many distributedalgorithms compared to their sequential counterparts. When better formulationsare developed, they often scale poorly with increasing numbers of nodes,and their beneficial effects eventually vanish when many nodes are used. However,rules for programming are quite different when nodes are plentiful and cheap: Theprimary concern is to utilize all of the concurrency available in an application, ratherthan to utilize all of the computing cycles available in a machine. We have shown inour research that it is possible to extract the maximum concurrency of a simulationsubject, even one as difficult as a logic circuit, when one simulation element is assignedto each node. Despite the initial inefficiency of a straightforward algorithm,as the the number of nodes increases, the computation time decreases linearly untilthere are only a few elements in each node. We conclude by suggesting a techniqueto further increase the available concurrency when there are many more nodes thansimulation elements.