Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   نرم افزار MATLAB (http://artificial.ir/intelligence/forum64.html)
-   -   موازی سازی در متلب (http://artificial.ir/intelligence/thread11786.html)

elnaz_100 ۰۳-۲۷-۱۳۹۲ ۱۰:۵۳ بعد از ظهر

موازی سازی در متلب
 
با سلام من نیاز فوری به آموزش موازی سازی برنامه در متلب دارم
و اگر بتوانید به من کد برنامه جمع و ضرب ماتریس ها به صورت سری و موازی در متلب بدهید مرا کمک بزرگی کرده اید

kamran_kenzo ۰۳-۲۹-۱۳۹۲ ۱۱:۴۰ قبل از ظهر

نقل قول:

نوشته اصلي بوسيله elnaz_100 (پست 29250)
با سلام من نیاز فوری به آموزش موازی سازی برنامه در متلب دارم
و اگر بتوانید به من کد برنامه جمع و ضرب ماتریس ها به صورت سری و موازی در متلب بدهید مرا کمک بزرگی کرده اید

سلام دوست عزیز برای موازی سازی متلب ابزارهای خوبی در دسترس قرار داده است که تا اونجا که من استفاده کردم و اطلاع دارم به دو روش زیر هستش
parfor:
با دستور parfor که در واقع موازی سازی شده ی حلقه for هستش میتونید کدی که داخل حلقه parfor مینویسید را به صورت موازی اجرا کنید.
matlabpool:
این دستور چند پردازنده موازی ایجاد میکند تا کد شما را اجرا کنند. میتونید تعداد پردازنده ها را تغییر بدید

مثال:
كد:

matlabpool ('open',2);      % Call to open the distributed processing
x = zeros(100,10);          % Initialize the main variable
parfor i = 1:100            % Parallel loop
    y = zeros(1,10);      % Initialize the variable
    for j = 1:10          % Inner loop
        y(j) = i;
    end
   
    x(i,:) = y;         
end
matlabpool close;


elnaz_100 ۰۳-۲۹-۱۳۹۲ ۱۲:۲۱ بعد از ظهر

با سلام و تشکر از پاسخگویی شما
متلب شما مرا کمک کرد ولی اگر بتوانید کد ضرب و جمع ماتریس ها در متلب حداقل به صورت سری در اختیار من قرار دهید کمک بزرگی به من کرده اید

kamran_kenzo ۰۳-۲۹-۱۳۹۲ ۰۵:۰۹ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله elnaz_100 (پست 29265)
با سلام و تشکر از پاسخگویی شما
متلب شما مرا کمک کرد ولی اگر بتوانید کد ضرب و جمع ماتریس ها در متلب حداقل به صورت سری در اختیار من قرار دهید کمک بزرگی به من کرده اید

شما اگه دقیقا مسئله تون رو تعریف کنید من کدش رو براتون اینجا قرار میدم

elnaz_100 ۰۳-۳۰-۱۳۹۲ ۱۲:۴۸ بعد از ظهر

با سلام خدمت شما دوست عزیز
من باید برنامه جمع و ضرب ماتریس ها را هم به صورت سری و هم به صورت موازی در matlab بنویسم و زمان اجرای آنها را با هم مقایسه کنم ولی چون من در کد نویسی ضعیفم به مشکل بر خوردم ولی با این حال مطالب موازی سازی در matlab را خوانده ام و تا حدودی آشنا شده ام ولی نیاز به یک مثال به صورت کد دارم همه جا فقط همین دو دستور که شما را گفته است بیان کرده است ولی هیچ جا مثالی از یک برنامه زده نشده است اگر شما بتوانید کد برنامه خواسته ام بنویسید به من کمک بزرگی کرده اید چون من هنوز برنامه های دیگری با همین خصوصیت باید بنویسم
با تشکر فراوان

kamran_kenzo ۰۳-۳۰-۱۳۹۲ ۰۵:۳۲ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله elnaz_100 (پست 29279)
با سلام خدمت شما دوست عزیز
من باید برنامه جمع و ضرب ماتریس ها را هم به صورت سری و هم به صورت موازی در 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


elnaz_100 ۰۳-۳۱-۱۳۹۲ ۰۴:۲۸ بعد از ظهر

با سلام خدمت شما
از پاسخ گویی و کمک شما بسیار بسیار متشکرم

hadi solhdar ۰۶-۲-۱۳۹۲ ۱۲:۴۵ قبل از ظهر

سلام به همگی
دوستان کسی اینجا هستش که از خطای زیر اطلاعاتی داشته باشه بهم کمک کنه خیلی فوری نیاز دارم خواهشا کسی بلد کمک کنه.
این دستور مربوط به موازی سازی هستش که خطای زیر را میدهد

??? Error using ==> matlabpool at 133
Found an active interactive session.
You cannot have multiple interactive sessions open simultaneously.
To terminate the existing session, use matlabpool close


Error in ==> Fainal at 24
matlabpool ('open',2);


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۱:۵۹ قبل از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.