Implementing Distributed Algortihms using Remote Procedure Call
Henri E. Bal, Robbert van Renesse, Andrew S. Tanenbaum · Digital Academic REpository of VU University Amsterdam (Vrije Universiteit Amsterdam) · 1987
Remote Procedure Call (RPC) is a simple yet powerful primitive for communication and synchronization between distributed processes.A problem with RPC is the fact that it tends to decrease the amount of parallelism in the application, due to its synchronous nature.This paper shows how light-weight processes can be used to circumvent this problem.The combination of blocking RPC calls and light-weight processes provides both simple semantics and efficient exploitation of parallelism.The communication primitive of the Amoeba Distributed Operating System is based on this combination.We will describe how two important classes of algorithms, branch and bound and alpha-beta search, can be run in a parallel way using this primitive.The results of some experiments comparing these algorithms on a single processor and on Amoeba are also discussed.