رایانش موازی
الگوی برنامهنویسی که در آن بسیاری از فرآیندها به طور همزمان اجرا میشوند / From Wikipedia, the free encyclopedia
رایانش موازی نوعی رایانش است که در آن بسیاری از محاسبات یا فرایندها بهطور همزمان انجام میشوند.[1] مشکلات بزرگ را اغلب میتوان به مشکلات کوچکتر تقسیم و سپس همزمان حل کرد. چندین فرم مختلف رایانش موازی از جمله سطح بیت، سطح دستورالعمل، دادهها و موازیکاری وجود دارند. موازیسازی مدتها است که در رایانش دارای عملکرد بالا (ابر رایانه) مورد استفاده قرار میگیرد. اما به دلیل محدودیتهای فیزیکی که مانع از افزایش بسامد (frequency scaling) بیشتر میشوند، اقبال گستردهتری پیدا کردهاست.[2] از آنجا که مصرف برق (و در نتیجه تولید گرما) توسط رایانهها در سالهای اخیر به یک نگرانی تبدیل شده،[3] رایانش موازی به الگوی غالب در معماری رایانه تبدیل شدهاست، که عمدتاً به صورت پردازندههای چندهستهای است.[4]
گمان میرود که این مقاله ناقض حق تکثیر باشد، اما بدون داشتن منبع امکان تشخیص قطعی این موضوع وجود ندارد. اگر میتوان نشان داد که این مقاله حق نشر را زیر پا گذاشته است، لطفاً مقاله را در ویکیپدیا:مشکلات حق تکثیر فهرست کنید. اگر مطمئنید که مقاله ناقض حق تکثیر نیست، شواهدی را در این زمینه در همین صفحهٔ بحث فراهم آورید. خواهشمندیم این برچسب را بدون گفتگو برندارید. (ژانویه ۲۰۱۶) |
رایانش موازی (parallel) ارتباط نزدیکی با رایانش همروند (concurrent) دارد. آنها اغلب با هم مورد استفاده قرار میگیرند و اگرچه این دو متمایز هستند اغلب با هم ادغام میشوند. این امکان وجود دارد تا موازیسازی بدون همروندی (مانند موازیسازی در سطح بیت) و همروندی بدون موازیسازی (مانند چند وظیفهای با به اشتراک گذاری زمان در یک پردازنده تک هستهای).[5][6] در رایانش موازی، یک وظیفهٔ محاسباتی بهطور مرسوم به چندین، معمولاً تعداد زیادی، زیر وظیفهٔ بسیار مشابه تقسیم میشود که میتوانند بهطور مستقل پردازش شوند و نتایج آنها پس از پایان، ترکیب شوند. در مقابل، در رایانش همروند، فرایندهای مختلف غالباً وظایف مرتبط را رفع و رجوع نمیکنند؛ اگر هم این کار را بکنند، همانطور که در رایانش توزیع شده معمول است، وظایف جداگانه ممکن است ماهیت متنوعی داشته باشند و اغلب هنگام اجرا به برخی از ارتباطات بین فرآیندی نیاز دارند.
رایانههای موازی را میتوان تقریباً بر اساس سطحی از موازیسازی که سختافزار پشتیبانی میکند، طبقهبندی کرد، در این میان رایانههای چندهستهای و چند پردازنده دارای چندین عنصر پردازشی در یک ماشین واحد هستند، در حالی که خوشهها(clusters)، رایانش شدیداً موازی (massively paralle computing) و شبکهها(grids) از چندین رایانه برای کار با بر روی یک وظیفه استفاده میکنند. برای تسریع در انجام کارهای خاص، گاهی اوقات از معماریهای رایانهای موازی خاص در کنار پردازندههای سنتی استفاده میشود.
در بعضی موارد، موازیسازی برای برنامهنویس شفاف است، مانند موازیسازی در سطح بیت یا در سطح دستورالعمل، اما نوشتن الگوریتمهای صریحاً موازی، به ویژه آنهایی که از همروندی استفاده میکنند، دشوارتر از موارد متوالی است،[7] زیرا همروندی باعث بوجود آمدن چندین کلاس جدید از اشکالات نرمافزاری بالقوه میشود، که شرایط مسابقهای شایعترین آنها است. ارتباط و همگام سازی بین زیر-وظایف مختلف معمولاً از بزرگترین موانع دستیابی به عملکرد بهینه در برنامهٔ موازی است.
در قانون آمدال، یک حداکثر مجاز نظری برای افزایش سرعت یک برنامه واحد در نتیجه موازیسازی وجود دارد.