Skip to main content

Computer-assisted generation of PVM/C++ programs using CAP

  • Session F10: Programming Environments
  • Conference paper
  • First Online:
Parallel Virtual Machine — EuroPVM '96 (EuroPVM 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1156))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. M. Chandy and C. Kesselman. CC++: a declarative concurrent object-oriented programming notation. Research directions in Object Oriented Programming. MIT Press, 1993.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. Albert Y. Zomaya. Parallel Computing: paradigm and applications. International Thomson Computer Press, London 1996. URL: http://www.thomson.com/itcp.html

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Arndt Bode Jack Dongarra Thomas Ludwig Vaidy Sunderam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics