نقل قول:
نوشته اصلي بوسيله elnaz_100
با سلام خدمت شما دوست عزیز
من باید برنامه جمع و ضرب ماتریس ها را هم به صورت سری و هم به صورت موازی در matlab بنویسم و زمان اجرای آنها را با هم مقایسه کنم ولی چون من در کد نویسی ضعیفم به مشکل بر خوردم ولی با این حال مطالب موازی سازی در matlab را خوانده ام و تا حدودی آشنا شده ام ولی نیاز به یک مثال به صورت کد دارم همه جا فقط همین دو دستور که شما را گفته است بیان کرده است ولی هیچ جا مثالی از یک برنامه زده نشده است اگر شما بتوانید کد برنامه خواسته ام بنویسید به من کمک بزرگی کرده اید چون من هنوز برنامه های دیگری با همین خصوصیت باید بنویسم
با تشکر فراوان
|
سلام - این کد با کمی تغییر از سایت stackoverflow برداشته شده است. خودم تست کردم جواب میده
كد:
ضرب دو ماتریس به صورت سریالی:
matlabpool('open');
tic
spmd
for i=1:4
for j=1:4
sum=0;
for k=1:4
sum=sum+(a(i,k)*b(k,j));
c(i,j)=sum;
end;
end;
end;
end;
time2 =toc
ضرب دو ماتریس به صورت موازی:
matlabpool('open');
tic
spmd
parfor i=1:300
parfor j=1:300
sum=0;
for k=1:300
sum=sum+(a(i,k)*b(k,j));
c(i,j)=sum;
end;
end;
end;
end;
time2 =toc