Abstract |
Although programming models and languages appear to be converging, the computational workloads and communication patterns for scientific applications vary dramatically, depending, in part, on the nature of the problem the applications are solving. In this paper, we investigate the scalability, architectural requirements, and inherent behavioral characteristics of eight scalable scientific applications. We provide a comparative analysis of these applications and isolate their performance characteristics using empirical measurements. We refine our analysis into precise explanations of the factors that influence performance and scalability for each application; we distill these factors into common traits and overall recommendations. Initially, we examine the overall scalability of each application. Then, based on these results, we iteratively investigate the primary factors that affect scalability and performance using a combination of measurement techniques, such as message tracing and monitoring hardware counters, until we can understand each applications primary performance properties and the root causes of those properties. |