Parallele Programmierung

Technologien und Architekturen für moderne parallele Softwaresysteme. 2-tägiger Workshop mit optionalem dritten Tag: Realtime Multi-Core

Die Parallele Programmierung ist heute eine Schlüsseltechnologie für die Performancesteigerung von Software. In diesem Workshop lernen Sie, die aktuellen Technologie-Paradigmen 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?
Die praktische Anwendung der Parallelen Programmierung steht im Mittelpunkt des Workshops. Wir arbeiten uns von den theoretischen Grundlagen über die Parallelisierung von Algorithmen mit Threads, hin zur Anwendung der heute wichtigen Task-Scheduler.
Neben Technologien stehen auch Architekturen im Fokus. Wir schauen uns erfolgreiche und gescheiterte Multi-Core Migrationsprojekte an, so dass sichtbar wird, welche Architektur-Entscheidungen zu tragfähigen Lösungen in der Praxis führen.
Am optionalen dritten Tag erschließen wir uns die Multi-Core Programmierung in Embedded Realtime Systemen, die aufgrund ihrer hardwarenahen Programmiertechniken durch die Multi-Core Revolution vor besondere Herausforderungen gestellt sind. Sie lernen, welche Features Realtime Systeme für eine erfolgreiche Multi-Core Parallelität benötigen und wie man mit den Fallstricken des Priority-Schedulings in SMP Umgebungen umgeht. Sie lernen Realtime Betriebssysteme (z.B. Realtime-Linux, VxWorks) und Realtime Programmierumgebungen (z.B. Realtime Java) kennen.

Praktische Übungen legen das Fundament für den erfolgreichen Transfer in die Praxis. Die Übungen, Musterlösungen und Beispiele liegen in C#, Java, C++ 11, Go, P-Threads, und in Win32 und vor, so dass jeder Teilnehmer in seiner realen Arbeitsumgebung üben kann.

Termin: 05. - 07.11.2018    /    Teilnahmegebühr: 1.310,00 €  (Tag 1&2) / 467,00 € (Tag 3 optional)   /    

Ort: Hannover

Zum Ticketshop

Voraussetzungen

  • Programmierkenntnisse in einer objektorientierten Programmiersprache und Grundkenntnise von Betriebssystemen sind hilfreich
  • Wenn möglich sollte ein Laptop mit Visual Studio 2012 (oder neuer) oder mit Java 7 (oder neuer) mit in den Kurs gebracht werden
  • Für die Übungen am Realtime-Tag sollte auf dem Laptop eine Oracle-Box Installation vorhanden sein. Kostenloser Download hier: http://www.oracle.com/technetwork/server-storage/v...

Leistungen Ihres Workshoptickets

  • Workshopunterlagen
  • Tagungsgetränke & Verpflegung
  • Teinahmebescheinigung


Der Workshop ist auf 12 Teilnehmer begrenzt!

Zielgruppe

Zielgruppe des Seminars sind Entwickler und Softwarearchitekten, die in ihren Projekten parallele Software entwickeln oder dieses planen. Es werden sowohl die besonderen Herausforderungen der Parallelisierung vorhandener Software als auch die Konzeption und Realisierung komplett neuer Systeme behandelt.

Ist die Durchführung der Veranstaltung aufgrund höherer Gewalt, wegen Verhinderung eines Referenten, wegen Störungen am Veranstaltungsort oder aufgrund zu geringer Teilnehmerzahl (weniger als 50%) nicht möglich, werden die Teilnehmer spätestens 14 Tage vorher durch das heise Events-Team informiert.

Kontakt

Haben Sie Fragen zu der Organisation oder der Veranstaltung? Gern antworte ich auf Ihre Anfrage per E-Mail!

Silvia Langer, Event-Manager // sil@heise.de

Agenda & Trainer

Marwan Abu-Khalil

Marwan Abu-Khalil ist Senior Software Architekt (SSWA) in der Siemens AG und arbeitet seit über 10 Jahren an der Parallelisierung unterschiedlichster Systeme vom Server-Backend bis zum Embedded-Device. Er ist langjähriger Trainer für Software-Architektur und spricht auf Konferenzen über Parallelisierung.

Tag 1


08:30 - 09:00 Uhr Registrierung

09:00 - 10:30 Uhr TEIL 1: The State of The Art

  • Übersicht der aktuellen Parallelisierungs-Technologien

10:30 - 11:00 Uhr Kaffeepause

11:00 - 12:30 Uhr Fortsetzung TEIL 1: The State of The Art

12:30 - 13:30 Uhr Mittagspause

13:30 - 15:00 Uhr TEIL 2: Thread-Programmierung

  • Parallelität: Threads
  • Gegenseitiger Ausschluss: Synchronisation, Mutex und Lock
  • Koordination von Threads: Monitor und Procedur-Consumer

15:00 - 15:30 Uhr Kaffeepause

15:30 - 17:00 Uhr Fortsetzung TEIL 2: Thread-Programmierung


Tag 2

09:00 - 10:30 Uhr TEIL 3: Task-Programmierung

  • Work-Stealing User-Mode Task-Scheduler in Theorie und Praxis


10:30 - 11:00 Uhr Kaffeepause

11:00 - 12:30 Uhr Fortsetzung TEIL 3: Task-Programmierung

12:30 - 13:30 Uhr Mittagspause

13:30 - 15:00 Uhr TEIL 4: Memory-Modelle in moderner Multicore-Hardware

  • Relaxed Consistancy
  • Atomare Instruktionen und Spinlocks

15:00 - 15:30 Uhr Kaffeepause

15:30 - 17:00 Uhr Fortsetzung TEIL 4: Memory-Modelle in moderner Multicore-Hardware


Tag 3 (optional)


09:00 - 17:00 Uhr TEIL 5: Realtime-Multicore Programmierung

  • Realtime Betriebssysteme und Multi-Core CPUs
  • Realtime-Priority-Scheduling und Multi-Core Parallelität (SMP)
  • Single-Core zu Multi-Core Migration Best-Practices

dazwischen Vormittags und nachmittags Kaffepausen mit Snacks 

12:30 - 13:30 Uhr Mittagspause

Hotelzimmer

Sie benötigen noch eine Übernachtungsmöglichkeit zur Teilnahme an unserem Workshop? Folgende Hotels in der Nähe des Verlages können wir Ihnen empfehlen:

GHotel

Ibis

MSR