Lab Home | Phone | Search | ||||||||
|
||||||||
The present uncertainty in computer architectures requires software design to allow applications codes to both be able to scale across 20K to 100K nodes and to be able to run portably on a range of possible nodal architectures with a variety of processor technologies being involved, ranging from i86, ARM, GPU to dataflow and possibly even FPGAs.The Uintah software has been under development at the University of Utah for almost 20 years. The asynchronous many task-based approach that it now employs has proved to be exceptionally robust at enabling complex engineering applications to run at scale. The approach adopted by Uintah has been tested on a broad class of challenging engineering applications and on a broad range of architectures. This approach will be compared against current approaches and scalability results will be shown on a range of machines including the Sunway Tiahulight.Furthermore, the move to new and different architectures requires that the approach used has not only the ability to execute tasks asynchronously but to deal with memory hierarchies and the issue of portability from standard i86architectures to GPUs and to a broad range of other possible architectures. The approach based upon the Kokkos portability library that enables this process in Uintah will be described It willbe shown how Kokkos makes it possible to build a simple clean loop level interface that enables theloops themselves to execute efficiently on different architectures. Extensions to Kokkos in terms of using GPUs and SIMD operations will be described. Lessons for porting to future exascale architectures will be considered. Host: Mikhail Shashkov |