Funktionen

Print[PRINT]
.  Home  .  Lehre  .  Seminare  .  Sommersemester 2016  .  Proseminar

Proseminar Rechnernetze:
Challenges in Parallel Computing

Ausgewählte Aspekte des parallelen Rechnens
Seminar zu ausgewählten Themen der Informatik
für Bachelor im Sommersemester 2016 (LMU, TUM Bachelor - IN0014)

Prof. Dr. D. Kranzlmüller
Prof. Dr. H.-G. Hegering (em.)
Tobias Fuchs, M.Sc.

Aktuelles

  • HEUTE, 23. Juni 2016 um 16 Uhr in der Oettingenstraße 67 Raum 057
    findet der externe Expertenvortrag von
    Dr. Tobias Schüle, Siemens Corporate Research and Technology
    statt. Die Teilnahme ist verpflichtend.

  • Der endgültige Zeitplan der Voträge is jetzt verfügbar.
    Wichtiger Hinweis: Die angegebenen Zeiten beinhalten 5 Minuten Diskussion zu jedem Seminarthema, d.h. 25 bzw. 15 Minuten müssen für die Vorträge unbedingt eingehalten werden.

Inhalt des Seminars

Überblick

Parallel Computing - Parallelrechnen - befasst sich mit der gleichzeitigen Verwendung von mehreren Rechenkernen zur Lösung eines Problems. Das historische Einsatzgebiet von Parallelrechnern ist das technisch-wissenschaftliche Hoch- und Höchstleistungsrechnen (High Performance Computing, HPC) wo heute in Supercomputern häufig mehrere Zehntausend Rechenkerne zum Einsatz kommen.

Der Einsatzbereich von Parallelrechnern hat sich jedoch in den letzten Jahren in alle Bereiche der IT ausgedehnt. Alle Server, Desktop und Notebook CPUs sind heute mit Multicore CPUs ausgestattet und seit kurzem folgen auch Smartphones und Tablets diesem Trend. In jedem Fall kann nur durch explizite parallele Programmierung das volle Potential einer solchen Platform ausgenutzt werden und Parallelrechnen wird zusehends zur "must have" Qualifikation für IT Fachleute.

Der Entwurf und die Implementierung paralleler Programme stellt Entwickler vor besondere Herausforderungen an mehreren Fronten wie z.B. Entwurf, Tests, formale Verifizierung und dem Zusammenspiel mit parallelen Rechnerarchitekturen.
Im Rahmen dieses Seminars werden ausgewählte Themen aus diesen Feldern vorgestellt.

Organisation

Ablauf

Um der Anzahl der Seminarteilnehmer gerecht zu werden, werden Sie in 2er-Gruppen arbeiten. Sie erstellen in der Gruppe zu dem Ihnen zugeteilten Thema eine Seminararbeit, die von beiden Gruppenmitgliedern am Ende des Semesters in einer Blockveranstaltung präsentiert wird. Jede Gruppe erhält einen Betreuer.
Termine und Agenda werden im Laufe des Semesters auf dieser Seite veröffentlicht.

Themen zur Bearbeitung werden in einer Einführungsveranstaltung vergeben, deren Zeit und Ort auf dieser Seite bekannt gegeben wird. Soweit möglich werden wir Ihren Themenpräferenzen entgegenkommen. Die Teilnahme an der Einführungsveranstaltung ist für alle Teilnehmer verpflichtend.

Im Laufe des Semesters werden zudem eine Veranstaltung zu Präsentationstechniken und zum Umgang mit der Textsetzungssoftware LaTeX, die Sie bevorzugt für Ihre Ausarbeitungen verwenden sollen, angeboten. Bitte beachten Sie dazu auch die Rubriken Aktuelles und Termine. Wir werden außerdem versuchen, der Bedeutung des Themas durch mindestens einen externen Expertenvortrag Rechnung zu tragen. Ort und Zeit dieser Veranstaltung werden rechtzeitig bekannt gegeben.
Die Teilnahme an diesen Veranstaltungen ist Pflicht.

