gather
로컬 작업 공간으로 분산 배열 또는 gpuArray 전송
구문
설명
X = gather(
는 다음 배열 데이터에 대해 연산을 수행할 수 있습니다.A
)
gpuArray: GPU에서
A
의 요소를 로컬 작업 공간으로 전송하여X
에 할당합니다.spmd
문 외부의 분산 배열: 여러 워커에 있는A
의 요소를 로컬 작업 공간으로 한데 모아X
에 할당합니다.spmd
문 또는 통신 작업 내의 공동분산 배열:A
의 요소를 한데 모은 후, 모든 워커에서X
로 복제합니다.
tall형 배열과 같은 다른 데이터 유형에 대해 gather
를 호출할 수 있습니다(gather (tall)
항목 참조). 데이터 유형이 수집을 지원하지 않는 경우에는 gather
가 아무런 효과가 없습니다.
GPU 배열 또는 분산 배열을 수집하는 작업은 비용이 많이 들 수 있습니다. 작업 결과를 이러한 유형의 배열을 지원하지 않는 함수에서 사용해야 하는 경우가 아니라면 일반적으로 수집 작업은 필요하지 않습니다. 함수 지원에 대한 자세한 내용은 GPU에서 MATLAB 함수 실행하기 또는 분산 배열을 사용하여 MATLAB 함수 실행 항목을 참조하십시오.
X = gather(gpuArray(X))
, X = gather(distributed(X))
또는 X = gather(codistributed(X))
는 원본 배열 X
를 반환합니다.
[X1,X2,...,Xn] = gather(A1,A2,...,,Xn)
은 여러 배열 A1,A2,...,,An
을 대응하는 출력값 X1,X2,...,Xn
으로 수집합니다. 입력 인수 개수와 출력 인수 개수는 일치해야 합니다.
X = gather(C,lab)
는 공동분산 배열 C
를 변형 배열(variant array) X
로 변환합니다. 이때 워커 lab
에서의 X는 모든 요소를 포함하며 다른 모든 워커에서의 X
는 0×0의 빈 double형입니다.
[X1,X2,...,Xn] = gather(C1,C2,...,Cn,lab)
은 공동분산 배열 C1,C2,...,Cn
을 대응하는 출력값 X1,X2,...,Xn
으로 수집하는데, 모든 요소는 워커 lab
에 포함됩니다. 입력 인수 개수와 출력 인수 개수는 일치해야 합니다.
예제
입력 인수
팁
gather
는 자신이 실행되는 모든 워커의 작업 공간에서, 또는 MATLAB 클라이언트에서 각각(즉, 둘 다는 아님) 공동분산 배열 또는 분산 배열을 조합합니다. spmd
문 내에서 gather
를 사용하는 경우, 수집된 배열은 해당하는 Composite
객체를 통해 클라이언트에서 액세스할 수 있습니다. Access Worker Variables with Composites 항목을 참조하십시오. 통신 작업에서 gather
를 실행하는 경우, 수집된 배열을 태스크의 출력 인수로 클라이언트에 반환할 수 있습니다.
gather
함수를 사용하려면 모든 워커 간에 통신이 필요하므로 if labindex == 1
과 같은 조건문 내에 함수를 배치하여 모든 워커로부터 단일 워커로 데이터를 수집할 수 없습니다.
버전 내역
참고 항목
arrayfun
| bsxfun
| codistributed
| distributed
| gpuArray
| pagefun