پردازش موازی در اپنفوم

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

decomposePar دستوری است که در اپنفوم میتوان با آن امکان پردازش موازی را فراهم کرد. برای اینکار نیازمند تولید و اعمال تغییرات در فایلی مشابه با همین نام، (decomposeParDict) در پوشه ی سیستم میباشیم. این دستور با تقسیم دامنه محاسباتی به چندین زیر دامنه سرعت حل شما را در مسائل سنگین بالا میبرد. در مسائل با حل موازی، دیتای مساله برای حل بین پردازشگرها تقسیم میشود.

نمونه ای از فایل system/decomposeParDict به شکل زیر است:

برای انجام عمل decompose می توان از چندین روش استفاده کرد. راحت ترین روش که دامنه را با توجه به جهات مختلف تقسیم بندی می کند روش simple نام دارد. دقت کنید که در روش simple ضرب عناصر بردار n باید دقیقا برابر با مقدار کلیدواژه numberOfSubdomains باشد. برای دیدن روش های دیگر می توانید از Banana Trick استفاده کنید. در روش Manual شما خودتان قادر به اختصاص دادن قسمت های مختلف دامنه حل به پردازشگرها هستید. این روش مخصوصا در زمانی به کار می آید که شما از کلاسترها برای حل مساله خود استفاده می کنید.

پس از تنظیم فایل decomposeParDict نوبت به اجرای دستورات مورد نیاز برای حل موازی می رسد. در ابتدای کار شما باید از این نکته اطمینان حاصل کنید که مساله شما در حالت عادی و بدون استفاده از پردازش موازی به خوبی ران شده و مراحل تکرار ادامه می یابد. در صورتی که ازین مرحله مطمئن نیستید به هیچ وجه وارد مرحله پردازش موازی نشوید. در مرحله بعد باید دامنه حل خود را با توجه به تنظیماتی که قبلا در فایل decomposeParDict انجام داده بودید به چند قسمت تقسیم کنید. این کار توسط دستور زیر قابل انجام است:

حال می توانید به راحتی حلگر خود را به صورت موازی اجرا کنید:

که در آن nProce تعداد پردازنده ها و foamExec نوع حلگر میباشد. با استفاده از عبارت > log، خروجی ترمینال را به فایلی به نام log منتقل کرده ایم تا در صورت نیاز برای کارهای دیگر از آن استفاده کنیم. همچنین کاراکتر & در آخر دستور باعث خواهد شد تا این دستور در پس زمینه سیستم عامل اجرا شود و در نتیجه ما قابلیت وارد کردن دستورات دیگر در ترمینال را داریم.

اگر از پیچیدگی و زمخت بودن دستور بالا شاکی هستید، دستور دیگری به شما معرفی می کنیم که دقیقا همان کاربرد بالا را دارد اما اینبار بسیار خلاصه تر است:

خوبی دستور دوم علاوه بر سادگی آن این است که خروجی حلگر، هم در ترمینال نمایش داده می شود و هم در داخل فایل log ذخیره می شود. خوبی این روش این است که شما هروقت اراده کنید می توانید بدون فوت وقت به خروجی های حلگر مثل مانده ها، ضرایب درگ، خروجی توابع و غیره در ترمینال دسترسی داشته باشید.

همچنین اگر از pyFoam استفاده می کنید، می توانید توسط دستور pyFoamPlotRunner.py که مختص ران کردن فایل های اجرایی در اپنفوم است، از حل موازی استفاده کنید:

درود.

کارشناسی مهندسی مکانیک گرایش حرارت وسیالات از دانشگاه تبریز هستم و حدود ۲ ساله که با نرم افزار جذاب اپنفوم آشنا شدم که جذابیتهای اون باعث شد روز به روز به ارتقای سواد خودم در این زمینه کوشاتر بشم.

2 دیدگاه در “پردازش موازی در اپنفوم

پاسخ دهید