Introduction to MPI
- First create account to take the online course Introduction to MPI
- Enter your name
- Use your user name as your "WebCT ID"
- You can use your syslab tjhsst.edu email (user@tjhsst.edu)
SECTIONS 1.1 and 1.2:
- Parallel architectures: Parallel computers have two basic architectures:
_________________ memory and ______________ memory
- In a shared memory system the number of processors is limited usually to
____ - ___.
- In distributed memory each node has rapid access to its own ________
memory.
- The latest generation of parallel computers uses a
_____________ memory architecture.
- Problem Decomposition: The first step in designing a parallel algorithm
is to rewrite the problem into _________ problems.
- In domain decomposition or "data parallelism", data
_______________________________ and then mapped to different processors.
- Single-Program-Multiple-Data (SPMD) follows this model where the code is
_____________ all processors.
- In the example of using data parallelism to solve the Poisson equation
how many processors are involved? ____
- An example domain decomposition strategy turning out not to be
the most efficient algorithm for a parallel program is when the pieces of
data assigned to the different processes require ___________ of time to
process.
- In this case, the performance of the code is limited by ______________.
- In functional decomposition - also called task parallelism- the problem
is decomposed into _________________.
- In task parallelism, the ________________ are assigned to different
processors.
- In task parallelism, processors that finish quickly ahead of others are ________________.
- Task parallelism is implemented in a _________________ paradigm.
SECTION 1.3
- There are two approaches to writing parallel programs:
One approach is the use of a data-parallel language such as High Performance Fortran (HPF) or OpenMP
The other approach is the ______________.
- In message passing it is left up to the programmer to explicitly divide
_______________ across processors as well as manage the communications
among them.
SECTION 1.4
- The main goal of writing a parallel program is __________________
over the serial version.
- Load balancing is the task of _______________ among the available processes.
- Load balancing is easiest to do when ______________ are performed by all
the processes (on different pieces of data).
- Load balancing is more difficult when _________________ depends on
the data values being worked on.
- Minimizing the total execution time is a major concern in parallel
programming. Three components that make up execution time are
________________, _________________, and ____________________.
- Take the SELF TEST. How many can you get correct on the matching test?
CHAPTER 2
- MPI stands for ____________________ .
- Message passing programs consist of multiple instances of ______________
that communicate by library calls.
- There are four classes of library calls:
- Calls used to _________, manage, and finally terminate communications.
- Calls used to ______________ pairs of processors.
- Calls that perform communications operations among ___________ of processors.
- Calls used to create arbitrary data types.
- The first class of library calls consists of calls for:
- starting communications
- ________________________
- creating subgroups of processors
- and identifying which processor is running a particular instance of a program
- The second class of calls, called _____________ communication operations,
consists of different types of send and __________ operations.
- The third class of calls is the collective operations that provide
syncronization and calls that perform communication and ____________
operations among groups of processors.
- The fourth class of calls gives you flexibility in dealing with complicated
data _____________ .
- The two library calls in helloworld come from which class of calls?
- When running, each process executes a copy of ____________.
- How can different processors be made to do different things?
With an "if" conditional statement that distinguishes the processors
by ____________________
- The elementary communication operation in MPI is called point-to-point communication
Point-to-point communication is two-sided, this means that
both an explicit ___________ and _____________ are required.
- A message transferring data between processors consists of an envelope and
a body. The envelope indicates the source and __________ processors.
- The body of the message contains the data being sent. The body contains
1 - the buffer for the data, 2 - the datatype, and 3 - _______________.
- A send or receive may be blocking or non-blocking. A blocking send or
receive
does not return from the subroutine call until _______________________.
- A non-blocking send or receive returns ___________________.
- Examples of collective communications include broadcast operations,
gather and scatter operations, and _______________ operations.
- In a broadcast operation a single process sends a copy of some data to
____________________ in a group.
- Gather and scatter collective operations _______________ data from one
processor onto a group of processors.
- You might use the reduction collective operation to compute the _______
of data in an array that is distributed over several processors.
- Complete the self test and the matching question.
- Implement the serial version of the "course problem"
- A communicator is a handle representing a group of processors that
_______________________.
- The communicator name is required as an argument to all point-to-point
and collective operations. True or False? ________
- Within each communicator, processors are numbered consecutively
starting at ___. This identifier is known as the ______ of the
processor.
- A processor can determine its rank in a communicator with a call to
____________________.
- A processor can also determine the size, or number of processors, of any
communicator to which it belongs with a call to ______________.
- Complete the self test for Chap. 3. You may want to run the code
problems.
- Read through the pseudo-code for the Course Problem.
- Read through Chapter 4 and implement the parallel code for the course
problem.