An Active message (in computing) is a messaging object capable of performing processing on its own. This contrasts with traditional computer-based messaging systems in which messages are passive entities with no processing power.
Distributed Memory Programming
Active messages are communications primitive for exploiting the full performance and flexibility of modern computer interconnects. They are often classified as one of the three main types of distributed memory programming, the other two being data parallel and message passing. The view is that Active Messages are actually a lower-level mechanism that can be used to implement data parallel or message passing efficiently.
The basic idea is that each message has a header containing the address of a userspace handler to be executed upon message arrival, with the contents of the message passed as an argument to the handler. Because the address of the handler must be known when composing the message, this mechanism is restricted to the SPMD programming model.
Other versions of active messages carry the actual code itself, not a pointer to the code. The message typically carries some data. On arrival at the receiving end, more data is acquired, and the computation is performed (or, rather, the computation in the active message is performed, making use of data in the message as well as data in the receiving node. This form of active messaging is not restricted to SPMD, although originator and receiver must share some notions as to what data can be accessed at the receiving node.
Every machine has its own address space and memory location 0xF02E is a different physical location on each processor.Moreover, all processors run the same program.
- "The operational semantics of an active message system", ACM Portal. Accessed July 20, 2009
|This software engineering-related article is a stub. You can help Wikipedia by expanding it.|