Exécuter du code sur des pools parallèles
Qu'est-ce qu'un pool parallèle ?
Un pool parallèle est un ensemble de MATLAB® workers sur un cluster de calcul ou un desktop. Par défaut, un pool parallèle démarre automatiquement lorsque cela est nécessaire pour les fonctionnalités de langage parallèle telles que parfor. Vous pouvez spécifier le cluster par défaut dans vos préférences parallèles. Le panneau des préférences affiche votre cluster par défaut lorsque vous sélectionnez Parallel Preferences dans le menu Parallel. Vous pouvez également spécifier le cluster par défaut dans le menu Parallel. Alternativement, vous pouvez choisir la taille du cluster et du pool en utilisant respectivement parcluster et parpool, sur la ligne de commande MATLAB. Voir l'image pour plus de détails.
Les workers d'un pool parallèle peuvent être utilisés de manière interactive et communiquer entre eux pendant toute la durée du job. Vous pouvez afficher vos jobs parpool dans le Job Monitor. Bien que ces agents de pool soient réservés à votre usage interactif, ils ne sont pas disponibles pour les autres utilisateurs. Vous ne pouvez avoir qu'un seul pool parallèle à la fois à partir d'une session client MATLAB. Dans MATLAB, le pool parallèle actuel est représenté par un objet parallel.Pool.
Démarrer et arrêter automatiquement un pool parallèle
Par défaut, un pool parallèle démarre automatiquement lorsque cela est nécessaire pour certaines fonctionnalités de langage parallèle. De nombreuses fonctions peuvent démarrer automatiquement un pool parallèle, notamment :
Vos préférences parallèles spécifient sur quel cluster le pool s'exécute. Pour accéder à vos préférences, dans l'onglet Home, dans la section Environment, cliquez sur Parallel > Parallel Preferences .
Dans vos préférences parallèles, vous pouvez désactiver l'option d'ouverture ou de fermeture automatique du pool. Si vous désactivez l'option permettant d'ouvrir automatiquement un pool et que vous utilisez une fonctionnalité Parallel Computing Toolbox sans pool parallèle ouvert, votre code s'exécutera sur le client.
Autres méthodes pour démarrer et arrêter les pools
Si vous choisissez de ne pas ouvrir le pool automatiquement, vous pouvez contrôler le pool avec les techniques suivantes.
Contrôler le pool parallèle depuis le desktop MATLAB
Vous pouvez utiliser l'indicateur d'état parallèle dans le coin inférieur gauche du desktop MATLAB pour démarrer un pool parallèle manuellement.

Dans MATLAB Online, l'indicateur d'état parallèle n'est pas visible par défaut. Vous devez d’abord démarrer un pool parallèle en utilisant parpool ou l’une des fonctions qui démarrent automatiquement un pool parallèle.
Cliquez sur l’icône de l’indicateur et sélectionnez Start Parallel Pool . Le cluster de pool est spécifié par votre cluster par défaut. Votre cluster par défaut est indiqué par une coche dans le menu Parallel > Default Cluster.
Les options de menu sont différentes lorsqu'un pool est en cours d'exécution. Tu peux :
Afficher le nombre de workers et le nom du cluster
Modifier le délai jusqu'à l'arrêt automatique
Fermer le pool parallèle

Pour arrêter un pool, vous pouvez également sélectionner Shut Down Parallel Pool .

