Sequoia

Home
Download
Documentation
Contact
Publications

Sequoia++

Sequoia is a programming lanaguage for writing portable and efficient parallel programs. Sequoia is unusual in that it exposes the underlying structure of the memory hierarchy to programmers, albeit in a manner abstract enough to ensure portability across a wide variety of contemporary machines. Sequoia is syntactically an extension to C++ and includes a number of C++ features, but the Sequoia-specific programming constructs result in a programming model very different from C++. Sequoia provides language mechanisms to describe the movement of data through the memory hierarchy and provides mechanisms to localize computation and data to particular levels of that hierarchy.

Sequoia is also a work in progress: this is the first release. While we use the compiler ourselves every day and have tested it fairly extensively, there are certain to be rough edges and outright bugs. Users who don't mind working with an experimental system will likely have a good experience; if you are looking for a production system this version of Sequoia is likely not for you. There is a core set of Sequoia features that are well-tested and documented and should be sufficient to write significant Sequoia programs that work well. There are also more experimental features in the language that are included in this release, but are currently not as complete as we would like (for example, some of these constructs do not currently work on all platforms, or only work with special annotations or other help from the programmer). We include these features in the current release because we have found them necessary for writing certain kinds of programs. Our intention is to remove these limitations in future releases.

Download

Sequoia can be installed by downloading and then building its source code (download). There is currently no support for obtaining a pre-compiled binary.

Documentation

The Sequoia manual (download) describes the high-level design of Sequoia and the technical details necessary to begin building programs using the Sequoia compiler.

Contact

Feedback on the Sequoia implementation and its documentation is welcome and can be sent to: sequoia-discuss (at) googlegroups (dot) com

You can find previous discussions and search answered questions at our website.

Publications

  • A Tuning Framework for Software-Managed Memory Hierarchies. M. Ren, M. Houston, J.-Y. Park, W. Dally, and A. Aiken. Proceedings of the Conference on Parallel Architectures and Compilation Techniques, pages 280-291, October 2008.
  • A Portable Runtime Interface For Multi-Level Memory Hierarchies. M. Houston, J.-Y. Park, M. Ren, T. Knight, K. Fatahalian, A. Aiken, W. Dally, and P. Hanrahan. Proceedings of the Symposium on Principles and Practice of Parallel Programming, pages 143-152, February 2008.
  • Compilation for Explicitly Managed Memory Hierarchies. T. Knight, J. Park, M. Ren, M. Houston, M. Erez, K. Fatahalian, A. Aiken, W. Dally, P. Hanrahan. Proceedings of the Symposium on Principles and Practice of Parallel Programming, pages 226-236, March 2007.
  • Sequoia: Programming the Memory Hierarchy. K. Fatahalian, T. Knight, M. Houston, M. Erez, D. Horn, L. Leem, H. Park, M. Ren, A. Aiken, W. Dally and P. Hanrahan. In Proceedings of Supercomputing 2006, November 2006.