مقاله برنامه نویسی همروند (همزمان)

مقاله برنامه نویسی همروند (همزمان)

دانلود مقاله برنامه نویسی همروند (همزمان)

دانلود مقاله در مورد برنامه نویسی همروند (همزمان)، در قالب word و در ۸۰ صفحه، قابل ویرایش، شامل:

مقدمه
برنامه نویسی همروند-همزمانconcurrent ) (انواع مختلفی دارد:
۱٫برنامه نویسی موازی Programming ) Parallel )
۲٫برنامه نویسی توزیع شده Distributed Programming ) ) که خود به نوعی معماری مالتی کامپیوتر را توسعه می دهد.
۳٫برنامه نویسی Multithread Programming

در این مقاله می کوشیم برنامه نویسی موازی و مدل های آن و برنامه نویسی توزیع شده را معرفی کنیم.

مدل های رایج و مورد استفاده در برنامه نویسی موازی عبارتند از :
۱٫حافظه اشتراکی Shared Memory
۲٫رشته ها –بندها Threads
۳٫انتقال پیامMessage Passing
۴٫موازات- همروندی داده ای Data Parallel
۵٫هیبرید – مختلط- چندگانه Hybrid

معماری های حافظه کامپیوتر موازی:
۱٫حافظه اشتراکی Shared Memory
۲٫حافظه توزیع شدهDistributed Memory
۳٫حافظه توزیع شده – اشتراکی Hybrid Distributed-Shared Memory

معماری کامپِیوترهای موازی ِیا همروند اغلب به دو دسته بزرگ تقسِیم می شود:
۱٫مالتی پروسسورهاMulti Processor
۲٫مالتی کامپِیوترها Multi Computer

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

سیستمهای کامپیوتری همروند
بعد از ۴۰ سال تمرکز روی برنامه نویسی ترتیبی ، علم کامپیوتر به طور تدریجی به اهمیت برنامه نویسی همروند پی می برند اولین پردازنده الکترونیکی به نام اینیاک در سال ۱۹۴۵ ، ۱۰۰۰ دستورالعمل را در یک ثانیه انجام دهند و امروز آخرین پردازنده های ریسک ، می توانند صدها میلیون دستورالعمل را در یک ثانیه انجام دهند ، این پردازنده ها اساساً ترتیبی ، اما بسیار سریع می باشند با وجود سریع تر شدن توان پردازنده های وی ال اس آی پهنه گسترده ای از مسایل مهم محاسباتی در علوم و مهندسی وجود دارد که نیاز به سرعت محاسباتی بیشتری دارد مانند مسایل آیرودینامیک، پیشگویی وضع هوا ، فیزیک ذره ، پردازش سیگنال که در ژئوفیزیک استفاده می شود. پردازش تصویر در گرافیک کامپیوتری ، شبیه سازی واکنشهای شیمیایی و شبیه سازی شبکه های عصبی در بیولوژی.به عنوان مثال نمونه ، حل معادلات ناویراستوی که در طراحی هواپیما استفاده می شود روی سریع ترین ابر کامپیوترها منجر به رسیدن به یک جواب تقریبی می گردد .به عنوان مثال دیگر در فیزیک ذرات ،‌وجود ذرات زیر هسته ای به نام تاپ ـ کوارک توسط معادلات خاصی انجام می شود که برای حل آنها توسط سریع ترین ابر کامپیوترها به یکسال زمان جهت محاسبه نیاز می باشد .یک راه رسیدن به چنین سرعت مورد نیاز طراحی پردازنده های سریع تر و قراردادن آنها روی تعداد زیادی از تراشه های وی ال اس آی می باشد اما طراحی و ساخت این پردازنده ها بی نهایت گران است .
حدود ۱۰ سال قبل سازندگان کامپیوتر به راه اقتصادی تر دیگری رسیدند برای رسیدن به توان n برابر، از n پردازنده استفاده می شود که این منجر به طراحی سیستمهای مالتی پروسسور گردید. همانـگونه که پـردازنـده های وی ال اس آی سریع تـر تولیـد می شود. می تـوانند در تعداد زیاد سیستمهای مالتی پروسسور ترکیب شوند تا توان را به اندازه مورد نیاز افزایش دهد .بنابراین پردازش موازی یا همروند با پردازش ترتیبی تضادی ندارد بلکه آنها در یک سیستم کامپیوتری با هم کار می کنند پیشرفت در طراحی پردازنده های وی ال اس آی ، سریعتر منجر به تولید بلوکهای سریع تر پردازنده های موازی یا همروند می شود .

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

محاسبات موازی چیست؟
محاسبه موازی اجرای همزمان یک کار است با پردازنده های چندگانه به منظور گرفتن نتایج سریع.این نظریه بر این حقیقت مبتنی است که پروسه (روند) حل یک مشکل معمولا میتواند به اجزای کوچکتری تقسیم شود و این اجزا کوچک با قدری هماهنگی همزمان با همدیگر اجرا شوند.
همواره رایج بوده که نرم افزارها برای محاسبات ترتیبی نوشته می شدند و برای اجرای این گونه برنامه ها تنها یک کامپیوترکه دارای یک واحد پردازش مرکزی باشد کافی بود.وهمچنین مسائل توسط دنباله ای از دستورالعمل ها که یکی پس از دیگری توسط سی پی یو اجرا می شوند پاسخ گویی می شوند.
به بیان ساده محاسبه موازی استفاده همزمان از منابع متعدد محاسباتی برای حل یک مسئله محاسباتی است.
منابع محاسباتی می توانند شامل موارد زیر باشند:
۱٫یک کامپیوتر دارای چندین پردازنده
۲٫تعداد دلخواهی کامپیوتر که توسط یک شبکه به هم مرتبط هستند
۳٫ترکیبی از هر دو مورد ذکر شده