Ausarbeitung und Vorträge

Das schriftlichen Ausarbeitungen der Seminararbeiten werden im Format
Springer Lecture Notes in Computer Science (LNCS, Proceedings)
verfasst.

Der Umfang der Ausarbeitung ist 10 bis maximal 12 Seiten.
Eine Überschreitung von 12 Seiten ist nur im Einzelfall nach Rücksprache mit Ihrem Betreuer möglich.

Vortragslänge im Blockseminar ist 25 Minuten. Die Bewertung basiert jeweils zur Hälfte auf Ausarbeitung und Vortrag.
Verwenden Sie für Ihre Präsentation bitte diese Vorlage.

Die Vortragslänge wird unbedingt eingehalten. Wir empfehlen als Vorbereitung ausdrücklich einen Probevortrag vor Ihrem Betreuer.

Voraussetzungen

Für eine erfolgreiche Teilnahme am Seminar ist die Anwesenheit an allen Präsenzterminen Pflicht. Kenntnisse der Vorlesungen Parallel Computing - Grundlagen und Anwendungen und Entwurf und Implementierung Paralleler Programme oder äquivalente Vorkenntnisse sind hilfreich, aber nicht Voraussetzung.

Termine

  • Die Einführungsveranstaltung zum Seminar findet am
    14. April 2016 um 16 Uhr
    in der Oettingenstraße 67, Raum 057 statt.

  • Die Veranstaltung zu Präsentationstechniken findet am
    12. Mai 2016 um 16 Uhr
    in der Oettingenstraße 67, Raum 057 statt.

  • Die Veranstaltung zur Einführung in LaTex findet am
    19. Mai 2016 um 16 Uhr
    in der Oettingenstraße 67, Raum 057 statt.

  • 22. Juni 2016 bis 12:00 Uhr:
    Abgabe der Vortragsfolien
    per Mail an Betreuer und seminar16@nm.ifi.lmu.de

  • 23. Juni 2016 bis 12:00 Uhr:
    Abgabe der schriftlichen Ausarbeitungen
    per Mail an Betreuer und seminar16@nm.ifi.lmu.de

  • 23. Juni 2016, 16 Uhr, Oettingenstraße 67, Raum 057:
    Vortrag des externen Experten
    Dr. Tobias Schüle, Siemens Corporate Research and Technology.
    Die Teilnahme ist verpflichtend.

  • Die Blockveranstaltung zur Präsentation der Abschlussvorträge findet am
    Freitag, 24. Juni ab 16 Uhr und Samstag, 25. Juni ab 9 Uhr
    in der Oettingenstraße 67, Raum 057 statt.
    Die Teilnahme an beiden Tagen ist verpflichtend.
    Der endgültige Zeitplan der Voträge is jetzt verfügbar.
    Wichtiger Hinweis: Die angegebenen Zeiten beinhalten 5 Minuten Diskussion zu jedem Seminarthema, d.h. 25 bzw. 15 Minuten müssen für die Vorträge unbedingt eingehalten werden.

Themenliste

Die hier aufgeführten Referenzen zu den Seminarthemen sollen nur einen ersten Einstieg in das jeweilige Thema bieten.
Sie stellen also kein abgeschlossenes Quellenverzeichnis dar und müssen in Ihrer Ausarbeitung nicht zwingend berücksichtigt werden.

Allgemeine Referenzen:
  • M. Moir and N. Shavit.
    Concurrent Data Structures. Handbook of Data Structures and Applications. Chapman and Hall/CRC Press, 2007.

  • U. Gleim and T. Schüle.
    Multicore-Software: Grundlagen, Architektur und Implementierung in C/C++, Java und C#. Dpunkt Verlag, 2011.

Lesenswert zum Hintergrund des Seminars:

