Presentation
Enhancing HPX with FleCSI: Automatic Detection of Implicit Task Dependencies
DescriptionFleCSI is a compile-time-configurable programming model designed to support performance-portable parallel application development. In the programming model provided by FleCSI, tasks execute in parallel according to data dependencies specified by a directed acyclic graph. FleCSI natively supports distributed data structures and data access patterns commonly used by computational-science methods.
Without any code modifications, an application built using FleCSI can target one of three communication backends: MPI, Legion, and most recently, HPX. This paper presents the design and implementation of the HPX backend. Specifically, it shows how FleCSI's Legion-like programming model can be mapped efficiently onto HPX's semantically different programming model. The paper explains how FleCSI's task graph can be implemented in terms of HPX futures and introduces a novel optimization for minimizing the number of (costly) communicators HPX needs to create for inter-task communication. An empirical performance study quantifies the benefit of this optimization on two physics applications.
Without any code modifications, an application built using FleCSI can target one of three communication backends: MPI, Legion, and most recently, HPX. This paper presents the design and implementation of the HPX backend. Specifically, it shows how FleCSI's Legion-like programming model can be mapped efficiently onto HPX's semantically different programming model. The paper explains how FleCSI's task graph can be implemented in terms of HPX futures and introduces a novel optimization for minimizing the number of (costly) communicators HPX needs to create for inter-task communication. An empirical performance study quantifies the benefit of this optimization on two physics applications.
Event Type
Workshop
TimeSunday, 16 November 20253:30pm - 3:50pm CST
Location230







