Evaluating MapReduce for Multi-core and Multiprocessor Systems
Top Cited Papers
- 1 January 2007
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 15300897,p. 13-24
Abstract
This paper evaluates the suitability of the MapReduce model for multi-core and multi-processor systems. MapReduce was created by Google for application development on data-centers with thousands of servers. It allows programmers to write functional-style code that is automatically parallelized and scheduled in a distributed system. We describe Phoenix, an implementation of MapReduce for shared-memory systems that includes a programming API and an efficient runtime system. The Phoenix runtime automatically manages thread creation, dynamic task scheduling, data partitioning, and fault tolerance across processor nodes. We study Phoenix with multi-core and symmetric multiprocessor systems and evaluate its performance potential and error recovery features. We also compare MapReduce code to code written in lower-level APIs such as P-threads. Overall, we establish that, given a careful implementation, MapReduce is a promising model for scalable performance on shared-memory systems with simple parallel codeKeywords
This publication has 16 references indexed in Scilit:
- A Low Power Merge Cell Processor for Real-Time Spike Sorting in Implantable Neural Prostheses2006
- Niagara: A 32-Way Multithreaded Sparc ProcessorIEEE Micro, 2005
- Robust system design with built-in soft-error resilienceComputer, 2005
- Fingerprinting: bounding soft-error-detection latency and bandwidthIEEE Micro, 2004
- Detailed design and evaluation of redundant multi-threading alternatives2003
- The Google file system2003
- Programming language optimizations for modular router configurations2002
- A stream compiler for communication-exposed architectures2002
- The implementation of the Cilk-5 multithreaded language1998
- Parallel Prefix ComputationJournal of the ACM, 1980