پردازش موازی
پَردازش موازی (parallel processing)
تکنیکی در رایانه که طی آن چندین عملیات بهطور همزمان انجام میشوند. پردازش موازی سرعت محاسبات را افزایش میدهد و بههمین سبب در مسائلی که نیاز به حجم زیادی محاسبات دارد، مثل پیشبینیهای اقتصادی یا شبیهسازی بهکار گرفته میشود. در پردازش موازی یک مسئله به قسمتهای جدا و مستقل تقسیم میشود که هر یک از آنها را روی یک رایانه میتوان انجام داد. پردازش موازی به دو طریق، محاسبات با چند پردازنده و موازیسازی در سطح دستورالعمل انجام میگیرد. معماری پردازندهها را برحسب رشته دستورالعملها و رشته دادهها به چهار گروه میتوان طبقهبندی کرد. در پردازندههای سری از معماری SISD (یک رشته دستورالعمل، یک رشته داده) استفاده میشود. این معماری برای محاسبات پیچیده که در آنها هر مرحله به مراحل قبلی وابسته است، کاربرد دارد. در معماری MISD چند دستورالعمل بهطور همزمان روی یک رشته داده انجام میشوند. این معماری برای کاربردهایی همچون تحلیل عکسهای ماهوارهای که همزمان پوشش گیاهی، پدیدههای جغرافیایی و اطلاعات دیگر از یک تصویر ماهوارهای استخراج میشوند، مناسب است. در معماری SIMD یک دستورالعمل همزمان روی چند رشته داده انجام میشود. این معماری برای کاربردهایی همچون پردازش تصاویر و پردازش رادارهای ترافیک هوایی مناسب است. در معماری MIMD دستورالعملهای مختلف بهطور همزمان روی رشتههای مختلفی از داده انجام میگیرد. این معماری انعطافپذیرترین نوع معماری است، ولی برنامهنویسی آن هم سختتر است. این معماری برای کاربردهای پیچیده شبیهسازی و برنامههای هوش مصنوعی مناسب است. مسئله مهم دیگر در پردازش موازی نحوه ارتباط پردازندهها با یکدیگر است. یک راه این است که همه پردازندهها از یک حافظه مشترک استفاده کنند و از طریق دسترسی به دادههای یکدیگر با هم ارتباط داشته باشند. به این روش حافظه مشترک میگویند. راه دیگر این است که هر پردازنده حافظۀ جداگانه مخصوص به خودش را داشته باشد و پردازندهها برای ارتباط با یکدیگر پیغام رد و بدل کنند. به این روش انتقال پیغام یا حافظه توزیعشده میگویند. هریک از این دو روش مشکلاتی دارد که برای رفع مشکلات آنها یک روش ترکیبی به اسم حافظه توزیعشده مشترک نیز ابداع شده است. پردازش موازی نسبت به پردازشهای سری گرانتر است، چراکه قیمت پردازندهها بالاست و سرعت محاسبات نیز معمولاً نسبت مستقیم با تعداد پردازنده ندارد. علاوهبراین در معماری MIMD برای هماهنگکردن پردازندهها با یکدیگر به برنامهنویسیهای پیچیده نیاز است. یافتن خطاها در برنامههای MIMD نیز بهسبب تعاملات وابسته به زمان بین پردازندهها مشکل است. درحالحاضر سیستمهای پردازش موازی با ظرفیت بیش از ۱۰۰۰ دستورالعمل در هر لحظه بسیار گرانقیمتاند. ولی بهزودی سیستمهای SIMD ساخته خواهد شد که در آنها ۱۰۲۴ عنصر پردازنده روی یک مدار مجتمع قرار میگیرد. تحقیقات نشان داده است که در بعضی از مسائل قسمتهای غیرقابل تفکیک را با استفاده از یک معماری دیگر میتوان تفکیک کرد. موازیسازی ناهمگن نیز نوعی از پردازش موازی است که در آن دو نوع معماری با هم ترکیب میشوند، یا سیستمهایی ساخته میشود که میتوانند معماری خود را برحسب نیاز قسمتهای مختلف مسئله تغییر دهند.