
\documentstyle[12 pt]{article}

\textheight=8.0in
\voffset=-0.5in
\textwidth=6.0in
\hoffset=-0.5in

\begin{document}

\title{\large \bf{Quarterly R\&D Status Report No. 12}\\
  \large \bf{Common Runtime Support for High Performance Languages}}

\author{\sf Period Covered \\
    \sf From: 1 April 1997 \\
    \sf To: 30 June 1997 \vspace{10mm} }

\date{\bf July 10, 1997}
    
\maketitle

\begin{center}
Prepared By \vspace{3mm} \\
Geoffrey C. Fox \\
Northeast Parallel Architectures Center \\
at Syracuse University \\
111 College Place \\
Syracuse, NY 13244-4100 \vspace{10mm} \\
Prepared For \vspace{3mm} \\
ESC/ENS \\
5 Eglin Street, Building 1704 \\
Hanscom AFB, MA 01731-2116 \\
Attn.: Mr. Harry Koch \vspace{10mm} \\
Sponsored By \vspace{3mm} \\
Advanced Research Projects Office/CSTO \\
\underline{Common Runtime Support for High Performance Parallel Languages}\\
ARPA Order No. B526 \\
Issued by ESC/ENS under contract \\
\# F19628-94-C-0057
\end{center}

\section*{Program Technical Status}

\subsection*{A. Description of progress during reporting period, supported
by reasons for any changes reported previously}

Following what was described in our last quarterly report, identified
work items have been carried out smoothly in this reporting period. 
In particular,

\begin{itemize}
\item
Reflecting the cut in budget, we have discussed the 
remaining issues in the project with all other 
subcontractors, and evolved the draft revised SOW and work plan
as appended in the last quarterly report to the revised SOW and
work plan appended in this report. This appendix will be our basic
guidance for how the mission of the project to be completed.

\item
The PCRC runtime kernel (to be released in August, 1997) has been
completed with documentation.

\item
We have completed the ghost region support (the first item in the
work plan) in both PCRC runtime and related HPF compiler. This
accomplishment enable our compiler to produce higher performance
executable code than commercial HPF compiler (pghpf 2.0).

\item
The Java unparser of our front-end system is finished.

\item
We have partially documented what we have been doing and reorganized
our web site as in http://www.npac.syr.edu/projects/pcrc/demo1997. This 
site provides a clear picture on various activities under the
project.
\end{itemize}

\subsection*{B. Description of any special programs developed or major
items of experiments or special equipment purchased or constructed during
reporting period}

Along with various Java activities connected with this project, a
prototype Fortran-to-Java converter has been developed, and downloadable
from \\
http://www.npac.syr.edu/projects/pcrc/f2j.html. This converter
is built from our front-end system, thus also serves as a concrete example 
for the usefulness of the infrastructure.

\subsection*{C. Notifications of any changes in key personnel associated
with the contract during the reporting period}

No change during this reporting period.

\subsection*{D. Summary of substantive information derived from noteworthy
trips, meetings, and special conferences held in connection with the
contract during the reporting period}

\begin{itemize}
\item Promoted by PCRC, the ACM Workshop on Java for Science and 
Engineering Computation was held in Las Vegas, NE, June 21, 1997,
as one of distinct components of ACM SIGPLAN annual activities. 
105 people from academia, industry, and national labs participated.

\item Poster presentation of ``PCRC Activities in NPAC'' in the
      CRPC annual meeting held in Rice University, May 20-22.

\item Presentation of ``PCRC Activities'' in the DARPA System
Environments PI meeting held in June 8-10.

\end{itemize}
     
\subsection*{E. Summary of any problems or areas of concern on which
procuring activity or guidance is required}

We provide an appendix for revised SOW and work plan, as a result of
discussion among subcontractor PIs and our intention for a
no-cost-extension of this project as requested previously.

\subsection*{F. Statement relative to the apparent sufficiency of
contractually prescribed effort to achieve the objectives of the contract}

The contractually prescribed effort is sufficient to achieve the
objectives of this contract.

\subsection*{G. Related accomplishments: i.e., scientific papers published,
etc.}

