Rice University

Verteilte Programmierung in Java

Vivek Sarkar

Dozent: Vivek Sarkar

25.240 bereits angemeldet

Bei Coursera Plus enthalten

Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.5

(494 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 17 Stunden
In Ihrem eigenen Lerntempo lernen
94%
Den meisten Lernenden hat dieser Kurs gefallen
Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.5

(494 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 17 Stunden
In Ihrem eigenen Lerntempo lernen
94%
Den meisten Lernenden hat dieser Kurs gefallen

Kompetenzen, die Sie erwerben

  • Kategorie: Verteiltes Rechnen
  • Kategorie: Schauspieler Modell
  • Kategorie: Paralleles Rechnen
  • Kategorie: Reaktive Programmierung

Wichtige Details

Zertifikat zur Vorlage

Zu Ihrem LinkedIn-Profil hinzufügen

Bewertungen

4 Aufgaben

Unterrichtet in Englisch

Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.

Platzhalter

Erweitern Sie Ihre Fachkenntnisse

Dieser Kurs ist Teil der Spezialisierung Spezialisierung Parallele, gleichzeitige und verteilte Programmierung in Java
Wenn Sie sich für diesen Kurs anmelden, werden Sie auch für diese Spezialisierung angemeldet.
  • Lernen Sie neue Konzepte von Branchenexperten
  • Gewinnen Sie ein Grundverständnis bestimmter Themen oder Tools
  • Erwerben Sie berufsrelevante Kompetenzen durch praktische Projekte
  • Erwerben Sie ein Berufszertifikat zur Vorlage
Platzhalter
Platzhalter

Erwerben Sie ein Karrierezertifikat.

Fügen Sie diese Qualifikation zur Ihrem LinkedIn-Profil oder Ihrem Lebenslauf hinzu.

Teilen Sie es in den sozialen Medien und in Ihrer Leistungsbeurteilung.

Platzhalter

In diesem Kurs gibt es 7 Module

Willkommen bei Verteilte Programmierung in Java! Dieser Kurs ist als dreiteilige Serie konzipiert und deckt ein Thema oder einen Wissensbereich durch verschiedene Videovorträge, Demonstrationen und Programmierprojekte ab.

Das ist alles enthalten

1 Video5 Lektüren1 Programmieraufgabe1 Diskussionsthema

In diesem Modul lernen wir das MapReduce-Paradigma kennen und erfahren, wie es zum Schreiben verteilter Programme verwendet werden kann, die Daten in Form von Schlüssel-Wert-Paaren analysieren. Ein MapReduce-Programm wird über benutzerdefinierte Map- und Reduce-Funktionen definiert. Wir lernen, wie man solche Programme in den Projekten Apache Hadoop und Spark schreibt. DasMapReduce-Paradigma kann verwendet werden, um eine Vielzahl von parallelen Algorithmen auszudrücken. Ein Beispiel, das wir untersuchen werden, ist die Berechnung der TermFrequency - Inverse Document Frequency (TF-IDF)-Statistik, die beim Document Mining verwendet wird; dieser Algorithmus verwendet eine feste (nichtiterative) Anzahl von Map- und Reduce-Operationen. Ein weiteres MapReduce-Beispiel, das wir untersuchen werden, ist die Parallelisierung des PageRank-Algorithmus. Dieser Algorithmus ist ein Beispiel für iterative MapReduce-Berechnungen und steht auch im Mittelpunkt des mit diesem Modul verbundenen Miniprojekts.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

In diesem Modul lernen wir die Client-Server-Programmierung kennen und erfahren, wie verteilte Java-Anwendungen über Sockets miteinander kommunizieren können. Da die Kommunikation über Sockets auf der Ebene von Bytes erfolgt, lernen wir, wie man Objekte im Senderprozess in Bytes serialisiert und im Empfängerprozess Bytes in Objekte deserialisiert. Sockets und Serialisierung liefern den notwendigen Hintergrund für das mit diesem Modul verbundene MiniprojektFile Server. Wir werden auch etwas über Remote Method Invocation (RMI) lernen, das den Begriff des Methodenaufrufs in einem sequenziellen Programm auf eine verteilte Programmierumgebung ausweitet. Außerdem lernen wir Multicast-Sockets kennen, die die Standard-Socket-Schnittstelle so verallgemeinern, dass ein Sender dieselbe Nachricht an eine bestimmte Anzahl von Empfängern senden kann. Diese Fähigkeit kann für eine Reihe von Anwendungen sehr nützlich sein, z.B. für Newsfeeds, Videokonferenzen und Multiplayer-Spiele. Schließlich lernen wir verteilte Publish-Subscribe-Anwendungen kennen und erfahren, wie diese mit dem Apache Kafka Framework implementiert werden können.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

Begleiten Sie Professor Vivek Sarkar zu einem Gespräch mit dem Geschäftsführer von Two Sigma, Jim Ward, und dem Senior Vice President, Dr. Eric Allen, in deren Büro in Houston, Texas, über die Bedeutung der verteilten Programmierung.

Das ist alles enthalten

2 Videos1 Lektüre

In diesem Modul lernen Sie, wie Sie verteilte Anwendungen im SPMD-Modell (Single Program Multiple Data) schreiben können, und zwar mit Hilfe der MPI-Bibliothek (Message Passing Interface). MPI-Prozesse können Nachrichten mit Hilfe von Primitiven für die Punkt-zu-Punkt-Kommunikation senden und empfangen, die sich in Struktur und Semantik vom Message-Passing mit Sockets unterscheiden. Wir werden auch etwas über die Nachrichtenreihenfolge und die Deadlock-Eigenschaften von MPI-Programmen lernen. Die nicht blockierende Kommunikation ist eine interessante Erweiterung der Punkt-zu-Punkt-Kommunikation, da sie zur Vermeidung von Verzögerungen aufgrund von Blockierungen und zur Vermeidung von Fehlern im Zusammenhang mit Deadlocks eingesetzt werden kann. Schließlich werden wir uns mit der kollektiven Kommunikation beschäftigen, die mehrere Prozesse auf eine Weise einbeziehen kann, die leistungsfähiger ist als Multicast- und Publish-Subscribe-Operationen. Die in diesem Modul erworbenen MPI-Kenntnisse werden in dem mit diesem Modul verbundenen Miniprojekt zur Implementierung eines verteilten Matrixmultiplikationsprogramms in MPI in die Praxis umgesetzt.

Das ist alles enthalten

6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe

In diesem Modul werden wir die Rolle von Prozessen und Threads als grundlegende Bausteine paralleler, gleichzeitiger und verteilter Java-Programme untersuchen. Mit diesem Hintergrundwissen lernen wir dann, wie man Multithreading-Server implementiert, um die Reaktionsfähigkeit in verteilten Anwendungen, die mit Sockets geschrieben wurden, zu verbessern, und wenden dieses Wissen in dem Miniprojekt zur Implementierung eines parallelen Dateiservers an, der sowohl Multithreading als auch Sockets verwendet. Ein analoger Ansatz kann auch verwendet werden, um MPI und Multithreading zu kombinieren und so die Leistung von verteilten MPI-Anwendungen zu verbessern. Verteilte Akteure sind ein weiteres Beispiel für die Kombination von Verteilung und Multithreading. Eine bemerkenswerte Eigenschaft des Akteursmodells ist, dass dieselben High-Level-Konstrukte für die Kommunikation zwischen Akteuren, die im selben Prozess laufen, und zwischen Akteuren in verschiedenen Prozessen verwendet werden können; der Unterschied zwischen den beiden Fällen hängt von der Anwendungskonfiguration und nicht vom Anwendungscode ab. Schließlich lernen wir das reaktive Programmiermodell und seine Eignung für die Implementierung verteilter dienstorientierter Architekturen unter Verwendung asynchroner Ereignisse kennen.

Das ist alles enthalten

6 Videos7 Lektüren1 Aufgabe1 Programmieraufgabe

Die nächsten beiden Videos zeigen, wie wichtig es ist, etwas über parallele Programmierung und gleichzeitige Programmierung in Java zu lernen. Professor Vivek Sarkar wird bei Two Sigma mit Fachleuten aus der Industrie darüber sprechen, wie die Themen unserer beiden anderen Kurse in der Praxis eingesetzt werden.

Das ist alles enthalten

2 Videos1 Lektüre

Dozent

Lehrkraftbewertungen
4.7 (47 Bewertungen)
Vivek Sarkar
Rice University
3 Kurse63.837 Lernende

von

Rice University

Empfohlen, wenn Sie sich für Softwareentwicklung interessieren

Warum entscheiden sich Menschen für Coursera für ihre Karriere?

Felipe M.
Lernender seit 2018
„Es ist eine großartige Erfahrung, in meinem eigenen Tempo zu lernen. Ich kann lernen, wenn ich Zeit und Nerven dazu habe.“
Jennifer J.
Lernender seit 2020
„Bei einem spannenden neuen Projekt konnte ich die neuen Kenntnisse und Kompetenzen aus den Kursen direkt bei der Arbeit anwenden.“
Larry W.
Lernender seit 2021
„Wenn mir Kurse zu Themen fehlen, die meine Universität nicht anbietet, ist Coursera mit die beste Alternative.“
Chaitanya A.
„Man lernt nicht nur, um bei der Arbeit besser zu werden. Es geht noch um viel mehr. Bei Coursera kann ich ohne Grenzen lernen.“

Bewertungen von Lernenden

4.5

494 Bewertungen

  • 5 stars

    68,88 %

  • 4 stars

    22,62 %

  • 3 stars

    5,05 %

  • 2 stars

    1,01 %

  • 1 star

    2,42 %

Zeigt 3 von 494 an

SA
5

Geprüft am 27. Apr. 2020

MD
4

Geprüft am 2. Mai 2022

FL
5

Geprüft am 2. Apr. 2018

Platzhalter

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu 10,000+ Weltklasse-Kursen, praktischen Projekten und berufsqualifizierenden Zertifikatsprogrammen - alles in Ihrem Abonnement enthalten

Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.

Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online

Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.

Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.

Häufig gestellte Fragen