The ENSEMBLE communication library exploits overlapping of message aggregat
ion (computation) and DMA transfers (communication) for embedded multi-proc
essor systems. In contrast to traditional communication libraries, ENSEMBLE
operates on n-dimensional data descriptors that can be used to specify oft
en-occurring data access patterns in n-dimensional arrays. This allows ENSE
MBLE to setup a three-stage pack-transfer-unpack pipeline, effectively over
lapping message aggregation and DMA transfers. ENSEMBLE is used to support
Spar/Java, a Java-based language with SPMD annotations. Measurements on a T
riMedia-based multi-processor system show that ENSEMBLE increases performan
ce up to 39% for peer-to-peer communication, and up to 34% for all-to-all c
ommunication.