بخشی از مقاله

چکیده     

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

این دست از فعالیتها، قابلیت موازی سازی بالایی دارند و برای شروع هر کدام نیازی به انتظار برای پایان دیگری نیست. رایانههای موازی ابزار پیادهسازی الگوریتمهای موازی هستند. معادله لاپلاس دو بعدی که از نوع معادله بیضوی در دینامیک سیالات محاسباتی به شمار میرود را میتوان از روشهای مختلف حل نمود. همچنین میتوان با استفاده از قابلیتهای الگوریتم موازی معادله را محاسبه نمود.

با توجه به اهمیت تسریع در حل معادلات دینامیک سیالات محاسباتی، در این مقاله به ارزیابی کارایی روش محاسبه معادله لاپلاس دو بعدی با استفاده از رویکرد پردازش موازی با به کار بردن متد حافظه اشتراکی - OpenMP - پرداخته شده است. نکته متمایز کننده این تحقیق تلاش برای افزایش کارایی و عملکرد اجرای برنامهها از طریق دست یافتن به الگوریتمهایی برای بهبود عملکرد کدهای سریال میباشد. آنچه حاصل گردید عملکرد مناسب OpenMP در کدهای بزرگتر بود.

.1 مقدمه

امروزه بهرهگیری از قابلیت محاسباتی ابر رایانهها در تحقیقات علمی و پژوهشهای محاسباتی، اهمیت روز افزونی پیدا کرده است؛ ساخت ابر رایانه با استفاده از مفهوم پردازش موازی یکی از اقدامات موثر در این حوزه است. به اجرای همزمان برنامهای که به بخشهای کوچکتری تقسیم شده باشد، بر روی چند پردازنده جهت دستیابی به سرعت بیشتر را پردازش موازی یا رایانش موازی میگویند.  فرآیند حل مسئله را میتوان به زیر وظایف کوچکتری تقسیم نمود که با اجرای همزمان آنها و هماهنگ کردن، مسئله اصلی در زمان کوتاهتری حل میشود. کاهش زمان محاسبه، امکان حل مسایل بزرگتر، غلبه بر محدودیتهای حافظه، صرفه اقتصادی و استفاده از فناوریهای روز از جمله مهمترین مزیتهایی است که برای پردازش موازی نسبت به پردازش سریال برشمرده میشود.

پردازش موازی در سال های اخیر بسیار فراگیر شده است. در واقع از سال 1986 تا سال 2002 سرعت میکروپروسسورها افزایش قابل توجهی داشتند. به گونهای که در هر سال جدید قدرت پردازنده در حدود 1,5 برابر سال قبلی میشد. پس برای حل مشکل سرعت و کارایی کدهای نوشته شده توسط توسعه دهندگان، تنها کافیست تا صبر کنیم که نسل بعدی پردازندهها ارائه گردد. تا اواخر سال 2003 نیز این حرکت به همین منوال بود. در سال 2005 سازندگان CPU به این نتیجه رسیدند که ساختار تک هستهای مربوط به سی پی یوها مناسب نیست.  باید خود هستهها تبدیل به هستههای کوچکتر که بهطور موازی با همدیگر کار میکنند، شود. این تغییر بزرگ که اینک منجر به ساخت سی پی یو های 4هستهای یا 8 هستهای شده است، باعث ایجاد تحولی در ساختار برنامه نویسی توسعه دهندگان گردید.

چرا که برای اجرای یک پروسه پشت سر هم نمیتوان از تمام قابلیت های CPU استفاده کرد. در این حالت بایستی پروسه به 4 یا 8 پروسه کوچکتر که بهطور مستقل از همدیگر قابل اجرا هستند بهطور جداگانه بهعهده هر یک از هستهها قرار داده می شود - این حالت به معنای شکست الگوریتم یا دستورالعمل به قسمتهای مجزا میباشد - . مفهوم پردازش موازی نیز تنها استفاده از تمامی هستههای پردازنده نمیباشد، بلکه مفهوم واقعی آن همزمانی استفاده از توانمندیهای هستههای پردازنده برای بهبود کارایی و عملکرد سیستم می باشد. برای پیاده سازی موازی الگوریتم معمولا از دو روش عمده استفاده می گردد.

روش اول مبتنی بر موازی سازی توابع - موازی سازی وظایف - ٌ میباشد. در این روش توابع بهصورت زیر توابع مستقل نوشته شده و در نهایت زیر توابع با هستههای مختلف بهصورت همزمان اجرا میگردند. روش دوم مبتنی بر موازی سازی دادههاٍ میباشد. در این حالت یک عملیات که روی تعداد زیادی از دادهها باید اجرا گردد شکسته شده و هر هسته پردازنده برای محدوده مشخصی از دادهها، عملیات تکراری را انجام میدهد. برای انجام محاسبات در روشهای عددی یک از ابزارهای قدرتمند برنامه نویسی با زبان های Fortran،C++ میباشد که به کمک آنها میتوان معادلات حاکم بر مسئله را در زمان کوتاهی حل کرد. که در این پژوهش از برنامه Fortran استفاده شده است.

.5الگوریتم موازی

هدف اصلی الگوریتم موازی، بهکار بردن همه پردازندههای مرکزی و به حداقل رساندن زمان اجرای برنامهها است. با استفاده از فناوری نرم افزاری کنونی، هیچ محیط نرم افزاری وجود ندارد که تفاوتهای موجود در معماری کامپیوترهای موازی را در برگیرد و یک مدل برنامهسازی واحد ارائه دهد. بعد از 40 سال تمرکز بر روی الگوریتمهای ترتیبی، در علم کامپیوتر بهطور تدریجی به اهمیت الگوریتمهای همروند پیبرده شده است.

اولین پردازنده الکترونیکی بهنام اینیاک در سال 1945، هزار دستورالعمل را در یک ثانیه انجام میداد و امروز آخرین پردازندههای ریسک، میتوانند صدها میلیون دستورالعمل را در یک ثانیه انجام دهند. این پردازندهها اساسا ترتیبی، اما بسیار سریع میباشند. با وجود سریعتر شدن توان پردازندههای VLSI، پهنه گستردهای از مسائل مهم محاسباتی در علوم و مهندسی وجود دارد که نیاز به سرعت محاسباتی بیشتر دارد. مانند مسائل آیرودینامیک، پیشبینی وضع هوا، فیزیک ذره و پردازش سیگنال که در ژئو فیزیک استفاده میشود. پردازش تصویر در گرافیک کامپیوتری، شبیهسازی واکنشهای شیمیایی و شبیهسازی شبکههای عصبی در بیولوژی.

.6محاسبات موازی

رایانش موازی یا محاسبات موازی به اجرای همزمان یک برنامه - که به بخشهای کوچکتری تقسیم  شده است - بر روی چند پردازنده به منظور دستیابی به سرعت بیشتر اطلاق میشود. ایده اصلی این است که فرایند حل یک مساله را معمولاً میتوان به زیر وظایف خردتری تقسیم کرد که با اجرای همزمان این زیر وظایف و هماهنگ کردن آنها مساله اصلی در زمان کوتاهتری حل میشود. یک سیستم محاسبات موازی رایانهای است با بیش از یک پردازنده که برای پردازش موازی استفاده میشود. در گذشته، در یک سیستم چند پردازنده هر پردازنده در یک بستهبندی جداگانه قرار داشت، اما امروزه با معرفی تراشههای چندهستهای، چندین پردازنده در کنار یکدیگر در یک بسته قرار میگیرند.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید