나는 두 개의 코드를 동시에 계산하기 위해 spmd
을 사용했습니다. 내가 사용하고있는 컴퓨터에는 8 개의 코어가있는 프로세서가 있습니다. 통신 오버 헤드는 0과 같습니다.
이 spmd
블록의 실행 시간과 spmd
외부의 동일한 코드를 tic & toc
으로 비교합니다.
코드를 실행할 때 코드의 병렬 버전이 순차 형식보다 시간이 오래 걸립니다.
그 이유는 무엇입니까? 두 가지 이유가 여기에있다SPMD가 연속 matlab보다 더 큰 이유는 무엇입니까
tic;
spmd
if labindex == 1
gamma = (alpha*beta);
end
if labindex == 2
for t = 1:T,
for i1=1:n
for j1=1:n
kesi(i1,j1,t) = (alpha(i1,t) + phi(j1,t));
end;
end;
end;
end
end
t_spmd = toc;
tic;
gamma2= (alpha * beta);
for t = 1:T,
for i1=1:n
for j1=1:n
kesi2(i1,j1,t) = (alpha(i1,t) + phi(j1,t));
end;
end;
end;
t_seq = toc;
disp('t spmd : ');disp(t_spmd);
disp('t seq : ');disp(t_seq);
이 변수 '사전 할당'에 도움이 될 수 '케시 '? 예 : 'kesi = 0 (크기 (...))'2 호선에서 – Wouter
아니, 전에 해봤는데, 그냥 여기 가져 오지 않았어. –