gather
Transférer un tableau distribué, un objet Composite ou un objet gpuArray vers l'espace de travail local
Syntaxe
Description
X = gather( peut fonctionner sur les données de tableau suivantes :A)
Sur un
gpuArray: transfère les éléments deAdu GPU vers l'espace de travail local et les attribue àX.Sur un tableau distribué, en dehors d'une instruction
spmd: rassemble les éléments deAdes multiples workers vers l'espace de travail local et les affecte àX.Sur un tableau codistribué, à l'intérieur d'une instruction
spmdou d'un job communicant : rassemble les éléments deAet les réplique dansXsur chaque worker.
Vous pouvez appeler gather sur d'autres types de données, tels que les tall arrays (voir gather (tall)). Si le type de données ne prend pas en charge la collecte, alors gather n'a aucun effet.
La collecte de tableaux GPU ou de tableaux distribués peut être coûteuse et n'est généralement pas nécessaire, sauf si vous devez utiliser votre résultat avec des fonctions qui ne prennent pas en charge ces types de tableaux. Pour plus d'informations sur la prise en charge des fonctions, voir Exécuter les fonctions MATLAB sur un GPU ou Exécuter les fonctions MATLAB avec des tableaux distribués .
X = gather(gpuArray(X)), X = gather(distributed(X)) ou X = gather(codistributed(X)) renvoient le tableau d'origine X .
[X1,X2,...,Xn] = gather(A1,A2,...,An) rassemble plusieurs tableaux A1,A2,...,An dans les sorties correspondantes X1,X2,...,Xn . Le nombre d'arguments d'entrée et de sortie doit correspondre.
X = gather( convertit un tableau codistribué Cd,destination)Cd en un tableau variant X, de sorte que tous les éléments soient contenus dans le worker spécifié par destination, et X est un double vide 0 par 0 sur tous les autres workers.
[X1,X2,...,Xn] = gather(Cd1,Cd2,...,Cdn,destination) rassemble les tableaux codistribués Cd1,Cd2,...,Cdn dans les sorties correspondantes X1,X2,...,Xn, avec tous les éléments du worker spécifiés par destination . Le nombre d'arguments d'entrée et de sortie doit correspondre.
X = gather( rassemble tous les éléments du tableau composite Cp)Cp des multiples workers dans l'espace de travail local et les affecte au cell array X. Le nombre de cellules dans X dépend du nombre de workers référencés par Cp. (depuis R2023a)
[X1,X2,...,Xn] = gather(Cp1,Cp2,...,Cpn) rassemble les tableaux composites Cp1,Cp2,...,Cpn dans les cell arrays correspondants X1,X2,...,Xn. Le nombre d'arguments d'entrée et de sortie doit correspondre. (depuis R2023a)
Exemples
Arguments d'entrée
Conseils
Notez que gather assemble le tableau codistribué ou distribué dans les espaces de travail de tous les workers sur lesquels il s'exécute, ou sur le client MATLAB, respectivement, mais pas les deux. Si vous utilisez gather dans une instruction spmd, le tableau collecté est accessible sur le client via son objet Composite correspondant ; voir Access Worker Variables with Composites . Si vous exécutez gather dans un job de communication, vous pouvez renvoyer le tableau collecté au client en tant qu'argument de sortie du job.
Comme la fonction gather nécessite une communication entre tous les workers, vous ne pouvez pas rassembler les données de tous les workers sur un seul worker en plaçant la fonction à l'intérieur d'une instruction conditionnelle telle que if spmdIndex == 1.
Historique des versions
Introduit dans R2006bVoir aussi
arrayfun | codistributed | distributed | gpuArray | Composite | pagefun