Previous: Group F -- Algorithms and Libraries I Up: Group F -- Algorithms and Libraries I Next: Targets of Opportunity

Status

The working group focused on three areas: research activities, software-sharing mechanisms, and federal support.

Major Research Activities.

Grand Challenge teams assembled at national laboratories, universities, and a few industries represent a small number of computational scientists who are sophisticated users of advanced computer architectures and who are willing to work hard at implementations that result in high performance. While the HPCC program is not limited to parallel computing, the design of parallel algorithms for a variety of applications is a vital component of the program.

For some application domains, parallel algorithms can be provided by generic mathematical software libraries that are finely tuned for a few architectures and that contain some of the basic algorithms for FFTs, linear algebra kernels, and algorithms for dense and sparse matrix computations. While such libraries may be sufficient for some applications scientists, however, however, they are far from being satisfactory for sophisticated users or for users seeking high performance. Factors that limit the usability of such generic libraries include limited functionality, inappropriate data structures, and lack of algorithm scalability. This situation shows the need for parallel languages that allow sophisticated users to match their algorithms to the architecture at hand, namely, by selecting appropriate data structures and by matching data movements to architectures. For less sophisticated users, it is advantageous to incorporate such features in the compiler as well. In addition to the need for parallel languages with the above flexibility, the group pointed out the need for (i) application-specific libraries that may include mesh generation tools, discretization tools, solution and update tools, and mesh refinement and load-rebalancing tools, and (ii) application-specific languages such as FIDIL for computational fluid dynamics. Applications scientists who are reluctant or unable to make the investment required to create large-scale applications codes that achieve the highest performance possible for each new architecture that comes along must have available generic or application-specific libraries of value for rapidly producing prototype codes that test or verify computational models. This rapid prototyping may then be followed by incremental refinement to enhance performance for a particular architecture. Such refinements should entail further algorithm/architecture matching, including parallel communication utilities for changing data structures and implementing other common communication tasks.

Software-Sharing Mechanisms.

Software sharing occurs mainly between cooperating groups. Application scientists are reluctant to exchange software for two major reasons:

One approach is to fund activities at some institutions where application scientists are working closely enough with systems software groups that are capable of supporting and maintaining the resulting software for a much wider community. Software that has a large enough market should be transferred to an interested industrial partner. Software with a large market should be transferred to an industrial partner.

Sharing mechanisms may not be limited only to complete software packages; templates (or pseudo-code representations) of general algorithms that are language- and architecture-independent may be of great value as well.

Federal Support.

The federal HPCC program has concentrated mainly on Grand Challenge problems and teams to solve them. Concern has been expressed that support for the underlying software infrastructure may be inadequate. By software infrastructure, the group means (i) system software for MOP's (i.e., languages, compilers, and communication primitives); (ii) research in new application-specific algorithms and the resulting software on a variety of architectures; and (iii) application-specific languages. Also, as mentioned above, additional funding is needed for supporting the maintenance, distribution, and consulting activities for applications software of value to a large group of users in the national laboratories and universities. Industry involvement is highly desirable in the distribution of higher-quality versions of such software.

stevens@mcs.anl.gov