Active Messages: a Mechanism for Integrated Communication and Computation

Notes by Yu Zhang, February 19, 1998


Highlevel Idea

1. Algorithmic communication model => essential properties of the communicati on mechanism:

2. Find a communication model compatible with h/w functionality. 


Traditional Send/Receive Model

1. Synchromous model
    The send blocks until the corresponding receive is executed, only then is data transfered (3-phase protocol)
    pros: simple, no buffer required at the two ends
    cons: network latency can't be hidden
2. Asynchronous sending
    The send is non-blocking. The message layer buffers the message until the network port is available.
    The message will be buffered at the receiver waiting for dispatching.
    pros: overlapping of computation and communication
    cons: large overhead due to buffer management. Overlappin g is only effective for large messages. 


Active Message (AM)  Model

    design characteristics:

Q: How generally can the requirement of uniform code image be satisfied?
Q: As to deadlock avoidance, is the condition necessary and sufficient?


Implementation of AM on Message-passing Architecture
Different network and network interface supports in nCUBE/2 and CM-5 on

decide different implementation of AM:

Q: From the instruction breakdown of AM implementation on nCUBE/2, we see that AM specific crawl-out account for a substantial part of the overhead.  Could you figure out how to cut down the crawl-out overhead or eliminate it?


Split-C Programming Model
provide split-phase, non-blocking, remote memory operations in C.

programming pattern:

Q: The relation and difference of AM, shared memory, and memory-mapping communication in terms of mechanism and responsibility of programmers. 



Using AM to support languages with dynamic parallelism (defeat the message driven architectures)

1. Message Driven Architectures

Message Driven Architectures vs. Active Message

Message Driven 

role of handler: arbitrary computation which can suspend. Thus 

  • dynamic allocatoin: size and lifetime of scheduling queue are arbitrary
  • complex scheduling
Active Message 

role of handler: get the message out of the network and into the ongoing computation of the recipient. Thus 

  • buffer only for network transport
  • simple scheduling

Q: Why h/w support of message driven architecture is counter productive?
message-by-message scheduling inherent in the model results in short computation run-lengths. This lacking of locality prevents the utilization of large register sets.

2. TAM ---- Simulating Message Driven Architectures with AM
TAM(Thread Abstract Machine), a fine-grain parallel execution model based on AM.
Compiler-assisted allocation and scheduling:


H/W Support for AM (almost all discussing points)
1. Network Interface
goal: reduce the overhead of composing a msg, esp for small msgs

2. Processor support for msg handlers
goal: efficiency of background computation

Observation: