  While the HPC community is working towards the development of the first
Exaflop computer (expected around 2020), after reaching the Petaflop milestone
in 2008 still only few HPC applications are able to fully exploit the
capabilities of Petaflop systems. In this paper we argue that efforts for
preparing HPC applications for Exascale should start before such systems become
available. We identify challenges that need to be addressed and recommend
solutions in key areas of interest, including formal modeling, static analysis
and optimization, runtime analysis and optimization, and autonomic computing.
Furthermore, we outline a conceptual framework for porting HPC applications to
future Exascale computing systems and propose steps for its implementation.
