Parallel Computing Toolbox

Hauptmerkmale

  • Parallele 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.

Paralleles Rechnen mit MATLAB. Sie können die Parallel Computing Toolbox verwenden, um Anwendungen auf einem Mehrkern-Desktop mit zwölf Workern 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 parallelen Codes durch Abstrahierung. Die Komplexität der Verwaltung von Berechnungen und Daten zwischen Ihrer MATLAB-Sitzung und der verwendeten Rechenressource wird damit reduziert.

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.

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 von aufgabenparallelen 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 Repetitionsanalysen 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.

Verwendung paralleler for-Schleifen für eine aufgabenparallele 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 den GPUArray 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. Mögliche 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.

Weitere Informationen zu GPU-Berechnungen mit MATLAB.

GPU-Berechnungen mit MATLAB.

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

Skalieren auf Cluster, Grids und Clouds mit Hilfe des MATLAB Distributed Computing Server

Die Parallel Computing Toolbox stellt bis zu zwölf Worker zur Verfügung für die Ausführung paralleler Anwendungen lokal auf einem Mehrkern-Rechner. Bei Verwendung der Toolbox zusammen mit dem MATLAB Distributed Computing Server können Sie Anwendungen, die mehr Worker nutzen, auf großen Rechenressourcen wie Computer Clustern oder Grids und Cloud Computing Diensten ausführen. Der Server unterstützt zusätzlich interaktive und Batch-Workflows.

Ausführen eines Genregulierungsmodells auf einem Cluster mit Hilfe des MATLAB Distributed Computing Servers. 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. Kompilierte parallele MATLAB-Anwendungen können zudem auch den Server nutzen.

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 150 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 wären. Verfügbare Funktionen beinhalten auf ScaLAPACK basierende lineare Algebra-Routinen, wie mldivide, auch bekannt als Backslash-Operator (\), lu und chol sowie Funktionen zur Verschiebung verteilter Daten in und aus MAT-Dateien.

Für eine feinere 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 datenparallele MATLAB-Programme mit minimalen Änderungen an Ihrem Code und ohne MPI-Programmierung erstellen.

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 matlabpool 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 abzukoppeln.

Ausführen paralleler Anwendungen interaktiv und als Batchjobs

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

Probieren Sie Parallel Computing Toolbox

Testsoftware anfordern

Prädiktive Datenanalyse in Medizintechnik und Pharmazie

Webinar anzeigen