Introduction to MPI
  1. First create account to take the online course Introduction to MPI

    SECTIONS 1.1 and 1.2:

  2. Parallel architectures: Parallel computers have two basic architectures: _________________ memory and ______________ memory

  3. In a shared memory system the number of processors is limited usually to ____ - ___.

  4. In distributed memory each node has rapid access to its own ________ memory.

  5. The latest generation of parallel computers uses a _____________ memory architecture.

  6. Problem Decomposition: The first step in designing a parallel algorithm is to rewrite the problem into _________ problems.

  7. In domain decomposition or "data parallelism", data _______________________________ and then mapped to different processors.

  8. Single-Program-Multiple-Data (SPMD) follows this model where the code is
    _____________ all processors.

  9. In the example of using data parallelism to solve the Poisson equation
    how many processors are involved? ____

  10. 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.

  11. In this case, the performance of the code is limited by ______________.

  12. In functional decomposition - also called task parallelism- the problem
    is decomposed into _________________.

  13. In task parallelism, the ________________ are assigned to different processors.

  14. In task parallelism, processors that finish quickly ahead of others are ________________.

  15. Task parallelism is implemented in a _________________ paradigm.

    SECTION 1.3

  16. 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 ______________.

  17. 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

  18. The main goal of writing a parallel program is __________________
    over the serial version.

  19. Load balancing is the task of _______________ among the available processes.

  20. Load balancing is easiest to do when ______________ are performed by all
    the processes (on different pieces of data).

  21. Load balancing is more difficult when _________________ depends on
    the data values being worked on.

  22. Minimizing the total execution time is a major concern in parallel programming. Three components that make up execution time are
    ________________, _________________, and ____________________.

  23. Take the SELF TEST. How many can you get correct on the matching test?

    CHAPTER 2

  24. MPI stands for ____________________ .

  25. Message passing programs consist of multiple instances of ______________
    that communicate by library calls.

  26. There are four classes of library calls:
    1. Calls used to _________, manage, and finally terminate communications.
    2. Calls used to ______________ pairs of processors.
    3. Calls that perform communications operations among ___________ of processors.
    4. Calls used to create arbitrary data types.

  27. The first class of library calls consists of calls for:

  28. The second class of calls, called _____________ communication operations,
    consists of different types of send and __________ operations.

  29. The third class of calls is the collective operations that provide
    syncronization and calls that perform communication and ____________
    operations among groups of processors.

  30. The fourth class of calls gives you flexibility in dealing with complicated
    data _____________ .

  31. The two library calls in helloworld come from which class of calls?

  32. When running, each process executes a copy of ____________.

  33. How can different processors be made to do different things?
    With an "if" conditional statement that distinguishes the processors
    by ____________________

  34. 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.

  35. A message transferring data between processors consists of an envelope and
    a body. The envelope indicates the source and __________ processors.

  36. The body of the message contains the data being sent. The body contains
    1 - the buffer for the data, 2 - the datatype, and 3 - _______________.

  37. A send or receive may be blocking or non-blocking. A blocking send or receive
    does not return from the subroutine call until _______________________.

  38. A non-blocking send or receive returns ___________________.

  39. Examples of collective communications include broadcast operations,
    gather and scatter operations, and _______________ operations.

  40. In a broadcast operation a single process sends a copy of some data to
    ____________________ in a group.

  41. Gather and scatter collective operations _______________ data from one
    processor onto a group of processors.

  42. You might use the reduction collective operation to compute the _______
    of data in an array that is distributed over several processors.

  43. Complete the self test and the matching question.

  44. Implement the serial version of the "course problem"

  45. A communicator is a handle representing a group of processors that
    _______________________.

  46. The communicator name is required as an argument to all point-to-point
    and collective operations. True or False? ________

  47. Within each communicator, processors are numbered consecutively
    starting at ___. This identifier is known as the ______ of the processor.

  48. A processor can determine its rank in a communicator with a call to
    ____________________.

  49. A processor can also determine the size, or number of processors, of any
    communicator to which it belongs with a call to ______________.

  50. Complete the self test for Chap. 3. You may want to run the code problems.

  51. Read through the pseudo-code for the Course Problem.

  52. Read through Chapter 4 and implement the parallel code for the course problem.