paper evaluations: 05/18

Alejandro Hevia (ahevia@cs.ucsd.edu)
Thu, 18 May 2000 03:01:21 -0700 (PDT)


Evaluation of paper
"Lightweight Remote Procedure Call"
by B.N. Bershad et al.

The paper introduces a communication facility for efficient (non-inter-machine)
remote procedure calls, called lightweight remote procedure call (LRPC).
The facility is optimized for cross-domain calls (as opposed to cross-machine
calls) using small-sized parameters. The motivation for this decision is the
high frequency of cross-domain calls over cross-machine calls detected on
the main medium-sized kernel based systems. Also, the LRPC scheme tries to
avoid stubs overhead (with simple and automatically generated stubs from
interface descriptions), message copying (by sharing a stack, called the
A-stack, between client and server) and scheduling overhead (by optimizing
the way threads stop and continue execution in different domains).

The paper describes detailed the two main steps in the proposed facility
which are binding and calling. The binding operation links two different
tasks as client and server for a particular interface, and sets up some
basic information (as procedure description lists, linkage records and
needed A-stacks) on the system. Then, when calling a LRPC procedure, a
highly efficient yet safe control transfer is performed from the client thread
to the server thread, optimized by the sharing of data and avoiding
unnecessary system bookkeeping.

The paper's main contribution resides on providing a practical and efficient
scheme that lies between the fine-grain control of capability-based systems
and the abstraction and simplicity of regular remote procedure calls.
Nevertheless, a particular aspect in the motivation that may be subject
to criticism is the ultimate identification of system calls with RPC calls,
which is not evident in large kernel based systems like some UNIX flavors.

------------------------------------------

Evaluation of paper
"Active Messages: a Mechanism for Integrated Communication and Computation"
by T. von Eicken et al.

This paper describes a communication mechanism for large-scale
multiprocessor systems. The scheme utilizes messages whose head
is the address of the remote user-level handler that extracts the message
from the network and integrate it into the on-going computation.
The paper proposes three main directives in order to make this
approach successful: a low startup cost for the handler of incoming
messages, overlapping and coordination of communication with on-going
computation in the processor (asynchronous message arrival) and the
elimination (or reduction) of communication overhead as buffering.

The authors also proposes a programming model to use together with this
scheme, called Split-C, which provides a split-phase remote operation
(with two instructions: PUT and GET) for the C language. As concrete
instances, implementations on nCUBE/2 and CM-5 architectures are analyzed too.
The paper also presents a further refining of the model, called TAM,
that requires compiler-driven memory allocation and re-scheduling of
the tasks in order to improve efficiency and coordination with the
receiving/processing of messages.

The main contribution of the paper is to propose a model for efficient
and lightweight support for message transmission, reception and scheduling,
which by overlapping computation and communication is able to significantly
improve the overall machine computation. Nevertheless, the paper seems
particularly long, over-detailed and often obscure in the use of specialized
notation.