The mpC programming language is an extension of the ANSI C language designed specially for programming parallel computations on common networks of heterogeneous computers. HMPI (Heterogeneous MPI) is an extension of MPI obtained by applying the mpC parallel programming model to the message-passing library.
The main goal of parallel computing is to speed up the solution of a single problem. Just this differentiates parallel computing from distributed computing, where the main goal is to make software inherently distributed over different computers work together. In parallel computing the partitioning of the entire program into components running on different computers is a way to accelerate the program rather than an inherent property. Therefore in mpC the primary focus is on how to facilitate the development of highly efficient (and portable) applications that solve problems on common networks of computers.