Hardware

  • Acceleratoren: GPGPUs und CUDA
    • Sim, Dasgupta, Kim, Vuduc.
      A Performance Analysis Framework for Identifying Potential Benefits in GPGPU applications. ACM SIGPLAN Notices, 2012.

    • Halyo, LeGresley, Lujan et al.
      First Evaluation of the CPU, GPGPU and MIC Architectures for Real Time Particle Tracking Based on Hough Transform at the LHC. Journal of Instrumentation, IEEE, 2014

    • Yang, Xiang, Kong, Zhou.
      A GPGPU Compiler for Memory Optimization and Parallelism Management. ACM Sigplan Notices, 2010.

  • Acceleratoren: Xeon Phi
    • Heinecke, Klemm, Bungartz.
      From GPGPU to Many-Core: NVidia Fermi and Intel Many Integrated Core Architecture. Computing in Science & Engieering, 2012.

    • Fang, Jianbin, et al.
      Test-driving Intel Xeon Phi. Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering. ACM, 2014.

    • Ramachandran, Aditi, et al.
      Performance evaluation of NAS parallel benchmarks on Intel Xeon Phi. 42nd International Conference on Parallel Processing (ICPP). IEEE, 2013.

    • Jeffers, James, and James Reinders.
      Intel Xeon Phi Coprocessor High-Performance Programming. Newnes, 2013.

    • Heinecke, Alexander, et al.
      Design and implementation of the linpack benchmark for single and multi-node systems based on Intel Xeon Phi Coprocessor. IEEE 27th International Symposium on Parallel & Distributed Processing (IPDPS), IEEE, 2013.

  • NUMA: Architekturen und Unterstützung in Betriebssystemen
    • Blagodurov, Zhuravlev, Dashti, Fedorov.
      A Case for NUMA-aware Contention Management on Multicore Systems. (2011-05-02).

    • Majo, Gross.
      Memory management in NUMA multicore systems: trapped between cache contention and interconnect overhead. ACM SIGPLAN Notices, 2011

    • Majo, Gross.
      Matching Memory Access Patterns and Data Placement for NUMA Systems. Proceedings of the Tenth International Symposium on Code Generation and Optimization - CGO'12.

    • Mallon, Taboada, Teijeiro, Tourino et al.
      Performance evaluation of MPI, UPC and OpenMP on multicore architectures. Recent Advances in Parallel Computing, 2009

    • Liu, Mellor-Crummey.
      A tool to analyze the performance of multithreaded programs on NUMA Architectures. Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP 2014.

  • Transactional Memory
    • Hammond, Wong, Chen, Carlstrom et al.
      Transactional memory coherence and consistency. Proceedings of the 31st annual International Symposium on Computer Architecture (ISCA). 2004

    • Christopher J. Rossbach, Owen S. Hofmann, Emmett Witchel.
      Is Transactional Programming Actually Easier? 2012

    • Boehm, Gottschlich, Luchangco, Michael, Moir, Nelson, et al.
      Transactional Language Constructs for C++. Programming Language C++, Evolution Working Group. 2012

    • Herlihy, Moss.
      Transactional Memory: Architectural Support for Lock-Free Data Structures. 1993

    • Shavit, Touitou.
      Software transactional memory. 1997

    • Jacobi, Slegel, Greiner.
      Transactional Memory Architecture and Implementation for IBM System Z. 2012

  • Non-Volatile Memory
    • Caulfield, Adrian M., et al.
      Understanding the impact of emerging non-volatile memories on high-performance, IO-intensive computing. Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE Computer Society, 2010.

    • Li, Dong, et al.
      Identifying opportunities for byte-addressable non-volatile memory in extreme-scale scientific applications. Parallel & Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International. IEEE, 2012.

    • Mittal, Sparsh, and Jeffrey Vetter.
      A survey of software techniques for using non-volatile memories for storage and main memory systems. 2014

    • Vetter, Jeffrey S., and Sparsh Mittal.
      Opportunities for nonvolatile memory systems in extreme-scale high-performance computing. Computing in Science & Engineering 17.2 (2015)

