Problem: - performance portable parallel language : for “new” code - target deep memory hierarchies - abstract mechanisms - abstract topology/hierarchy - not heavily rely on compiler analysis

Users: - Data parallel programs - Scientific computing - Experts - Library writers - Compiler Optimization

Unique:

- Vertical storage hierarchy

- All programs are collection of bulk operations “task”

 - Hierarchy of bulk operations
   1) gather
   2) scatter
   3) run subtask

- A task is side-effect free; inputs and outputs are explicit.

Other points:

- Traditionally parallel programs are developed in languages like MPI,Open MP etc, and the implementation is too machine specific.

- Sequoia is not meant to be a wide-spread programming language. It has been designed to be an intermediate language, which could serve as a “performance layer”. So, compiler can compile a program in domain-specific language into Sequoia where various machine-specific optimizations could be carried out.

- Open MP: designed for multi-threaded coding on shared memory (one namespace)

- MPI : designed for distributed memory systmes with explicit massage communication.

- Chapel:- for distributed programming and data parallel programming

- In sequoia, two processors can not directly communicate, they need to do it through upper memory layer in hierarchy. However, compiler can optimize these communications.

- Sequoia programming model has been implemented and tested for cluster-networks, cell processors and Disk based systems.

- Sequoia doesn’t give much emphasis on the leaf node’s code.