TOP-C: Mature Parallel Computing

Gene Cooperman
Northeastern University

Thursday, February 3, Volen 101, 2:00-3.00 pm

TOP-C (Task-Oriented Parallel C, http://www.ccs.neu.edu/home/gene/annot-bibl/papers-par.html ) is a mature system to support parallel applications over distributed memory architectures. Its two primary design goals are to support high-latency commodity hardware clusters (Beowulf, NoW, etc.) and to support unsophisticated programmers with no previous exposure to parallelism. These two design goals dramatically differentiate TOP-C from more standard software, such as MPI (Message Passing Interface), and from such ambitious software as the Legion meta-computing environment.

The talk will describe how these two design goals led over a five year period to a flexible, simple model of parallelism that has been tested in numerous collaborations that each led to a largest computation of its type, to date. In each case, the fastest parallel algorithm was decided in advance, and the algorithm was then faithfully implemented in TOP-C. The portion of the code related to parallelism typically consists of less than 20 lines. Experience with this process has led to a gradual evolution of TOP-C, while maintaining its simple and flexible programming model.

The TOP-C model has been ported to C, GAP (Groups, Algorithms and Programming), and LISP. A brief demonstration will be provided in ParGAP (a share package of GAP accepted through a formal refereeing process). The simplicity of the TOP-C model has naturally led to such desirable features as latency tolerance, load balancing, overlap of computation and communication, re-use of legacy sequential code, checkpointing, robustness as processes die or new processes are spawned, meta-computing over the Web, etc. Future directions for extensions to the TOP-C model will also be discussed.

Host: Mitch Cherniack