Abstract
Parallelizing an algorithm consists of dividing the computation into a set of sequential operations, assigning the operations to threads, synchronizing the execution of threads, specifying the data transfer requirements between threads and mapping the threads onto processors. With current software technology, writing a parallel program executing the parallelized algorithm involves mixing sequential code with calls to a communication library such as PVM, both for communication and synchronization. This contribution introduces CAP (Computer-Aided Parallelization), a language extension to C++, from which C++/PVM programs are automatically generated. CAP allows to specify (1) the threads in a parallel program, (2) the messages exchanged between threads, and (3) the ordering of sequential operations required to complete a parallel task. All CAP operations (sequential and parallel) have a single input and a single output, and no shared variables. CAP separates completely the computation description from the communication and synchronization specification. From the CAP specification, a MPMD (multiple program multiple data) program is generated that executes on the various processing elements of the parallel machine. This contribution illustrates the features of the CAP parallel programming extension to C++. We demonstrate the expressive power of CAP and the performance of CAP-specified applications.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K. M. Chandy and C. Kesselman. CC++: a declarative concurrent object-oriented programming notation. Research directions in Object Oriented Programming. MIT Press, 1993.
Jack Dongarra and Tom Dunigan. Message-Passing Performance of Various Computers. University of Tennessee and Knoxville,Tech report 95-299, 1995. URL: http://www.netlib.org/utk/people/JackDongarra.html.
Ian Foster and Carl Kesselmann. Language constructs and runtime systems for compositional parallel programming. In Proc. COMPAR94 — VAPP VI (B. Buchberger and J. Volkert, Eds.). LCNS 854, Springer-Verlag, p. 5–16, Sep. 1994.
B. A. Gennart and R. D. Hersch. Comparing multimedia storage architectures. In Proc. Int. Conf. on Multimedia Computing and Systems, IEEE Press, p. 323–329, Washington 1995.
Albert Y. Zomaya. Parallel Computing: paradigm and applications. International Thomson Computer Press, London 1996. URL: http://www.thomson.com/itcp.html
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gennart, B.A., Giménez, J.T., Hersch, R.D. (1996). Computer-assisted generation of PVM/C++ programs using CAP. In: Bode, A., Dongarra, J., Ludwig, T., Sunderam, V. (eds) Parallel Virtual Machine — EuroPVM '96. EuroPVM 1996. Lecture Notes in Computer Science, vol 1156. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540617795_33
Download citation
DOI: https://doi.org/10.1007/3540617795_33
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61779-2
Online ISBN: 978-3-540-70741-7
eBook Packages: Springer Book Archive