Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

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.

Diagram showing a client MATLAB and a parallel cluster. The cluster contains eight parallel workers and the client has started a parallel pool using three of the workers.

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.

The parallel status indicator, including a drop down menu showing options for starting a parallel pool and inspecting your parallel preferences.

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

The parallel status indicator, highlighted blue to indicate that a parallel pool is running. A tooltip shows that a parallel pool has been running for about one minute and will shut down if still idle in 29 minutes.

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

The parallel status indicator, highlighted blue to indicate that a parallel pool is running and including a menu showing options for shutting down the parallel pool and inspecting your parallel preferences.

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 poolTaille réelle du pool
  • Vous avez activé la création automatique de pool et vous exécutez une fonction qui peut démarrer automatiquement un pool.

  • Vous démarrez un pool parallèle manuellement à l'aide de l'indicateur d'état parallèle dans le coin inférieur gauche du bureau MATLAB

  • Vous appelez la fonction parpool sans spécifier d'argument de taille de pool.

MATLAB utilise la valeur de la propriété PreferredPoolNumWorkers du profil de cluster pour déterminer le nombre maximum de nœuds de calcul dans le pool. Si MATLAB ne peut pas démarrer un pool avec autant de nœuds de calcul que spécifié dans la propriété PreferredPoolNumWorkers, vous obtenez un pool plus petit sans aucune erreur. La taille du pool ne peut pas dépasser la valeur NumWorkers.

Vous exécutez la fonction parpool et spécifiez la taille du pool sous forme d'entier.

MATLAB tente de démarrer un pool avec le nombre exact de workers que vous demandez.

  • Si la valeur spécifiée ne dépasse pas la valeur de la propriété NumWorkers, vous obtenez un pool avec le nombre spécifié de workers.

  • Si la valeur spécifiée dépasse la valeur de la propriété NumWorkers, MATLAB renvoie une erreur.

Vous exécutez la fonction parpool et spécifiez la taille du pool sous la forme d'une plage d'entiers.

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é NumWorkers.

  • Si la limite inférieure de la plage est supérieure à la valeur de la propriété NumWorkers, MATLAB génère une erreur.

  • Si la limite supérieure de la plage dépasse la valeur de la propriété NumWorkers, vous obtenez la plus grande taille de pool possible jusqu'à la valeur de la propriété NumWorkers.

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:

  1. 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);
  2. Le cluster est spécifié dans le profil par défaut.

    p = parpool;

Voir aussi

| | | | | | |

Exemples associés

En savoir plus