18 research outputs found
Toward Performance-Portable PETSc for GPU-based Exascale Systems
The Portable Extensible Toolkit for Scientific computation (PETSc) library
delivers scalable solvers for nonlinear time-dependent differential and
algebraic equations and for numerical optimization.The PETSc design for
performance portability addresses fundamental GPU accelerator challenges and
stresses flexibility and extensibility by separating the programming model used
by the application from that used by the library, and it enables application
developers to use their preferred programming model, such as Kokkos, RAJA,
SYCL, HIP, CUDA, or OpenCL, on upcoming exascale systems. A blueprint for using
GPUs from PETSc-based codes is provided, and case studies emphasize the
flexibility and high performance achieved on current GPU-based systems.Comment: 15 pages, 10 figures, 2 table
A Microkernel Design for Component-based Parallel Numerical Software Systems
What is the minimal software infrastructure and what type of conventions are needed to simplify development of sophisticated parallel numerical application codes using a variety of software components that are not necessarily available as source code? We propose an opaque object-based model where the objects are dynamically loadable from the file system or network. The microkernel required to manage such a system needs to include, at most ffl a few basic services, namely, -- a mechanism for loading objects at run time via dynamic link libraries, and -- consistent schemes for error handling and memory management; and ffl selected methods that all objects share, to deal with -- object life (destruction, reference counting, relationships), and -- object observation (viewing, profiling, tracing). We are experimenting with these ideas in the context of extensible numerical software within the ALICE (Advanced Large-scale Integrated Computational Environment) project, where we are build..
Parallel components for PDEs and optimization: Some issues and experiences
High-performance simulations in computational science often involve the combined software contributions of multidisciplinary teams of scientists, engineers, mathematicians, and computer scientists. One goal of component-based software engineering in large-scale scientific simulations is to help manage such complexity by enabling better interoperability among codes developed by different groups. This paper discusses recent work on building component interfaces and implementations in parallel numerical toolkits for mesh manipulations, discretization, linear algebra, and optimization. We consider several motivating applications involving partial differential equations and unconstrained minimization to demonstrate this approach and evaluate performance
Recommended from our members
Package Management Practices Essential for Interoperability: Lessons Learned and Strategies Developed for FASTMath
<p>While open-source software packages for high-performance computing (HPC) are an essential foundation of many scientific applications, challenges arise in coordinating multiple packages that employ diverse development and release processes. This document identifies a few key issues and essential practices for packages to more easily interoperate within the same application. We discuss approaches under way within the multi-institutional FASTMath project, whose members develop robust, efficient, and scalable numerical research software for functionalities such as mesh management, discretization, and solvers. Our perspective and priorities for overcoming common problems—including inconsistent installation processes, inconsistent or missing configuration information, copying or spoofing dependent sources as a means of simplifying package code, and inconsistent/missing versioning—should be of interest to HPC software developers who aim to make their packages easier to interoperate with others.</p
petsc: Portable, Extensible Toolkit for Scientific Computation
Version of Firedrake in the Firedrake paper.
This release is specifically created to document the version of
Firedrake used in a particular set of experiments. Please do not cite
this as a general source for Firedrake or any of its
dependencies. Instead, refer to
http://www.firedrakeproject.org/publications.htm