Skip to main content

Algorithm Engineering

  • Reference work entry
  • 449 Accesses

Synonyms

Experimental parallel algorithmics

Definition

Algorithmics is the subdiscipline of computer science that studies the systematic development of efficient algorithms. Algorithm Engineering (AE) is a methodology for algorithmic research that views design, analysis, implementation, and experimental evaluation of algorithms as a cycle driving algorithmic research. Further components are realistic models, algorithm libraries, and a multitude of interrelations to applications. Fig. 1 gives an overview. A more detailed definition can be found in [6]. This article is concerned with particular issues that arise in engineering parallel algorithms.

Algorithm Engineering. Fig. 1
figure 1_89

Algorithm engineering as a cycle of design, analysis, implementation, and experimental evaluation driven by falsifiable hypotheses

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Bibliography

  1. Batista VHF, Millman DL, Pion S, Singler J (2009) Parallel geometric algorithms for multi-core computers. In: 25th ACM symposium on computational geometry, pp 217–226

    Google Scholar 

  2. Culler D, Karp R, Patterson D, Sahay A, Schauser KE, Santos E, Subramonian R, Eicken Tv (1993) LogP: towards a realistic model of parallel computation. In: 4th ACM SIGPLAN symposium on principles and practice of parallel programming, pp 1–12, San Diego, 19–22 May, 1993. ACM, New York

    Google Scholar 

  3. Gibbons PB, Matias Y, Ramachandran V (1998) The queue-read queue-write pram model: accounting for contention in parallel algorithms. SIAM J Comput 28(2):733–769

    Article  MATH  MathSciNet  Google Scholar 

  4. Grama AY, Gupta A, Kumar V (1993) Isoefficiency: measuring the scalability of parallel algorithms and architectures. IEEE Concurr 1(3):12–21

    Google Scholar 

  5. Reussner R, Sanders P, Prechelt L, Müller M (1998) SKaMPI: a detailed, accurate MPI benchmark. In: EuroPVM/MPI, number 1497 in LNCS, pp 52–59

    Google Scholar 

  6. Sanders P (2009) Algorithm engineering – an attempt at a definition. In: Efficient Algorithms. Lecture Notes in Computer Science, vol 5760. Springer, pp 321–340

    Google Scholar 

  7. Schöning U (1999) A probabilistic algorithm for k-sat and constraint satisfaction problems. In: 40th IEEE symposium on foundations of computer science, pp 410–414

    Google Scholar 

  8. Singler J, Sanders P, Putze F (2007) MCSTL: the multi-core standard template library. In: 13th international Euro-Par conference. LNCS, vol 4641. Springer, pp 682–694

    Google Scholar 

  9. Soperm AJ, Walshaw C, Cross M (2004) A combined evolutionary search and multilevel optimisation approach to graph partitioning. J Global Optim 29(2):225–241

    Article  MathSciNet  Google Scholar 

  10. Valiant L (1994) A bridging model for parallel computation. Commun ACM 33(8)

    Google Scholar 

  11. Walshaw C, Cross M (2007) JOSTLE: parallelmultilevel graph-partitioning software – an overview. In: Magoules F (ed) Mesh partitioning tech-niques and domain decomposition techniques, pp 27–58. Civil-Comp Ltd. (Invited chapter)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Sanders, P. (2011). Algorithm Engineering. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_89

Download citation

Publish with us

Policies and ethics