Using simulation to design extremescale applications and architectures: programming model exploration

  • Authors:
  • Curtis L. Janssen;Helgi Adalsteinsson;Joseph P. Kenny

  • Affiliations:
  • Sandia National Laboratories, Livermore, CA;Sandia National Laboratories, Livermore, CA;Sandia National Laboratories, Livermore, CA

  • Venue:
  • ACM SIGMETRICS Performance Evaluation Review - Special issue on the 1st international workshop on performance modeling, benchmarking and simulation of high performance computing systems (PMBS 10)
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

A key problem facing application developers is that they are expected to utilize extreme levels of parallelism soon after delivery of future leadership class machines, but developing applications capable of exposing sufficient concurrency is a time consuming process requiring experimentation. At the same time, due to the expense of building and operating an exascale machine, it will be necessary to apply tighter engineering margins to their design. Simple metrics such as the computation-communication ratio will not sufficiently specify machine requirements. Simulation fills this gap, allowing the study of extreme-scale architectures with the explicit inclusion of the complex interactions between the various hardware and software components, and can be used for correctness-checking as well as performance estimation. The simulator we discuss in this paper can be driven by reading trace files, typically generated by an actual application that has been run on real hardware, or by using a skeleton application. The skeleton application is designed to have the control flow of a real application, but with expensive computations and large data transfers replaced by discrete events for which the timings are determined by models. Using skeleton applications, we can predict application performance at levels of parallelism unobtainable on any current computational platform. The skeleton application can be modified to experiment with different communication strategies and programming models. Since the machine being simulated is in our control, we can experiment with different network topologies, routing algorithms, bandwidths, latencies, failure modes, core-to-node ratios, etc. In this paper, we use the Structural Simulation Toolkit macroscale components for coarse-grained simulation to illustrate the exploration of alternative programming models at extreme scale.