Ronald F. Boisvert and Daniel W. Lozier, ACMD
We have been involved in the development, maintenance and/or support of a variety of large mathematical software libraries. Among these are the NIST Core Math Library, the SLATEC Common Math Library, and LAPACK. We describe each of these projects here.
NIST Core Math Library
The NIST Core Math Library (CMLIB) is a collection of more than 1400 Fortran subprograms for the solution of a wide variety of mathematical and statistical problems. The library serves as a mechanism for providing high-quality, portable software parts that are supported for use on nearly every scientific computing platform in use at NIST. The library is actually a collection of (more than 50) separate public-domain packages, including LINPACK, BLAS, EISPACK, FISHPAK, MINPACK, and QUADPACK. Machine-dependencies within the library are localized using the PORT machine constant functions and the XERROR error handler. On-line documentation is available for all routines.
We provide direct support for 17 separate local implementations: Cray Y-MP, Convex C3820 (three versions), Sun workstations (six versions), Silicon Graphics workstations (two versions), HP workstations (two versions), IBM RS/6000 (two versions), and IBM PC. On high performance systems like the Cray and Convex, manufacturer-supplied versions of core packages like, the BLAS, LINPACK, and EISPACK are substituted for the original Fortran versions. In this way a code based on CMLIB can be developed and used on a workstation and then trivially ported to the Cray where it will experience enhanced vector performance. Access to CMLIB from workstations and PCs is available over the local network via the Network File System (NFS). In this way users obtain the library, its documentation, and its source without expending any local disk space. Updates are automatic. More than 100 workstations (including about 60 CAML Suns) access CMLIB in this way.
CMLIB continues to see high usage rates on NIST systems. For example, during 1994 the library file on the Cray Y-MP was referenced 2455 times. Although CMLIB is well-maintained and supported, it is no longer under active development.
CMLIB is available for downloading via anonymous FTP on enh.nist.gov. Externally it is distributed from FTP sites at Carnegie-Mellon University (statlib), the Naval Research Laboratory, and others.
SLATEC Common Math Library
The SLATEC Library is a public-domain Fortran library with comprehensive support for many standard algorithms that are used in scientific computing. It is installed for general usage on selected NIST computers. It is managed by a committee of representatives from several national laboratories, including NIST. The latest release, version 4.1, appeared in July, 1993. It is available over the Internet, in whole or in part, from Netlib. Minor coding corrections and documentation improvements are continuously being made by the committee in response to identified needs. The Netlib maintainer for SLATEC is a committee member, and a procedure is being worked out through which the Netlib version will contain all corrections and improvements. A new release is not contemplated at this time.
LAPACK is a comprehensive, well-respected and freely distributed library of software for linear algebra. Based on Level 2 and 3 BLAS, which have been optimized for high performance by many computer manufacturers, LAPACK provides an excellent compromise between efficiency and portability for a wide range of architectures.
Although we have not been involved with the development of LAPACK, we recently completed a systematic effort to make LAPACK available on all NIST mainframes and workstations. On some systems, such as the Cray, Convex and Silicon Graphics, optimized LAPACK is provided directly by the manufacturer. In other cases, such as IBM RISC and Hewlett Packard workstations, only optimized BLAS are provided. On yet other systems, such as Sun workstations, there is no manufacturer support for LAPACK or BLAS. To fill all the necessary gaps we have made the following precompiled libraries available for NFS mounts by any NIST workstation : BLAS for Sun workstations, and LAPACK for Sun, IBM RISC and Hewlett-Packard workstations. In addition, we have developed a man page for LAPACK which summarizes access mechanisms for LAPACK on all local Cray, Convex, IBM, SGI, HP and Sun systems.