Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
P. 1
The Design and Analysis of Parallel Algorithms

# The Design and Analysis of Parallel Algorithms

Ratings: (0)|Views: 627|Likes:
I originally published this textbook with Oxford University Press. When it went out of print, I reclaimed its copyright and am rewriting it to reflect new developments and the CUDA parallel programming system (using graphics cards).
I originally published this textbook with Oxford University Press. When it went out of print, I reclaimed its copyright and am rewriting it to reflect new developments and the CUDA parallel programming system (using graphics cards).

### Availability:

See more
See less

04/19/2013

pdf

text

original

The Design and Analysis of Parallel Algorithms
Justin R. Smith

Preface
This book grew out of lecture notes for a course on parallel algorithms that Igave at Drexel University over a period of several years. I was frustrated by thelack of texts that had the focus that I wanted. Although the book also addressessome architectural issues, the main focus is on the development of parallel algo-rithms on “massively parallel” computers. This book could be used in severalversions of a course on Parallel Algorithms. We tend to focus on SIMD parallelalgorithms in several general areas of application:
Numerical and scientiﬁc computing. We study matrix algorithms and nu-merical solutions to partial differential equations.
“Symbolicareas, including graph algorithms, symbolic computation,sorting, etc.There is more material in this book than can be covered in any single course, butthere are many ways this book can be used. I have taught a graduate course inparallel numerical algorithms by covering the material in:1. The Introduction.2.
§
2 of chapter 3 (page 57).3. Chapter 4, and;4. Chapter 5.Another possible “track” through this book, that emphasizes symbolic algorithms,involves covering:1. The Introduction;2. Chapter 2;3. and Chapter 6.A graduate course on parallel algorithms in general could follow the sequence:1. The Introduction;2. Chapter 2 — for a theoretical background;3.
§§
1 and 1.2 of chapter 5 — for a taste of some numerical algorithms;4.
§§
1, 2, 2.1, 2.2, 2.3.1 3.5, and if time permits, 3.7.1 of chapter 6.I welcome readers’ comments, and am particularly interested in reports of errorsor suggestions for new topics or exercises. My address is: Justin R. SmithDepartment of MathematicsDrexel UniversityPhiladelphia, PA 19104USA

3
and my electronic mail address is
jsmith@drexel.edu
. Although I will try torespond to readers’ comments, I regret that it will probably not be possible torespond to all of them.I generally used the C* language as a kind of “pseudocode” for describingparallel algorithms. Although Modula* might have been more suitable than C* asa “publication language” for parallel algorithms, I felt that C* was better knownin the computing community
1
. In addition, my access to a C* compiler made itpossible for me to debug the programs. I was able to address many issues thatfrequently do not arise until one actually attempts to program an algorithm. Allof the source code in this book can actually be run on a computer, although I makeno claim that the published source code is optimal.The manuscript was typeset using
AM
S
-L
A
TEX — the extension of L
A
TEX de-veloped by the American Mathematical Society. I used a variety of machines inthe excellent facilities of the Department of Mathematics and Computer Scienceof Drexel University for processing the TEX source code, and used MacDraw ona Macintosh Plus computer to draw the ﬁgures. The main font in the manuscriptis Adobe Palatino — I used the
psfonts.sty
package developed by David M. Jones at the MIT Laboratory for Computer Science to incorporate this font intoTEX.Many of the symbolic computations and graphs were made using the Maplesymbolic computation package, running on my own Macintosh Plus computer.Although this package is not object-oriented, it is very powerful. I am particu-larly impressed with the fact that the versions of Maple on microcomputers are of “industrial strength”.
1
This will probably change as Modula* becomes more widely available.