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
In diesem Kurs gibt es 5 Module
Dieser Kurs bereitet die Teilnehmer auf die Entwicklung von Code vor, der große Datenmengen parallel verarbeiten kann. Der Schwerpunkt liegt auf grundlegenden Aspekten der gleichzeitigen Programmierung, wie CPU/GPU-Architekturen, Multithreading-Programmierung in C und Python und einer Einführung in die CUDA-Software/Hardware.
Das Ziel dieses Basismoduls ist es, die Studierenden auf den Erfolg in der GPU-Programmierung vorzubereiten. Zu diesem Zweck werden in diesem Modul die allgemeinen Ziele und technischen Erwartungen des Kurses vorgestellt und die Nutzung der Coursera Lab-Umgebung erläutert. Abschließend werden die Studierenden eine einführende C++-Programmieraufgabe lösen, um sicherzustellen, dass sie für den Lehrplan gerüstet sind.
Ressourcen zur Einführung in die C++-Programmierung•30 Minuten
VS Code und GitHub Ressourcen•30 Minuten
1 Programmieraufgabe•Insgesamt 30 Minuten
Einführung in die C++-Programmierung - Aufgabe•30 Minuten
2 Diskussionsthemen•Insgesamt 30 Minuten
GPU-Interesse Diskussion•15 Minuten
Allgemeine Diskussion über Programmiererfahrung•15 Minuten
1 Unbewertetes Labor•Insgesamt 30 Minuten
Laborübung zur Einführung in die C++-Programmierung•30 Minuten
Grundprinzipien der parallelen Programmierung auf CPUs und GPUs
Modul 2•3 Stunden abzuschließen
Moduldetails
Um Software zu entwickeln, die größere Datenmengen mit höherer Geschwindigkeit verarbeitet, benötigen Software-Betriebssysteme, Programmiersprachen und Frameworks Strategien für den Zugriff auf und die Änderung von Daten in einer Weise, die die Geschwindigkeit maximiert und gleichzeitig die Möglichkeit minimiert, dass sich Daten in falschen Zuständen befinden. In diesem Modul werden den Studenten kanonische Gleichzeitigkeitsprobleme wie die Dining Philosophers vorgestellt. Außerdem lernen sie, wie Betriebssysteme und Programmiersprachen mit diesen Problemen umgehen und diskutieren reale Big-Data-Gleichzeitigkeitsanwendungen.
Concurrent Programming in der realen Welt•4 Minuten
Fallstricke der gleichzeitigen Programmierung•7 Minuten
Probleme und Algorithmen der gleichzeitigen Programmierung Präsentation•7 Minuten
Optional: Problem der hungrigen Hühner•4 Minuten
Muster für die gleichzeitige Programmierung•6 Minuten
Serieller versus paralleler Code und die Flynnsche Taxonomie•7 Minuten
3 Lektüren•Insgesamt 40 Minuten
Optionale Probleme und Algorithmen der gleichzeitigen Programmierung Ressourcen•15 Minuten
Optionale Ressourcen für die parallele Programmierung•10 Minuten
Optionale Ressourcen für die serielle versus parallele Programmierung•15 Minuten
2 Programmieraufgaben•Insgesamt 60 Minuten
Essensphilosophen Zuweisung•30 Minuten
Schlafender Barbier Problem Zuweisung•30 Minuten
1 Diskussionsthema•Insgesamt 15 Minuten
Flynn's Taxonomie Diskussion•15 Minuten
1 Unbewertetes Labor•Insgesamt 30 Minuten
Erzeuger Verbraucher Labor Tätigkeit•30 Minuten
Einführung in die parallele Programmierung mit C und Python
Modul 3•6 Stunden abzuschließen
Moduldetails
Moderne Programmiersprachen ermöglichen es Entwicklern, Software mit komplexer Logik für die parallele Verarbeitung von Daten zu erstellen und dabei die Vorteile mehrerer CPU-Kerne in den meisten Computern zu nutzen. Die Studenten werden einfache Software entwickeln, die in den Programmiersprachen C++ und Python 3 geschrieben wurde und die Datensätze parallel verarbeitet.
C++ Parallele Programmierung Labor Aktivität•60 Minuten
NVidia GPU Hardware/Software
Modul 4•3 Stunden abzuschließen
Moduldetails
Um effektive GPU-beschleunigte Software zu schreiben, muss ein Entwickler zunächst die zugrunde liegende Hardware-Architektur und das Software-Ökosystem verstehen, das diese ermöglicht. In diesem Modul werden die Teilnehmer mit den wichtigsten Hardware-Architekturen von NVIDIA-GPUs vertraut gemacht. Außerdem lernen sie die CUDA Softwareschichten, den Installations- und Kompilierungsprozess sowie die wesentlichen Unterschiede zwischen den Laufzeit- und Treiber-APIs kennen.
GUI CLI-Tools zur Identifizierung der installierten GPU-Hardware•3 Minuten
Nvidia GPU-Architekturen•4 Minuten
CUDA Linux Installation•4 Minuten
CUDA-Hilfe Labor und Zuordnungsdurchlauf•3 Minuten
CUDA Software-Schichten•4 Minuten
CUDA Code-Kompilierung•3 Minuten
CUDA Laufzeittreiber APIs•3 Minuten
CUDA-Treiber und Laufzeit-APIs - Übung und Durchgang zu den Aufgaben•8 Minuten
1 Lektüre•Insgesamt 10 Minuten
Nvidia GTC Keynote Präsentation•10 Minuten
1 Aufgabe•Insgesamt 30 Minuten
Nvidia Software und Hardware Quiz•30 Minuten
2 Programmieraufgaben•Insgesamt 75 Minuten
NVCC Hilfe Befehlszuweisung•15 Minuten
CUDA Software-Schichten und Kompilierung•60 Minuten
1 Diskussionsthema•Insgesamt 10 Minuten
GUI/UI-Tools zur Identifizierung der installierten GPU-Hardware Diskussion•10 Minuten
1 Unbewertetes Labor•Insgesamt 30 Minuten
CUDA Kompilierungs-Labor•30 Minuten
Einführung in die GPU-Programmierung
Modul 5•4 Stunden abzuschließen
Moduldetails
Ziel dieses Moduls ist der Übergang von der Theorie zur Praxis durch die Einführung in die Grundlagen der GPU-Programmierung. Die Teilnehmer lernen die wesentlichen CUDA Software-Schlüsselwörter und die Syntax kennen, die zum Schreiben von Gerätecode erforderlich sind. Sie werden auch durch die besten Praktiken für die Strukturierung sowohl einfacher als auch komplexer Projekte geführt und wenden diese Konzepte in praktischen Aufgaben in gängigen Entwicklungsumgebungen an.
Die Aufgabe der Johns Hopkins University ist es, ihre Studenten auszubilden und ihre Fähigkeit zum lebenslangen Lernen zu fördern, unabhängige und originelle Forschung zu betreiben und der Welt den Nutzen von Entdeckungen zu bringen.
Kann ich auf meinem eigenen Laptop/Desktop programmieren?
Ja, aber Sie müssen die Codedateien für die Übungen und Aufgaben aktualisieren. Für die Module 4 und 5 müssen Sie einen Nvidia-Grafikprozessor auf Ihrem Rechner installiert haben. Die In-Browser-Umgebung für Übungen und Aufgaben ist so aufgebaut, dass alle erforderlichen Programmierungen möglich sind.
Wann werde ich Zugang zu den Vorlesungen und Aufgaben haben?
Um Zugang zu den Kursmaterialien und Aufgaben zu erhalten und um ein Zertifikat zu erwerben, müssen Sie die Zertifikatserfahrung erwerben, wenn Sie sich für einen Kurs anmelden. Sie können stattdessen eine kostenlose Testversion ausprobieren oder finanzielle Unterstützung beantragen. Der Kurs kann stattdessen die Option "Vollständiger Kurs, kein Zertifikat" anbieten. Mit dieser Option können Sie alle Kursmaterialien einsehen, die erforderlichen Bewertungen abgeben und eine Abschlussnote erhalten. Dies bedeutet auch, dass Sie kein Zertifikat erwerben können.
Was bekomme ich, wenn ich mich für diese Specialization einschreibe?
Wenn Sie sich für den Kurs einschreiben, erhalten Sie Zugang zu allen Kursen der Spezialisierung, und Sie erhalten ein Zertifikat, wenn Sie die Arbeit abgeschlossen haben. Ihr elektronisches Zertifikat wird Ihrer Seite "Leistungen" hinzugefügt - von dort aus können Sie Ihr Zertifikat ausdrucken oder Ihrem LinkedIn-Profil hinzufügen.
Ist finanzielle Hilfe verfügbar?
Ja. Für ausgewählte Lernprogramme können Sie finanzielle Unterstützung oder ein Stipendium beantragen, wenn Sie die Einschreibegebühr nicht aufbringen können. Wenn für das von Ihnen gewählte Lernprogramm eine finanzielle Unterstützung oder ein Stipendium verfügbar ist, finden Sie auf der Beschreibungsseite einen Link zur Beantragung.