The best way to understand how event notification works, is to use a mail delivery analogy. Think of yourself as your program. If you use a thread to wait for events (mpiNotifyEventWait), you are waiting for the mail carrier (Event Manager). If you are polling for events (mpiNotifyEventWait), you check the mail periodically.