The
emerging discipline of algorithm engineering has primarily
focused on transforming pencil-and-paper sequential algorithms
into robust, efficient, well tested, and easily used implementations.
As parallel computing becomes ubiquitous, we need to extend
algorithm engineering techniques to parallel computation.
Such an extension adds significant complications. After
a short review of algorithm engineering achievements for
sequential computing, we review the various complications
caused by parallel computing, present some examples of
successful efforts, and give a personal view of possible
future research.