تهیه کنندگان ابوالفضل بایگان فریبا دهقانی برای نوشتن یک برنامه که به صورت موازی اجرا شود میتوانیم از زبان های برنامه نویسی.

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‬قرار بگیرد در غیر این صورت برنامه خطا‬
‫نمی دهد ولی اجرا هم نمی کند‬