Formale Aspekte

  • Performance Models: Roofline, ECM
    • Williams, Waterman, Patterson.
      Roofline: An Insightful Visual Performance Model for Multicore Architectures . Communications of the ACM, 2009

    • Sim, Dasgupta, Kim, Vuduc.
      A Performance Analysis Framework for Identifying Potential Benefits in GPGPU Applications . ACM SIGPLAN Notices, 2012

    • Hoefler, Gropp, Kramer, Snir.
      Performance Modeling for Systematic Performance Tuning . State of the Practice Reports, 2011

    • Hager, Treibig, Habich.
      Exploring Performance and Power properties of Modern Multicore Chips via Simple Machine Models . Practice and Experience in Concurrency and Computation. 2014. Presentation slides

    • Hofmann, Eitzinger, Fey.
      Execution-Cache-Memory Performance Model: Introduction and Validation . 2015

Algorithmen und Datenstrukturen

  • Methoden für Work Sharing und Task Scheduling
    • Blumofe, Leiserson.
      Scheduling Multithreaded Computations by Work Stealing.
      J. ACM, 46(5):720-748, September 1999.

    • Muddukrishna, Jonsson, Vlassov.
      Locality-Aware Task Scheduling and Data Distribution on NUMA Systems.
      OpenMP in the Era of Low Power Devices and Accelerators, pages 156-170. Springer, 2013.

    • Vikranth, Wankar, Rao.
      Topology Aware Task Stealing for On-chip NUMA Multi-core Processors.
      2013 International Conference on Computational Science

    • Joao, Suleman, Mutlu, Patt.
      Bottleneck Identification and Scheduling in Multithreaded Applications.
      2012

  • Parallele und verteilte Sortieralgorithmen
    • Peter Sanders, Thomas Hansch.
      Efficient massively parallel Quicksort.
      In: Solving Irregularly Structured Problems in Parallel. Springer, 1997, pp. 13-24.

    • Hanmao Shi and Jonathan Schaeffer.
      Parallel sorting by regular sampling.
      In: Journal of Parallel and Distributed Computing. 14.4 (1992), pp. 361-372.

    • Edgar Solomonik and Laxmikant Kale.
      Highly scalable parallel sorting.
      2010

    • Bruce Wagar.
      Hyperquicksort: A fast sorting algorithm for hypercubes.
      In: Hypercube Multiprocessors. 1987, pp. 292-299.

  • Parallele und verteilte Allokatoren
    • Maged M. Michael.
      Scalable Lock-Free Dynamic Memory Allocation
      2004

    • Maged M. Michael.
      Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects.
      2004

    • Eunhwan Shin, Inhyuk Kim, Junghan Kim, Young Ik Eom.
      Waitfree Synchronization with Efficient memory Reclamation by using Chronological Memory Allocation.
      Proceedings of the 2011 International Conference on Computational Science and Its Applications - Volume Part V, ICCSA'11, pages 217-231. Berlin, Heidelberg, 2011. Springer-Verlag.

    • Stellwag, Krainz, Schröder-Preikschat.
      A Waitfree Dynamic Storage Allocator by Adopting the Helping Queue Pattern.
      Proceedings of the 9th IASTED International Conference, volume 676, page 79.

    • Gidenstam, Papatriantafilou, Sundell, Tsigas.
      Efficient and reliable lock-free memory reclamation based on reference counting.
      IEEE Transactions: Parallel and Distribed Systems, August 2009.

    • Alistarh, Eugster, Herlihy, Matveev.
      Stacktrack: An Automated Transactional Approach to Concurrent Memory Reclamation.
      2014

  • Algorithmen und Datenstrukturen für parallele Echtzeitanwendungen
    • Timothy L. Harris.
      A pragmatic implementation of non-blocking linked-lists.
      In Proceedings of the 15th International Conference on Distributed Computing, DISC'01, pages 300-314, London, UK, 2001. Springer-Verlag.

    • Danny Hendler, Nir Shavit, and Lena Yerushalmi.
      A scalable lock-free Stack Algorithm.
      In Proceedings of the Sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures, SPAA'04, pages 206-215, New York, NY, USA,
      2004. ACM.

    • Alex Kogan and Erez Petrank.
      Wait-free queues with multiple enqueuers and Dequeuers.
      SIGPLAN Not. 46(8):223-234, February 2011.

    • Maged M. Michael.
      Hazard pointers: Safe Memory Reclamation for Lock-free Objects.
      IEEE Trans. Parallel Distrib. Syst. 15(6):491-504, June 2004.

    • Polytechnic Institute of Porto (ISEP-IPP).
      On the use of Work-Stealing Strategies in Real-Time Systems.
      Berlin, Germany, 2013.

    • Shahar Timnat, Anastasia Braginsky, Alex Kogan, and Erez Petrank.
      Wait-free Linked-lists.
      In Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'12, pages 309-310, New York, USA, 2012. ACM.

    • Kunlong Zhang, Yujiao Zhao, Yajun Yang, Yujie Liu, and Michael Spear.
      Practical Non-blocking Unordered Lists.
      In Distributed Computing (Yehuda Afek, editor), volume 8205 of  Lecture Notes in Computer Science, pages 239-253.
      Springer Berlin Heidelberg, 2013.

