Parallel Computing Toolbox

Principales fonctionnalités

  • Boucle For parallèle (parfor) pour l’exécution d’algorithmes à tâches parallèles sur plusieurs processeurs.
  • Prise en charge pour les GPU NVIDIA compatibles CUDA.
  • Utilisation maximale des processeurs multicœurs sur le bureau via les workers fonctionnant localement
  • Prise en charge du cluster d’ordinateur et de grille (avec MATLAB Distributed Computing Server)
  • Exécution interactive et batch des applications parallèles.
  • Tableaux distribués et construction par bloc spmd (single process multiple data) pour le traitement à grande échelle.
Calcul parallèle avec MATLAB.

Calcul parallèle avec MATLAB Vous pouvez utiliser Parallel Computing Toolbox pour exécuter des applications sur un bureau multicœur avec 12 workers disponibles dans la boîte à outils, pour bénéficier des GPU et pour étendre à un cluster (avec MATLAB Distributed Computing Server).

Programmation d'applications parallèles

Parallel Computing Toolbox propose plusieurs constructions de programmation de haut niveau qui permettent de convertir les applications pour pouvoir bénéficier des ordinateurs équipés de processeurs multicœurs et de GPU. Les constructions telles que les boucles For parallèles (parfor) et les types de tableaux spéciaux pour le traitement distribué et pour les calculs GPU simplifient le développement du code parallèle en éliminant la complexité de la gestion des calculs et des données entre la session MATLAB et la ressource informatique utilisée.

Il est possible d'exécuter la même application sur plusieurs ressources informatiques sans avoir à la reprogrammer. Les constructions parallèles fonctionnent de la même manière, quelle que soit la ressource sur laquelle l'application est exécutée ; un bureau multicœur (avec la boîte à outils) ou une plus grande ressource comme un cluster d'ordinateur (avec la boîte à outils de MATLAB Distributed Computing Server).

Utilisation d'algorithmes parallèles intégrés dans les autres produits MathWorks

Les fonctions principales dans plusieurs produits MathWorks contiennent des algorithmes parallèles intégrés. En présence de Parallel Computing Toolbox, ces fonctions peuvent distribuer les calculs parmi les ressources informatiques parallèles disponibles, permettant d'accélérer à la fois les tâches de simulation ou d'analyse MATLAB et Simulink mais aussi la génération de code pour des grands modèles Simulink. Il n'est pas nécessaire d'écrire un code parallèle pour bénéficier de ces fonctions.

Utilisation d'algorithmes parallèles intégrés dans les produits MathWorks.

Utilisation d'algorithmes parallèles intégrés dans les produits MathWorks. Les algorithmes parallèles intégrés peuvent accélérer les calculs MATLAB et Simulink ainsi que la génération de code à partir des modèles Simulink.

Accélération des applications à tâches parallèles

Il est possible d'accélérer certaines applications en les organisant en des tâches (unités de travail) indépendantes et en exécutant plusieurs tâches simultanément. Cette classe d'applications à tâches parallèles inclut des simulations pour l'optimisation de la conception, les test BER, les simulations Monte Carlo et les analyses répétitives sur un grand nombre de fichiers de données.

La boîte à outils offre parfor, une construction de boucle For parallèle qui peut distribuer automatiquement des tâches indépendantes à plusieurs workers MATLAB (moteurs de calcul MATLAB exécutés indépendamment de votre session MATLAB de bureau). Cette construction détecte automatiquement la présence des workers et rétablit le comportement série si elle n’en détecte aucun. Vous pouvez également définir l'exécution d'une tâche à l'aide d'autres méthodes, telles que la manipulation des objets tâches dans la boîtes à outils.

Utilisation des boucles For parallèles pour une application à tâches parallèles. Vous pouvez utiliser des boucles For parallèles dans des scripts et des fonctions MATLAB et les exécuter en mode interactif et hors ligne.

Utilisation des boucles For parallèles pour une application à tâches parallèles. Vous pouvez utiliser des boucles For parallèles dans des scripts et des fonctions MATLAB et les exécuter en mode interactif et hors ligne.

Accélération des calculs MATLAB avec des GPU

Parallel Computing Toolbox fournit GPUArray, un type de tableau spécial avec plusieurs fonctions associées qui permettent de réaliser des calculs sur des GPU NVIDIA compatibles CUDA directement depuis MATLAB. Les fonctions incluent fft, des opérations de précision et plusieurs opérations algébriques linéaires telles que lu et mldivide, également connu sous le nom d'opérateur antislash (\). La boîte à outils fournit également un mécanisme qui permet l'utilisation des noyaux existants GPU basés sur CUDA directement depuis MATLAB.

En savoir plus sur les calculs GPU avec MATLAB.

calculs GPU avec MATLAB.

calculs GPU avec MATLAB. L'utilisation du GPUArrays et des fonctions MATLAB compatibles GPU contribue à l'accélération des opérations MATLAB sans programmation CUDA de bas niveau.

Élargissement vers des clusters, grilles et nuages à l'aide de MATLAB Distributed Computing Server

