Communication is essential to do parallel programming in distributed systems. A distributed memory system consists of processors and their local memories connected by an interconnection network. Since there is no global memory, it is necessary to move data from one local memory to another, ultimately by means of message-passing. This may done through send/receive API calls which must be written into the application program or by some higher-level software.
In this section we discuss three different communication methods in Java: socket, RMI (Remote Method Invocation), and message passing libraries. The first approach is to use the socket interface in the standard Java API. The second is to work through Java's RMI. Finally the third is to work through a Java interface to the message-passing standard, MPI [#!MPIFORUM!#]. Message-passing remains one of the most effective and widely used communication paradigms in parallel computing.