Encyclopedia of Espionage, Intelligence, and Security

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.