Parallel Programming Using C++

Portada
Gregory V. Wilson, Paul Lu
MIT Press, 1996 M07 8 - 794 páginas
Foreword by Bjarne Stroustrup Software is generally acknowledged to be the single greatest obstacle preventing mainstream adoption of massively-parallel computing. While sequential applications are routinely ported to platforms ranging from PCs to mainframes, most parallel programs only ever run on one type of machine. One reason for this is that most parallel programming systems have failed to insulate their users from the architectures of the machines on which they have run. Those that have been platform-independent have usually also had poor performance. Many researchers now believe that object-oriented languages may offer a solution. By hiding the architecture-specific constructs required for high performance inside platform-independent abstractions, parallel object-oriented programming systems may be able to combine the speed of massively-parallel computing with the comfort of sequential programming. Parallel Programming Using C++ describes fifteen parallel programming systems based on C++, the most popular object-oriented language of today. These systems cover the whole spectrum of parallel programming paradigms, from data parallelism through dataflow and distributed shared memory to message-passing control parallelism. For the parallel programming community, a common parallel application is discussed in each chapter, as part of the description of the system itself. By comparing the implementations of the polygon overlay problem in each system, the reader can get a better sense of their expressiveness and functionality for a common problem. For the systems community, the chapters contain a discussion of the implementation of the various compilers and runtime systems. In addition to discussing the performance of polygon overlay, several of the contributors also discuss the performance of other, more substantial, applications. For the research community, the contributors discuss the motivations for and philosophy of their systems. As well, many of the chapters include critiques that complete the research arc by pointing out possible future research directions. Finally, for the object-oriented community, there are many examples of how encapsulation, inheritance, and polymorphism can be used to control the complexity of developing, debugging, and tuning parallel software.
 

Contenido

ABC++
1
Processors
15
1
21
9
31
The Amelia Vector Template Library
43
6
66
Example Programs
71
7
89
ICC++
343
Mentat
383
MPC++
429
MPI++
465
pC++
507
POOMA
547
71
576
TAU
589

CC++
91
Overview of CC++
97
4
116
7
126
CHAOS++
131
2
134
Measurement
166
CHARM++
175
COOL
215
C++
257
C
297
UC++
629
Contributors
671
Appendix A An Overview of C++
681
Appendix B An Overview of Parallel Computing
689
An Overview of Polygon Overlay
701
Bibliography
709
72
725
83
731
Citation Author Index
737
85
739
Derechos de autor

Otras ediciones - Ver todas

Términos y frases comunes

Pasajes populares

Página 709 - Johnson, D. Kranz, J. Kubiatowicz, B.-H. Lim, K. Mackenzie, and D. Yeung. The MIT Alewife Machine: Architecture and Performance.
Página 712 - F. Bodin, P. Beckman, D. Gannon, S. Yang, S. Kesavan, A. Malony, B. Mohr, Implementing a Parallel C++ Runtime System for Scalable Parallel Systems, Proc.

Acerca del autor (1996)

Gregory Wilson is Head of Instructor Training at Data Camp, Cofounder of Software Carpentry, and editor of Beautiful Code, Making Software, and The Architecture of Open Source Applications.

Información bibliográfica