Journal Article
Machine Learning

Implementing remote procedure calls

Andrew Birrell(Palo Alto Research Center), Bruce Jay Nelson(Palo Alto Research Center)
February 1, 1984ACM Transactions on Computer Systems1,998 citations

2.0k

Citations

103

Influential Citations

ACM Transactions on Computer Systems

Venue

1984

Year

Abstract

Remote procedure calls (RPC) appear to be a useful paradig m for providing communication across a network between programs written in a high-level language. This paper describes a package providing a remote procedure call facility, the options that face the designer of such a package, and the decisions ~we made. We describe the overall structure of our RPC mechanism, our facilities for binding RPC clients, the transport level communication protocol, and some performance measurements. We include descriptioro~ of some optimizations used to achieve high performance and to minimize the load on server machines that have many clients.

Analysis

Why This Paper Matters

This paper is a seminal work in distributed systems, introducing remote procedure calls (RPC) as a practical paradigm for network communication. At a time when network programming was complex and error-prone, RPC abstracted the details of message passing into a familiar procedure call model, making distributed computing accessible to high-level language programmers. The paper's comprehensive treatment of design options—binding, transport, and optimization—provided a blueprint for future systems.

The paper's influence is evident in its high citation count (1998) and its role in shaping subsequent RPC frameworks (e.g., Sun RPC, DCE RPC, and modern gRPC). It addressed both conceptual and practical challenges, such as how to locate services and how to achieve performance comparable to local calls, which remain relevant today.

Technical Contributions

The paper makes several key technical contributions:

  • RPC Paradigm: Formalized RPC as a language-level construct, hiding network complexity.
  • Binding Mechanism: Introduced a dynamic binding facility that allows clients to locate and connect to servers, supporting flexibility and fault tolerance.
  • Transport Protocol: Designed a custom transport protocol tailored for RPC, ensuring reliability and efficiency.
  • Optimizations: Described optimizations like lightweight marshaling, connection reuse, and server-side concurrency control to reduce overhead and improve throughput.
  • Performance Measurement: Provided empirical data to validate the design choices, a rarity in systems papers of that era.

Results

While the abstract does not give specific performance numbers, it states that the optimizations achieved high performance and minimized server load. The paper likely includes latency and throughput comparisons against naive implementations, demonstrating that RPC overhead could be made acceptable for practical use. These measurements were crucial for convincing the community of RPC's viability.

Significance

The paper's broader impact on AI and computing is foundational. Although not directly about machine learning, RPC enabled the distributed computing infrastructure that modern AI relies on—training clusters, model serving, and data pipelines. The principles of binding, protocol design, and optimization are echoed in modern distributed training frameworks and microservices architectures. For AI practitioners, understanding RPC helps in designing scalable systems for model inference and training, where efficient communication is critical. The paper remains a classic reference for system design, teaching that careful attention to communication can yield order-of-magnitude improvements in distributed applications.