This paper combines a recent survey of industrial applications with a problem classification developed for largely academic applications. We show how this allows one to isolate the parallel computing hardware and software characteristics needed for each problem. The industrial applications come from a survey undertaken of New York State industry in 1991 and 1992. Further details of the survey will be found in [Fox:92e], [Fox:94b], [Fox:94h], [Fox:94c], [Fox:94i], [Mills:93a]. Here, we summarize relevant features of it in Section 2. Section 3 reviews and extends a classification of problem architectures originally developed in 1988 from a rather complete survey of parallel applications at the time [Fox:88b], [Fox:88tt], [Fox:91g], [Fox:94a].
In Section 4, we show how the different problem categories or architectures are addressed by parallel software systems with different capabilities. We give illustrative examples, but not an exhaustive list of existing software systems with these characteristics. We consider High Performance Fortran and its extensions as a data parallel language; message passing systems, such as those supplied with commercial multicomputers; as well as approaches to software integration. In Section 3, we point that our old classification of problems omitted what we can call metaproblems---problems built up from several components---each of which could have its own parallelization issues.
In Section 5, we combine the previous three sections and describe informally the problem architecture, and possible software and hardware needs for a selection of industrial applications. We have grouped our discussion into three broad case studies; computational chemistry; computational fluid dynamics and manufacturing; Monte Carlo methods. Each case study covers several of the 33 industrial areas identified in Section 2. Further, in each case study, we find good examples of the different problem architectures and show that each application area requires a rich software and hardware architecture support.