Diderot is a parallel domain-specific language designed to provide biomedical researchers with a high-level mathematical programming model where they can use familiar tensor calculus notations directly in code without dealing with underlying low-level implementation details. These operations are executed as parallel independent computations. We use a bulk synchronous parallel model (BSP) to execute these independent computations as autonomous lightweight threads called strands. The current BSP model of Diderot limits strand creation to initialization time and does not provide any mechanisms for communicating between strands. For algorithms, such as particle systems, where strands are used to explore the image space, it is useful to be able to create new strands dynamically and share data between strands. In this paper, we present an updated BSP model with three new features: a spatial mechanism that retrieves nearby strands based on their geometric position in space, a global mechanism for global computations (i.e., parallel reductions) over sets of strands and a mechanism for dynamically allocating new strands. We also illustrate through examples how to express these features in the Diderot language. More, generally, by providing a communication system with these new mechanisms, we can effectively increase the class of applications that Diderot can support.

Bulk-Synchronous Communication Mechanisms in Diderot (samuels_diderot.pdf)1.12MiB

Mon 26 Oct
Times are displayed in time zone: Eastern Time (US & Canada) change

10:30 - 12:00: Session 2 - Abstraction and Runtime EnvironmentsAGERE! at Grand Station 4
10:30 - 10:50
Talk
AGERE!
Lamont SamuelsUniversity of Chicago, John ReppyUniversity of Chicago
File Attached
10:50 - 11:10
Talk
AGERE!
Angelo CroattiUniversity of Bologna, Alessandro RicciUniversity of Bologna
11:10 - 11:30
Talk
AGERE!
11:30 - 11:50
Talk
AGERE!
Travis Desell University of North Dakota, Carlos VarelaRensselaer Polytechnic Institute, US