MPI provides four send modes: standard, ready, synchronous and buffered. In almost all cases, standard mode is the right one to use for a portable application. For certain implementations, ready or synchronous mode perform better than standard mode for some message sizes, but the difference is small and the range of message sizes varies for different implementations and different release numbers. Furthermore, these modes often have unexpectedly poor behavior -- for instance, ready mode is slower than standard mode for small messages in several implementations. Buffered mode is also tempting to use, especially for users porting codes from systems that provide a lot of buffering. But it is quite often the wrong thing. It is usually unnecessary (non-blocking communication can be used instead); it is usually slow; it can be difficult to use correctly.