Parallel Programming with MPI
by Peter Pacheco.
Introduction
This book is one of the best written
on parallel programming in MPI I have come across. I would
recommend it highly to anyone who would like to further develop
their skills in this area. Currently this page contains solutions
to the problems from the first few chapters in PPMPI.
Most of the exercises from the book are programming assignments
and you will find those linked below. A few, however, are of the
pen and paper kind. In the linked PDF file are a few that I had
time to write up. Please check back often as I intend to put more
up as I have time.
pacheco_problems.pdf
A few people have written with questions/clarifications about
the solutions posted here. With every comment I try to improve
what I have presented here. I really appreciate any feedback I
receive. If anything is unclear or could be improved I would
love to hear about it since I would like these solutions to be
as helpful and informative to as large an audience as possible.
Code For Various Problems:
Chapter 1 - Introduction:
- There were no programming exercises for Chapter 1
Chapter 2 - An Overview of Parallel Computing:
- There were no programming exercises for Chapter 2
Chapter 3 - Greetings!:
- Makefile: to build everything
- prob_3.6.1.c: the "greetings" program
- prob_3.6.2.c: the "greetings" program with wild cards in both source and tag fields
- prob_3.6.3.c: experiments with common MPI_Send and MPI_Recv errors
- prob_3.6.4.c: printing from process p-1
- prob_3.7.1.c: a cyclic chain of messages (process i sends to process (i+1) mod p)
Chapter 4 - An Application: Numerical Integration:
Chapter 5 - Collective Communication:
Chapter 6 - Grouping Data for Communication:
Chapter 7 - Communicators and Topologies:
Chapter 8 - Dealing with I/O:
Chapter 9 - Debugging Your Program:
Chapter 10 - Design and Coding of Parallel Programs:
- Makefile: to build everything
- prob_10.8.1.c: block row distributed parallel Jacobi iterations
- prob_10.9.1.c: parallel Jacobi iterations with random input
- prob_10.9.2.c: a parallel sorting example
- crk: a shell script to generate random input for prob_10.9.2.c (requires the BSD command "jot")
- prob_10.9.2.inp: input file for prob_10.9.2.out
- Problem 10.9.3 (Dense Matrix Transpose)
- prob_10.9.4.c: Coming soon!!!
Chapter 11 - Performance:
Chapter 12 - Advanced Point-to-Point Communication:
Chapter 13 - Advanced Point-to-Point Communication:
Chapter 14 - Parallel Algorithms:
Chapter 15 - Parallel Libraries:
Chapter 16 - Wrapping Up:
- There were no programming exercises for Chapter 16
John Weatherwax
Last modified: Tue Apr 24 06:53:36 EDT 2007