5.1.3 NIC Architecture

for the systems programming arena, where basic client/server functions are implemented. Beowulf users depend on higher-level programming abstractions to develop applications. MPI (Message Passing Interface), discussed in Chapters 8 and 9, and PVM (Parallel Virtual Machine) are the workhorses of scientific computing on Beowulfs, providing not only platform-independent message passing semantics, but also frequently-used parallel programming constructs. These APIs are not familiar to the enterprise systems programmer first entering the world of parallel computing. Enterprise network applications are distributed systems in the truest sense of the term and are developed using higher level protocols that do not require meddling with sockets. Remote procedure calls and distributed object are the two most common programming interfaces applied in this vein; and they are equally suitable to parallel application development. If you come from a corporate computing or distributed applications development background, you will be happy to find that you can apply the same familiar software technologies to develop Beowulf applications.
5.5.1 Remote Procedure Calls
Programming with sockets is part of the client/server programming model, where all data exchange is explicitly performed with sends and receives. This model exposes the underlying transport mechanisms to the programmer and is sometimes compared to programming in assembly language. A remote procedure call (RPC) follows a different paradigm of distributed computation, removing the programmer from explicit message passing. The idea behind a remote procedure call is to make distributed programs look like sequential programs. A procedure is called inside a program, but rather than executing on the local machine, the local program suspends while the procedure executes on a remote machine. When the procedure returns, the local program wakes up, and receives any results that may have been produced by the procedure.
RPC was not designed for parallel programming so much as distributed programming. Parallel programming is a more tightly coupled concept where a single program (conceptually) works on a problem, concurrently executing on multiple processors. Distributed programming is a more loose notion where two or more programs may require services from one another, and therefore need to communicate, but they are not necessarily working on the same problem. Web browsers and web servers are examples of distributed programs. Nevertheless, RPC can be used effectively on Beowulf systems, especially for porting applications that are already designed to use it.
In principle, the remote procedure call is a simple idea that should eliminate all the complexity of explicit message passing. As always, there are some difficulties.

 



How to Build a Beowulf
How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation)
ISBN: 026269218X
EAN: 2147483647
Year: 1999
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net