Collective communication involves all the processes in a communicator. (Communicators were introduced in Basics of MPI Programming.) The purpose of collective communication is to manipulate a "common" piece or set of information. Collective communication routines have been built by using point-to-point communication routines. You can build your own collective communication routines, but it might involve a lot of tedious work and might not be as efficient.
Although other message-passing libraries provide some collective communication calls, none of them provides a set of collective communication routines as complete and robust as those provided by MPI. In this talk, we introduce these routines in three categories: synchronization, data movement, and global computation.