Software Engineering

  • Testen und Race Detection in parallelen Anwendungen
    • Lu, Park, Seo, Zhou.
      Learning from Mistakes - A Comprehensive Study on Real World Concurrency Bug Characteristics.
      ACM Sigplan Notices, Volume 43, pages 329-339. ACM, 2008

    • Choi, Lee, Loginov, Callahan, Sarkar, Sridharan.
      Efficient and precise datarace detection for multithreaded object-oriented programs.
      PLDI, 2002.

    • Kasikci, Zamfir, Candea.
      Data Races vs. Data Race Bugs: Telling the Difference with Portend.
      ACM SIGPLAN Notices Vol. 47, 185-198. ACM, 2012

    • Flanagan, Freund.
      Atomizer: a dynamic atomicity checker for multithreaded programs.
      POPL, 2004.

    • Jin, Zhang, Deng.
      Automated Concurrency-Bug Fixing.
      2012

  • Debuggen paralleler Anwendungen
    • Abramson, Foster, Michalakes.
      Relative Debugging: A New Methodology for Debugging Scientific Applications.
      Communications of the ACM, 1996.

    • Bohm, Behalek, Meca et al.
      Visual Programming of MPI Applications: Debugging and Performance Analysis.
      Lecture Notes in Computer Science and Engineering, IEEE, 2013.

    • Suboti, Brinkmann, Marjanovi.
      Programmability and Portability for Exascale: Top Down Programming Methodology and Tools with StarSs.
      2013.

    • Humphrey, Meng, Berzins et al.
      Systematic Debugging Methods for Large-Scale HPC Computational Frameworks.
      Computing in Science, IEEE, 2014.

  • Profiling paralleler Anwendungen / Performance Analysis Tools
    • Bohme, David, et al.
      Identifying the Root Causes of Wait States in Large-Scale Parallel Applications.
      39th International Conference on Parallel Processing (ICPP), IEEE, 2010.

    • Tallent, Nathan R., John M. Mellor-Crummey, Allan Porterfield.
      Analyzing lock contention in multithreaded applications.
      ACM Sigplan Notices. Vol. 45. No. 5. ACM, 2010.

    • Tallent, Nathan R., Laksono Adhianto, John M. Mellor-Crummey.
      Scalable identification of load imbalance in parallel executions using call path profiles.
      Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE Computer Society, 2010.

    • Adhianto, Banerjee, Fagan et al.
      HPCToolkit: Tools for performance analysis of optimized parallel programs
      Concurrency and Computation: Practice and Experience, 2010.

    • Treibig, Hager, Wellein.
      Likwid: A lightweight performance-oriented tool suite for x86 multicore environments.
      39th International Conference on Parallel Processing Workshops (ICPPW), 2010

    • Brunst, Mohr.
      Performance analysis of large-scale OpenMP and hybrid MPI/OpenMP applications with Vampir NG.
      OpenMP Shared Memory Parallel Programming, pages 5-14. Springer. 2008

    • Geimer, Wolf, Wylie et al.
      The Scalasca performance toolset architecture.
      Concurrency and Computation: Practice and Experience. Wiley, 2010

  • Neuerungen in OpenMP 4.0 / 4.5
    • Martorell, Xavier, et al.
      Evaluating the Impact of OpenMP 4.0 Extensions on Relevant Parallel Workloads.
      OpenMP: Heterogenous Execution and Data Movements: 11th International Workshop on OpenMP, IWOMP 2015. Aachen, Germany, October 1-2, 2015, Proceedings. Vol. 9342. Springer, 2015.

    • Papadogiannakis, Alexandros, Spiros, Agathos, Dimakopoulos.
      OpenMP 4.0 Device Support in the OMPi Compiler.
      OpenMP: Heterogenous Execution and Data Movements. Springer International Publishing, 2015. 202-216.

    • Virouleau, Philippe, et al.
      Evaluation of OpenMP dependent tasks with the KASTORS benchmark suite.
      Using and Improving OpenMP for Devices, Tasks, and More. Springer International Publishing, 2014. 16-29.

  • RDMA in MPI 3.x - Spezifikation und Implementierungen
    • Hoefler, Dinan, Thakur, Barrett et al.
      Remote Memory Access Programming in MPI-3.
      ACM Transactions on Parallel Computing, 2015

    • Hoefler, Dinan, Buntinas, Balaji, Barrett et al.
      Leveraging MPI’s One-Sided Communication Interface for Shared-Memory Programming.
      Springer, 2012

    • Zhou, Idrees, Gracia.
      Leveraging MPI-3 Shared-Memory Extensions for Efficient PGAS Runtime Systems.
      Euro-Par 2015: Parallel Processing, 2015

    • Li, Subramoni, Hamidouche et al.
      High Performance MPI Datatype Support with User-Mode Memory Registration: Challenges, Designs, and Benefits.
      2015 IEEE International Conference on Cluster Computing (CLUSTER). 2015

    • Dinan, Balaji, Buntinas, Goodell et al.
      An Implementation and Evaluation of the MPI 3.0 One‐sided Communication Interface.
      Concurrency and Computation: Practice and Experience, 2016

    • Gu, Small, Yuan, Marathe et al.
      Protocol Customization for Improving MPI Performance on RDMA-enabled Clusters.
      Springer. International Journal of Parallel Computing, 2013

    • Zhao, Buntinas, Zounmevo et al.
      Toward Asynchronous and MPI-Interoperable Active Messages.
      13th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid), 2013

  • Chapel und Partitioned Global Address Space
    • Chamberlain, Bradford, Callahan, Zima.
      Parallel Programmability and the Chapel Language.
      International Journal of High Performance Computing Applications, 2007.

    • Diaconescu, Zima.
      An Approach to Data Distributions in Chapel.
      International Journal of High Performance Computing Applications 2007.

    • Weiland.
      Chapel, Fortress and X10: Novel Languages for HPC.
      EPCC, The University of Edinburgh, Tech. Rep. HPCxTR0706 (2007).

    • Sidelnik et al.
      Performance Portability with the Chapel Language.
      Parallel & Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International. IEEE, 2012.

  • Multithreading-Konzepte in C++11/14
    • Williams, Anthony.
      C++ Concurrency in Action.
      London, 2012.

    • Wu, Di, et al.
      An Empirical Study on C++ Concurrency Constructs.
      Empirical Software Engineering and Measurement (ESEM), 2015 ACM/IEEE International Symposium on. IEEE, 2015.

Kontakt

Fragen, Kritik und Anregungen sind immer willkommen. Nutzen Sie bitte die seminarspezifische E-Mail-Adresse seminar16@nm.ifi.lmu.de, um mit uns in Kontakt zu treten.