A special issue of {\em Concurrency --- Practice and experience}
is published in June, 1997, which collects all the papers presented in 
the Java for Scientific and Engineering Computation Workshop held last 
December in Syracuse.

The following is a partial list of related reports/papers completed 
during this reporting period.

\begin{enumerate}
\item
Bryan Carpenter, Geoffrey Fox, Xiaoming Li, et al, ``PCRC-based HPF 
Compilation,'' has been accepted by LCPC'97.

\item
Bryan Carpenter, Yuh-Jye Chang, Geoffrey Fox, et al, ``Java as a 
Language for Scientific Parallel Programming,'' has been accepted by
LCPC'97.

\item
Geoffrey Fox, Xiaoming Li, Zheng Qiang, et al, ``A Prototype of
Fortran-to-Java Converter'' was presented in ACM Workshop on
Java for Science and Engineering Computation on June 21, 1997.

\item 
Dennis Gannon, ``Programming Environments, Compiler Technology
and Runtime Systems for Object Oriented Parallel Processing,''
DARPA PI meeting, June 9, 1997.

\item
Jim Browne, ``An Environment for End-to-End Performance
Design of Large Scale Parallel Adaptive Computer/Communications
Systems,'' DARPA PI meeting, June 9, 1997.

\item 
Joel Saltz, ``Performance Prediction Using Application Emulators,''
DARPA PI meeting, June 9, 1997.

\end{enumerate}

\subsection*{H. Planned activities and milestones for the next reporting
period}

Besides the overall work plan as described in the appendix, the most
significant work for the next reporting period will be the release of
PCRC runtime kernel to the public domain. For that to be accomplished, 
the following items have to be conducted.

\begin{itemize}
\item
Documentation --- the code release will be accompanied by proper
document.
\item
Installation procedure --- portability issue will be addressed here.
\item
Fortran interface. The kernel itself is in C++. A Fortran interface
will be provided as an exampler for how other languages can access
this runtime.
\item
Testing. A set of test programs will be included in the release
for both functionality and performance of the runtime kernel.
\end{itemize}

\subsection*{I. List of all equipment purchased during reporting period}

None.

\pagebreak

\section*{Program Financial Status}

The table below provides information required by contract.

\vspace{5mm}

\small
\begin{tabular}{| c | c | c | c | c | c | c |} \hline
\begin{tabular}{c}
WORK BREAKDOWN \\ 
STRUCTURE 
\end{tabular} & \multicolumn{3}{c|}
                {CUMULATIVE TO DATE} & 
                \multicolumn{3}{c|}{AT COMPLETION} \\ \hline
ELEMENT & \begin{tabular}{c}
          Planned \\
          Expended
          \end{tabular} & \begin{tabular}{c}
                          Actual \\
                          Expended 
                          \end{tabular} & \begin{tabular}{c}
                          Percent \\
                          Completed
                          \end{tabular} & BAC & LRE & Remarks \\ \hline
        & & & & & & \\ \hline
CLIN 0001 & & & & & & \\ \hline
Syracuse University & 3,218,954 & 2,882,344 & & & & \\ \hline
 \& subcontractors & & & & &  & \\ \hline
        & & & & & & \\ \hline
        & & & & & & \\ \hline
        & & & & & & \\ \hline
TOTAL &  3,218,954 & 2,882,344 & 89.50\% & & & \\ \hline
\end{tabular}
\normalsize

\vspace{5mm}

\begin{itemize}
\item[A.] Is current funding sufficient for the current FY ?  ~~~Yes.

\item[B.] What is the next Fiscal Year's funding requirement at current
anticipated levels ? ~~~ No new funding required to complete remaining
work as described in this report by June 30, 1998.

\item[C.] Have you included in the report any explanation of the above data
and are they cross-referenced ? ~~~Yes.

\end{itemize}

\vspace{5mm}

