MIRGE: An Array-Based Computational Framework for Scientific Computing
Matthias Diener, Matthew J. Smith, Michael T. Campbell, Kaushik Kulkarni, Michael J. Anderson, Andreas Kl\"ockner, William Gropp, Jonathan B. Freund, Luke N. Olson

TL;DR
MIRGE is a flexible, array-based computational framework that uses lazy evaluation and data-flow graphs to optimize scientific computing tasks across diverse hardware, enhancing performance and portability.
Contribution
The paper introduces MIRGE, a novel array computation framework that integrates lazy evaluation, domain-specific optimizations, and heterogeneous execution support for scientific computing.
Findings
MIRGE achieves high performance on GPU hardware.
The framework enables performance portability across different computing environments.
MIRGE facilitates scientific expressivity with efficient execution.
Abstract
MIRGE is a computational approach for scientific computing based on NumPy-like array computation, but using lazy evaluation to recast computation as data-flow graphs, where nodes represent immutable, multi-dimensional arrays. Evaluation of an array expression is deferred until its value is needed, at which point a pipeline is invoked that transforms high-level array expressions into lower-level intermediate representations (IR) and finally into executable code, through a multi-stage process. Domain-specific transformations, such as metadata-driven optimizations, GPU-parallelization strategies, and loop fusion techniques, improve performance and memory efficiency. MIRGE employs "array contexts" to abstract the interface between array expressions and heterogeneous execution environments (for example, lazy evaluation via OpenCL, or eager evaluation via NumPy or CuPy). The framework thus…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Scientific Computing and Data Management
