In this module we are going to cover one of the most important parts of MPI - Point to Point Communication. In Point to Point Communication, the message is sent from one sender to one receiver. While sending and receiving messages looks to be a simple procedure, there are multiple variants of doing that. The variety of send and receive protocols is dictated by the necessity to build optimal algorithms for different parallel programs. This is why Point to Point Communication offers many protocols for send and receive calls, such as blocking, non-blocking, buffered or standard protocols. In the Point to Point Communication Part I, a special attention will be given to cover the detailed syntax for all of these protocols. Some short animations are provided to explain in depth the essential differences between all these protocols. Later, in Point to Point Part II, you'll be hearing about other calls that test and enhance the process of sending/receiving messages.