Interface de programmation
Démarrer un pool parallèle. Vous pouvez démarrer et arrêter un pool parallèle par programmation en utilisant les paramètres par défaut ou en spécifiant des alternatives.
Pour ouvrir un pool parallèle en fonction de vos paramètres par défaut :
parpool
Pour ouvrir un pool d'une taille spécifique :
parpool(4)
Pour utiliser un cluster autre que celui par défaut et spécifier où le pool s'exécute :
parpool('MyCluster',4)Vous pouvez exécuter un pool parallèle sur différents environnements parallèles. Pour plus d'informations, voir Choose Between Thread-Based and Process-Based Environments.
Fermer un pool parallèle. Pour obtenir le pool parallèle actuel et utiliser cet objet lorsque vous souhaitez arrêter le pool :
p = gcp; delete(p)
Assurez-vous qu'aucun pool parallèle n'est en cours d'exécution. Lorsque vous émettez la commande gcp sans arguments, vous risquez d’ouvrir un pool par inadvertance. Pour éviter ce problème :
delete(gcp('nocreate'))Remarque
Pour arrêter un pool parallèle pendant son démarrage, appuyez sur Ctrl+C ou Ctrl+Pause. Sur Apple macOS, vous pouvez également utiliser Commande. (la touche Commande et la touche point).
Facteurs qui affectent la taille du pool
Parallel Computing Toolbox™ peut prendre en charge des pools parallèles avec jusqu'à 2 000 workers. Lorsque vous créez un pool parallèle, les valeurs des propriétés d’objet cluster NumWorkers et PreferredPoolNumWorkers affectent la taille du pool parallèle que vous obtenez.
Propriété NumWorkers du cluster
La propriété de cluster NumWorkers est une limite stricte sur le nombre de workers disponibles pour le cluster.
Pour les clusters MATLAB Job Scheduler, le logiciel détermine la valeur de la propriété
NumWorkersà partir du nombre de workers exécutés dans le cluster.Pour les clusters locaux exécutés sur le client et les clusters de planificateur tiers, vous pouvez spécifier la valeur de la propriété
NumWorkersdans le profil du cluster.
Vous ne pouvez pas créer un pool parallèle plus grand que la valeur de la propriété NumWorkers.
Propriété PreferredPoolNumWorkers du cluster
La propriété d'objet cluster PreferredPoolNumWorkers spécifie une préférence pour la taille des pools que le logiciel crée avec l'objet cluster. Il ne s’agit pas d’une exigence ou d’une demande d’un nombre spécifique de workers. La valeur par défaut de la propriété PreferredPoolNumWorkers dépend du type de cluster. Vous pouvez modifier cette valeur dans le profil du cluster. Voici une liste des types de cluster et de leurs valeurs PreferredPoolNumWorkers par défaut :
MATLAB Planificateur de jobs, cloud partagé et clusters de planificateurs tiers — 32
Clusters de cloud personnels —
Infclusters de processus locaux —
Inf(depuis R2023b)Dans R2023a : Pour les profils locaux, la valeur par défaut est la valeur de la propriété
NumWorkers.
Technique de création de pool
Les valeurs des propriétés NumWorkers et PreferredPoolNumWorkers combinées à la technique que vous utilisez pour créer le pool déterminent la taille réelle de votre pool parallèle.
| Technique de création de pool | Taille réelle du pool |
|---|---|
| MATLAB utilise la valeur de la propriété |
Vous exécutez la fonction | MATLAB tente de démarrer un pool avec le nombre exact de workers que vous demandez.
|
Vous exécutez la fonction | MATLAB tente de créer un pool avec la plus grande valeur possible dans cette plage sans dépasser la valeur de la propriété
|
Priorité pour la sélection des clusters
Pour la sélection du cluster sur lequel le pool s'exécute, la priorité est déterminée par les éléments suivants :
L'argument d'objet cluster de ligne de commande remplace le paramètre de profil par défaut et utilise le cluster identifié par le profil
'MyProfile'.c = parcluster('MyProfile'); p = parpool(c);Le cluster est spécifié dans le profil par défaut.
p = parpool;
Voir aussi
delete | gcp | parcluster | parfor | spmd | distributed | parfeval | parpool
Rubriques
- Exécuter les fonctions MATLAB avec Automatic Parallel Support
- Scale Up from Desktop to Cluster
- How Parallel Computing Software Runs a Job
- Décider quand utiliser parfor
- Spécifier vos préférences pour le traitement parallèle
- Discover Clusters and Use Cluster Profiles
- Scale Up parfor-Loops to Cluster and Cloud