Group: Dan Bentley
Project Proposal:
I want to examine stream architectures through cellular automata. I
believe that they provide a useful example of what applications for the SSS
will look like. Specifically, I plan to:
1) Implement a simple implementation of the Game of Life in Brook
2) Implement the game using more complex code
3) Using this infrastructure, implement other cellular automata, including
ones which have an irregular grid structure.
4) Solve the general problem of irregular grids on the SSS in terms of
language and/or architecture.
All of these are milestones. 4 may not be completed.
Why this is useful:
1) (statement with which Professor Dally might disagree/not be interested
in) I think that certain applications can be recast into the stream model
easily, and may even be more natural in this model.
2) Documentation. I would document this process and, if wanted, write up
an introduction to the general idea of the modeling computation. For
instance, C and Unix might be just other obscure ideas if not for the
excellent documentation of Brian Kernighan to explain the Zen-Buddhist
nature of these revolutionary ideas.
3) Simplicity. Cellular Automata are similar to problems being considered
because they are iterative, and have communication on each iteration
between some set of linked elements. However, the processing is simple
enough that the numerical calculation will not get in the way of the
understanding. Thus, it would be an ideal first stream application.
4) Optimization. Cellular automata are hard to optimize because they do so
little computation. It is, then, a worst-case approximation of the
problems being considered. If one can optimize cellular automata, one can
optimize anything. Thus, it can be a useful benchmark.
In short, Streaming architectures are blazingly fast, but also intriguing
ways of considering problems. I'd like to emphasize the latter because I'm
not as good at the fast part.
-Dan