Contenu principal

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

spmdIndex

Index du worker actuel dans le bloc spmd

Depuis R2022b

    Description

    id = spmdIndex renvoie l'index du worker qui exécute actuellement la fonction dans un bloc spmd ou un job communicant. Lorsque les workers exécutent un bloc spmd ou qu'un job de communication commence son exécution, un index unique est attribué à chaque worker.

    La valeur de spmdIndex est un entier compris entre 1 et le nombre de workers exécutés dans le bloc spmd actuel ou dans le job de communication. Pour obtenir le nombre de workers exécutant le bloc spmd actuel, utilisez la fonction spmdSize.

    Un worker obtient la même valeur id dans chaque bloc spmd pendant la durée d'un pool parallèle.

    exemple

    Exemples

    réduire tout

    Afficher les indices des workers dans un bloc spmd.

    p = parpool('Threads',2);
    spmd
        spmdIndex
    end
    
    Worker 1: 
             1
      
    Worker 2: 
            2

    Afficher les indices des workers dans une boucle parpool exécutée dans le même pool de deux workers, p.

    parfor a=1:4
        [a,spmdIndex]
    end
    ans =
         3     1
    ans =
         2     1
    ans =
         1     1
    ans =
         4     1
    

    Arguments de sortie

    réduire tout

    Indice du worker actuel, spécifié comme un entier positif. La valeur de cette entrée doit être inférieure ou égale à la sortie de la fonction spmdSize dans le bloc spmd actuel ou dans le job de communication.

    Conseils

    Dans un bloc spmd, étant donné que vous avez accès à tous les workers individuellement et que vous contrôlez ce qu'ils exécutent, chaque worker dispose d'un index unique.

    Cependant, à l'intérieur d'une boucle parfor, spmdIndex renvoie toujours une valeur de 1 sur tous les workers dans toutes les itérations.

    Capacités étendues

    développer tout

    Historique des versions

    Introduit dans R2022b