Software Engineering Frontiers in Computational Science and
D. E. Stevenson
Department of Computer Science
Clemson, SC USA 29634-1906
Abstract-In 1991, the US Congress passed the High Performance Computing and Communications bill, commonly known as the HPCC bill, enshrining the Grand Challenges as national priorities. The very nature of these problems require the multidisciplinary teamwork of engineers plus computer, mathematical and physical scientists. But many important scientific and engineering problems are solved daily on workstations|these were dubbed the petty challenges". Both classes of problem are demanding computational systems although quite different from non-scientific systems.
We review a philosophical background for CSE, using this development to point out how seemingly innocuous decisions made by engineers and scientists can have disastrous results. Hence, software engineers should see CSE as a professional challenge. Our program is based on studying applications, the algorithms to solve problems arising in those applications, and the mapping of those algorithms to architectures. Using Computing Reviews categories, we outline the subjects required for understanding CSE systems.
Keywords- Computational Science, Software Engineering, Scientific Programming.
In December, 1991, the U. S. Congress passed the High Performance Computing and Communications Act, commonly known as the HPCC . This act focuses on several aspects of computing technology, but two have received the most attention: (i) computational science and engineering (CSE ) as embodied in the Grand Challenges and (ii) the National Research and Educational Network (NREN )|the so-called Information Superhighway". The Grand Challenges are engineering and sci-
entific problems considered vital to the economic wellbeing of the United States. Many of these problems, such as drug design and global climate modeling, have world-wide impact. The current goals of the HPCC are published yearly. The Grand Challenges acknowledge what computational practitioners have long known: problems that are analytically intractable are approachable by computational means. The focus on computation opens an old argument: why do we want to do things numerically, anyway? By extension, what are the ramifications for software development methodologies?
We review the Clemson view of computational science and engineering foundations. A more definitive treatment is to be found in . The Clemson approach (Section 2) recognizes three components to computational science and engineering: applications, algorithms, and architectures. The conduct of computational science and engineering is interdisciplinary and team-oriented. Information concerning the educational aspects of computational science and engineering can be found in [8, 7, 6]. In Section 3, we analyze the conduct of computational science and engineering with an eye to determining where software engineering fits. Section 4 looks at system development directly. Finally, Section 5 considers current efforts to educate all members of the computational science and engineering team.
2 The Challenge of Computa-
tional Science and Engineering
This section reviews foundational and philosophical issues. It is meant to address broad-based concerns and changes in paradigms. A fuller explanation can be found in .