Chapter 1

Research Summary

1.1 Research Accomplishments

1.1.1 Fortran Parallel Programming Systems

WebFlow: Programming with the Web. Our research in this area addresses needs for high level programming environments and tools to support distance computing on heterogeneous distributed commodity platforms and high-speed networks, spanning across labs and facilities. More specifically, we are developing WebFlow—a scalable, high level, commodity standards based HPDC system that integrates: high-level front-ends for visual programming (in Tier 1), distributed object-based, scalable, and reusable Web server and Object broker Middleware (in Tier 2), and a high performance backend implemented using the metacomputing toolkit of GLOBUS (Tier 3).

We demonstrated an early prototype of WebFlow at Supercomputing ’97. In this demo, using our Web interface, we run an HPF application encapuslated as a WebFlow module. In addition, we integrated WebFlow with the DARP system which allowed us to extract data from the HPF application on-the-fly, without any modification of ther original code, and visualize them using other WebFlow modules at runtime. During the Alliance’98 meeting, we used WebFlow as a high level user interface to Globus: the click-drag-and-drop methapor was used to create a network of computational modules, and to distribute it over nodes of the virtual metacomputer.

Common runtime support for parallel languages (PCRC). Syracuse have delivered the NPAC kernel runtime, a C++ class library implemented on top of the standard Message Passing Interface, MPI. Classes in the library implement a Distributed Array Descriptor (DAD) that supports all HPF distribution formats and alignment options, and the library provides an extensive set of collective data movement routines and collective array arithmetic routines. In collaboration with the University of Peking and Harbin institute of Technology, Syracuse developed a research HPF compiler that uses the NPAC library to manage array access and communication. The library is also being used as a foundation of the HPJava programming environment.

HPJava: a Java environment for parallel programming. Syracuse are developing a Java environment for distributed-memory SPMD parallel computing called HPJava. This will eventually contain Java bindings for distributed-array-oriented libraries, general MIMD programming libraries, and a preprocessor for an extended dialect of Java. The HPJava language model was motivated by work on HPF during in the PCRC project—it captures the HPF distributed array model in special syntax, but assumes that the programmer directly calls high-level runtime functions for communication and array manipulation. In the last year the HPJava language definition has been devised, work on the translator has commenced, and Java bindings of suitable runtime functions have been implemented. The first useable component of the HPJava environment is the mpiJava binding of MPI, which was recently released.

Java Grande Forum. The Java Grande Forum is a group of academic and industrial partners aiming to promote Java standards for communication and compute intensive applications. The process was initiated after a series of successful workshops on Java for Computational Science and Engineering demonstrated a broad community interest in the area. The stated goal of the Java Grande Forum is to develop community consensus and recommendations for either changes to Java or establishment of standards (frameworks) for Grande libraries and services. These language changes or frameworks are designed to realize the best ever Grande programming environment.

See http://www.npac.syr.edu/javagrande/charterindex.html.

Highlights of the last year include creation of the Java Grande Forum, three meetings of the forum in Palo Alto, a Birds of a Feather meeting at JavaOne, and delivery of a Java Grande Forum Charter document.

1.2 Research Plan

1.2.1 Fortran Parallel Programming Systems

WebFlow: Programming with the Web. The first experience using the system are very encouraging. Nevertheless the system requires many improvements we want to address in the next phases of the project. The plans for the next year include implementation of a more robust and user friendly front-end, addressing security issues adequatly, providing support for a high performance data transfer and QoS networking (using Globus mechanisms, in particular GASS services), and upgrading the middle-tier by employing industry standard distributed object technologies (such as CORBA).

HPJava: a Java environment for parallel programming. An initial version of the HPJava translator will be completed. Various applications will be implemented in the new environment. We will investigate making HPJava bindings to various established parallel programming libraries. The mpiJava interface will be extended to incorporate object serialization.