Academic Commons


The RB Language

Smith, Jonathan M.; Maguire, Gerald Q.

Typical algorithms for distributed or parallel computations are cooperative, meaning that the sequential component is broken down into cooperating pieces, which are distributed across available hardware. An approach which has recently gained some attention is competitive processing, where several versions of a sequential program are distributed across available processors to gain performance from algorithmic diversity. There is also potential for fault tolerance from available hardware by executing the sequential versions, called alternatives, on a distributed configuration. Schemes for implementing competitive concurrent processing have been described in the literature, but there is little implementation experience. RB is a practical step towards gaining such experience. RB is a programming language for specifying alternative methods of performing a computation, where at most one of the results of the alternatives is used. Our prototype implementation uses a combination of a language preprocessor for C and a runtime library to provide the desired semantics. Using other base programming languages, e.g., Ada, or other methods of managing alternatives is straightforward.



More About This Work

Academic Units
Computer Science
Department of Computer Science, Columbia University
Columbia University Computer Science Technical Reports, CUCS-364-88
Published Here
April 20, 2011