An exascale approach to software and hardware design

William Kramer, David Skinner

Research output: Contribution to journalArticlepeer-review


For the past 10-15 years, horizontal layers of software and hardware design and development have been the de facto standard of creating high-performance computing (HPC) software. The horizontal design approach leads to the development of discrete components in the software stack and independent hardware components - all developed with different methods, requirements and quality dominated by plug-and-play componentization that is focused on horizontal functionality and portability. The horizontal software paradigm will break down at the exascale due to the system scale and complexity. The vertical approach needed for the exascale should include resilience (reliability and fault tolerance); performance; programmability; computational models; I/O; consistency and verification; resource management; and power management/ total cost of ownership. To make the exascale an effective reality, instead of thinking of integration as the final step in defining and developing an exascale system, it will have to be the first step.

Original languageEnglish (US)
Pages (from-to)389-391
Number of pages3
JournalInternational Journal of High Performance Computing Applications
Issue number4
StatePublished - 2009
Externally publishedYes


  • I/O
  • Operating systems
  • Performance measurement
  • Resiliency
  • Software design

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture


Dive into the research topics of 'An exascale approach to software and hardware design'. Together they form a unique fingerprint.

Cite this