ORCHA: A Tool-Chain to Handle Platform and Solver Heterogeneity Post Exascale

ORCHA: A Tool-Chain to Handle Platform and Solver Heterogeneity Post Exascale

Tuesday, June 10, 2025 3:00 PM to Thursday, June 12, 2025 4:00 PM · 2 days 1 hr. (Europe/Berlin)
Foyer D-G - 2nd floor
Research Poster
Application Workflows for DiscoveryComputational PhysicsOptimizing for Energy and Performance

Information

Poster is on display and will be presented at the poster pitch session.
Applications can effectively utilize heterogeneous platforms if they
have: (1) data structures and algorithms suitable for target
devices; (2) can conceptualize a map of computation to target devices;
and (3) can execute the map by moving data and computation to devices
efficiently. In general, attempting to meet these requirements naively
can result in several implementation variants of the same
computation resulting in a maintenance nightmare. We have designed a
performance portability orchestration system ORCHA to address these
challenges through abstractions and
code generation. The tools are designed such that each tool focuses on
a small subset of abstractions and code generation that have similar
requirements, but are substantially different from those addressed by
the other tools. Through this approach of divide and conquer the tools
have been kept relatively simple and customizable, but their
combination provides a powerful performance portability solution. The first tool, CG-Kit, provides a shorthand for expressing the needed
variations in implementation that enable
optimization of the application instance as desired.
The second tool, macroprocessor, enables use of
macros to encode invariant arithmetic code where the specialization
can be provided by permitting multiple alternative definitions, and
tools arbitrates on which definition to use where. The third and final
tool is Milhoja which is a domain specific runtime design to execute a graph given
to it over and over again. The motivation comes from the kind of
applications that have an evolution cycle where the control flow does
not vary from one timestep to another, but might vary from one
application instance to another. We have exercised these tools to
experiment with two use cases in Flash-X. One is pure hydrodynamics,
and the other uses nuclear burning and a specialized equation of state
suitable for stellar interiors. For the second use case we demonstrate
the ability of ORCHA to explore performance in various hardware
configurations without the need to alter the core numerical source
code at all.
Contributors:
Format
On DemandOn Site