  Program correctness is one of the most difficult challenges in parallel
programming. Message Passing Interface MPI is widely used in writing parallel
applications. Since MPI is not a compiled language, the programmer will be
enfaced with several programming bugs.This paper presents the most common
programming bugs arise in MPI programs to help the programmer to compromise
between the advantage of parallelism and the extra effort needed to detect and
fix such bugs. An algebraic specification of an MPI-like programming language,
called Simple MPI (SMPI), to be used in writing MPI programs specification has
also been proposed. In addition, both nondeterminacy and deadlocks arise in
SMPI programs have been verified using Maud system.
