Phoenix is shared-memory implementation of
Google's MapReduce
model for data-intensive processing tasks. Phoenix can be used to
program multi-core schips as well as shared-memory multiprocessors
(SMPs and ccNUMAs). Phoenix was developed as a class project
for
the EE382a
course at Stanford. The paper
on Phoenix won the best paper award in the HPCA'07
conference.
The current distribution of Phoenix runs only on the Solaris operating
system. If you want to use Phoenix on a Linux system, please use this modified file for the MapReduceScheduler. In general, it should be simple to port the code to any OS with support for
shared-memory threads. See the Porting notes in the scheduler README
file.
The current version of Phoenix was posted in April of 2007. You have the following download options:
The Phoenix source code is distributed with a BSD license. The copyright is held by Stanford University. Phoenix is provided "as is" without any guarantees of any kind.
Phoenix was developed by Colby Ranger, Ramanan Raghuraman, and Arun Penmetsa under the supervision of Christos Kozyrakis. Gary Bradski provided valuable feedback and the original version for some of the sample applications.
If you use Phoenix in your work or research, please let us know about it. We also encourage you to reference the HPCA'07 paper:
"Evaluating MapReduce for Multi-core and Multiprocessor Systems",
Colby Ranger, Ramanan Raghuraman, Arun
Penmetsa, Gary Bradski, Christos Kozyrakis.
Proceedings of the 13th Intl. Symposium
on High-Performance Computer Architecture (HPCA),
Phoenix, AZ, February 2007. [PDF][slides][video] (Best Paper
Award)
Please contact Christos Kozyrakis
for further information. While we may not be able to provide technical
support, let us know about bug reports and suggested improvements. If
you make some correction or improvement to Phoenix, we would appreciate
receiving a copy that we can include in the next release.