\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}