CoDEx Project: A Hardware/Software Codesign Environment for the Exascale Era
The next decade will see a rapid evolution of HPC node architectures as power and cooling constraints are limiting increases in microprocessor clock speeds and constraining data movement. Applications and algorithms will need to change and adapt as node architectures evolve. A key element of the strategy as we move forward is the co-design of applications, architectures and programming environments, to navigate the increasingly daunting constraint space for feasible exascale system designs.
We propose a comprehensive hardware/software co-design environment, called CoDEx (CoDesign for Exascale) that will enable an unprecedented opportunity for application and algorithm developers to influence the direction of future architectures so that they meet DOE mission needs. CoDEx will combine a highly-configurable, cycle accurate simulation of node architectures, developed through the LBNL Green Flash project, with novel automatic extraction and exascale extrapolation of memory and interconnect traces using the LLNL ROSE compiler framework, and scalable simulation of massive interconnection networks using the Sandia-developed SST/macro event simulator. These tools will enable a tightly-coupled software/hardware co-design process can be applied effectively to the complex HPC application space.
The CoDEx project will provide a valuable research vehicle to understand how the evolution of massively parallel chip architectures can be guided by close-coupled feedback with the design of the application, algorithms, and hardware together. This hardware software co-design process, driven by exascale-driven DOE applications, ensures hardware design decisions do not evolve in reaction to hardware constraints, without regard to programmability and delivered application performance. Our unique co-design methodology will ensure development of exascale computing systems that deliver high impact across science domains, and demonstrate a new model for interaction between laboratories and vendors to create highly effective computing platforms.