Parallel Computing Toolbox permet d'utiliser jusqu'à douze workers pour exécuter des applications parallèles localement sur un ordinateur multicœur. L'utilisation combinée de la boîte à outils et de MATLAB Distributed Computing Server permet d'exécuter des applications qui utilisent plus de workers sur des ressources informatiques à grande échelle, comme les clusters d'ordinateur ou les services d'informatique de grille ou de nuage. Le serveur supporte également les workflow en modes interactif et batch.

Exécution d’un modèle de régulation des gènes sur un cluster à l’aide de MATLAB Distributed Computing Server. Le serveur active les applications développées à l’aide de Parallel Computing Toolbox afin d’exploiter les clusters d’ordinateurs pour les problèmes importants. Les applications MATLAB parallèles compilées peuvent également utiliser le serveur.

Exécution d’un modèle de régulation des gènes sur un cluster à l’aide de MATLAB Distributed Computing Server. Le serveur active les applications développées à l’aide de Parallel Computing Toolbox afin d’exploiter les clusters d’ordinateurs pour les problèmes importants.

Mise en œuvre d'applications à données parallèles à l'aide de la boîte à outils et de MATLAB Distributed Computing Server

Les tableaux distribués dans Parallel Computing Toolbox sont des tableaux spéciaux qui contiennent plusieurs fois la quantité de données que peut contenir la mémoire de votre ordinateur de bureau (RAM). Les tableaux distribués répartissent les données dans plusieurs processus des workers MATLAB exécutés sur un cluster d'ordinateurs (à l'aide de MATLAB Distributed Computing Server). Par conséquent, il est possible grâce aux tableaux distribués de surmonter les limites de la mémoire de l'ordinateur de bureau et de résoudre les problèmes qui requièrent la manipulation de très grandes matrices.

Avec plus de 150 fonctions disponibles pour travailler avec des tableaux distribués, il est possible d'interagir avec ces tableaux de la même manière qu'avec les tableaux MATLAB, et de manipuler les données disponibles à distance sans une programmation en MPI de bas niveau. Les fonctions disponibles incluent des routines algébriques linéaires qui reposent sur ScaLAPACK, telles que mldivide, aussi connu comme l'opérateur antislash (\), lu et chol, et des fonctions permettant de déplacer les données distribuées depuis et vers les fichiers MAT.

Pour un contrôle à grain fin sur votre schéma de parallélisation, la boîte à outils fournit la construction de programme unique-données multiples (spmd) et plusieurs routines de transmission de message qui reposent sur la bibliothèque standard MPI (MPICH2). La construction spmd vous permet de désigner les sections de votre code que vous voulez exécuter simultanément sur les workers intervenant dans un calcul parallèle. Pendant l’exécution du programme, spmd transfère automatiquement les données et le code utilisés dans son corps vers les workers ; une fois l’exécution terminée, elle retourne les résultats vers la session client MATLAB. Les fonctions de transmission de messages pour des opérations d'envoi, de réception, de diffusion, de barrière et de sonde sont disponibles.

Programmation sans tableaux distribués. Les tableaux distribués et les algorithmes parallèles vous permettent de créer des programmes MATLAB à données parallèles en apportant des changements mineurs à votre code et sans programmation en MPI.

Programmation avec tableaux distribués. Les tableaux distribués et les algorithmes parallèles vous permettent de créer des programmes MATLAB à données parallèles en apportant des changements mineurs à votre code et sans programmation en MPI.

Exécution d'applications parallèles en modes interactif et batch

Il est possible d'exécuter des applications parallèles en modes interactif et batch à l'aide de Parallel Computing Toolbox. Avec la commande matlabpool, il est possible de connecter la session MATLAB à un pool de workers MATLAB qui peuvent soit exécuter localement sur votre bureau (avec la boîte à outils) ou sur un cluster d'ordinateurs (avec MATLAB Distributed Computing Server) pour configurer un environnement d'exécution parallèle interactive spécialisé. Il est possible d'exécuter des applications parallèles à partir de l'invite MATLAB sur ces workers et d'extraire les résultats dès la fin des calculs, de la même manière qu'à partir de n'importe quelle session MATLAB.

L'exécution d'applications de manière interactive est adaptée lorsque le temps d'exécution est relativement court. Lorsque les applications doivent être exécutées durant un long moment, il est possible d'utiliser la boîte à outils pour les configurer de manière à ce qu'elles s'exécutent comme des tâches en batch. Cela permet de libérer la session MATLAB pour d'autres activités pendant que vous exécutez des applications MATLAB et Simulink volumineuses.

Tandis que l'application s'exécute en mode batch, il est possible de fermer la session MATLAB et d'extraire les résultats ultérieurement. La boîte à outils fournit plusieurs mécanismes pour gérer hors-ligne l'exécution de programmes parallèles, telles que la fonction batch et les objets travail et tâche. Il est possible d'utiliser la fonction batch et les objets travail et tâche afin de décharger l’exécution des applications MATLAB et Simulink série depuis une session MATLAB de bureau.

Exécution d'applications parallèles en mode interactif et comme tâches en batch.

Exécution d’applications parallèles en modes interactif et par mécanisme de soumissions (batch). Avec la toolbox, vous pouvez exécuter des applications sur votre station de travail à l’aide des cœurs disponibles, ou avec le MATLAB Distributed Computing Server sur une ferme de calcul en utilisant plus de workers disponibles.