تهیه کنندگان ابوالفضل بایگان فریبا دهقانی برای نوشتن یک برنامه که به صورت موازی اجرا شود میتوانیم از زبان های برنامه نویسی.
Download
Report
Transcript تهیه کنندگان ابوالفضل بایگان فریبا دهقانی برای نوشتن یک برنامه که به صورت موازی اجرا شود میتوانیم از زبان های برنامه نویسی.
تهیه کنندگان
ابوالفضل بایگان
فریبا دهقانی
برای نوشتن یک برنامه که به صورت موازی اجرا شود میتوانیم از زبان های برنامه نویسی مختلف
مانند :
Java , c++ , c , c#و غیره استفاده نمود .
برنامه هایی که به صورت موازی کد نویسی می شود باید توسط برنامه هایی
مانند MPI CH2و یا MPI .NETاجرا شوند.
بنابر این در برنامه نویسی به روش موازی از کد های خاصی در البه الی برنامه جهت انجام عملیات
موازی سازی استفاده می شود.
نکته مهم :در انتخاب موضوع دقت کنید ،برخی از موضوعات را به دلیل داشتن وابستگی در موقع
حل به هیچ عنوان نمی توان به صورت موازی پیاده سازی کرد پس قبل از انتخاب موضوع حتما در
مورد نحوه حل ان جستجو کنید
نکته :1برنامه هایی که به زبان Cیا C++نوشته می شوند فقط با برنامه MPI CH2قابل
اجرا هستند
نکته :2برنامه هایی که به زبان C #برنامه نویسی شده اند هم با MPI CH2و هم با برنامه
MPI .NETقابل اجرا هستند.
نکته :3برای برنامه نویسی یک موضوع خاص سعی کنید ابتدا کد سری ان را بنویسید سپس برای
موازی سازی کد سری ،تالش کنید زیرا موازی سازی در این حالت خیلی ساده تر می شود.تا اینکه
بخواهید از اول موازی بنویسید
نکته :4معموال در اینترنت در مورد موضوعات مختلف یک سری شبه کد وجود دارد که می توانید با
پیدا کردن یک شبه کد خوب موضوع خود را به خوبی پیاده سازی کنید .بهتر است موضوع را به صورت
انگلیسی سرچ کنید.
نکته :5در زمان برنامه نویسی ممکن است برنامه شما خطا بدهد برای رفع بهتر خطا میتوانید خطا را
یاد داشت کرده و عینا همان خطا را در گوگل جستجو کنید تا نحوه رفع خطا را از طریق سایت های
اموزشی پیدا کنید.
نکته :6برای یادگیری دستوران MPIکه برای موازی سازی در کدنویسی استفاده می شود بهتر است
ابتدا یک مثال کوچک و ساده موازی را مطالعه فرمایید و روند اجرای برنامه را به طور کامل دنبال کنید.
نکته : 7برای اجرای برنامه موازی با هر زبان برنامه نویسی به حداقل 2سیستم که به یکدیگر
شبکه نیز باشد نیاز دارید.
نکته :8در موقع اجرای برنامه موازی یک کامپیوتر به عنوان کامپیوتر Serverدر نظر گرفته
می شود و سیستم های دیگر که به شبکه متصل هستند به عنوان clientدر نظر گرفته می شوند.
کامپیوتر سرور سیستمی است که اصل برنامه بر روی ان اجرا می شود و همچنین سرور بخشی از
برنامه را بر روی سیستم های کالینت ارسال می کند و کالینت ها پس از انجام و حل برنامه نتیجه را
به سرور ارسال می کنند .سرور کلیه نتایج ارسالی از کالینت ها را دریافت میکند و با قرار دادن جواب
ها در کنار یکدیگر یک نتیجه نهایی را به کاربر نمایش می دهد بنابراین برای ایجاد ارتباط بین سرور
و کالینت ها از بستر شبکه استفاده میکنیم
نکته : 9همان طور که میدانید در شبکه باید کلیه سیستم ها دارای رنج IPیکسانی باشند
نکته : 10در موقع اجرای برنامه موازی با MPI.NETیا MPI CH2برای کلیه سیستم های متصل ،به نکات
زیر حتما توجه کنید:
انتی ویروس فعال نباشد ( disableکنید)
به هیچ شبکه ای به جز شبکه ای که برای اجرای برنامه موازی ساخته اید متصل نباشید
Fir wallرا خاموش کنید
Bluetooth حتما خاموش باشد
کلیه تنظیمات برنامه MPIرا به درستی انجام داده باشید(اضافه کردن خط دستور به قسمت path
برنامه ) MPI CH2
تمام سیستم ها از ویندوز یکسانی استفاده کنند (حداقل االمکان سرویس پک هم یکسان باشد)
سطح امنیت کاربری را به حداقل برسانید و ان را بر روی Never notifyتنظیم کنید.
برای کلیه سیستم ها یک نام کاربری یکسان از نوع adminو پسورد یکسان قرار دهید
(توجه کنید که به حروف بزرگ و کوچک حساس می باشد)
برای اجرای برنامه بر روی تمام سیستم ها یک پوشه در یک محل خاص مثال درایو Eبسازید و آن را به اشتراک
بگذارید و کلیه فایل های خود را در انجا قرار دهید
در پوشه فوق الذکر بهتر است فایل EXEبرنامه MPIو برنامه ای که با ان برنامه نویسی را انجام داده اید
(مانند )DEV C++قرار بگیرد
در این پوشه فایل EXEبرنامه خود را کپی کنید.
برای برنامه نویسی باید از یک محیط برنامه نویسی مانند WX DEV C++, visual stdioو غیره
استفاده کنید.
بهتر است برای جلوگیری از خطاهای احتمالی کلیه محتویات پوشه includeبرنامه ای که با
ان برنامه نویسی میکنید (مانند )DEV C++را داخل پوشه includeبرنامه MPIکپی کنید.
نرم افزاری که با ان کدنویسی را انجام داده اید و برنامه MPIباید بر روی تمامی سیستم ها
نصب باشد
توجه:ممکن است برای برخی از سیستم ها رعایت تمامی نکات فوق ضروری نباشد و برنامه شما به
راحتی اجرا شود ولی بهتر است که تمام نکات باال را رعایت کنید.
نکته : 11بهتر است که برای پیشگیری از بروز مشکل ،برنامه ها به صورت زیر نصب شوند:
.1ساخت کاربری از نوع adminو الگین کردن با ان
.2نصب برنامه MPI
.3نصب برنامه ای که میخواهید با ان کد نویسی را انجام دهید فرضا DEV C++
الزم به ذکر است که این ترتیب میتواند حفظ نشود
نکته : 12گاهی ممکن است به هر دلیلی بستر شبکه دچار مشکل شود ،و با وجود درست بودن تمام
مراحل باز هم خطا بدهد ،برای رفع مشکل کلیه سیستم ها را همزمان خاموش کرده و باطری لبتاب را
برای چند دقیقه خارج کنید و کال سیستم ها را از کابل شبکه قطع کنید ،سپس مجددا سیستم ها را به
یکدیگر شبکه کنید
نکته : 13برای اجرای برنامه MPI.NETدستورات الزم برای اجرای برنامه که باید داخل
command promptبنویسیم را میتوانیم داخل یک فایل متنی قرار دهیم و ان فایل را پسوند
BATذخیره کنیم و ان فایل BATرا داخل پوشه ای که به اشتراک گذاشته ایم قرار میدهیم وبا اجرای
این فایل برنامه ما اجرا می شود
نکته : 14توجه کنید دوستانی که برنامه خود را با MPI.NETباید اجرا کنند در موقع اجرا ،زمانی
که وارد command promptمی شوند به طور پیش فرض c:\userرا به ان ها نمایش میدهد
که دوستان گرامی باید حتما ابتدا با دستور cdوارد پوشه ای که به اشتراک گذاشته اند شوند تا
بتوانند برنامه خود را اجرا کنند.
نکته : 15در برنامه ای که به زبان Cیا C++به صورت موازی نوشته شده باشد دستورات
scanfو coutو cinکار نمیکند .و برای دریافت ورودی باید از فایل ها استفاده کرد یعنی بگوییم
ورودی را از یک فایل متنی بخواند و حتی به جای دستور printfمی توانیم بگوییم نتیجه را در یک
فایل متنی قرار دهد.
نکته :16دوستانی که برای اجرای برنامه موازی خود از برنامه MPI CH2استفاده میکنند ،ممکن
است بعد از نصب برنامه ، MPIبه هر دلیلی برنامه MPI CH2به طور کامل بر روی سیستم شما
نصب نشده باشد و به همین خاطر نام سیستم شما در برنامه سبز نشود ،برای یافتن اینکه کدام قسمت
برنامه به درستی نصب نشده است ابتدا WMPIexec.EXEرا اجرا میکنیم و از قسمت دکمه
BROWSEیک مثال که داخل خود برنامه MPIهست را اجرا میکنیم ،اگر MPIما به درستی
نصب نشده باشید در کادر زیر مسیر فایل خطای مربوطه را نمایش میدهد و دقیقا مشخص میکند که کدام
قسمت از MPIبه درستی نصب نشده است.
به طور عمومی در موقع نصب MPIدر اکثر سیستم ها فایل SMPD.exeنصب نمیشود برای نصب
این فایل بعد از نصب برنامه MPIمراحل زیر را می رویم :
.1راست کلیک بر روی برنامه command promptو انتخاب گزینه run as admin
.2تایپ cd c:\program files\MPI CH2\binو زدن دکمه اینتر از صفحه کلید
.3تایپ SMPD.exe -removeو زدن دکمه اینتر
.4تایپ SMPD.exe –installو زدن دکمه اینتر از صفحه کلید
بعد از انجام مراحل فوق چک کنید که ایا نام سیستم شما در برنامه سبز میشود یا خیر ،سپس حتما
سیستم خود را ری استارت کنید و مجددا چک کنید که ایا باز هم نام سیستم شما در برنامه سبز می شود
یا خیر ،گاهی ممکن است به دلیل مشکل داشتن ویندوز یا برنامه شما ،نیاز باشد که چندین بار عملیات 1
تا 4را انجام دهید تا برای همیشه نام سیستم شما سبز شود.
نکته :17در صورتی که یکی از سیستم ها فرضا 5هسته ای و سیستم دیگرفرضا 2هسته ای باشد برای اجرای
برنامه موازی ،حتما باید سیستم 5هسته ای به عنوان masterقرار بگیرد در غیر این صورت برنامه خطا
نمی دهد ولی اجرا هم نمی کند