In fact, MPI and PVM are very different. However, they have the same goal, namely to perform a data exchange / messages between processors, allowing a distributed / parallel calculation.
MPI is the acronym for Message passing interface. This is a well known standard for message transmission, which defines the syntax and semantics of a core library routines for data exchange between processors. Therefore, MPI is not a technology in itself, but simply defining how to exchange data. However, MPI implementations exist in several programming languages (for example, C, C ++, FORTRAN, Python and R), and these implementations are generally referenced simply as MPIs. This fact can be confusing because technology and standard setting have the same name.
In addition, PVM is free software (distributed under both BSD and GNU General Public License) that allows the exchange of data between processors, in the same way as MPI implementations. PVM includes a runtime environment and library for messaging, task and resource management, and error reporting.
You can consult some studies comparing MPI and PVM. Please, see the links below.