Hauptmerkmale

  • Parallel for-Schleifen (parfor) für die Ausführung von aufgabenparallelen Algorithmen auf mehreren Prozessoren.
  • Unterstützung von CUDA-fähigen NVIDIA GPUs
  • Vollständige Nutzung von Multicore-Prozessoren auf dem Desktop über lokale Worker
  • Unterstützung für Computer-Cluster und Grids (mit MATLAB Distributed Computing Server)
  • Interaktive und Batch-Ausführung paralleler Anwendungen
  • Verteilte Arrays und Single Program Multiple Data (spmd)-Konstrukt für die Handhabung großer Datenmengen und datenparalleler Algorithmen

Paralleles Rechnen mit MATLAB Sie können die Parallel Computing Toolbox verwenden, um Anwendungen auf einem Mehrkern-Desktop mit lokalen Worker-Programmen auszuführen oder die Vorteile von GPUs zu nutzen und die Anwendung auf einen Cluster (mit MATLAB Distributed Computing Server) zu skalieren.


Programmierung paralleler Anwendungen

Die Parallel Computing Toolbox bietet mehrere High-Level-Programmierkonstrukte mit deren Hilfe Sie Ihre Anwendungen so umbauen können, dass Sie die Vorteile von Rechnern mit mehreren Prozessoren und GPUs ausnutzen können. Konstrukte wie parallele for-Schleifen (parfor) und spezielle Arraytypen für die verteilte Verarbeitung und GPU-Berechnungen vereinfachen die Entwicklung von parallelem Code. Diese Abstrahierung reduziert die Komplexität der Verwaltung von Berechnungen und Daten zwischen Ihrer MATLAB-Sitzung und der verwendeten Rechenressource.

Sie können dieselbe Anwendung auf einer Vielzahl von Rechenressourcen ausführen, ohne sie neu programmieren zu müssen. Die parallelen Konstrukte funktionieren auf dieselbe Weise, egal auf welcher Ressource Ihre Anwendung ausgeführt wird – ein Mehrkern-Desktop (mit der Toolbox) oder auch eine größere Ressource wie ein Computer-Cluster (mit der Toolbox mit MATLAB Distributed Computing Server).


Verwendung der eingebauten parallelen Algorithmen in anderen MathWorks-Produkten

Kernfunktionen in verschiedenen MathWorks-Produkten verfügen über eingebaute parallele Algorithmen. Ist die Parallel Computing Toolbox vorhanden, können diese Funktionen Berechnungen auf die verfügbaren parallelen Berechnungsressourcen verteilen. So beschleunigen Sie nicht nur einfach Ihre MATLAB- oder Simulink-basierte Analyse bzw. Simulation, sondern auch die Codegenerierung für große Simulink-Modelle. Sie müssen keinen parallelen Code schreiben, um diese Funktionen nutzen zu können.

Verwendung der eingebauten parallelen Algorithmen in MathWorks-Produkten. Eingebaute parallele Algorithmen können MATLAB- und Simulink-Berechnungen sowie die Codegenerierung von Simulink-Modellen beschleunigen.


Beschleunigung Task-Paralleler Anwendungen

Einige Anwendungen können auch beschleunigt werden, indem Sie diese in unabhängige Aufgaben (Arbeitseinheiten) organisieren und mehrere Aufgaben gleichzeitig ausführen. Diese Klasse task-paralleler Anwendung sind u.a. Simulationen zur Designoptimierung, BER-Tests, Monte-Carlo-Simulationen und mehrfach ausgeführte Analysen für eine große Anzahl von Dateien.

Die Toolbox bietet Ihnen parfor, ein paralleles for-Schleifenkonstrukt, das unabhängige Aufgaben automatisch auf mehreren MATLAB- Workern (MATLAB Berechnungseinheiten, die unabhängig von Ihrer Desktop MATLAB-Sitzung laufen) verteilt. Dieses Konstrukt erkennt automatisch die Verfügbarkeit von Workern und schaltet zum normalen seriellen Verhalten zurück, wenn keine solchen vorhanden sind. Sie können die Task-Ausführung mit anderen Methoden einrichten, z. B. durch die Manipulation von Task -Objekten in der Toolbox.

