| | |
Summary: Compiling Several Classes of Communication Patterns on a
Multithreaded Architecture
Rishi Kumar Gagan Agrawal y Guang Gao
Department of Electrical and Computer Engineering
University of Delaware, Newark DE 19716
fkumar,ggaog@capsl.udel.edu
Department of Computer and Information Sciences
Ohio State University, Columbus OH 43210
agrawal@cis.ohio-state.edu
Abstract
In compiling or developing applications for execution on distributed memory machines, communication
optimizations are critical for performance. Multithreaded architectures support multiple threads of execution
on each processor, with low-cost thread initiation, low-overhead communication, and eÆcient data transfer
and synchronization between threads on dierent processors. These mechanisms can be used for achieving an
eective overlap between communication and computation, and therefore, good performance on communication
intensive parallel applications.
We focus on generating correct and eÆcient multithreaded code for array based programs that involve
dierent classes of communication patterns. We consider producer-consumer, scalar reductions, and near-
neighbor communication. We describe multithreaded programming methodologies suitable for handling loops
with each of these patterns. We further show how a compiler can generate threaded code for loops with such
|