Algorithm engineering
Algorithm engineering is the combination of theoretical algorithm design with real-world data. By taking an algorithm and combining it with a hardware device connected to the real-world, you are able to more accurately verify and validate the algorithm results and behavior. The real-world device may be a simple data acquisition or stimulus device or you may take the algorithm and implement it on some embedded platform such as an FPGA or microprocessor that may be similar to the final system design.
The term “algorithm engineering” was first used with specificity in 1997, with the organization of the first Workshop on Algorithm Engineering (WAE97).
Algorithm engineering refers to the process required to transform a pencil-and-paper algorithm into a robust, efficient, well tested, and easily usable implementation. Thus it encompasses a number of topics, from modeling cache behavior to the principles of good software engineering; its main focus, however, is experimentation. (Algorithm Engineering for Parallel Computation; David A. Bader1, Bernard M. E. Moret1, and Peter Sanders2 1 Departments of Electrical and Computer Engineering, and Computer Science Universityof New Mexico, Albuquerque, NM 2 Max-Planck-Institut fィur Informatik Stuhlsatzenhausweg