Verwendung paralleler for-Schleifen für eine task-parallele Anwendung. Sie können parallele for-Schleifen in MATLAB Skripten und Funktionen verwenden und diese sowohl interaktiv als auch offline ausführen.


Beschleunigung von MATLAB-Berechnungen mit GPUs

Die Parallel Computing Toolbox stellt GPUArrays zur Verfügung, einen speziellen Arraytyp mit verschiedenen dazugehörigen Funktionen, mit dem Sie Berechnungen auf CUDA-fähigen NVIDIA-GPUs direkt aus MATLAB heraus ausführen können. Funktionen sind Fft, Elementoperationen und verschiedene Operationen aus der linearen Algebra wie lu Und mldivide, auch bekannt als Backslash-Operator (\). Die Toolbox stellt Ihnen zudem einen Mechanismus bereit, mit dem Sie die vorhandenen CUDA-basierten GPU-Kernel direkt aus MATLAB nutzen können.

Erfahren Sie mehr über GPU-Berechnungen mit MATLAB.

GPU-Berechnungen mit MATLAB. Die Verwendung von GPUArrays und GPU-fähigen MATLAB-Funktionen hilft, MATLAB-Operationen ohne low-level CUDA-Programmierung zu beschleunigen.


Skalierung auf Clustern, Grids und Clouds mit Hilfe des MATLAB Distributed Computing Server

Durch Parallel Computing Toolbox können MATLAB-Worker lokal auf Ihrem Mehrkern-PC laufen, um Ihre Parallel-Anwendungen auszuführen und ermöglicht Ihnen so eine vollständige Nutzung der Rechenleistung. Bei Verwendung der Toolbox zusammen mit dem MATLAB Distributed Computing Server können Sie Anwendungen auf großen Rechenressourcen wie Computer Clustern oder Grids und Cloud Rechnerressourcen ausführen.

Diese Präsentation beschreibt, wie die Datenexperten des Forschungsprogramms für Bioakustik an der Cornell University MATLAB ® verwenden, um leistungsstarke Berechnungssoftware für die Verarbeitung und Analyse von Terabytes an akustischen Daten zu entwickeln.

Ausführen eines Genregulierungsmodells in einem Cluster mithilfe von MATLAB Distributed Computing Server. Mit dem Server können Anwendungen, die für große Probleme mit Hilfe von Parallel Computing Toolbox entwickelt wurden, auf Computer-Clustern ausgeführt werden.


Implementieren von datenparallelen Anwendungen mit Hilfe von der Toolbox und dem MATLAB Distributed Computing Server

Verteilte Arrays in der Parallel Computing Toolbox sind spezielle Arrays, die ein Vielfaches der Datenmenge enthalten, die Ihr Desktop Computer an Arbeitsspeicher (RAM) zur Verfügung hat. Verteilte Arrays teilen die Daten auf mehrere MATLAB-Worker-Prozesse auf, die in einem Computer-Cluster ausgeführt werden (mit Hilfe von MATLAB Distributed Computing Server). So können Sie mit verteilten Arrays die Speicherbeschränkungen Ihres Desktop-Computers überwinden und Probleme lösen, die die Handhabung von sehr großen Matrizen erfordern.

Mit mehr als 240 verfügbaren Funktionen zur Arbeit mit verteilten Arrays können Sie mit diesen genauso arbeiten, wie Sie es mit MATLAB-Arrays tun würden, und Sie können auf Workern abgelegte Daten handhaben, ohne dass tiefgreifende MPI-Programmierungstechniken erforderlich sind. Verfügbare Funktionen beinhalten auf ScaLAPACK basierende lineare Algebra-Routinen, wie mldivide, auch bekannt als Backslash-Operator (\), lu Und cholsowie Funktionen zum Transfer verteilter Daten in und aus MAT-Dateien.

