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.11MiB

Mon 26 Oct

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