\begin{tabbing}
\underline{Distr}\=\underline{ibution:} \\
\> ARP\=A/CSTO (2 org) \\
\> \> 3701 N. Fairfax Drive \\
\> \> Arlington, VA 22203-1714 \\
\> ESC/ENK (ltr only) \\
\> \> 5 Eglin Street \\
\> \> Hanscom AFB, MA 01731-2116 \\
\> \> Attn.: Mr. Dale V. Hawley
\end{tabbing}

\pagebreak

\section*{Appendix: Revised SOW and Work Plan}

As mentioned in the QR for the first quarter of 1997, we are requesting 
a no cost extension of
this project until June 30, 1998. We divide the
period from April 1, 1997 to June 30, 1998 in two stages. Stage 1 is
from April 1, 1997 to August 31, 1997. Stage 2 is from September 1, 1997
to June 30, 1998. In this appendix, a revised statement
of work is provided corresponding to the new situation, 
then a detailed work plan is described. 

\subsection*{Revised statement of work}

We will continue the activities towards the deliverables stated in
project proposal. In particular, besides various research activities
surrounding the central theme of PCRC, the following items are identified
as distinct software packages deliverable to the public domain.

\begin{itemize}
\item
PCRC runtime system. A partial release in the summer of 1997, and
a full release at the new requested end date. 
\item
An experimental HPF compiler that uses the PCRC runtime. 
\item
A compiler/interpreter research and development infrastructure,
including multiple front-ends (HPF, C++, and Java) and tools.
\end{itemize}

The following institutions will be involved in the project for
the remaining period.
\begin{itemize}
\item Syracuse University --- lead, responsible for majority of the
      implementation work.
\item Cooperating Systems --- help in software quality assurance and 
      documentation.
\item University of Maryland --- responsible for interoperability
      among different runtimes.
\item University of Rochester --- help in the feasibility study of
      a Java compiler using the PCRC runtime, and partial
      implementation.
\item University of Florida --- implement novel combining-scatter
      functions in PCRC runtime, studies of new algorithms for PCRC functions.
\item Indiana University --- help in the feasibility study of
      pC++ and Java compilers using the PCRC runtime, and
      implementation of pC++.
\item Texas --- DAGH as part of PCRC runtime.
\item Rice --- modest involvement, especially with Java compiler 
      requirements.
\end{itemize}
 
\subsection*{A two-stage work plan including the No-Cost Extension period}

\noindent
\paragraph{Stage 1 (April 1, 1997 to August 31, 1997):} aiming at 
accomplishing 
basic PCRC requirement and having a preliminary PCRC 
runtime release to the public domain.

We identify the following working items.
\begin{enumerate}
\item
A quality public domain runtime (kernel) in C++.

    This runtime will be considered as PCRC proper. It will be based on 
and extended from Adlib.  It will be rich in contents, fulfilling most of 
the claims in PCRC project proposal, in particular, task 1, 2, 3, 4.

   To have a quality public release, the following work has to be completed.
\begin{itemize}
\item[a.] sorting functions
\item[b.] new combining scatter functions compatible with PCRC runtime.
\item[c.] Adlib documentation
\item[d.] PCRC documentation
\item[e.] C++ interface
\item[f.] Fortran interface
\item[g.] Java interface
\item[h.] experiment on interoperability between Syracuse runtime and
          Maryland runtime.
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation. Florida will be
responsible for item {\tt b}. Maryland will implement item {\tt h}.
Rochester is involved in {\tt g}; Rice in {\tt f} and {\tt g}.
Moreover, Texas will provide a preliminary release of DAGH, which is
an effort to produce an application specific parallel library. We will,
in stage 2, investigate how this application specific library can work in 
concert with a general library such as the PCRC kernel. 

\item
An operational compiler for a subset of HPF using the PCRC runtime.

The motivation for this distinct working item may be seen as
the following
\begin{itemize}
\item
It is required (task 8 and 9) in the original project contract that compilers
are to be developed to demonstrate the usability of the runtime.

Thus, this compiler will serve as a primary exampler for this
purpose. 

