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 deA
du 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 deA
des multiples workers vers l'espace de travail local et les affecte àX
.Sur un tableau codistribué, à l'intérieur d'une instruction
spmd
ou d'un job communicant : rassemble les éléments deA
et les réplique dansX
sur 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