در متلب نیز امکان پردازش موازی وجود دارد و میتوانید از طریق استفاده از توابع و ابزارهای مختلف، عملیات خود را به صورت موازی اجرا کنید. یکی از ابزارهای موجود در متلب برای پردازش موازی، توابع parfor
و parfeval
هستند که به شما امکان میدهند کدهای خود را به صورت موازی اجرا کنید.
به طور مثال، فرض کنید که میخواهید یک عملیات ساده مانند محاسبه مربع اعداد یک بعدی را به صورت موازی انجام دهید. در اینجا یک مثال از استفاده از تابع parfor
را مشاهده میکنید:
N = 10; % تعداد عددها
numbers = 1:N; % آرایه اعداد
% محاسبه مربع هر عدد به صورت موازی
parfor i = 1:N
square(i) = numbers(i) ^ 2;
end
disp(square);
همچنین، میتوانید از تابع parfeval
برای اجرای توابع بدون توقف (non-blocking) در پردازش موازی استفاده کنید. این کار ممکن است در صورتی که نیاز به کنترل بیشتر بر اجرای کدهای موازی داشته باشید، مفید باشد.
N = 10; % تعداد عددها
numbers = 1:N; % آرایه اعداد
% تعریف تابع برای محاسبه مربع هر عدد
squareFunc = @(x) x ^ 2;
% ایجاد یک Job برای هر عدد
futures = parallel.FevalFuture.empty(N, 0);
for i = 1:N
futures(i) = parfeval(@squareFunc, 1, numbers(i));
end
% دریافت نتیجه هر Job
square = zeros(1, N);
for i = 1:N
[completedIdx, value] = fetchNext(futures);
square(completedIdx) = value;
end
disp(square);
از آنجا که پردازش موازی در متلب میتواند به عنوان یک ابزار قدرتمند برای بهبود عملکرد و کارایی کدها استفاده شود، میتوانید با مطالعه مستندات مربوطه و آزمایشهای بیشتر، از این امکانات به بهترین شکل ممکن بهرهبرداری کنید.
در خواست ابر رایانه شبیه سازان امیرکبیر