In 1991--92, New York State funded a survey of the industrial opportunities for parallel computing. This was part of a project, ACTION (Advanced Computing Technology is an Innovative Opportunity Now), at Syracuse University. ACTION's goal was to accelerate the use of parallel computing into the industry of New York State. The purpose of the survey was to isolate some initial projects and, more generally, to provide information on which to develop a long-term plan for ACTION. Relevant information included the basic parallel computing software and algorithm technologies needed for particular industry sectors. In this paper, we concentrate on the software capabilities needed for these applications, and also the appropriate parallel machine architectures. Further discussion of the survey technique, particular companies interviewed, and the detailed nature of the applications will be found in [Fox:92e], [Fox:94a], and papers cited earlier. The survey has inevitable limitations. There are many important applications---oil exploration is a good example---that are not well represented in New York State. Further, the survey was not complete within its limited geographic region, and is still being extended.
Tables 1--4 summarizes the industrial opportunities for parallel computing in the form we will use them. Some 50 different applications used in the survey have been broken up into 17 distinct areas. This is certainly somewhat arbitrary, and there are many overlaps (and omissions as discussed). The importance, difficulty of implementation, and degree of risk also differ from case to case. However, these issues will not be discussed here.
Table 1: Guidelines used in Developing Categories of
Industrial and Government Applications of HPCC
shown in Tables 3--4
Note on Language: HPF, MPF use Fortran for illustration,
one can use parallel C, C++ or any similar extensions of data
parallel or message passing languages
Table 3: Five Categories of Problems
Table 4: Information Integration Applications 29 to 33
Table 1 describes the general guidelines used in organizing Table 4. Note that we did not directly cover academic areas, and a more complete list (which included our industrial table) was produced by the Petaflops meeting [Peta:94a]. Notice that Tables 1--4 are organized around the concept of ``information.'' This corresponded to an early realization from the survey that the major industrial opportunities for HPCC in New York State were information related. Thus, for instance, simulation is subtitled ``Information Production'' with say, computational fluid dynamics simulations providing information to be used in either manufacturing (application 32) or education (application 33). It is not directly relevant to this paper, but the results of this survey caused the ACTION program to refocus its efforts and evolve into InfoMall [Fox:93c], [Fox:94f], [Fox:94h], [Fox:95b], [Infourl:95a], [Mills:94a]. Here, ``Info'' refers to the information based application focus and ``Mall'' to the use of a virtual corporation (groups of ``storeholders'') to produce the complex integrated applications enabled by HPCC.
The first column of Table 4 contains the area label and some sample applications. Algorithmic and other comments are in column two. The third and fourth columns describe, respectively, the problem architecture and an estimate of appropriate parallel software approach. The background for these two columns is described in the following two sections.
This paper is not intended to advocate a particular parallel software environment or language. Rather, we want to describe the broad capabilities in the parallel programming paradigm needed for the applications of Table 4. We believe that the programming functionality needed by a particular application is broadly determined by the problem architecture described in the following section. In discussing software needs, we do not discuss all the components of the parallel software environment and just those relevant for expressing problems.
For this reason, we use broad software classifications using, for instance, MPF (Fortran plus message passing) as typical of all similar explicit messaging systems---one could substitute here C plus message passing, or Fortran M programming environments. Again, PVM, MPI, or any such message passing system could be used without changing the significance of the tables. High Performance Fortran is used as a typical data parallel language, although this has an evolving definition and similar C++ environments could well be more attractive, and can be substituted in the table.