Three tasks in parallel
조회 수: 1 (최근 30일)
이전 댓글 표시
If I have a 10x10x10 matrix A, and want to do some operations on three different dimensions separately, then how to do that in parallel? For example, I have to compute inverse of all 2D matrices in it, like:
for k=1:10
B(k,:,:)=inv(squeeze(A(k,:,:);
end
for k=1:10
B(:,k,:)=inv(squeeze(A(:,k,:);
end
for k=1:10
B(:,:,k)=inv(squeeze(A(:,:,k);
end
Now,I want to do the same thing, but three for-loops in parallel. Is there any way to do it in matlab? A help is greatly appreciated. Thanks.
댓글 수: 0
답변 (1개)
Christiaan
2015년 3월 11일
편집: Christiaan
2015년 3월 11일
Dear John,
Parallel computation can be performed with the Parallel Computing Toolbox from Mathworks. To obtain the list of all the toolboxes on your license, can be done by typing 'ver' in your MATLAB prompt.
Here is an example how a code could look like:
tic
A = round(rand(3, 3, 3)*10);
parfor k = 1:3
B(k,:,:)=inv(squeeze(A(1,:,:)));
end
toc
Note: for small computations the for command is faster then the parfor command. However if large calculations are performed, parfor will be faster .
Kind regards, Christiaan
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!