Heterogeneous Parallel Virtual Machine

Timothy Baldridge writes “In the past there has been several approaches to the distributed program idea. One has been to go for the “Renderfarm” method. In this method the application is given the ability to communicate with other processes on other machines though a given protocol. However, this normally requires the creation of a protocol and a fair amount of knowledge of TCP/IP. Each program using this method must have it’s own way of finding the nodes, distributing the data, and running code on each of the nodes (i.e. there is no standard way of going about it).

To get rid of some of the complications of this last method, PVM was created. PVM (and the Beowulf clusters that run it) are based on an uniform API that allows multiple process to communicate with each other in a more transparent way. However, there is no mechanism for communicating between machines of varying architectures, especially when these machines differ in the way they order the bytes in a word or double word, known as little endian and big endian machines. There needs to be one uniform API for multiple processes on multiple architectures to communicate with each other in a transparent way.

Granted it is probably possible to modify and port the Linux PVM libraries to other architectures such as PPC, SPARC, MIPS, XScale, and Ia64. However these systems will still need to be running Linux for the API to communicate properly with the OS. Some companies and organizations would love to be able to get the benefit of PVM but are unwilling to switch to Linux and are happy with their current OS. Because of this, we must look in to a new method of PVM for a heterogeneous network.

HPVM will try to solve these problems by designing a Heterogeneous Parallel Virtual Machine (hereafter known as HPVM). The main goal is for a user to be able to create a single super machine from a collection of smaller machines.”

Link: sourceforge.net