**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.pdfA 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.

- There were no programming exercises for Chapter 1
- There were no programming exercises for Chapter 2
- 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)

- Makefile: to build everything

- prob_4.6.1.c: the parallel trapezoidal rule

- prob_4.6.2.c: the parallel trapezoidal rule using process 0 to broadcast parameters

- prob_4.7.1.c: a menu driven parallel trapezoidal rule

- prob_4.7.2.a.c: serial Simpson's rule

- prob_4.7.2.b.c: parallel Simpson's rule

- Makefile: to build everything

- prob_5.12.1.c: a block row parallel code to generate a matrix and a vector and print them

- prob_5.12.2.c:
**Coming soon!!!**

- prob_5.12.3.c: a block row parallel matrix-matrix product

- Makefile: to build everything

- prob_6.9.1.c:
**Coming soon!!!**

- prob_6.9.2.c:
**Coming soon!!!**

- prob_6.9.3.c: using MPI_Type_struct to build a sparse matrix type

- prob_6.10.1.a.c: print a square matrix distributed by block columns

- prob_6.10.1.b.c: read a square matrix by block rows and distribute by block columns

- prob_6.10.1.b.dat: a sample input file for prob_6.10.1.b.out

- prob_6.10.1.b.dat: a sample input file for prob_6.10.1.b.out
- prob_6.10.2.c: parallel read and perform matrix-vector multiply

- prob_6.10.3.c: a derived data type representing a matrix column is received a matrix row

- prob_6.10.4.c: a derived data type representing a sparse matrix column is received as a matrix row

- Makefile: to build everything

- prob_7.11.1.a.c: experimenting with MPI_Comm_create

- prob_7.11.1.b.c: experimenting with MPI_Comm_split

- prob_7.12.1.c:
**Coming Soon!!!**

- prob_7.12.2.c:
**Coming Soon!!!**

- Coming soon!!!
- Coming soon!!!
- Makefile: to build everything

- prob_10.8.1.c: block row distributed parallel Jacobi iterations

- prob_10.8.1.inp: input file for prob_10.8.1.out

- prob_10_8_1_truth.m: check results of prob_10.8.1.out using Matlab

- prob_10.8.1.inp: input file for prob_10.8.1.out
- prob_10.9.1.c: parallel Jacobi iterations with random input

- prob_10.9.1.inp: matrix size and convergence criterion for prob_10.9.1.out

- prob_10.9.1.inp: matrix size and convergence criterion for prob_10.9.1.out
- 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

- crk: a shell script to generate random input for prob_10.9.2.c (requires the BSD command "jot")
- Problem 10.9.3 (Dense Matrix Transpose)
- prob_10.9.3_br.c: block row distributed dense matrix transpose (uses MPI_Alltoall)

- prob_10.9.3_cr.c: cyclic row distributed dense matrix transpose

- prob_10.9.3.inp: input file for prob_10.9.3.out

- prob_10.9.3_br.c: block row distributed dense matrix transpose (uses MPI_Alltoall)
- prob_10.9.4.c: Coming soon!!!

- Coming soon!!!
- Coming soon!!!
- Coming soon!!!
- Coming soon!!!
- Coming soon!!!
- There were no programming exercises for Chapter 16

John Weatherwax Last modified: Tue Apr 24 06:53:36 EDT 2007