The LLNL Co-design Project is an umbrella for a number of efforts, all of which are designed to bridge the application teams to the research and vendor communities planning next generation extreme scale computing. Developers on the Engineering and Physics Integrated Code (EPIC) teams are under continuous pressure to improve the predictability and performance of their applications, as the EPIC codes are in continuous mission delivery. The Co-design project is a way to ensure that those teams have a seat at the table as new architectures, programming models, and other research are proposed. Likewise, their influence on the development of those technologies is critical, so they are usable to the developers responsible for keeping these codes running on the most sophisticated and complex supercomputing architectures.
A typical EPIC code can be over a million lines of code, with reliance on ten or twenty 3rd party libraries for performing tasks like linear solvers, domain decomposition, I/O, performance analysis, material databases, etc… Practical solutions that emphasize performance portability, robustness, and longevity are a priority for ASC co-design. At the same time, understanding long term trends in research and vendor roadmaps are a critical element of co-design that informs the direction these codes must pursue. Co-design is a two-way street designed to inform both the application developer and the system designers.