next up previous
Next: Non-Java-Based Volunteer Computing Up: Motivations Previous: Motivations

PVM and MPI

In the past five years, this situation has been notably improved by the development of general-purpose and cross-platform parallel processing systems such as Parallel Virtual Machine (PVM) [6] and Message Passing Interface (MPI) [7].In such systems, the amount of manual work required is reduced significantly by the runtime system, which takes care of such things as automatically executing the appropriate code on each of the processors involved, keeping track of existing processors, routing and delivering messages, etc. At the same time, programming is made much easier by a general-purpose applications programming interface (API) which hides most of the details of the runtime system, and allows the user to write parallel programs for NOWs using a relatively simple high-level message-passing model. All this allows programmers to concentrate on writing applications instead of worrying about low-level details.

Although systems like PVM and MPI make programming and setting-up NOWs significantly easier than in earlier ad hoc systems, setup requirements still impose practical limits on the size of NOWs that can be used with these systems. To perform a parallel computation using PVM, for example, one must:

1.
Install the PVM daemon on all machines to be used in the computation.
2.
Compile the application binaries for each target architecture.
3.
Distribute these binaries to all the machines (either by explicitly copying them, or by using a shared file system).
4.
Provide the owner of the computation with remote shell access (i.e., the ability to execute shell functions and programs remotely) on all machines, to allow remote execution of the PVM daemon and the application binaries.

Clearly, this process not only requires a lot of effort on the part of the system administrator, but also requires a lot of trust between the involved machines, and consequently, a lot of prior human communication between the administrators of different machines. For this reason, the use of PVM and MPI has mostly been restricted to internal use within research institutions, where such close coordination is possible.


next up previous
Next: Non-Java-Based Volunteer Computing Up: Motivations Previous: Motivations
Luis Sarmenta
1/2/1998