\item 
It is our hope to provide a `playable' data parallel language system
for distributed memory machines in public domain. By `playable', we
mean something other people can use to do various experiments in the
context of a complete system. It has been observed that a few 
high quality public domain parallel language system exist for shared
memory machines (such as SUIF). These systems have been helping research 
community and industry to a great extent. But non for distributed memory
machines exists (some announced, such as shpf, are not really playable
due to poor implementation). We are making effort to fill this gap.
The compiler is one of the three components in such a system. 
(the other two components are runtime and an infrastructure)

Technically, capability of the compiler will be ``FORTRAN 77 + array
syntax + FORALL + directives''. Emphasis will be on quality
implementation, so that not only some real application can be
compiled through this compiler, but also allow the compiler
itself to be modified and extended by others.

\end{itemize}

   To achieve this goal, the following work has to be done in the
stage 1:
\begin{itemize}
\item[a.] documentation
\item[b.] demos and tests
\item[c.] full FORALL statement
\item[d.] procedure interface
\item[e.] front-end, testsuite and tests
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation. 

\item
Preparation for stage 2.

Successful completion of the above two items fulfills many of
the basic PCRC requirements.
We will investigate the applicability of PCRC runtime, as well as further
improve its quality.
We do this
in the context of constructing a quality compiler/interpreter development 
infrastructure. In particular, we will build a system which incorporate
HPF/Java/C++ front-ends and related tools, together with some
studies/experiments on compilation of Java/C++ based on PCRC runtime. 
Robustness of the system will be emphasized. 

   To achieve this goal, the following work has to be done:

\begin{itemize}
\item[a.] Java compilation study
\item[b.] Integration of pC++ (and C++) front-end with HPF/Java front-end
\item[c.] pC++ compilation study
\item[d.] Xsageop documentation
\item[e.] System documentation
\item[f.] Benchmark of PCRC and related runtimes
\item[g.] Comparison of COCOLIB and metachaos 
\item[h.] demos and tests
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation. 
Indiana will help for item {\tt b} and {\tt c}. Florida will help in
benchmarking collective data movement routines.

\end{enumerate}

\paragraph{Stage 2 (September 1, 1997 to June 30, 1998)}: aiming to fulfill 
all PCRC requirement.
The following items are identified.

\begin{enumerate}
\item
Enhancement of PCRC runtime.

\begin{itemize}
\item[a.] a fully operational connection between NPAC library and 
        Maryland library via meta-chaos or other means
\item[b.] provide support for irregularly distributed arrays in PCRC
      runtime (HPF-2-style irregular block distribution formats and/or
      Adlib-style ``non-Cartesian arrays'').
\item[c.] additional runtime routines 
\item[d.] a full release of DAGH
\item[e.] more benchmarks and tests
\item[f.] more documents
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation. Maryland will help
for item {\tt b}. Florida will help for item {\tt c}, and Texas for
{\tt d}.
\item   
A quality public domain compiler/interpreter construction infrastructure.

\begin{itemize}
\item[a.] further polish our multi front-end (HPF, pC++, Java) system
\item[b.] a selected set of tools built around our multi front-end,
          including WebFlow and web-based program steering and debugging
          utilities. 
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation.

\item
A releasable HPF compiler.

\begin{itemize}
\item[a.] support for general FORALL constructs
\item[b.] support for INDEPENDENT directive
\item[c.] some support for HPF 2.0 features
\item[d.] test and demo suite with real applications.
\end{itemize}

Syracuse will be the main force in the implementation work. Cooperating
Systems will help in testing and documentation. 

\item
An infrastructure supporting high level SPMD programming practice. 

This is to be a valuable by-product of this project that we have been
seeing its emergence from our work, namely our runtime may also
be effectively used as an infrastructure to support SPMD programming. 
In particular, application programmers will not have to
use {\tt send()} and {\tt receive()} in their code. Instead, they
use high level facilities provided by the runtime. We intend to use
Java as a vehicle for demonstrating this SPMD programming model.
More specifically, user will be able to write Java SPMD programs
that call PCRC runtime functions as native methods.

Particular work needed for this product includes optimization,
extensive testing on both functionality and portability, and
documentation. Syracuse will be mainly responsible for it.
\end{enumerate}
\end{document}
