Algorithm engineering

This is an old revision of this page, as edited by LanceBarber (talk | contribs) at 05:05, 20 July 2009 (fis ref). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Algorithm engineering is a 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.

File:AlgorithmEngineering.jpg

The term “algorithm engineering” was first used with specificity in 1997, with the organization of the first Workshop on Algorithm Engineering (WAE97).

It has recently been used to help describe the steps in graphical system design: "a modern approach to designing, prototyping, and deploying embedded systems that combines open graphical programming with COTS hardware to dramatically simplify development, resulting in higher-quality designs with a migration to custom design".

An article from Embedded.com that discusses algorithm engineering with respect to ESL.

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. Bader, Bernard M. E. Moret, and Peter Sanders)[1]

References

[citation needed]

  1. ^ [1]