System for MapReduce Programming
June 8, 2011 - Come see us presenting Phoenix++ in MAPREDUCE'11
June 6, 2011 - Phoenix++ released
What is Phoenix?
Phoenix is a shared-memory implementation of
model for data-intensive processing tasks. Phoenix can be used to
program multi-core chips 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.
About Phoenix 2
The initial version of Phoenix was released in the April of 2007. Since then it
has been significantly updated to improve scalability and portability. Compared to the original release, version 2 includes:
- Linux (x86_64) support
- Enhanced NUMA support for Solaris environment
- Improved performance and stability
Phoenix++ is a C++ reimplementation of Phoenix 2. It is designed to provide
a modular, extensible pipeline that can be easily adapted by the user
to the characteristics of a particular workload.
You have the following download options:
Phoenix (Original Release)
- Full input datasets for the sample applications: we provide small, medium, and large datasets for each application.
histogram (~512 MB)
linear regression (~212 MB)
string match (~212 MB)
reverse index (~154 MB)
word count (~59 MB)
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.
If you use Phoenix in your work or
research, please let us know about
it. We also encourage you to reference one of these papers:
"Phoenix++: Modular MapReduce for Shared-Memory Systems",
Justin Talbot, Richard M. Yoo, and Christos Kozyrakis.
In the Second International Workshop on MapReduce and its Applications (MAPREDUCE),
San Jose, CA, June 2011. [paper
"Phoenix Rebirth: Scalable MapReduce on a Large-Scale Shared-Memory System",
Richard M. Yoo, Anthony Romano, and Christos Kozyrakis.
In Proceedings of the 2009 IEEE International Symposium on Workload Characterization (IISWC),
pp. 198-207, Austin, TX, October 2009. [paper
"Evaluating MapReduce for Multi-core and Multiprocessor Systems",
Colby Ranger, Ramanan Raghuraman, Arun Penmetsa, Gary Bradski, and
In Proceedings of the 13th Intl. Symposium on High-Performance Computer
Phoenix, AZ, February 2007. [paper
] (Best Paper Award)
We have created a mailing list for Phoenix users (email@example.com).
The goal is to provide a forum to communicate issues / fixes and exchange
about Phoenix and MapReduce programming in general. To receive the
messages, please register.
The messages are also archived.
Note that the existence of the mailing list does not come along with
Below are some of the external projects / publications that use Phoenix.
- Tongping Liu, Charlie Curtsinger, and Emery D. Berger. "Dthreads: Efficient Deterministic Multithreading." In Proceedings of the 23rd ACM Symposium on Operating Systems Principles, 2011.
- Tongping Liu and Emery D. Berger. "Precise Detection and Automatic Mitigation of False Sharing." In Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2011
- Wei Jiang et al. "A Map-Reduce System with an Alternate API for Multi-Core Environments." In Proceedings of the 10th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing, 2010.
- Tongping Liu and Emery Berger. "Sheriff: Detecting and Eliminating False Sharing." Technical Report UMass TR UM_CS-2010-047, University of Massachusetts, Amherst.
- R. Chen et al. "Tiled-MapReduce: Optimizing Resource Usages of Data-parallel Applications on Multicore with Tiling." In Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques, 2010.
- Adam Gordon. Elastic Phoenix. University of Alberta.
- Yandong Mao et al. "Optimizing MapReduce for Multicore Architectures." Technical Report MIT-CSAIL-TR-2010-020, MIT.
- Silas Boyd-Wickizer et al. "Corey: An Operating System for Many Cores." In Proceedings of the 8th Symposium on Operating Systems Design and Implementation, 2008
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.
This page has been visited times since 5/2/2007.
Stats provided by the Free