Sylvia Crain
Silicon Graphics, Inc.
1660 Old Pecos Trail, Suite F
Santa Fe, NM 87505 USA
E-mail: svc@cray.com
June 16, 1998
This paper will address the road map and directions for the Cray Programming Environment and MIPSpro compiler releases. General product directions and specifics of recent and upcoming release will be discussed. Additionally the strategy for hardware and software support for Cray Programming Environments and the focus for bug resolution will be addressed.
With the introduction of the product road map for Silicon Graphics it was necessary to re-evaluate the current plans and directions for Cray Programming Environment products and ensure they were consistent with the directions of the corporation. Some modifications were made to the programming environment plans for convergence to a single IRIX based product incorporating ideas and technology from the MIPSpro, IRIX Developer Tools, and Cray Programming Environment products . The road map also provided an opportunity to ensure the strategies currently in place for enhancing and supporting the current Cray product line were appropriate. In many cases, the strategies already in place were retained and we only restated the previous strategy.
The remaining sections of this paper will describe, the current plans for convergence of the Cray product set with the Silicon Graphics based products (Section 2), review the recent and upcoming releases for both Cray Programming Environments and MIPSpro compilers (Section 3), and review the strategies for hardware, software and bugfix support for Cray Programming Environment products (Section 4). Information on the IRIX Developer Tools plans were presented in another presentation during the conference so are only minimally discussed here.
The introduction of the Silicon Graphics road map earlier this year did not significantly change the basic directions already defined to bring the current Cray Programming Environment product set together with the MIPSpro and IRIX Developer Tools products. The Supercomputing Application Program Interface (API), introduced in 1997 by Silicon Graphics, is still the foundation for ensuring compatibility for current Cray customers. This API provides a set of language and library functionality which allows for compatibility and portability across platforms for high performance computing customers.
Much work has already been completed to bring the Fortran products of Silicon Graphics and Cray to a single common language. Both the MIPSpro and Cray Fortran 90 compilers are based on the common language sources developed by Cray. The CrayLibs Fortran 90 library is also available for MIPSpro users as well as the older MIPSpro f77 libraries. Over the next several years additional work will be done to merge the MIPSpro f77 compiler extensions into a common fortran language base used by all Silicon Graphics compilers. Through time, the language bases for the MIPSpro and Cray fortran compilers will merge into a single common product providing portability and compatibility across the entire UNIX based Silicon Graphics hardware line.
For the C and C++ languages, both Cray and MIPSpro compilers use the C and C++ compiler frontend available from Edison Design Group. Over the next several releases, the versions used for both products will be merged into a single product source used for all Silicon Graphics C and C++ compilers. This convergence will provide a consistent and compatible language for users moving their applications from one Silicon Graphics platform to another.
OpenMP is a set of directives that support multi-platform shared memory programming on UNIX platforms and Microsoft Windows NT architectures. The standard was jointly defined by a group of computer hardware and software vendors led by Silicon Graphics and provides a portable, scalable model that gives shared-memory programmers a simple and flexible interface for developing parallel applications. The Fortran standard is complete and the C standard is nearing completion. Use of OpenMP provides a common interface for programmers previously using the Cray Autotasking directives or the MIPSpro power compiler directives. OpenMP for Fortran is available today for IRIX based products and will be shortly for UNICOS based products. OpenMP for C/C++ will be available shortly after the standard is completed. Note that this is a shared memory programming model and thus is not supported on UNICOS/mk systems.
From a tools perspective, it is anticipated there will be minimal commonality of tools between IRIX platforms and traditional Cray platforms until users migrate to the future single hardware product family based on IRIX. Efforts are underway to understand functionality currently available on Cray platforms that should be carried to IRIX based tools. Commonality of language specific tools such as ftnsplit, ftnmgen and ftnchop does exist today and we are also exploring a common information file interface for all the compilers and tools.
The Cray Programming Environment 3.0.2 release provided several small but important features and enhancements and was available in March of 1998 for both PVP and T3E systems.
This release provides Year 2000 compliance for all Programming Environment products. Several optimization and tasking enhancements were also added.
The NOINTERCHANGE directive is available for both PVP and T3E systems and allows users to inhibit interchange of a specified loop with another inner or outer loop. WAIT/SEND directives provide support to control execution order in tasked loops, allowing tasking of loops containing order dependencies. This is a PVP only feature which was available on cf77 and is now available in CF90. T3E performance improvements were made to the software pipeliner and the cache bypass directive. Additionally a directive (CONCURRENT) was added to allow users to specify additional information regarding dependencies between array references, and a new option was added to support loop fusion. Loop fusion allows for enhanced performance by increasing opportunities to eliminate redundant computations and memory references.
We have also continued to move towards full compliance with the POSIX library standard by adding support for signal handling routines.
Three new tools were added to the CrayTools package, ftnsplit, ftnmgen and ftnchop. These tools are also available in the IRIX Developer Tools release. Additionally, the ability to debug pthreads was added to Totalview for T3E systems.
The MIPSpro 7.2.1 release was also available in March 1998. This release provided support for IRIX 6.5 and added support for OpenMP for Fortran, the newly defined shared memory parallel programming directive set. See Section 2 for more details on OpenMP.