Generator-based GG Fortress Library

This report proposes a new library on Fortress to deal with computation with complex dependency such as prefix sums, which cannot be efficiently dealt with by simple comprehensions or generator-reduction patterns. The library provides a set of generator-of-generators that abstract generation of nested data structures, for allowing users to write their programs in an easy and uniform way. The library also provides an automatic optimization mechanism that dispatches correct and efficient implementation to those user programs. Thus, users can easily make correct parallel programs without losing efficiency. The proposed library is implemented on Fortress, and techniques used here can be reused for other libraries on Fortress.