{'fraction_non_alphanumeric': 0.020338983050847456, 'fraction_numerical': 0.002033898305084746, 'mean_word_length': 5.589285714285714, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Towards aspect-oriented programming support for cluster computing

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 calledSTAGES. 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 theStampedecluster 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.