Softwarekonferenz für parallele, nebenläufige
und asynchrone Programmierung und HPC
Heidelberg, Print Media Academy, 6.-8. März 2018

// Moderne parallele Programmierung: Wie wähle ich die richtige Technologie und Architektur für mein Projekt aus?

In diesem Workshop lernen Sie die aktuellen Technologieparadigmen der Parallelen Programmierung kennen. Sie lernen Vor- und Nachteile dieser Technologien zu bewerten, um auf dieser Basis Architekturen für Ihre Parallelisierungsprojekte zu konzipieren.

Der Workshop beantwortet Fragestellungen der folgenden Art: Wann sind User-Mode Task-Scheduler geeignet und wann sind Threads die bessere Alternative? Wo sollte man transparente Parallelisierungsansätze wie PLINQ oder Java Parallel Streams nutzen, und worin besteht der Vorteil von Message Passing mit Channels in Go? Was sind die Auswirkungen der Memory-Modelle moderner Multi-Core-Hardware auf die Software, und wie geht man einfach und sicher mit diesen um?

Neben Technologien stehen auch Architekturen im Fokus. Wir schauen uns erfolgreiche und gescheiterte Multi-Core-Migrationsprojekte an, sodass sichtbar wird, welche Architekturentscheidungen zu tragfähigen Lösungen in der Praxis führen.

Durch Beispiele und Programmierübungen in Java, C#, C++ und Go wird der Praxistransfer gewährleistet.

Agenda

  • ab 10.00: Registrierung und Begrüßungskaffee

  • 11.00: Beginn

  • 11.00 - 12.30: The State of the Art: Aktuelle Technologien der Parallelität in der Übersicht

  • 12.30 - 13.30: Mittagspause

  • 13.30 - 15.00: Technische Fallstudien: Threading, Tasks-Scheduler, Channels

  • 15.00 - 15.15: Kaffeepause

  • 15.15 - 16.30: Software-Architekturen in Multi-Core Migrationsprojekten

  • 16.30 - 16.45: Kaffeepause

  • 16.45 - 18.00: Memory-Modelle und hardwarenahe Aspekte der Parallelität

  • ca. 18 Uhr: Ende

Technische Anforderungen:

  • Teilnehmer erhalten ein Oracle VirtualBox Virtual Machine Image auf einem Stick mit allen Übungen und Musterlösungen und den erforderlichen Entwicklungsumgebungen.

  • Um die Übungen zu bearbeiten, sollten Teilnehmer ein Laptop mit einer aktuellen Oracle VirtualBox Installation (Version 5.2.6) und ca. 30 GB freiem Plattenplatz mitbringen. Die VirtualBox Installation kann hier heruntergeladen werden:
    http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html

  • Es gibt Übungen in Java, C++, C# und Go.

  • Wer die Übungen anstatt in der Virtual Machine lieber in einer nativen Umgebung machen möchte, braucht dafür folgende Installationen in der angegebenen Version oder neuer:


Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte:

  • Workshop-Teilnehmer hat keine Administrator-Rechte.

  • Corporate Laptops mit übermäßig penibler Sicherheitssoftware

  • Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden.

Vorkenntnisse
Programmierkenntnisse in einer objektorientierten Sprache sind notwendig, um die Beispiele zu verstehen. Parallelisierungswissen ist nicht erforderlich, aber Betriebssystemgrundlagen sind hilfreich.

Lernziele
* Die aktuellen Technologieparadigmen kennen und einschätzen können
* Architekturkonzepte für Multi-Core-Projekte bewerten können


// Marwan Abu-Khalil Marwan Abu-Khalil

ist Senior-Software-Architekt für parallele und verteilte Systeme im Forschungsbereich der Siemens AG. Er parallelisiert seit vielen Jahren Systeme vom Embedded-Device bis zum Server-Cluster. Seine Seminare über parallele Programmierung unterrichtet er in Zusammenarbeit mit namhaften Anbietern (Heise, SIGS-Datacom, TAE, Learning Campus). Er spricht auf Konferenzen über Parallelisierung und publiziert über dieses Thema. Marwan ist Ausbilder für zertifizierte Software-Architekten der Siemens AG.