بحث پردازش موازی بحث جدیدی نبوده و مقدمات فکری آن را می توان از سالهای 1920میلادی در کتب مقالات پیدا کرد .موفقییت پردازش موازی از سالهای 1960شروع شد ،ظهور وپیدایش نیازهای محاسباتی – عملیاتی و کاربردی بلادرنگ موجب گردید. تعداد زیادی پروژه طراحی وساخت سیستم های تحقیق وپژوهش درسیستمهای نرم افزاری وسخت افزاری پردازش موازی گردید،موجب تحول وتکامل سریع پردازش موازی در اوایل نسل پنجم گردید .تحول پیدا شده در ده ساله اخیر موجب گردید تا امکان بهم بندی سیستم های پردازش موازی از چند پردازش گر به چند صد هزار پردازشگر برسد ،زبان های برنامه نویسی و همراه با سیستم های عامل بهتر وکاراتر به وجود آید ،توسعه وگسترش شبکه های ارتباطی برای ارتباط واتصال واحدهای عملیاتی قدم مهم دیگری بود ، که در این دوران بر داشته شد و محدودیت های اتصال واحدهای عملیاتی ودستگاههای ورودی و خروجی را از میان برداشت.دلیل رواج و توسعه سیستم های پردازش موازی برای تأمین نیازهای محاسباتی و عملیاتی هر کاری احتیاج به قدرت ویژه ای است که تأمین آن امروزه از سه طریق استفاده از سیستم های سوپر کامپیوترها و یا سیستم های پردازش موازی ممکن ومیسر است. هزینه سیستم های پردازش موازی به ازای توان اجرایی یک میلیون دستورالعمل در ثانیه کمتر از دو سیستم دیگر خواهد بود ودلیل آن استفاده از واحدهای معمولی کامپیوتری در سیستم های پردازش موازی است و باعث ایجاد قدرت محاسباتی وعملیاتی ارزانتر می¬شود .
1-1 پردازش موازی
پردازش ( محاسبه ی ) موازی ، شکلی از پردازش است که در آن دستورالعملهای بسیاری در یک زمان و به صورت همزمان صورت می گیرند ( انجام می شوند ) ، و بر اساس این اصل اجرا می شوند که مسائل بزرگ را اغلب می توان به مسائل کوچکتر تقسیم کرد ، که سپس با هم و به صورت همزمان حل می شوند .( به صورت موازی ) .
چندین شکل مختلف از محاسبه ی ( پردازش ) موازی وجود دارد : توازی سطح – بیت ، توازی سطح – دستورالعمل ، توازی داده ها ، و توازی کار . این شکل از پردازش در طول سالهای زیادی مورد استفاده قرار می گرفته است ، مخصوصاً در پردازش با اجرای بالا ( عملکرد بالا ) ، اما علاقه به آن در سالهای اخیر افزایش یافته است به دلیل محدودیت های فیزیکی که از مقیاس گذاری فرکانس جلوگیری می کند .
پردازش موازی ، الگوی برجسته ای در ساخت کامپیوتر به حساب می آید ، مخصوصاً به شکل پردازش گرمای چند هسته ای ، هر چند ، در سالهای اخیر ، مصرف انرژی توسط کامپیوترهای موازی باعث نگرانی و یک مسئله ی دارای اهمیت شده است . کامپیوترهای موازی را می توان به طور کلی طبق سطحی که چند هسته ای و چند پردازش گر که دارای عوامل پردازش متعددی در یک دستگاه ساده می باشند ، در حالی که دسته ها ، MPP ها و شکبه ها از کامپیوترهای متعدد استفاده می کنند تا بر روی همین فعالیت کار کنند . نوشتن برنامه های کامپیوتر موازی نسبت به کامپیوترهای ترتیبی بسیار سخت تر است ، چون همزمانی ، دسته های جدیدی از خرابی های نرم افزاری بالقوه را ایجاد می کند ، که در میان آنها شرایط کار کردن ( در جا کار کردن ) رایج ترین می باشد .
ارتباط و همزمانی بین کامپیوترهای زیر وظیفه یکی از بزرگترین موانع برای دستیابی به اجرای خوب برنامه ی موازی می باشد . سرعت بالای یک برنامه در نتیجه موازی سازی توسط قانون آمدال داده شده است . قبلاً ، نرم افزار کامپیوتر برای پردازش دنباله دار ( مداوم ) نوشته شده است .
برای حل یک مسئله ، یک الگوریتم ایجاد می شود و به عنوان جریان دنباله داری از دستور العمل ها اجرا می شود . این دستورالعمل ها روی یک واحد پردازش مرکزی روی یک کامپیوتر اجرا می شوند . در یک زمان مشخص فقط یک دستورالعمل ممکن است اجرا شود ، - بعد از آن که یک دستورالعمل تمام شد ، دستورالعمل بعدی اجرا می شود . از طرف دیگر ، پردازش موازی از عوامل پردازش متعددی به طور همزمان استفاده می کند تا یک مسئله راحل کند . این کار با شکستن مسئله ( تقسیم کردن مسئله ) به بخش های مستقل انجام می شود تا بنابراین هر عامل ( عنصر ) پردازش بتواند بخش الگوریتم خود را به طور همزمان با دیگر بخش ها اجرا کند . عوامل پردازش می توانند گوناگون باشند و شامل منابعی مانند یک کامپیوتر ساده با چندین پردازشگر ، چندین کامپیوتر شبکه بندی شده ، سخت افزار ویژه، یا ترکیی از هر کدام از این ها باشند . مقیاس گذاری فرکانس دلیل اصلی برای پیشرفت در اجرای ( عملکرد ) کامپیوتر از اواسط 1980 تا سال 2004 بوده است . زمان اجرای یک برنامه با تعداد دستورالعمل هایی که توسط زمان میانگین هر دستور العمل ضرب می شوند ( دو برابر می شوند ) برابر است . با ثابت ماندن همه ی چیزها دیگر ، افزایش فرکانس سرعت ، زمان میانگین که برای اجرای هر دستورالعمل طول می کشد را کاهش می دهد . بنابراین افزایش در فرکانس ، زمان اجرای همه ی برنامه های پردازش – کران دار را کاهش می دهد .