Informatik-Spektrum

, Volume 36, Issue 2, pp 153–161 | Cite as

Algorithm Engineering für moderne Hardware

HAUPTBEITRAG ALGORITHM ENGINEERING FÜR MODERNE HARDWARE
  • 235 Downloads

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aggarwal A, Vitter JS (1988) The input/output complexity of sorting and related problems. Commun ACM 31(9):1116–1127MathSciNetCrossRefGoogle Scholar
  2. 2.
    Albers S (2010) Energy-efficient algorithms. Commun ACM 53(5):86–96MathSciNetCrossRefGoogle Scholar
  3. 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, 2008Google Scholar
  4. 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.2013Google Scholar
  5. 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–163CrossRefGoogle Scholar
  6. 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 2009Google Scholar
  7. 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 2011Google Scholar
  8. 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.2013Google Scholar
  9. 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–297Google Scholar
  10. 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, BerlinGoogle Scholar
  11. 11.
    Irani S, Pruhs K (2005) Algorithmic problems in power management. SIGACT News 36:63–76CrossRefGoogle Scholar
  12. 12.
    Kumar P (2003) Cache oblivious algorithms. In: Algorithms for Memory Hierarchies, LNCS, vol 2625. Springer, pp 193–212, 2003.Google Scholar
  13. 13.
    Lewis H, Papadimitriou C (1997) Elements of the Theory of Computation, 2nd edn. Prentice-HallGoogle Scholar
  14. 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, 2009Google Scholar
  15. 15.
    NVIDIA Corporation (2012) CUDA C Programming Guide 4.2. NVIDIAGoogle Scholar
  16. 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, 2010Google Scholar
  17. 17.
    Vitter JS (2008) Algorithms and Data Structures for External Memory. Foundations and Trends in Theoretical Computer Science. now Publishers, Hanover, MAGoogle Scholar
  18. 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–305Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  1. 1.Institut für InformatikGoethe Universität FrankfurtFrankfurt/MainDeutschland

Personalised recommendations