نمايش پست تنها
قديمي ۰۳-۳۰-۱۳۹۲, ۰۵:۳۲ بعد از ظهر   #6 (لینک دائم)
kamran_kenzo Male
عضو فوق فعال
 
آواتار kamran_kenzo
 
تاريخ عضويت: تير ۱۳۸۹
محل سكونت: Tehran
پست ها: 190
تشكرها: 4
91 تشكر در 74 پست
پيش فرض

نقل قول:
نوشته اصلي بوسيله 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
kamran_kenzo آفلاين است   پاسخ با نقل قول
از kamran_kenzo تشكر كرده است:
raha_hakhamanesh (۰۳-۳۰-۱۳۹۲)