بخشی از مقاله
چکیده
با گسترش روزافزون استفاده از کامپیوتر برای کارهای تحقیقاتی در دانشگاهها، مراکز تحقیقاتی و شرکتهای تجاری, نیاز به پردازش سریعتر افزایش یافته و به یک نیاز اساسی تبدیل شده است. امروزه پردازش موازی نقش بسیار جدی در مرتفعسازی این نیاز ایفا می کند. سرعت کامپیوترهای شخصی کنونی نسبت به اجداد خود به طور سرسام آوری افزایش یافته است اما حتی این سرعت نجومی نیز در اجرای برخی از برنامههای پیشرفته، کند است.
از جمله عرصههایی که احتیاج به کامپیوترهایی با سرعت پردازش بسیار بالا دارند میتوان به برنامههای شبیهسازی در تحقیقات هستهای و هوافضا اشاره کرد. یک راه حل برای این معضل، استفاده از سوپرکامپیوترها است. سرعت پردازش سوپرکامپیوترها بسیار بالاتر از کامپیوترهای شخصی است اما استفاده از آنها در همه موارد مقرون به صرفه نیست؛ ضمن آنکه این فناوری در انحصار بعضی از کشورهای توسعهیافته است و سایر کشورها از دسترسی به این تجهیزات استراتژیک محروم هستند.
راه حل دیگر، دستیابی به سرعت پردازش بسیار بالا استفاده از روش پردازش موازی است. به بیان ساده در این روش چند پردازنده معمولی با همکاری یکدیگر به اجرای یک برنامه میپردازند که طی این همکاری, برنامه با سرعت بالاتری اجرا میشود. در این تحقیق به بررسی حل عددی معادلات ناویر- استوکس و معادلات اویلر سه بعدی در یک کانال به روش پردازش موازی1 با استفاده از سیستم حافظه مشترک OpenMP توسط برنامه Fortran پرداخته شده است. و برای تجزیه بردار شار عبوری از وجه سلول از روش AUSM+ استفاده شده است. نکته متمایز کننده این تحقیق تلاش برای افزایش کارایی و عملکرد اجرای برنامهها از طریق دست یافتن به الگوریتمهایی برای بهبود عملکرد کدهای سریال میباشد. آنچه حاصل گردید عملکرد مناسب OpenMP در کدهای بزرگتر بود.
-1 مقدمه
الگوریتم های موازی در علوم کامپیوتر ، برخلاف الگوریتم های متوالی سنتی، الگوریتم هایی هستند که در آنها، هر بار قسمتی از برنامه روی پردازنده ای متفاوت اجرا می شود و در آخر برای کسب نتیجه مطلوب، نتایج کنار هم قرار می گیرند. الگوریتم های موازی ارزشمندند، زیرا اجرای عملیات محاسباتی بزرگ از طریق الگوریتمهای موازی، به دلیل کارکرد پردازنده های مدرن، بسیار سریعتر از اجرای آنها با الگوریتم های متوالی است.
ساخت یک کامپیوتر با یک پردازنده خیلی سریع بسیار سختتر از ساختن یک کامپیوتر با تعداد زیادی پردازنده کندتر با توان عملیاتی یکسان است. با این حال، برای سرعت الگوریتم های موازی نیز محدودیتهای خاص نظری وجود دارد. قسمتی از هر الگوریتم موازی، متوالی است، از این رو هر الگوریتم موازی یک نقطه اشباع دارد. بعد از آن نقطه اشباع اضافه کردن تعداد بیشتری پردازنده افزایش توان عملیاتی را در پی ندارد و تنها باعث بالا بردن هزینه و خسارات می شود. هزینه و پیچیدگی الگوریتم های موازی بر اساس حافظه و زمانی - تعداد سیکل های پردازنده - که مصرف میکنند تخمین زده می شود. الگوریتم های موازی باید از جهت ارتباط بین پردازنده های مختلف نیز بهینه شوند.
الگوریتمهای موازی از دو راه با پردازندهها ارتباط برقرار میکنند، حافظه مشترک1، و رد و بدل کردن پیام .2پردازش حافظه مشترک نیاز به قفل بندی اضافه برای اطلاعات دارد، از این رو هزینه سیکل های گذرگاه و پردازنده های اضافی را تحمیل می کند و همچنین باعث غیر موازی شدن قسمت هایی از الگوریتم می شود. پردازش از طریق انتقال پیام، از کانال ها و جعبه های پیام استفاده می کند اما این نوع ارتباط باعث افزایش هزینه انتقال روی گذرگاه، حافظه اضافی برای صف و جعبه های پیام و تاخیر در پیام ها می شود. در طراحی های چند پردازنده ای از گذرگاه های خاصی استفاده می شود تا بدین گونه از هزینه های تعاملات کاسته شود اما این پردازنده است که حجم ترافیک را تعیین می کند. در این پژوهش با استفاده از تکنیک پردازش موازی با چند هسته به عنوان روشی جدید با استفاده از رویکرد الگوریتم موازی با حافظه مشترک به روش OpenMP3 زمان اجرای برنامه کاهش پیدا خواهد کرد.
معادلات حاکم بر سیال حقیقی تراکم پذیر بصورت فرم بقایی به دلیل ایجاد شاک در نظر گرفته می شوند. معادلات بصورت عددی با روش حجم محدود4 بصورت صریح5 با دقت مرتبه اول بر روی شبکه سازمان یافته6 گسسته سازی7 می شوند. و در دو حالت جریان لزج و غیر لزج مورد ارزیابی قرار می گیرد. در این تحقیق برای تجزیه بردار شار عبوری از وجه سلول از روش AUSM+ ارائه شده توسط لیو استفاده شده است.[1][2] برای انجام محاسبات در روشهای عددی یک از ابزارهای قدرتمند برنامه نویسی با زبان های Fortran،C++ می باشد که به کمک آن ها می توان معادلات حاکم بر مسئله را در زمان کوتاهی حل کرد. که در این پژوهش از برنامه Fortran استفاده شده است.