Back

Minisymposium Presentation

ProtoX : A Code Generation Framework for Stencil Operations

Wednesday, June 5, 2024
12:00
-
12:30
CEST
Climate, Weather and Earth Sciences
Climate, Weather and Earth Sciences
Climate, Weather and Earth Sciences
Chemistry and Materials
Chemistry and Materials
Chemistry and Materials
Computer Science and Applied Mathematics
Computer Science and Applied Mathematics
Computer Science and Applied Mathematics
Humanities and Social Sciences
Humanities and Social Sciences
Humanities and Social Sciences
Engineering
Engineering
Engineering
Life Sciences
Life Sciences
Life Sciences
Physics
Physics
Physics

Presenter

Het Yagnesh
Mankad
-
Oak Ridge National Laboratory

Het Mankad is currently a Research Scientist in the Computational Science and Math division at the Oak Ridge National Lab (ORNL) , USA. Here she works on high performance code generation for math libraries. In particular, she works on developing ProtoX, which is a domain specific language with Proto in the frontend and SPIRAL in the backend. Before joining ORNL, Dr. Mankad was a Postdoctoral Research Associate at Carnegie Mellon University in Pennsylvania, USA. She has a PhD in Applied Mathematics from the University of Texas at Dallas, where she worked on problems in reservoir simulation.

Description

ProtoX is a code generation framework for stencil and pointwise operations - the key components in numerically approximating the solution to various partial differential equations (PDEs). The frontend for ProtoX uses Proto - a C++ based domain specific library that provides a high level of abstraction and an intuitive interface that optimizes the designing and scheduling of an algorithm aimed at solving various PDEs numerically on structured grids. The high level of abstractions used in Proto can be fused together to improve its current performance. However, abstraction fusion cannot be performed easily by a compiler. To overcome this issue ProtoX uses SPIRAL as its backend. SPIRAL is a code generation system that focuses on generating highly optimized target code in C/C++. The performance gain that is thus obtained in ProtoX is demonstrated for examples like the 2D Poisson problem as well as the 2D and 3D Euler equations that are used in the study of gas dynamics. The results obtained from CPU and GPU implementations will be discussed.

Authors