Enabling Inter-Machine Parallelism in High-Level Languages with SEJITS and MapReduce
Computer Science Division, University of California, Berkeley
University of California, 2012
@article{driscoll2012enabling,
title={Enabling Inter-Machine Parallelism in High-Level Languages with SEJITS and MapReduce},
author={Driscoll, M. and Georganas, E. and Koanantakool, P.},
year={2012}
}
Selective, embedded, just-in-time specialization (SEJITS) is a technique for optimizing embedded domain-specific languages through the use of specializers, or code modules developed by expert programmers that target particular accelerators such as multicore processors and GPUs via just-in-time compilation. We extend SEJITS to exploit inter-machine parallelism by targeting clusters of machines via MapReduce. Our work enables the development of specializers for large, data-parallel applications whose work flows can be cast as MapReduce operations. We present an implementation that targets Hadoop and we describe specializers for two applications. The first, a pure-Python protein docking application, requires a 1-line change to realize a 280x speedup on a cluster with 450 cores. The second, an audio processing application, demonstrates our approach’s ability to leverage clusters of GPU-equipped machines by composing parallel programming patterns. Results indicate that clusters are viable targets for specialization, and that pattern composition is a useful technique for managing multi-level parallelism.
February 9, 2013 by hgpu