
\documentstyle[11 pt]{article}
\textwidth=6.0in
\textheight=8.0in
\voffset=-0.5in
\hoffset=-0.5in

\begin{document}

\title{Action plan of June 10 to July 10}

\author{}

\date{June 10}

\maketitle

\section*{The action list proposed in April and its current status}
\begin{enumerate}
\item
NPAC computer account for HIT and BeiDa (April 8) (Don) --- done on
April 18.
\item
Reach a consensus on DAD revision (April 10) (Jim, Bryan, Xiaoming)
--- done on April 12.
\item
DAD revision write-up (April 12) (Jim: primary, Xiaoming: secondary)
--- done on April 18.
\item
Reach a consensus on runtime spec (April 12) (Bryan, Xiaoming)
\item
An initial write-up of final runtime spec (April 19)
   (Bryan: primary, Xiaoming: secondary, Jim: help)
\item
Second write-up of the runtime spec (April 26) (Bryan, Xiaoming, Jim)
\item
A stable runtime spec that can serve as a first version of CRSI (May 3)
   (Jim or Bryan: primary, Xiaoming: secondary)
\item
Determination of a 'template' HPF program involving simple FORALL 
   (April 10) (Xiaoming, Guansong, Bryan) --- done April 17.
\item
A consensus on compilation strategy and runtime functions needed 
   (April 12) (Xiaoming, Guansong, Bryan) --- done on May 31.
\item
Detailed specification of the needed runtime functions. (April 17)
   As a result at this point, the corresponding 'template' node program
   is agreed upon. (Guansong, Bryan, Xiaoming) --- done on May 31.
\item
Bugs in front-end which affect the FORALL compilation are removed 
    (April 17) (Guansong, HIT, BU) --- done on ?
\item
Testingsuite for FORALL designed and coded (April 24) (Xiaoming)
\item
The runtime functions are implemented (April 29) (Bryan) 
\item
The required compilation modules are implemented (April 29) (Guansong)
\item
Testrun (April 29 - May 3) (Guansong, Bryan, Xiaoming)
\end{enumerate}
 
We see there are two distinct item groups left --- {4, 5, 6, 7} is for
a CRSI document and {12,13,14,15} is for FORALL compilation. We choose
to put higher priority on the second group for next four weeks, which
should server as a path finder for a more objective CRSI document.

\section*{Specific work to be done}

Clear enough, there are three relatively independent pieces of work
designated by item 12, 13, and 14. I think we should try to have a
first pass done in three weeks and leave one week for item 15.

\begin{itemize}
\item
Testsuite. We'll try to have some programs to generate test programs
based on the three levels of program templates. The test generator will
produce HPF programs of different characteristics according to an
early document on the templates. In particular, various communication
patterns should be demonstrated. For accomplishing this goal, I see
facets involved.
  \begin{itemize}
  \item
  Design some  algorithm(s) that will determine the relation between
  parameters in the HPF program and communication patterns.
  \item
  Turn the algorithm into some program (in C or Perl.)
  \end{itemize}

\item
Following runtime subroutines/functions are needed to run the node programs
corresponding to our FORALL templates. 

\begin{itemize}
\item[Subroutines]

\begin{verbatim}
        dad_copy()
        delete()
        delete_array()
        delete_array()
        delete_range()
        delete_range()
        grid_init()
        loop_bounds()
        pcrc_finalize()
        pcrc_init()
        remap()
        reset_array_free()
        reset_array_free()
        reset_array_range_lb()
        set_array_data_done()
        set_array_range_align()
        set_array_range_copy()
        set_array_range_distribute()
        set_array_scalar()
        set_array_section_done()
        set_array_triplet()
        shift()
\end{verbatim}

\item[Functions]

\begin{verbatim}
        new_rang_distribute()
        new_rang_align()
        new_rang_collapse()
        new_rang_copy()
        new_array_data()
        new_array_section()
        str()  ... stride()
        rng()  ... range()
        grp()  ... group()
        on()
        reset_array_alloc()
        local_to_global()
        global_to_local()
        detect_communication()
\end{verbatim}
\end{itemize}
\item
Compilation. There are also two distinct facets in this part.
  \begin{itemize}
  \item
  Get the Sage library work with our front-end. This is something 
 fundamental. If we can inherit the Sage library smoothly, compilation
 work will be easier. But as we have experienced, Sage is kind of "Chaos", 
 not easy to make it work even with some slight change.
  \item
  Code the transformation modules with Sage library. 
  \end{itemize}
\end{itemize}
\end{document}
