Towards aspect-oriented programming support for cluster computing

View/ Open
Date
2002Author
Wolenetz, Matthew David
Mandviwala, Hasnain A.
Adhikari, Sameer
Angelov, Yavor
Ramachandran, Umakishore
Mackenzie, Kenneth M.
Rehg, James M.
Metadata
Show full item recordAbstract
Interactive multimedia applications (such as audio/video processing) are
good candidates for cluster computing. Such applications are best represented
as coarse-grain dataflow graphs and are rich in pipelined, task, and data
parallelism. Specification of the strategies for mapping computational abstractions to compute nodes, and their plumbing are two
important issues in the design of such complex parallel and distributed
applications. Due to the varieties of parallelism that are available in such
applications, the space of strategies to be explored can be vast. We have
developed an aspect-oriented programming language for cluster computing called STAGES. This language allows the algorithm design
to be disentangled from the connection management and performance concerns.
STAGES provides a simple syntax for specifying the connections among threads
and data abstractions, and their mapping onto the nodes of the cluster. The
current implementation targets the Stampede cluster programming library.
However, the language is general and can be retargeted to a different set of
abstractions.
In this paper, we present STAGES, its implementation, and its utility for
mapping complex applications onto a cluster. We also present performance
results from exploring the parallelism space for two such applications on a
17-node cluster of 8-way SMPs (Intel Xeon processors) interconnected by
Gigabit Ethernet.