1.1  Definition and Historical Perspectives

Computational Science

Computational science is a relatively new discipline, and there is currently no consensus on a precise definition of what computational science actually is. In broad terms, computational science involves using computers to study scientific problems and complements the areas of theory and experimentation in traditional scientific investigation. Computational science seeks to gain understanding of science principally through the use and analysis of mathematical models on high performance computers.

Computational science has emerged as a powerful and indispensable method of analyzing a variety of problems in research, product and process development, and many aspects of manufacturing. Computational simulation is being accepted as a third methodology in engineering and scientific research and fills a gap between physical experiments and analytical approaches. These simulations provide both qualitative and quantitative insights into many phenomena that are too complex to be dealt with by analytical methods or too expensive or dangerous to study by experiments. Many experiments and investigations that have traditionally been performed in a laboratory, a wind tunnel, or the field are being augmented or replaced by computational simulations. Some studies, such as nuclear repository integrity and global climate change, involve time scales that preclude the use of realistic physical experiments. The availability of high performance computers, graphic workstations, and high speed networks, coupled with major advances in algorithms and software, has brought about a revolution in the way scientific and engineering investigations are carried out.

Computational science should not be confused with computer science. Computational science focuses on a scientific or engineering problem and draws from computer science and mathematics to gain an improved understanding of the problem. Computer science focuses on the computer itself. Even though the areas are quite distinct, many of the topics typically considered to be in the domain of computer science are of much value in computational science.

Generations of Computer Technology

The evolution of digital computing is often divided into generations, characterized by computer technology, architecture and available compilers and algorithms. Throughout most of the development of computing, new generations appeared roughly on a ten year cycle. More recently, with the proliferation of architecturally diverse massively parallel computers, this cycle appears to have been compressed somewhat.

First Generation 1938-1953

Electromechanical relays and electronic valves and tubes were used in these early computers. The devices were connected by insulated wires. The first machines implemented only binary-coded languages. In 1950, the first stored computer program was developed, marking the beginning of high-level computer programming. Little or no software was available, and the machines peaked at about 100 flops. Electronic valves had gate delays of 1 microsecond. Near the end of this generation, in 1950, Algol began to emerge.

Second Generation 1952-1963

The second generation saw the development of discrete diodes and transistor technology with gate delays of approximately 0.3 microseconds. Bell Laboratories built the first transistorized digital computer, TRADIC, in 1954. During this second generation, FORTRAN (1956) and Cobol (1959) were introduced, and Algol (1960) was formalized by an international committee.

Third Generation 1962-1972

This generation brought huge gains in computational power. It began with the use of small-scale integrated (SSI) circuits and evolved to the use of medium-scale integrated (MSI) circuits. Multi-layered printed circuits were developed, and core memory was replaced by faster, solid state memories. Time sharing became common, and virtual memory was developed. Computer designers began to take advantage of parallelism by using multiple functional units; by overlapping CPU and I/O operations; and by pipelining both the instruction stream and the data stream.

In 1964, Seymour Cray developed the CDC 6600, which was the first architecture to use functional parallelism. By using 10 separate functional units that could operate simultaneously and 32 independent memory banks, the CDC 6600 was able to attain a computation rate of 1 million floating point operations persecond (1 Mflops). Five years later CDC released the 7600, also developed by Seymour Cray. The CDC 7600, with its pipelined functional units, is considered to be the first vector processor and was capable of executing at 10 Mflops. The IBM 360/91, released during the same period, was roughly twice as fast as the CDC 6600. It employed instruction look-ahead, separate floating point and integer functional units and a pipelined instruction stream. The IBM 360-195 was comparable to the CDC 7600, deriving much of its perfomance from a very fast cache memory.

In the same period, parallel processors and full blown vector processors began to emerge. The SOLOMON computer, developed by Westinghouse Corporation, and the ILLIACIV, jointly developed by Boroughs, the Department of Defense and the University of Illinois, were representative of the first parallel computers. The Texas Instrument Advanced Scientific Computer (TI-ASC) and the STAR-100 of CDC were pipelined vector processors that demonstrated the viability of that design and set the standards for subsequent vector processors.

Early in this third generation Cambridge and the University of London cooperated in the development of CPL (Combined Programming Language, 1964). CPL was, according to its authors, an attempt to capture only the important features of the complicated and sophisticated Algol. However, like Algol, CPL was large with many features that were hard to learn. In an attempt at further simplification, Martin Richard of Cambridge developed a subset of CPL called BCPL (Basic Computer Programming Language, 1967). In 1970 Ken Thompson of Bell Labs developed yet another simplification for CPL called simply B. Thompson wrote B in connection with an early implementation of the UNIX operating system.

EXERCISES

1.&bnsp; Access the following URLs where you will find examples of computational science. Write a short summary of four of the sites you visited.

Grand Challenges

Computational chemistry

Chemically reacting flows

Jupiter impact

Condensed matter physics

El Niño

The Weather Processor

NASA’s Scientific Visualization Gallery

Visualization of Glacier Changes from Landsat Data

Lunar Topography

2.  Write a paragraph comparing and contrasting computer science and computational science.