FLASH 1.0: A Software Framework for Rapid Parallel Deployment and Enhancing Host Code Portability in Heterogeneous Computing
Michael Riera, Masudul Hassan Quraishi, Erfan Bank Tavakoli, Fengbo, Ren

TL;DR
FLASH 1.0 is a C++ framework that enables rapid, portable, and hardware-agnostic deployment of parallel code in heterogeneous computing environments, significantly reducing code complexity while maintaining high performance.
Contribution
It introduces a novel hardware-agnostic approach for describing and dispatching kernels, improving code portability and reducing complexity in HPC applications.
Findings
Achieves up to 99.72% code portability in tested HPC applications.
Reduces code complexity by up to 4.0x for common HPC kernels.
Maintains a normalized framework overhead of 1%-13% of kernel runtime.
Abstract
This paper presents FLASH 1.0, a C++-based software framework for rapid parallel deployment and enhancing host code portability in heterogeneous computing. FLASH takes a novel approach in describing kernels and dynamically dispatching them in a hardware-agnostic manner. FLASH features truly hardware-agnostic frontend interfaces, which unify the compile-time control flow and enforce a portability-optimized code organization that imposes a demarcation between computational (performance-critical) and functional (non-performance-critical) codes as well as the separation of hardware-specific and hardware-agnostic codes in the host application. We use static code analysis to measure the hardware independence ratio of twelve popular HPC applications and show that up to 99.72% code portability can be achieved with FLASH. Similarly, we measure and compare the complexity of state-of-the-art…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
