Skip to main content
Log in

Algorithm Engineering für moderne Hardware

  • HAUPTBEITRAG
  • ALGORITHM ENGINEERING FÜR MODERNE HARDWARE
  • Published:
Informatik-Spektrum Aims and scope

Zusammenfassung

Die Entwicklung von effizienten Algorithmen basiert auf der theoretischen Modellierung der Rechner, auf denen sie ausgeführt werden sollen. Noch heute werden frühe Rechnermodelle wie die Random Access Machine (RAM) verwendet, um die Güte von Algorithmen zu analysieren und untereinander zu vergleichen. Aber sich verändernde Umstände wie der rasante Anstieg von interessanten Instanzgrößen, technologischer Fortschritt sowie neue Kostenmaße stellen neue Anforderungen an die Bewertung von Algorithmen – und damit auch an ihre Enwicklung.

In den letzten Jahren wurden viele Fortschritte hinsichtlich dieser neuen Herausforderungen gemacht. Seit den neunziger Jahren des vergangenen Jahrhunderts werden auf Basis des I/O-Modells Algorithmen entwickelt, die die Speicherhierarchien und -technologien moderner Rechner ausnutzen. Auch neueste Speichertechnologien wie Flash-Speicher wurden schon in einem Modell beschrieben, das es Entwicklern ermöglicht, effiziente Algorithmen dafür zu entwickeln.

Der andauernde Trend zu Mehrkernprozessoren führt dazu, dass viele Ergebnisse der klassischen Parallelverarbeitung auf praktisch allen modernen Rechnern Anwendung finden. Algorithmen, die nach dem PEM-Modell entwickelt wurden können die grundlegenden Eigenschaften heutiger Prozessoren ausnutzen. Auch wenn es noch kein allgemein anerkanntes theoretisches Modell für Berechnungen auf Grafikprozessoren gibt, können Algorithmenentwickler hocheffiziente parallele Algorithmen für sie entwickeln, wenn sie sich der Eigenschaften der Hardware bewusst sind.

Wirtschaftliche Notwendigkeiten haben dazu geführt, dass sich ein zusätzliches Optimierungsziel für IT-Projekte etabliert hat – die Energieeffizienz. Auch das Algorithm Engineering kann seinen Teil dazu beitragen, zum Beispiel mit der Optimierung von Algorithmen für stromsparende Hardware.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

References

  1. Aggarwal A, Vitter JS (1988) The input/output complexity of sorting and related problems. Commun ACM 31(9):1116–1127

    Article  MathSciNet  Google Scholar 

  2. Albers S (2010) Energy-efficient algorithms. Commun ACM 53(5):86–96

    Article  MathSciNet  Google Scholar 

  3. Arge L, Goodrich MT, Nelson M, Sitchinava N (2008) Fundamental parallel algorithms for private-cache chip multiprocessors. In: 20th SPAA, Munich, Germany, 14–16 June 2008. ACM, pp 197–206, 2008

  4. Arge L, Procopiuc O, Vitter JS (2002) Implementing I/O-efficient data structures using TPIE. In: Proc. 10th European Symposium on Algorithms (ESA), LNCS, vol 2461, Springer, pp 88–100. Library Download under: http://www.madalgo.au.dk/tpie/, last access 30.1.2013

  5. Beckmann A, Meyer U, Sanders P, and Singler J (2011) Energy-efficient sorting using solid state disks. Sustain Comput Inform Syst 1(2):151–163

    Article  Google Scholar 

  6. Bouganim L, Jónsson B, Bonnet P (2009) uFLIP: understanding flash IO patterns. In: Proc. 4th Conference on Innovative Data Systems Research, Asilomar, CA, USA, 4–7 January 2009

  7. Chen S, Gibbons PB, Nath S (2011) Rethinking database algorithms for phase change memory. In: Proc. 5th Conf. on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, 9–12 January 2011

  8. Dementiev R, Kettner L, Sanders P (2008) STXXL: standard template library for XXL data sets. Softw Pract Exp 38(6):589–637. Library available under http://stxxl.sourceforge.net, last access 30.1.2013

    Google Scholar 

  9. Frigo M, Leiserson CE, Prokop H, Ramachandran S (1999) Cache-oblivious algorithms. In: 40th FOCS. IEEE, New York City, NY, 17–19 October 1999, pp 285–297

  10. Hintemann R, Fichter K (2012) Energieverbrauch und Energiekosten von Servern und Rechenzentren in Deutschland – Aktuelle Trends und Einsparpotenziale bis 2015. Borderstep Institut für Innovation und Nachhaltigkeit, Berlin

    Google Scholar 

  11. Irani S, Pruhs K (2005) Algorithmic problems in power management. SIGACT News 36:63–76

    Article  Google Scholar 

  12. Kumar P (2003) Cache oblivious algorithms. In: Algorithms for Memory Hierarchies, LNCS, vol 2625. Springer, pp 193–212, 2003.

  13. Lewis H, Papadimitriou C (1997) Elements of the Theory of Computation, 2nd edn. Prentice-Hall

  14. Mallón D, Taboada G, Teijeiro C, Touriño J, Fraguela B, Gómez A, Doallo R, Mouriño J, Ropo M, Westerholm J, Dongarra J (2009) Performance evaluation of MPI, UPC and OpenMP on multicore architectures. In: Recent Advances in Parallel Virtual Machine and Message Passing Interface, LNCS, vol 5759. Springer, pp 174–184, 2009

  15. NVIDIA Corporation (2012) CUDA C Programming Guide 4.2. NVIDIA

  16. Richardt C, Orr D, Davies I, Criminisi A, Dodgson NA (2012) Real-time spatiotemporal stereo matching using the dual-cross-bilateral grid. In: Proceedings of the European Conference on Computer Vision (ECCV), LNCS, vol 6313. Springer, pp 510–523, 2010

  17. Vitter JS (2008) Algorithms and Data Structures for External Memory. Foundations and Trends in Theoretical Computer Science. now Publishers, Hanover, MA

    Google Scholar 

  18. Zhao Y, Chen X, Sham C-W, Tam W, Lau F (2011) Efficient decoding of QC-LDPC codes using GPUs. In: Algorithms and Architectures for Parallel Processing, LNCS, vol 7016. Springer, pp 294–305

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ulrich Meyer.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Meyer, U., Weichert, V. Algorithm Engineering für moderne Hardware. Informatik Spektrum 36, 153–161 (2013). https://doi.org/10.1007/s00287-013-0681-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00287-013-0681-4

Navigation