Due to dramatic increases in microprocessor performance, medium-grain ensemble multi-processors have become an economical hardware platform on which to solve compute-intensive problems. Unfortunately, the use of these systems to solve such problems is hampered by a lack of understanding about the behavior of parallel programs at all levels of execution | hardware, operating system, and runtime ...