Map-reduce as a Programming Model for Custom Computing Machines
Dept. of Computer Science and Engineering, The Chinese University of Hong Kong, Shatin NT, Hong Kong
In FCCM ’08: Proceedings of the 2008 16th International Symposium on Field-Programmable Custom Computing Machines (2008), pp. 149-159
@conference{yeung2008map,
title={Map-reduce as a programming model for custom computing machines},
author={Yeung, J.H.C. and Tsang, CC and Tsoi, KH and Kwan, B.S.H. and Cheung, C.C.C. and Chan, A.P.C. and Leong, P.H.W.},
booktitle={Field-Programmable Custom Computing Machines, 2008. FCCM’08. 16th International Symposium on},
pages={149–159},
year={2008},
organization={IEEE}
}
The map-reduce model requires users to express their problem in terms of a map function that processes single records in a stream, and a reduce function that merges all mapped outputs to produce a final result. By exposing structural similarity in this way, a number of key issues associated with the design of custom computing machines including parallelisation; design complexity; software-hardware partitioning; hardware-dependency, portability and scalability can be easily addressed. We present an implementation of a map-reduce library supporting parallel field programmable gate arrays (FPGAs) and graphics processing units (GPUs). Parallelisation due to pipelining, multiple data paths and concurrent execution of FPGA/GPU hardware is automatically achieved. Users first specify the map and reduce steps for the problem in ANSI Cand no knowledge of the underlying hardware or parallelisation is needed. The source code is then manually translated into a pipelined data path which, along with the map-reduce library, is compiled into appropriate binary configurations for the processing units. We describe our experience in developing a number of benchmark problems in signal processing, Monte Carlo simulation and scientific computing as well as report on the performance of FPGA, GPU and hetereogeneous systems.
December 12, 2010 by hgpu