Newsletter

   Kontakt

Kompetentes und unabhängiges Wissen für IT-Profis. 

Konferenzen, Workshops und Webinare.

Multi-Core Programmierung

Technologien und Architekturen für moderne parallele Softwaresysteme

(2-tägiger iX-Workshop mit optionalem 3. Tag zu 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.

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.

Voraussetzungen

  • Programmierkenntnisse in einer objektorientierten Programmiersprache und Grundkenntnise von Betriebssystemen sind hilfreich
  • Jeder Teilnehmer sollte ein Laptop mitbringen. Die Teilnahme ist jedoch auch ohne Laptop möglich, da Übungsgruppen
    gebildet werden.
  • Wenn Sie die Übungen in C# oder C++ bearbeiten möchten, ist Visual Studio 2017 (oder neuer) oder eine andere geeignete IDE erforderlich.
  • Wenn Sie die Übungen in Java bearbeiten möchten, ist Java 8 oder neuer erforderlich.
  • Alternativ können die Übungen in einer Oracle Virtual-Box bearbeitet werden, dafür ist eine aktuelle Virtual-Box
    Installation auf Ihrem Laptop erforderlich
  • Für die Übungen am Realtime-Tag ist eine Oracle Virtual-Box Installation erforderlich. Kostenloser Download der Oracle Virtual-Box hier: http://www.oracle.com/technetwork/server-storage/v...

Leistungen Ihres Workshoptickets

  • Workshopunterlagen
  • Tagungsgetränke & Verpflegung
  • Teilnahmebescheinigung


Der Workshop ist auf 15 Teilnehmer begrenzt!

Durchführung

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 beantworte ich Ihre Fragen per E-Mail!

Jennifer Rypalla // jery@heise.de

Termine & Preise

Tag 1 - 2

Frühbucherpreis: 1.850,00 € *

Standardpreis: 2.035,00 €

Alle Preise inkl. MwSt.

Tag 3 (optional) 

Frühbucherpreis: 400,00 € *

Standardpreis: 550,00 €

Alle Preise inkl. MwSt.

* 10% Frühbucherrabatt bis 6 Wochen vor Veranstaltungsbeginn

Agenda & Trainer

Programm 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

Programm 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

Programm 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

  • 12:30 - 13:30 Uhr Mittagspause

15 Minuten Kaffeepause am Vormittag.

Marwan Abu-Khalil

Marwan Abu-Khalil

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.