\documentclass{article}
\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\usepackage{graphics}
\usepackage[ps,dvips,xdvi,arrow,frame,matrix,graph,curve,cmtip]{xy}
\usepackage[pdftex]{graphicx}
\usepackage[breaklinks=true]{hyperref}
\usepackage{enumerate}
\setcounter{secnumdepth}{0}
\title{``baREUcuda'' Project Proposal}
\author{Abdulmajed Dakkak}
\date{June 23st, 2008}
\begin{document}
\maketitle
Much like Stephen Wolfram, I have been fascinated by the
capabilities of cellular automata (CA), and while I do not share
his opinion that everything can be decomposed into a CA problem, I
do believe that many problem exhibit similarities to problems in
CA. This rich field is rarely explored by undergraduate students,
and aside from writing basic programs that simulate the Game of
Life or draw the Sierpinski triangle, I too have little intuition
of the field's application.
While the primary motivation for singling out Wolfram's method is
to speak to his intellectual interest, Wolfram's papers can be used
to explorer extensions of CA that are used for
\emph{computational fluid dynamics} (CFD). The reason is that a new
methods of CFD such as \emph{Lattice Gas Automata} (LGA) and later
\emph{Lattice Boltzmann Methods} (LBM) arose directly%
\footnote{When asked on the
\href{http://forum.wolframscience.com/showthread.php?s=1d3b456c994c3a88f9a96dd3352c9907&threadid=1457&highlight=*chapter+10*}{NKS forums}
about the most successful application of CAs thus far, Jason
Cowley, of Wolfram Research, labeled Wolfram's work on
computational fluid dynamics as the ``most successful use of NKS''
thus far.}
from 7 landmark paper on the relationship between fluid dynamics
and CA by Wolfram in the latter half of the 1980s (see
references).
In this project we will explore what Wolfram described in his
papers, look at papers that build upon his revolutionary work, and
compare them to other methods in contemporary CFD. All experiments
will be simulated on CUDA enabled NVIDIA chips to maximize
performance, and a 3D simulation of Naiver-Stokes equations using
Wolfram's work will be programmed on it to demonstrate and explore
the parallelization of both CA and computation. Also, we will
replace the conventional input devices (mice and keyboards) with
the WiiMote. This would enable us to explore input methods
described in current Human Interface Interaction literature.
Finally, we will place our fluid simulation into the Beckman
Institute's Cube virtual environment via the cluster based
distributed graphics language, Syzygy%
\footnote{Syzygy is a cluster-based distributed graphics system currently
powering several virtual environments, such as the Cube and CAVEs
at the University of Illinois, the Portal at the Technical
University of Berlin, and the DiVE at Duke University.}
.
\section{Project Timeline}
The following gantt chart displays the time line for each
subproject accomplished in the REU along with a brief description
of what each entails.
\includegraphics[scale=0.6]{graphics/project_timeline.png}
\begin{quote}
\emph{I am aware that the time line is overambitious, but I would rather be in a pinch against time than bored with nothing to do.}
\end{quote}
\begin{enumerate}[1.]
\item
There are a few books describing CA as it relates to CFD, and
Wolfram himself has written around 100 pages on the subject. It
would take around a week or a week and a half to absorb the
content.
Also, CUDA must be learn, and while I have written a basic matrix
adder, there is more to learn in terms of optimization and
interfacing with OpenGL. I thus plan on writing one 1D CA, move to
2D CA, and, finally, implement Wolfram's ideas in 2D. Only when I
have understood those will I tackle 3D.
\item
Implement what I have read in the papers and optimize.
\item
Optimization has never been important to me, but after programming
a basic matrix adder in CUDA, I realized that I can easily cut
computation by a half if I use the right directives and memory
spots.
\item
I will place the simulation in the Cub. This can be done by
extending the existing socket connection program devised. A more
interesting idea is to simulate the Mathematica kernel and use
caveMathematica to display the simulation in the Cube. This method
is more difficult, however.
\item
I will spend some time figuring out how the Wiimote works and how
to interface it with an OpenGL program first and then interface
with CUDA. One potential problem, at least with the \verb!wiiuse!
library is that an infinite loop is required to capture events. I
will thus examine other libraries or ways around this issue.
\item
Integrate the WiiMote with the Cube. While this has been done, I
would like to extend it and specifically see how it can interface
with CUDA in the CAVE.
\item
A few days will be reserved to examining and comparing other CFD
models.
\item
Write final report.
\item
Prepare presentation for \emph{Mathfest}, and attend the
conference.
\end{enumerate}
\section{SubProjects}
\begin{itemize}
\item
Help other REU student with their projects whenever possible.
\item
Write the \verb!igl2ogl! guide.
\end{itemize}
\section{References}
\begin{itemize}
\item
S. Wolfram. Minimal cellular automaton approximations to continuum
systems. In Stephen Wolfram, editor, Cellular Automata and
Complexity: collected papers. Addison-Wesley, 1994.
\item
S. Wolfram. Cellular automaton fluids 1: Basic theory. Journal of
Statistical Physics, 45(3):471--526, 1986.
\item
S. Wolfram. Statistical mechanics of cellular automata. Reviews of
Modern Physics, 55(3):601--644, 1983.
\item
N.H. Packard and S. Wolfram. Two-dimensional cellular automata.
Journal of Statistical Physics, 38(5):901--946, 1985.
\item
S. Wolfram. Twenty problems in the theory of cellular automata.
Physica Scripta, 9:170--183, 1985.
\item
S. Wolfram. Cellular automation supercomputing. 1988.
\item
J.B. Salem and S. Wolfram. Thermodynamics and hydrodynamics with
cellular automata. Theory and Applications of Cellular Automata.
World Scientific, 1986.
\end{itemize}
\end{document}