Abstract
Dataflow programming models have been growing in popularity as a means to deliver a good balance between performance and portability in the post-petascale era. In this paper, we evaluate different dataflow programming models for electronic structure methods and compare them in terms of programmability, resource utilization, and scalability. In particular, we evaluate two programming paradigms for expressing scientific applications in a dataflow form: (1) explicit dataflow, where the dataflow is specified explicitly by the developer, and (2) implicit dataflow, where a task scheduling runtime derives the dataflow using per-task data-access information embedded in a serial program. We discuss our findings and present a thorough experimental analysis using methods from the NWChem quantum chemistry application as our case study, and OpenMP, StarPU, and PaRSEC as the task-based runtimes that enable the different forms of dataflow execution. Furthermore, we derive an abstract model to explore the limits of the different dataflow programming paradigms.
Original language | English |
---|---|
Article number | e4490 |
Journal | Concurrency and Computation: Practice and Experience |
Volume | 30 |
Issue number | 17 |
DOIs | |
State | Published - Sep 10 2018 |
Externally published | Yes |
Funding
We thank the anonymous reviewers for their improvement suggestions. This material is based upon work supported by the US Air Force Office of Scientific Research under AFOSR Award No. FA9550-12-1-0476 “A Co-Design Approach for Advances in Software and Hardware (CoDAASH)”. A portion of this research was performed using the Environmental Molecular Sciences Laboratory, a DOE Office of Science User Facility sponsored by the Office of Biological and Environmental Research and located at Pacific Northwest National Laboratory.
Funders | Funder number |
---|---|
Air Force Office of Scientific Research | FA9550-12-1-0476 |
Office of Science | |
Biological and Environmental Research | |
Pacific Northwest National Laboratory |
Keywords
- CCSD
- NWChem
- OpenMP
- PaRSEC
- StarPU
- coupled cluster methods
- dataflow
- task-based runtime