A Design Proposal for a Next Generation Scientific Software Framework

High performance scientific software has many unique and challenging characteristics. These codes typically consist of many different stages of computation with different algorithms and components with diverse requirements. These heterogeneous algorithms, coupled with platform heterogeneity, create serious performance challenges. To retain performance, portability and maintainability of the software on heterogeneous platforms, more abstractions have to be integrated into the software design. Most of these abstractions are still in the research stage and scientific codes have barely started using them. However, it is urgent that we start considering the abstraction interplay in designing the next generation of software architecture. We propose a software architecture for PDE-based scientific codes that combines three abstractions in a code framework suitable for expected heterogeneity in platforms, while retaining separation of concerns, performance and portability of the software. We support our proposal with an example design for an adaptive mesh refinement based framework.

[1]  Jack J. Dongarra,et al.  Analysis of dynamically scheduled tile algorithms for dense linear algebra on multicore architectures , 2011, Concurr. Comput. Pract. Exp..

[2]  Lynn B. Reid,et al.  Pragmatic optimizations for better scientific utilization of large supercomputers , 2013, Int. J. High Perform. Comput. Appl..

[3]  Andrew Siegel,et al.  Extensible component-based architecture for FLASH, a massively parallel, multiphysics simulation code , 2009, Parallel Comput..

[4]  J. Ramanujam,et al.  A framework for enhancing data reuse via associative reordering , 2014, PLDI.

[5]  M. Berger,et al.  Adaptive mesh refinement for hyperbolic partial differential equations , 1982 .

[6]  David Abramson,et al.  GridRod: a dynamic runtime scheduler for grid workflows , 2007, ICS '07.

[7]  Justin Luitjens,et al.  Uintah: a scalable framework for hazard analysis , 2010, TG.

[8]  V. Gregory Weirs,et al.  Adaptive Mesh Refinement - Theory and Applications , 2008 .

[9]  Steven G. Parker A component-based architecture for parallel multi-physics PDE simulation , 2006, Future Gener. Comput. Syst..

[10]  John Shalf,et al.  Tiling as a Durable Abstraction for Parallelism and Data Locality , 2013 .

[11]  Alan Mycroft,et al.  Ypnos: declarative, parallel structured grid programming , 2010, DAMP '10.

[12]  Laxmikant V. Kale,et al.  Programming Petascale Applications with Charm , 2007 .

[13]  Satoshi Matsuoka,et al.  Physis: An implicitly parallel programming model for stencil computations on large-scale GPU-accelerated supercomputers , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[14]  M. Brodowicz,et al.  Application Characteristics of Many-tasking Execution Models , 2013 .

[15]  Tjerk P. Straatsma,et al.  NWChem: A comprehensive and scalable open-source solution for large scale molecular simulations , 2010, Comput. Phys. Commun..

[16]  James C. Sutherland,et al.  Graph-Based Software Design for Managing Complexity and Enabling Concurrency in Multiphysics PDE Software , 2011, TOMS.

[17]  G. Bryan,et al.  Introducing Enzo, an AMR Cosmology Application , 2004, astro-ph/0403044.

[18]  Justin Luitjens,et al.  Dynamic task scheduling for the Uintah framework , 2010, 2010 3rd Workshop on Many-Task Computing on Grids and Supercomputers.

[19]  Tobias Gysi,et al.  STELLA: A domain-specific embedded language for stencil codes on structured grids , 2014 .

[20]  Laxmikant V. Kalé,et al.  Scalable molecular dynamics with NAMD , 2005, J. Comput. Chem..