Parallel Computing Toolbox erweitert außerdem die Mapreduce -Funktionalität, die in MATLAB eingebaut ist, so dass Sie auf Mapreduce basierende Anwendungen für bessere Leistung auf lokalen Workern ausführen können. Durch die Verknüpfung der Toolbox mit dem MATLAB Distributed Computing Server können Sie diese Anwendungen anpassen, indem Sie parallel Mapreduce auf einem Hadoop-Cluster ausführen.

Für eine besser abgestimmte Kontrolle über Ihr Parallelisierungsschema bietet die Toolbox das Single Program Multiple Data (spmd)-Konstrukt und verschiedene Nachrichtenaustausch-Routinen, die auf einer MPI-Standardbibliothek (MPICH2) basieren. Mit dem spmd -Konstrukt können Sie Teile Ihres Codes kennzeichnen, die dann auf den an der parallelen Berechnung teilnehmenden Workern gleichzeitig ausgeführt werden können. Während der Ausführung des Programms versetzt spmd automatisch die Daten und den beinhalteten Code auf die Worker und bringt die Ergebnisse nach deren Berechnungsende an die MATLAB-Client-Sitzung wieder zurück. Dabei stehen Nachrichtenaustauschfunktionen zum Versenden, Empfangen, Verteilen, Sperren und Prüfen zur Verfügung.

Programmierung mit verteilten Arrays. Mit verteilten Arrays und parallelen Algorithmen können Sie Daten-Parallele MATLAB-Programme unter minimalen Änderungen an Ihrem Code und ohne MPI-Programmierung erstellen.


Ausführen paralleler Anwendungen interaktiv und als Batchjobs

Mit der Parallel Computing Toolbox können Sie parallele Anwendungen interaktiv und als Batch-Prozess ausführen. Mit Hilfe des Befehls parpool können Sie Ihre MATLAB Sitzung mit einem Pool von MATLAB Workern verbinden, die entweder lokal auf Ihrem Desktop (mit der Toolbox) oder auf einem Computer-Cluster (mit MATLAB Distributed Computing Server) laufen, um eine spezielle interaktive Parallel-Ausführungsumgebung einzurichten. Sie können parallele Anwendungen über die MATLAB Eingabeaufforderungen auf diesen Workern starten und Ergebnisse direkt abrufen, wenn die Berechnungen abgeschlossen sind, genauso wie Sie es für eine normale MATLAB Sitzung tun würden.

Die interaktive Ausführung von Anwendungen ist besonders dann geeignet, wenn die Ausführungszeit relativ kurz ist. Wenn Ihre Anwendungen längere Zeit laufen, können Sie die Toolbox auch verwenden, um diese für die Abarbeitung in einem Batch-Prozess einzurichten. Das erlaubt Ihnen, während der Ausführung Ihrer umfangreichen MATLAB und Simulink Anwendungen Ihre MATLAB Sitzung für andere Aktivitäten zu verwenden.

Während der Ausführung Ihrer Anwendung im Batch können Sie Ihre MATLAB Sitzung sogar schließen und die Ergebnisse zu einem späteren Zeitpunkt abrufen. Die Toolbox stellt Ihnen verschiedene Mechanismen zur Verwaltung der Offline-Ausführung paralleler Programme bereit, wie die Funktion batch und die Objekte job Und task . Sowohl die batch Funktion als auch die Objekte job Und task können verwendet werden, um eine Desktop MATLAB-Sitzung von der Ausführung serieller MATLAB und Simulink-Anwendungen zu entlasten.

Ausführen paralleler Anwendungen interaktiv und als Batchjobs Sie können Anwendungen auf Ihrer Workstation mit Hilfe der in der Toolbox verfügbaren lokalen Worker ausführen oder auf einem Computer-Cluster mit Hilfe der vom MATLAB Distributed Computing Server verfügbaren weiteren Workern.