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 nœuds de calcul MATLAB® sur un cluster de calcul ou un bureau. Par défaut, un pool parallèle démarre automatiquement lorsque les fonctionnalités de langage parallèle telles que parfor
le nécessitent. 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. Vous pouvez également 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 de vie du job. Vous pouvez afficher vos jobs parpool
dans le Job Monitor. Bien que ces workers 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 certaines fonctionnalités de langage parallèle le nécessitent. De nombreuses fonctions peuvent démarrer automatiquement un pool parallèle, notamment:
Vos préférences parallèles spécifient le cluster sur lequel le pool s'exécute. Pour accéder à vos préférences, sous 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 d'ouverture automatique d'un pool et que vous utilisez une fonctionnalité Parallel Computing Toolbox sans pool parallèle ouvert, votre code s'exécutera sur le client.
Méthodes alternatives pour démarrer et arrêter les pools.
Si vous choisissez de ne pas ouvrir automatiquement le pool, vous pouvez contrôler le pool avec les techniques suivantes.
Contrôlez le pool parallèle depuis le bureau MATLAB
Vous pouvez utiliser l'indicateur d'état parallèle dans le coin inférieur gauche du bureau MATLAB pour démarrer manuellement un pool parallèle.
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 du 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
Changer l'heure jusqu'à l'arrêt automatique
Arrêter 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, consultez Choose Between Thread-Based and Process-Based Environments.
Arrêter 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 exécutez 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+Break. Sur Apple macOS, vous pouvez également utiliser la 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 contenant jusqu'à 2 000 nœuds de calcul. Lorsque vous créez un pool parallèle, les valeurs des propriétés de l՚objet cluster NumWorkers
et PreferredPoolNumWorkers
affectent la taille du pool parallèle que vous obtenez.
Propriété de cluster NumWorkers
La propriété de cluster NumWorkers
constitue une limite stricte sur le nombre de nœuds de calcul 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 nœuds de calcul exécutés dans le cluster.Pour les clusters locaux exécutés sur les clusters client et du planificateur tiers, vous pouvez spécifier la valeur de la propriété
NumWorkers
dans 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é de cluster PreferredPoolNumWorkers
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 concernant 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 Job Scheduler, clusters de cloud partagé et de planificateur tiers– 32
Clusters de cloud personnels–
Inf
Clusters 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 de cluster
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 de l'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
Exemples associés
- Exécutez les fonctions MATLAB avec prise en charge parallèle automatique
- Scale Up from Desktop to Cluster