parpool
Créer un pool parallèle sur le cluster
Syntaxe
Description
parpool
démarre un pool parallèle de workers en utilisant le profil par défaut. Avec les préférences par défaut, MATLAB® démarre un pool sur la machine locale avec un worker par cœur de processeur physique jusqu'à la limite définie dans le profil par défaut. Pour plus d'informations sur les préférences parallèles, voir Spécifier vos préférences pour le traitement parallèle .
En général, la taille du pool est spécifiée par la propriété PreferredPoolNumWorkers
du profil par défaut. Pour tous les facteurs pouvant affecter la taille de votre pool, voir Facteurs qui affectent la taille du pool.
parpool
active toutes les fonctionnalités du langage parallèle dans MATLAB en créant un job spécial sur un pool de workers et en connectant le client MATLAB au pool parallèle. Les fonctionnalités linguistiques parallèles incluent parfor
, parfeval
, parfevalOnAll
, spmd
et distributed
. Si possible, le dossier de travail sur les workers est défini pour correspondre à celui de la session client MATLAB.
parpool(
crée et renvoie un pool avec le nombre de workers spécifié. poolsize
)poolsize
peut être un entier positif ou une plage spécifiée sous forme de vecteur à 2 éléments d'entiers. Si poolsize
est une plage, le pool résultant a une taille aussi grande que possible dans la plage demandée.
La spécification de poolsize
remplace toute valeur spécifiée dans la propriété PreferredPoolNumWorkers
et démarre un pool contenant exactement ce nombre de workers, même s'il doit attendre qu'ils soient disponibles. La plupart des clusters ont un nombre maximum de workers qu'ils peuvent démarrer. Si le profil spécifie un cluster de Job Scheduler MATLAB, parpool
réserve ses workers parmi ceux déjà en cours d'exécution et disponibles sous ce Job Scheduler MATLAB. Si le profil spécifie un planificateur local ou tiers, parpool
demande au planificateur de démarrer les workers du pool.
parpool(___,
applique les valeurs spécifiées pour certaines propriétés lors du démarrage du pool.Name,Value
)
renvoie un objet poolobj
= parpool(___)parallel.Pool
à l'espace de travail client représentant le pool sur le cluster. Vous pouvez utiliser l'objet pool pour supprimer le pool par programmation ou pour accéder à ses propriétés. Utilisez delete(pool)
pour arrêter le pool parallèle.
Exemples
Arguments d'entrée
Arguments nom-valeur
Arguments de sortie
Conseils
L'indicateur d'état du pool dans le coin inférieur gauche du desktop affiche la connexion de la session client au pool et l'état du pool. Cliquez sur l'icône pour accéder à un menu des actions de pool prises en charge.
Avec un pool en fonctionnement :
Sans pool en cours d'exécution :
Si vous définissez vos préférences parallèles pour créer automatiquement un pool parallèle lorsque cela est nécessaire, vous n'avez pas besoin d'appeler explicitement la commande
parpool
. Vous pouvez créer explicitement un pool pour contrôler le moment où vous encourez le temps de configuration, afin que le pool soit prêt pour les constructions de langage parallèles ultérieures.delete(poolobj)
ferme le pool parallèle. Sans pool parallèle,spmd
etparfor
s'exécutent comme un seul thread dans le client, à moins que vos préférences parallèles ne soient définies pour démarrer automatiquement un pool parallèle pour eux.Lorsque vous utilisez l'éditeur MATLAB pour mettre à jour des fichiers sur le client qui sont attachés à un pool parallèle, ces mises à jour se propagent automatiquement aux workers du pool. (Cette mise à jour automatique ne s'applique pas aux fichiers modèles Simulink®. Pour propager les fichiers de modèle mis à jour aux workers, utilisez la fonction
updateAttachedFiles
)Si possible, le dossier de travail sur les workers est initialement défini pour correspondre à celui de la session client MATLAB. Par la suite, les commandes suivantes entrées dans la fenêtre de commande du client s'exécutent également sur tous les workers du pool :
Ce comportement vous permet de définir le dossier de travail et le chemin de recherche de commandes sur tous les workers, afin que les activités de pool ultérieures telles que
parfor
-loops s'exécutent dans le contexte approprié.Lors du changement de dossiers ou de l'ajout d'un chemin avec
cd
ouaddpath
sur des clients avec des systèmes d'exploitation Windows®, la valeur envoyée aux workers est le chemin UNC du dossier si possible. Pour les clients avec des systèmes d’exploitation Linux®, il s’agit de l’emplacement absolu du dossier.Si l’une de ces commandes ne fonctionne pas sur le client, elle n’est pas non plus exécutée sur les workers. Par exemple, si
addpath
spécifie un dossier auquel le client ne peut pas accéder, la commandeaddpath
n'est pas exécutée sur les workers. Toutefois, si le dossier de travail peut être défini sur le client, mais ne peut pas être défini comme spécifié sur l'un des workers, vous n'obtenez pas de message d'erreur renvoyé à la fenêtre de commande du client.Soyez attentif à cette légère différence de comportement dans un environnement à plateforme mixte où le client n'est pas la même plateforme que les workers, où les dossiers locaux ou mappés depuis le client ne sont pas disponibles de la même manière pour les workers, ou où les dossiers se trouvent dans un système de fichiers non partagé. Par exemple, si vous avez un client MATLAB exécuté sur un système d'exploitation Microsoft® Windows tandis que les nœuds de calcul MATLAB s'exécutent tous sur des systèmes d'exploitation Linux, le même argument de
addpath
ne peut pas fonctionner sur les deux. Dans cette situation, vous pouvez utiliser la fonctionpctRunOnAll
pour garantir qu'une commande s'exécute sur tous les workers.Une autre différence entre le client et les workers est que tous les arguments
addpath
qui font partie du dossiermatlabroot
ne sont pas définis sur les workers. L'hypothèse est que la base d'installation MATLAB est déjà incluse dans les chemins des workers. Les règles pouraddpath
concernant les workers dans le pool sont :Les sous-dossiers du dossier
matlabroot
ne sont pas envoyés aux workers.Tous les dossiers qui apparaissent avant la première occurrence d'un dossier
matlabroot
sont ajoutés en haut du chemin sur les workers.Tous les dossiers qui apparaissent après la première occurrence d'un dossier
matlabroot
sont ajoutés après le groupe de dossiersmatlabroot
sur les chemins des workers.
Par exemple, supposons que
matlabroot
sur le client soitC:\Applications\matlab\
. Avec un pool parallèle ouvert, exécutez la commande suivante pour définir le chemin sur le client et tous les workers :addpath("P1", "P2", "C:\Applications\matlab\T3", "C:\Applications\matlab\T4", "P5", "C:\Applications\matlab\T6", "P7", "P8");
Étant donné que
T3
,T4
etT6
sont des sous-dossiers dematlabroot
, ils ne sont pas définis sur les chemins des workers. Ainsi, sur les workers, la partie pertinente du chemin résultant de cette commande est :P1 P2 <worker original matlabroot folders...> P5 P7 P8
Si vous utilisez Macintosh ou Linux et que vous rencontrez des problèmes lors de la création d'un grand pool parallèle, consultez Recommended System Limits for Macintosh and Linux .
Historique des versions
Introduit dans R2013bVoir aussi
Composite
| delete
| distributed
| gcp
| parallel.defaultProfile
| parallel.pool.Constant
| parfor
| parfeval
| parfevalOnAll
| pctRunOnAll
| spmd
| parcluster