\documentclass{article}
\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}

\usepackage[breaklinks=true]{hyperref}

\setcounter{secnumdepth}{0}
\title{Week 2 Progress Report}
\author{Abdulmajed Dakkak}
\date{June 13th, 2008}
\begin{document}
\maketitle

\tableofcontents

\section{Saturday/Sunday}

Familiarized myself with CUDA concepts by going through some online
tutorials, the CUDA manual, and some videos that were posted
online. Attempts were also made to familiarize myself with parallel
algorithms in the theoretical sense and draw distinction between
theory and implementation.

I have read a few papers about Google's \textbf{map reduce} and
Apache's \textbf{hadoop} in the past month, and many of the
concepts can be extended to CUDA. In fact, on the CUDA website,
they link to a paper that discusses attempts to write a translator
from map/reduce to CUDA with reported 157x increase in
performance.

\subsection{Lectures Watched}

The internet is littered with quality video lectures that are
easier to understand than standard documentation. I usually opt for
such forms of media whenever possible.

I was able to locate video lectures relating to CUDA that were
originally meant for people attending
\href{http://www.astrogpu.org/videos.php}{Workshop on General Purpose Computation on Graphics Processing Units in Astronomy and Astrophysics}
at \textbf{Institute for Advanced Study} in Princeton. I thus
watched the following lectures:

\begin{itemize}
\item 
  David Luebke: CUDA Introduction
\item 
  Mark Harris: Data Parallel Algorithms
\item 
  Lars Nyland: N-Body on GPU
\end{itemize}
I plan on completing the video lectures after dabbling with CUDA on
my own. As an aside, video lectures exist from UIUC and can be
found at the bottom of the
\href{http://www.nvidia.com/object/cuda_develop.html}{CUDA website}.

\section{Monday}

In an attempt to ``\textbf{liberate}'' myself from the SUN machine,
I configured a virtual machine on my system to my liking. I have
installed the CUDA toolkit and its visual profiler, Syszgy, and the
WiiMote. The virtual machine was placed on \verb!b1!.

I have also contacted Dr. \emph{Zoi Rapiti} and got a TeX copy of
the notes she promised. I plan to dissect the notes over the next
few days and write a summary of what she talked about.

Dr. Francis also provided me with the IGL programs that needed to
be ported to OGL. He also explained OpenGL's lighting model.

\section{Tuesday}

Started migrating the IGL program to OGL.

\section{Wednesday}

Finished porting \href{code/ltor-solo.c}{ltor-solo.c} to OpenGL.
This required using OpenGL materials. I am currently writing how I
did that in a separate document. I also found references to Navier
Stokes Equations in Wolfram's \textbf{New Kind of Science}, as well
as some of the papers Wolfram has published.

Went to Dr. Francis's house an enjoyed quality barbecue. Thank
you.

\section{Thursday}

Most of the time was spent looking at the Navier Stokes equation,
understand its parameters.

\subsection{Papers Read}

\begin{itemize}
\item 
  Wolfram, S. 1988. \emph{Cellular automation supercomputing}. In
  High-Speed Computing: Scientific Applications and Algorithm Design,
  R. B. Wilhelmson, Ed. University of Illinois Press, Champaign, IL,
  40--48.
\end{itemize}
\section{Friday}

Read a few more pages about Navier Stokes equation, went through
its derivation, and I am planning on writing the algorithm detailed
in the Solid Fluids paper by Jos Stam. I have already read and
understood the algorithm. All that is left is implementing it.

First CUDA group meeting (minus Chase) is today, and we plan on
writing the matrix addition program.

\subsection{Lectures Watched}

\begin{itemize}
\item 
  Lecture on Navier Stokes equation at the
  \href{http://www.claymath.org/millennium/Navier-Stokes_Equations/}{Clay Mathematical Institute}
\item 
  OpenGL Course at Siggraph 2007%
  \footnote{Angel, E., Shreiner, D., and Shreiner, V. 2007. An interactive
introduction to OpenGL programming. In ACM SIGGRAPH 2007 Courses
(San Diego, California, August 05 - 09, 2007). SIGGRAPH '07. ACM,
New York, NY, 1--124. DOI=
http://doi.acm.org/10.1145/1281500.1281596}
  . I finally understand projections in OpenGL!!
\item 
  Fluids Course at Siggraph 2006%
  \footnote{Bridson, R., Fedkiw, R., and Muller-Fischer, M. 2006. Fluid
simulation: SIGGRAPH 2006 course notes In ACM SIGGRAPH 2006 Courses
(Boston, Massachusetts, July 30 - August 03, 2006). SIGGRAPH '06.
ACM, New York, NY, 1--87. DOI=
http://doi.acm.org/10.1145/1185657.1185730}
  .
\end{itemize}
\subsection{Papers Read}

\begin{itemize}
\item 
  Grid-based Realtime Fluid Dynamics. Stefan Marek 0026455. Institute
  of Computer Graphics and Algorithms, TU Vienna, Austria.
\item 
  Chapter 38. Fast Fluid Dynamics Simulation on the GPU. Mark J.
  Harris. University of North Carolina at Chapel Hill. Fernando,
  Randima. Gpu Gems. Boston: Addison-Wesley, 2004
\item 
  CUDA/OpenGL Fluid Simulation
\item 
  Jos Stam, ``Stable Fluids'', In SIGGRAPH 99 Conference Proceedings,
  Annual Conference Series, August 1999, 121--128.
\item 
  U. Frisch, B. Hasslacher \& Y. Pomeau, Lattice-gas automata for the
  Navier-Stokes equation, Phys. Rev. Lett. 56 (1986), pp. 1505--1508.
  (Did not understand anything beyond the 1.5 page mark)
\end{itemize}
\section{Plan for Weekend}

\begin{itemize}
\item 
  Write a matrix multiplier, 1D cellular automata, and 2D cellular
  automata in CUDA.
\item 
  Read papers on cellular automata.
\item 
  Read Wolfram's papers on Navier Stokes equations.
\item 
  Rewrite the project proposal.
\item 
  Write notes for Dr. \emph{Zoi}'s presentation, and place it on the
  website.
\end{itemize}
\section{Questions}

What is the policy on printing. I did print many pages, but that is
because I have yet to activate my library card (they need two forms
of ID and a copy of the sublease). Even if I do activate my library
account, I doubt I would find \emph{antique} or recent articles in
the library.

\end{document}
