Zhanhai QIN (zqin@cs.ucsd.edu)
Thu, 18 May 2000 02:34:17 -0700


Active Messages: a Mechanism for Integrated Communication and

The paper proposes a new approach for message driven communication,
they called "active messages". The main difference of "active messages"
from the traditional messages is that they avoided buffering for message

transportation through network. An active message acturally contains a
pointer(address) of a user-level handler which is executed upon message
arrival with the message body as argument. What the handlers are
to do is to extract the date out of the transportation layer of the net-

work and integrate them for the user-level applications. With active
ages, they can increase the overlap of communication with computation.
Hense the throughput of the network is better and the mechanism is much
like pipelining in computer architecture. The author analyzed the short-

cuts of current message driven architectures and propsed some
on network interface design and processors.

What I was considering while reading the paper was that what's the diff-

erence between active messages and RPC or even LRPC. We'd say that both
approaches have high network throughput because communications in RPC
also overlaps with computations(executions of procedures). I think the
advantage of active messages is that there won't have too much buffering

and data exchanging among layers in a single node. But the disadvantage
is that it is not synchronous. So it's not good for the programmers who
are familiar with stand-alone workstation programming. But RPC works
great in that case.

Lightweight Remote Procedure Call

LRPC was designed to alleviate the heavy overhead of RPC for higher
performance without lose of protections among domains on the same
machine. LRPC introduced "simple control transfer", "simple data
transfer", "simple stubs", "design for concurrency" to achieve the

The paper first investigated the frequency of cross-machine-boundary
calls and concluded that only a very small fraction of RPCs are
truly remote and parameter size is generally small and fixed for
non-RPCs. It also showed the disappointing performance of cross-
machine-boundary calls due to heavy overheads, offering motivation
for the LRPCs.

Two main features of LRPC are binding and calling. LRPC binding
concepts are borrowed from RPC, and LRPC calling concepts are
borrowed from protected procedure call(kernel trap). And the paper
also introduced the application of LRPC on multiprocessor archi-
tectures. LRPC reduces context-switch overhead by caching domains
on idle processers and increases throughput by minimizing the use
of shared data structures on the critical domain transfer path.
The optimization also includes the tricks on argument copying.

To achieve good performance on cross-domain proceures by avoiding
needless scheduling, excessive run-time indirection, unnecessary
access validation, redundant copying,a nd lock contention.

tel;fax:(858) 534-7029
tel;work:(858) 534-8174
org:U. of California, San Diego;Computer Science & Engineering
adr;quoted-printable:;;CSE 0114 U of CA, San Diego=0D=0A9500 Gilman Dr.;La Jolla;CA;92093;U.S.
fn:Zhanhai Qin