Codes, Fast and Scalable Scientific Computation
A code is a system for concealing a message by replacing words or phrases with symbols. Codes are used on computers for a number of purposes relevant to espionage and security, among them the development of large-scale scientific simulations. For this to be possible, it is necessary to develop algorithms, or mathematical processes, that are easily scalable, or adjustable, such that computation time does not increase exponentially.
There are numerous situations for which a computer simulation is preferable to a real-life demonstration, an extreme example being a study of radiation diffusion following a nuclear blast. Performing such a study requires a computer simulation, or a program that emulates and measures the effects of a real-life process. These problems are so complex that they require parallel processing, or the use of two or more computers working in tandem, as well as the development of scalable algorithms.
An algorithm is a method for solving a mathematical problem by using a finite number of computations, usually involving repetition of certain operations or steps. A scalable algorithm is one that is capable of implementing additional computational resources in such a way as to solve increasingly more complex problems. To be truly scalable, the work required to solve an algorithm should grow at a rate smaller than the rate at which the amount of input grows.
█ FURTHER READING:
Fast and Scalable Scientific Computation. Defense Advanced Research Projects Authority. < http://www.arpa.mil/dso/thrust/am/faca_1.htm > (January 27, 2003).
Scalable Linear Solvers. Lawrence Livermore National Laboratory. < http://www.llnl.gov/CASC/sc2001_fliers/SLS/SLS01.html > (January 27, 2003).