The formal period of our collaborarion research with Sun Microsysytems finished this September. However, we have agreed with continuing our collaborative research on new-style programming for reliable and efficient parallel programs. A report about the collaboration work is now available.
We have tried a (systematic) translation of Fortran programs into Fortress programs. Example translated programs can be found in the demo directory of the Fortress repository (/ProjectFortress/demos/BiCGSTAB.fss, BiCGSTAB2.fss). A report about the translation is available at http://www.ipl.t.u-tokyo.ac.jp/~emoto/BiCGSTAB-report-eng.pdf.
Our proposed library has been integrated into the standard library of the current Fortress. Our library can optimize nested reductions drastically and non-trivially, equipped with an optimization mechanism based on program calculation. Some example codes being optimized are found in the demo program (/ProjectFortress/demos/Generator2Demo.fss). A small tour on the library is found at the community wiki: http://projectfortress.sun.com/Projects/Community/wiki/GoG .
Our group will collaborate with Dr. Guy Steele and his team at Sun Microsystems Laboratories to develop a library based on skeletal parallel programming in Fortress (a programming language designed by Sun for high-performance computing). The collaborative research is expected to enhance the convenience of parallel programming significantly, and the results will be disclosed under an OSI-approved license.
Skeletal parallelism is a programming method that uses pre-defined components (skeletons) extracted from general-purpose parallel processing constructs to make parallelization process simpler and more scalable, while shielding programmers from the complexity of parallelism such as task communication and synchronization. In addition, the use of constructive algorithmics is being studied to understand the structure of programs mathematically to facilitate program generation and improve the efficiency through program transformation.
Fortress is a new programming language being created "to do for Fortran what Java(TM)-based technologies have done for C" by enabling highly productive programming constructs. The wide-ranging language constructs of Fortress and the knowledge gained from the study of skeletal parallel programming are expected to produce a synergistic effect. Once the theoretical and implementation issues of the programming language are clearly defined, development of a library will be attempted.
Our library codes have been committed to Fortress' subversion repository. Please refer to and download from the community site.