یک مسئله محاسباتی معمولا مشخصاتی از قبیل موارد زیر دارد:
۱٫ مسئله می تواند به بخش های گسسته ای (جداگانه ای) شکسته شده و این بخش ها به طور همزمان پاسخ گویی شوند.
۲٫دستورالعمل های چندگانه برنامه در هر لحظه ای به موقع اجرا شوند.
۳٫به هنگام استفاده از منابع محاسباتی متعدد (چندگانه) مسئله در زمان کوتاهتری پاسخ گویی شود نسبت به زمانی که فقط یک منبع محاسباتی داریم.
محاسبات موازی تحولی در محاسبات ترتیبی است که تلاش می کند با هر آنچه که حالت امور در جهان طبیعی بوده است رقابت کند:رویدادهای بسیار پیچیده و وابسته به یکدیگر که با وجود تبعیت از یک توالی (ترتیب) همگی در یک زمان رخ می دهند.
سه دلیل عمده برای استفاده از محاسبات موازی وجود دارد:
۱٫صرفه جویی در زمان
۲٫حل کردن مسائل بزرگتر
۳٫بهره گرفتن از منابع غیر محلی

سیستم های محاسبه موازی
واژه ی پردازنده موازی گاهی برای یک کامپیوتر با بیش از یک پردازنده که برای پردازش موازی در دسترس قرار دارد بکار میرود.سیستم هایی با هزاران پردازنده از این قبیل بنام سیستم های شدیدا موازی نامیده میشوند.پردازنده های چند هسته ای اخیر نیز برای ایجاد سیستم های موازی ایده ال هستند.نتیجتا پردازنده های موازی وجود دارند که به آنها “ذرات بزرگ” در مقابل ” ذرات کوچک” گفته میشود.این تقسیم بندی به اندازه پردازنده بر می گردد.مثلا سیستم موازی در یک سیستم ذرات کوچک خواهد بود.
انواع خیلی مختلفی از کامپیوترهای موازی (یا پردازنده های موازی) وجود دارد. وجه تمایز انها نوع اتصال داخلی بین پردازنده هاست (عناصر پردازش)و یا اتصال بین پردازنده ها حافظه هاست.طبقه بندی آقای فلین کامپیوترهای موازی (یا سریال) را با توجه به این که آیا همه پردازندهها دستورات را همزمان اجرا می کنند(دستور مرزی/داده های چند گانه)و یا هر پردازنده دستورات مختلفی را اجرا می کند (دستورات چندگانه/داده های چندگانه)طبقه بندی می کند.پردازنده های موازی همچنین به متقارن و غیر متقارن بسته به اینکه ایا کلیه پردازنده ها تا در به اجرای همه کدهای سیستم عملیاتی هستند و به دستگاه های خاصی دسترسی دارند یا اینکه بعضی پردازنده ها تقریبا محرمانه هستند تقسیم می شوند.
همچنین طراحی و ساخت های متنوعی برای پردازش موازی انجام گرفته که یکی از نمونه ها می تواند طراحی و ساخت حلقه ای باشد که پردازنده ها به صورت حلقه ای به یکدیگر متصل شده اند و در این حالت کلیه پردازنده ها می توانند همزمان داده ها را بخوانند و بنویسند و اجرای واقعی پردازش موازی را بوجود اورند.با استفاده از چنین طراحی و ساخت هایی با یک مجموعه از پردازنده های ذرات بزرگ بالا بردن سرعت پردازش ده برابر و یا بیشتر نسبت به محاسبه کلاسیکی نشان داده می شود.

عملکرد سیستم در قبال هزینه
در حالیکه کارایی یک سیستم با پردازنده موازی کمتر از یک پردازنده مرتبه سریع تر می باشد ساختن سیستم موازی اغلب ارزانتر است.برای کارهایی که احتیاج به مقدار خیلی زیاد محاسبه هست و محدودیت زمانی برای تکمیل ان کار وجود دارد و بخصوص برای ان نوع کارهایی که می تواند به رشته اجرایی تقسیم شود محاسبه موازی یک راه حل خیلی عالی می باشد.در حقیقت در سالهای اخیر سیستم های محاسبه با قدرت اجرایی خیلی بالا که بنام سوپر کامپیوتر ها نیز شناخته شده اند طراحی و ساخت موازی دارند.

فهرست مطالب
مقدمه ۲
چـرا بـرنامه نویـسی همـروند؟ ۳
محاسبات موازی چیست؟ ۵
رده بندی کامپیوترهای موازی ۷
پردازنده چندکاره ۱۲
معماری مالتی پروسسور ۱۶
معماری مالتی کامپیوتر ها ۲۷
توپولوژی مالتی کامپیوترها ۳۲
استفاده از مدل MPI در برنامه نویسی موازی ۴۰
محاسبات توزیع شده ۴۴
فهرست منابع ۴۹


فرمت فایل دانلود فرمت فایل: WORD

تعداد صفحات تعداد صفحات: 80

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


مطالب مرتبط