GEDOPLAN

Schulung: Parallele Programmierung in Java

Technologieübersicht und Architekturkonzeption

  • Die Java Technologien für Parallelität kennen und bewerten können
  • Programmierung der wichtigsten Parallel APIs in Java in Grundzügen beherrschen
  • Chancen und Fallstricke der parallelen Programmierung kennen

Beschreibung

In diesem praxisorientierten Seminar wird die parallele Programmierung in Java von Grund auf erschlossen. Sie werden dadurch in die Lage versetzt, effiziente, deterministische parallele Programme in Java eigenständig zu entwerfen, und Sie lernen, die richtigen Technologien und Architekturen für Ihren Anwendungsfall auszuwählen.

Im Laufe der Jahre sind stetig neue parallele APIs ins JDK aufgenommen worden. Sie lernen im Seminar alle wichtigen APIs für die Parallelität in Java kennen, und Sie verstehen im Detail, welche technologischen Paradigmen diesen jeweils zugrunde liegen.

Sie programmieren im Seminar zahlreiche Übungen, um die Tricks und Schwierigkeiten der Parallelität praktisch zu erfahren. So sehen Sie, wie man mit Threads Algorithmen beschleunigt und lernen dabei auch die Gefahren einer unüberlegten Parallelisierung kennen. Sie Setzen Fork-Join-Tasks ein und erkennen an konkreten Beispielen, wo diese den klassischen Threads überlegen sind. Mit Java Parallel-Streams lernen Sie ein elegantes API für die transparente parallele Datenverarbeitung einzusetzen.

Virtual Threads sind der neue Ansatz im JDK, um hochskalierbare Systeme zu bauen. Sie sehen, was Sie bei einem Umstieg von klassischen Platform-Threads auf Virtual-Threads beachten müssen, welche Chancen damit verbunden sind, und wo Fallstricke zu beachten sind.

Mit Reactive-Streams lassen sich verteilte Systeme mit weitgehend transparenter Parallelität und automatischer Flusskontrolle konzipieren, Sie lernen die Grundkonzepte und den Einsatz kennen.

SIMD Instructions und GPU-Parallelisierung sind hardwarespezifische Ansätze, die insbesondere vor dem Hintergrund des KI Booms nun auch in Java Verbreitung finden, sie lernen diese einzuschätzen und anzuwenden.

Agenda

Grundlagen der Parallelität in Java

  • Technologieübersicht
  • Parallelisierung von Algorithmen
  • Performance im Multi-Core

Java Thread Programmierung: Mächtig aber riskant

  • Java Thread API: Parallelität und Performance
  • Synchronisation: Implizit und explizit
  • Monitor und Condition-Variable: Producer-Consumer Szenarien

Virtual-Threads: Skalierbarkeit für Server-Software

  • Programmiermodell
  • Performance und Skalierbarkeit: Blocking Calls Handling
  • Voraussetzungen in der Anwendungsarchitektur

Java Fork-Join Tasks: Rekursive Parallelität

  • User-Mode Work-Stealing Task-Scheduler: Löst Probleme der Thread Parallelität
  • Parallelisierung rekursiver Algorithmen

Parallel-Streams: Implizite Datenparallelität

  • Map-Reduce Pipeline ermöglicht automatische Parallelisierung
  • Spliterator-API: Rekursive Partitionierung von Datenstrukturen

Reactive Streams: Verteilte Systeme mit non blocking Backpressure

  • Der Reactive Streams Standard und das Reactive Manifesto
  • Streams aufbauen, verzweigen, zusammenführen

Hardwarespezifische Parallelität

  • SIMD-Instructions mit der Project Panama Vector API

Das Java Memory-Model

  • Speicherzugriffe und Programmsemantik
  • Spinlocks und Atomare-Instruktionen

Parallele Architekturen

  • Wie wähle ich das richtige API für meinen Anwendungsfall aus?
  • Welche Architekturen haben sich in Multi-Core Projekten bewährt?

Teilnehmerkreis und Voraussetzungen

Der Kurs richtet sich an:

  • Entwickler:innen, Architekt:innen, Entscheider:innen, die ihre Systeme parallelisieren oder vorhandene Parallelisierungen optimieren möchten
  • Das Seminar ist sowohl für erfahrene Parallelisierer:innen als auch für Anfänger:innen in der Parallelität geeignet. Das Thema wird von Grund auf erschlossen und wir arbeiten uns bis in tiefliegende Fragestellungen vor
  • Das Seminar eignet sich auch für Entwickler:innen, die in anderen Sprachen als Java arbeiten. Die Konzepte der Parallelität finden sich in den meisten modernen Sprachen in ähnlicher weise wieder

Grundkenntnisse in einer objektorientierten Programmiersprache.

Mindestanzahl Teilnehmende: 2 Personen

Schulungstermine

Diese Schulung bieten wir auch als maßgeschneiderte Firmenschulung an

GEDOPLAN erstellt für Sie auf Ihre Unternehmensziele zugeschnittene Firmenschulung.
Durch unser modulares Schulungssystem sind wir in der Lage, anhand Ihrer Angaben eine individuelle Schulung zu gestalten. Denn die optimale Weiterbildung Ihrer Mitarbeiter nach Ihren Vorgaben und Anforderungen stehen bei uns im Mittelpunkt.
Bei Interesse nehmen Sie bitte Kontakt, wir führen dann gerne mit Ihnen ein unverbindliches Gespräch

GEDOPLAN - Telefonkontakt

030 / 20 89 82 63 0

GEDOPLAN - E-Mail Kontakt

Tim.Neumann@GEDOPLAN.de

Weitere Schulungen

Vorträge & News zum Thema

News aus Schulung, Beratung & Softwareentwicklung

News aus Schulung, Beratung & Softwareentwicklung

News aus Schulung, Beratung & Softwareentwicklung

Das sagen Kursteilnehmer

Das sagen Kursteilnehmer

Das sagen Kursteilnehmer

Unsere Trainer

Unsere Trainer

Unsere Trainer

Kontakt

Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!

Tim Neumann

Geschäftsleitung

GEDOPLAN GmbH
Stieghorster Straße 60
33605 Bielefeld

GEDOPLAN GmbH
Kantstraße 164
10623 Berlin

    Kontakt

    Tim Neumann

    Geschäftsleitung

    GEDOPLAN GmbH
    Stieghorster Straße 60
    33605 Bielefeld

    GEDOPLAN GmbH
    Kantstraße 164
    10623 Berlin

    Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!