Quiz

  1. Which of the following cannot be used to receive a message sent with MPI_Isend?

    A. MPI_Irecv
    B. MPI_Sendrecv
    C. MPI_Test
    D. MPI_Recv
    E. both B and C

  2. You think your code is deadlocking. What is the fastest and surest way to determine where the deadlock occurred?

    A. Recompile with the "debug" option on and attach a debugger the next time it deadlocks
    B. Put in write statements at likely places and recompile
    C. Recompile with the "profile" option on
    D. Stare at the code

  3. A "race condition" causes different runs with the same executable and same data to give different results. Which of the following does not generate a race condition?

    A. reading from a buffer after MPI_Isend
    B. reading from a buffer after MPI_Irecv
    C. writing to a buffer after MPI_Isend
    D. writing to a buffer after MPI_Irecv.
    Assume in each case that neither MPI_Wait nor MPI_Test has been called for the relevant request

  4. Which is a true statement about all blocking sends?

    Upon return from the blocking send, the message has been received by the remote task
    Upon return from the blocking send, the message has left the local node
    Upon return from the blocking send, the message buffer is safe to overwrite

  5. Check all that apply: In the situation where a blocking standard send is executed in advance of its corresponding receive, and the message size is greater than the threshold, which of the following could decrease synchronization overhead on the send?

    Switch to synchronous mode
    Switch to ready mode
    Switch to buffered mode
    Increase the threshold value for the standard send (if your MPI implementation allows this)
    Switch to a non-blocking send

If you would like an explanation of the correct answers to show up along with your score, select Yes in the box below:
Show Answers:





Name (required for Virtual Workshop Certificate):