پردازش موازی در متلب
به کمک نرم افزار متلب در کامپیوترهایی که دارای پردازنده چند هستهای هستند، میتوان از پردازش موازی (Parallel Computing) استفاده کرد. در واقع این قابلیتی است که نرم افزار متلب در اختیار کاربر قرار میدهد. در این محتوا قصد داریم به پردازش موازی دادهها در ابر محاسباتی و تفاوت پردازش موازی و پردازش توزیع شده بپردازیم. همینطور چگونگی اجاره کامپیوترهایی با قابلیت پردازش موازی در متلب نیز بررسی خواهد شد.
پردازش موازی در متلب
پردازش موازی کدها در متلب چگونه است؟
در قدم اول برای آنکه کدهای نوشته شده در نرم افزار متلب به صورت موازی پردازش شوند لازم است تا از دستور زیر در کد نویسی استفاده شود.
matlabpool(‘open’,2); your code% matlabpool(‘close’); |
در این دستور لازم است تا در بخش your code، کد متلب مورد نظر را وارد کنید. در خط اول دستور بالا، عدد 2 در پرانتز نشان دهنده تعداد هستههایی است که قرار است توسط این دو هسته (cores) پردازش کدها به صورت موازی صورت پذیرد. برای مثال اگر کامپیوتری دارید که دارای پردازنده 4 هستهای است باید در دستور بالا عدد 4 را قرار دهید.
این امکان نیز وجود دارد تا تنها بخش یا بخشهایی از کد شما به صورت موازی پردازش شود. در این صورت باید کدهای خود را در بخش your code وارد کنید. پردازش موازی بر روی سرعت اجرای کدها در متلب تاثیر میگذارد. برای مثال برنامهای با استفاده از حلقه for مینویسیم که پردازش موازی در آن کار نشده است.
clear all close all clc
tic x=0; for nn=1:1000 x=nn^5; end x
y=0; for mm=1:1000 y=mm^5; end y toc
|
زمان پردازش حلقهها به صورت زیر خواهد بود:
x = 1.0000e+015 y = 1.0000e+015 Elapsed time is 0.005328 seconds.
|
که برابر با 0.005328 ثانیه میشود.
← اجاره ابر رایانه →
حال از پردازش موازی در متلب استفاده میشود تا زمان کاهش پردازش کدها نسبت به استفاده نکردن از پردازش موازی را باهم مقایسه کنیم. این نکته را نیز باید در نظر بگیرید که شروع و پایان یافتن پردازش موازی در متلب چند ثانیه را به خود اختصاص میدهد اما این عدد ناچیز و قابل چشم پوشی است.
clear all close all clc
matlabpool(‘open’,2); % start of Parallel Computing tic
x=0; for nn=1:1000 x=nn^5; end x
y=0; for mm=1:1000 y=mm^5; end y
toc matlabpool(‘close’); % end of Parallel Computing
|
حال نتیجه این پردازش موازی به صورت زیر است:
Starting matlabpool using the ‘local’ configuration … connected to 2 labs.
x =
1.0000e+015
y =
1.0000e+015
Elapsed time is 0.002837 seconds. Sending a stop signal to all the labs … stopped.
|
این زمان پردازش موازی در متلب برابر با 0.002837 ثانیه میشود که با توجه به عدد قبلی میزان آن کاهش یافته است.
امروزه دادههای فضایی با حجم بالا، رشد و توسعه قابل توجهای یافتهاند. این دادههای حجیم به تجزیه و تحلیلهای بزرگ و همینطور روشهای مدلسازی به کمک سیستم هماهنگ مشترک نیاز دارند.
پردازش موازی دادهها در ابر محاسباتی
امروزه دادههای فضایی با حجم بالا، رشد و توسعه قابل توجهای یافتهاند. این دادههای حجیم به تجزیه و تحلیلهای بزرگ و همینطور روشهای مدلسازی به کمک سیستم هماهنگ مشترک نیاز دارند. از سوی دیگر تبدیل این ابر دادهها به پیشبینیهای بزرگ، با توجه به پیچیدگیهای الگوریتمی یک چالش محاسباتی به شمار میآید.
پیشرفتهای اخیر پردازش موازی دادهها و محاسبات ابری توانسته است برای این پیچیدگیهای الگوریتمی راهکاری را ارائه دهد. نتایج مطالعات بر روی دادههای بزرگ نشان میدهند پردازش موازی دادهها در ابر محاسباتی راه حلی مناسب برای تجزیه تحلیل و پردازش دادهها خواهد بود.
ابر محاسباتی شبیه یک توده ابر میماند که میتواند نیاز های کاربران و دسترسی به برنامههای کاربردی را فراهم آورد و فرقی نمیکند کاربر برای دسترسی به این برنامهها در کجای جهان قرار داشته باشد. در واقع محاسبات ابری روش جدیدی برای ایجاد نسل جدیدی از دادهها هستند.
از سوی دیگر هر چه دادهها حجم فضایی پیدا میکنند پردازش سریعتری نیاز داریم که میتوان در این راستا از پردازش موازی استفاده کرد. در واقع به این صورت است که چند پردازنده معمولی به کمک یکدیگر برنامهای را اجرا میکنند که با این کار سرعت اجرای برنامه افزایش مییابد. برای انجام پردازش موازی به کمک ابر محاسباتی نیاز به سیستمهای قدرتمند خواهد بود که با اجاره کردن آنها میتوانید از خدمات متعدد استفاده کنید.
پردازش موازی به معنای اجرای همزمان بخشهای مختلف برنامه در چندین پردازنده است.
تفاوت پردازش موازی و پردازش توزیع شده
پردازش توزیع شده نیز مفهومی نزدیک به پردازش موازی دارد؛ برای مثال میتوان یک مشکل واحد را به چندین کار تقسیم کرده و آنها را در کامپیوترها توزیع کرد. برای ارتباط کامپیوتر نیز میتوان از شبکه بین آنها استفاده شود. در واقع در محاسبات موازی لازم است تا چندین کار با کمک پردازنده و به صورت همزمان انجام شوند و کارایی افزایش یابد؛ در حالی که محاسبات توزیع شده جهت ایجاد هماهنگی میان منابع مشترک برای استفاده و ارائه خدمات ارتباطی به کاربران، مورد استفاده قرار میگیرد.
سیستم مورد نیاز پردازش موازی در متلب و یا سیستم مورد نیاز برای پردازش توزیع شده نیاز به ابزار و سیستمهای قدرتمند خواهد داشت. میتوان این سیستمها را اجاره کرد که نرخ کرایه سیستمها دارای تعرفه مشخصی است و با توجه به نوع سیستم و پردازنده نرخهای متفاوتی را شامل میشود.
پردازش موازی نیاز به سرورهای قدرتمند دارد.
سخن آخر
همانطور طور که گفته شد پردازش موازی به معنای اجرای همزمان بخشهای مختلف برنامه در چندین پردازنده است که سرعت پردازش را بالا میبرد. برای انجام پردازش موازی در متلب به یک کامپیوتر با پردازنده چند هستهای نیاز خواهید داشت. در این مقاله علاوه بر پردازش موازی در متلب به صورت کامل پردازش موازی دادهها در ابر محاسباتی و تفاوت پردازش موازی و پردازش توزیع را مورد بررسی قرار دادیم.
سوالات متداول
قصد داریم در این بخش رایجترین سوالات در حوزه پردازش موازی در متلب را پاسخ دهیم.
- پردازش موازی چرا مهم است؟
زیرا با توجه به گسترش دادههای حجیم لازم است تا سرعت و کارایی اجرای این دادههای حجیم به صورت همزمان افزایش یابد.
- چگونه پردازش موازی در متلب انجام میشود؟
پردازش موازی به کمک نرم افزار متلب نیاز به دستورات و کدهای مشخص دارد که یک نمونه آن در این محتوا بررسی شد.
- تفاوت پردازش موازی با پردازش توزیع شده در چه چیزی است؟
محاسبات توزیع شده جهت ایجاد هماهنگی میان منابع مشترک برای استفاده و ارائه خدمات ارتباطی به کاربران به کار میرود و پردازش موازی جهت بهبود عمکرد اجرا دادهها به صورت همزمان است.
دیدگاهتان را بنویسید