تعریف محاسبات موازی
تعریف محاسبات موازی
محاسبات موازی نوعی معماری محاسباتی است که در آن چندین پردازنده به طور همزمان چندین محاسبات کوچکتر را که از یک مشکل کلی بزرگتر و پیچیده تفکیک شده انجام می دهند.
محاسبات موازی نوعی معماری محاسباتی است که در آن چندین پردازنده به طور همزمان چندین محاسبات کوچکتر را که از یک مشکل کلی بزرگتر و پیچیده تفکیک شده انجام می دهند.
فهرست مطالب
محاسبات موازی چیست؟
محاسبات موازی به فرآیند تجزیه مسائل بزرگتر به بخش های کوچکتر، مستقل و اغلب مشابه اشاره دارد که می توانند به طور همزمان توسط چندین پردازنده که از طریق حافظه مشترک ارتباط برقرار می کنند، اجرا شوند، که نتایج آن پس از تکمیل به عنوان بخشی از یک الگوریتم کلی ترکیب می شود. هدف اصلی محاسبات موازی افزایش قدرت محاسباتی موجود برای پردازش سریعتر برنامه و حل مسئله است.
زیرساخت محاسباتی موازی معمولاً در یک مرکز داده قرار می گیرد که در آن چندین پردازنده در یک رک سرور نصب شده است. درخواست های محاسباتی در تکه های کوچک توسط سرور برنامه توزیع می شوند که سپس به طور همزمان در هر سرور اجرا می شوند.
به طور کلی چهار نوع محاسبات موازی وجود دارد که هم از فروشندگان محاسبات موازی اختصاصی و هم منبع باز موجود است – موازی سازی سطح بیت، موازی سازی سطح دستورالعمل، موازی کاری یا موازی سازی در سطح ابرکلمه:
- موازی سازی سطح بیت: اندازه کلمه پردازنده را افزایش می دهد، که مقدار دستوراتی را که پردازنده باید اجرا کند تا عملیاتی را روی متغیرهای بزرگتر از طول کلمه اجرا کند، کاهش می دهد.
- موازی سازی در سطح دستورالعمل: رویکرد سخت افزاری بر اساس موازی سازی پویا کار می کند، که در آن پردازنده در زمان اجرا تصمیم می گیرد که کدام دستورالعمل ها را به صورت موازی اجرا کند. رویکرد نرمافزار بر اساس موازیسازی استاتیک کار میکند، که در آن کامپایلر تصمیم میگیرد کدام دستورالعملها را به صورت موازی اجرا کند.
- موازی کاری: شکلی از موازی سازی کدهای کامپیوتری بین چندین پردازنده که چندین کار مختلف را همزمان بر روی یک داده اجرا می کند.
- موازی سازی سطح ابرکلمه: یک تکنیک برداری که می تواند از موازی سازی کد درون خطی بهره برداری کند.
برنامه های کاربردی موازی معمولاً به عنوان موازی سازی ریز طبقه بندی می شوند که در آن وظایف فرعی چندین بار در ثانیه ارتباط برقرار می کنند. موازی سازی درشت دانه، که در آن وظایف فرعی چندین بار در ثانیه با هم ارتباط برقرار نمی کنند. یا موازی سازی شرم آور، که در آن وظایف فرعی به ندرت یا هرگز ارتباط برقرار نمی کنند. نقشه برداری در محاسبات موازی برای حل مشکلات موازی شرم آور با اعمال یک عملیات ساده برای تمام عناصر یک دنباله بدون نیاز به ارتباط بین وظایف فرعی استفاده می شود.
رواج و تکامل محاسبات موازی در قرن بیست و یکم در پاسخ به مقیاس فرکانس پردازنده که به دیوار قدرت برخورد کرد، رخ داد. افزایش فرکانس باعث افزایش توان مصرفی در یک پردازنده میشود و پس از یک نقطه مشخص، تغییر مقیاس فرکانس پردازنده دیگر امکانپذیر نیست. بنابراین، برنامه نویسان و سازندگان شروع به طراحی نرم افزار سیستم موازی و تولید پردازنده های کارآمد با چندین هسته کردند تا به مسئله مصرف برق و گرمای بیش از حد واحدهای پردازش مرکزی رسیدگی کنند.
اهمیت محاسبات موازی با افزایش استفاده از پردازندهها و پردازندههای گرافیکی چند هستهای همچنان در حال افزایش است. GPUها با CPUها برای افزایش توان عملیاتی داده و تعداد محاسبات همزمان در یک برنامه کار می کنند. با استفاده از قدرت موازی، یک GPU می تواند کارهای بیشتری را نسبت به یک CPU در مدت زمان معین انجام دهد.
مبانی معماری موازی کامپیوتر
معماری کامپیوتر موازی در طیف گسترده ای از کامپیوترهای موازی وجود دارد که بر اساس سطحی که سخت افزار از موازی سازی پشتیبانی می کند طبقه بندی می شود. معماری موازی کامپیوتر و تکنیک های برنامه نویسی با هم کار می کنند تا به طور موثر از این ماشین ها استفاده کنند. کلاس های معماری موازی کامپیوتر عبارتند از:
- محاسبات چند هسته ای: یک پردازنده چند هسته ای یک مدار مجتمع پردازنده کامپیوتری با دو یا چند هسته پردازش مجزا است که هر کدام دستورات برنامه را به صورت موازی اجرا می کنند. هستهها روی چندین قالب در یک بسته تراشه یا روی یک قالب مدار مجتمع ادغام میشوند و ممکن است معماریهایی مانند multithreading، superscalar، vector یا VLIW را پیادهسازی کنند. معماریهای چند هستهای بهعنوان همگن، که فقط شامل هستههای یکسان است، یا ناهمگن، که شامل هستههایی که یکسان نیستند، دستهبندی میشوند.
- چند پردازش متقارن : معماری سختافزار و نرمافزار رایانه چند پردازندهای که در آن دو یا چند پردازنده مستقل و همگن توسط یک نمونه سیستم عامل کنترل میشوند که با همه پردازندهها به طور یکسان رفتار میکند، و به یک حافظه اصلی مشترک و با دسترسی کامل به همه منابع مشترک وصل میشود. دستگاه ها هر پردازنده دارای یک حافظه کش خصوصی است، ممکن است با استفاده از شبکه های مش روی تراشه متصل شود، و بدون توجه به اینکه داده های آن کار در کجای حافظه قرار دارد، می تواند روی هر کاری کار کند.
- محاسبات توزیع شده: اجزای سیستم توزیع شده در رایانه های شبکه ای مختلف قرار دارند که اقدامات خود را با برقراری ارتباط از طریق HTTP خالص، اتصال دهنده های RPC مانند و صف های پیام هماهنگ می کنند. ویژگی های مهم سیستم های توزیع شده شامل خرابی مستقل اجزا و همزمانی اجزا است. برنامه نویسی توزیع شده معمولاً به عنوان معماری مشتری-سرور، سه لایه، n-سطح یا همتا به همتا طبقه بندی می شود. همپوشانی زیادی در محاسبات توزیع شده و موازی وجود دارد و اصطلاحات گاهی اوقات به جای یکدیگر استفاده می شوند.
- محاسبات موازی انبوه : به استفاده از رایانه های متعدد یا پردازنده های رایانه ای برای اجرای همزمان مجموعه ای از محاسبات به صورت موازی اشاره دارد. یک رویکرد شامل گروه بندی چندین پردازنده در یک خوشه کامپیوتری متمرکز و ساختار یافته است. روش دیگر محاسبات شبکه ای است که در آن بسیاری از کامپیوترهای پراکنده با هم کار می کنند و از طریق اینترنت برای حل یک مشکل خاص ارتباط برقرار می کنند.
دیگر معماریهای کامپیوتری موازی شامل رایانههای موازی تخصصی، محاسبات خوشهای، محاسبات شبکهای، پردازندههای برداری، مدارهای مجتمع ویژه برنامه، محاسبات همه منظوره بر روی واحدهای پردازش گرافیکی ( GPGPU ) و محاسبات قابل تنظیم مجدد با آرایههای دروازه قابل برنامهریزی میدانی است. حافظه اصلی در هر ساختار کامپیوتری موازی یا حافظه توزیع شده یا حافظه مشترک است.
راه حل ها و تکنیک های نرم افزار محاسبات موازی
زبان های برنامه نویسی همزمان، API ها، کتابخانه ها و مدل های برنامه نویسی موازی برای تسهیل محاسبات موازی روی سخت افزار موازی توسعه یافته اند. برخی از راه حل ها و تکنیک های نرم افزار محاسباتی موازی عبارتند از:
- Application checkpointing : تکنیکی است که با ثبت همه حالتهای متغیر فعلی برنامه، تحمل خطا را برای سیستمهای محاسباتی فراهم میکند و برنامه را قادر میسازد تا در صورت خرابی، از آن نقطه بازیابی و راهاندازی مجدد شود. Checkpointing یک تکنیک حیاتی برای سیستمهای محاسباتی موازی است که در آن محاسبات با عملکرد بالا در تعداد زیادی پردازنده اجرا میشود.
- موازی سازی خودکار : به تبدیل کد متوالی به کد چند رشته ای به منظور استفاده همزمان از چندین پردازنده در یک ماشین چند پردازنده با حافظه مشترک (SMP) اشاره دارد. تکنیک های موازی سازی خودکار شامل تجزیه، تحلیل، زمان بندی و تولید کد می باشد. نمونههای معمولی از کامپایلرها و ابزارهای موازی رایج عبارتند از کامپایلر Paradigm، کامپایلر Polaris، کامپایلر Rice Fortran D، کامپایلر SUIF و کامپایلر Vienna Fortran.
- زبان های برنامه نویسی موازی: زبان های برنامه نویسی موازی معمولاً به عنوان حافظه توزیع شده یا حافظه مشترک طبقه بندی می شوند. در حالی که زبان های برنامه نویسی حافظه توزیع شده از ارسال پیام برای برقراری ارتباط استفاده می کنند، زبان های برنامه نویسی حافظه مشترک با دستکاری متغیرهای حافظه مشترک ارتباط برقرار می کنند.
تفاوت بین محاسبات موازی و رایانش ابری
رایانش ابری یک اصطلاح کلی است که به ارائه خدمات مقیاسپذیر مانند پایگاههای داده، ذخیرهسازی دادهها، شبکهها، سرورها و نرمافزارها از طریق اینترنت بر اساس نیاز و پرداخت در صورت نیاز اشاره دارد.
خدمات رایانش ابری میتوانند عمومی یا خصوصی باشند، به طور کامل توسط ارائهدهنده مدیریت میشوند و دسترسی از راه دور به دادهها، کار و برنامهها را از هر دستگاهی در هر مکانی که قادر به برقراری اتصال به اینترنت باشد، تسهیل میکند. سه دسته از رایج ترین سرویس ها عبارتند از: زیرساخت به عنوان سرویس (IaaS)، پلتفرم به عنوان سرویس (PaaS) و نرم افزار به عنوان سرویس (SaaS).
رایانش ابری یک الگوی نسبتاً جدید در توسعه نرمافزار است که دسترسی وسیعتر به محاسبات موازی را از طریق خوشههای رایانه مجازی مجازی تسهیل میکند و به کاربر معمولی و سازمانهای کوچکتر اجازه میدهد تا از قدرت پردازش موازی و گزینههای ذخیرهسازی که معمولاً برای شرکتهای بزرگ محفوظ است، استفاده کنند.
تفاوت بین پردازش موازی و محاسبات موازی
پردازش موازی روشی در محاسبات است که در آن بخشهای جداگانهای از یک کار پیچیده کلی شکسته میشوند و به طور همزمان روی چندین CPU اجرا میشوند و در نتیجه زمان پردازش را کاهش میدهند.
تقسیم و تخصیص هر کار به یک پردازنده متفاوت معمولاً توسط دانشمندان رایانه با کمک ابزارهای نرم افزاری پردازش موازی انجام می شود، که همچنین برای جمع آوری و خواندن داده ها پس از اینکه هر پردازنده معادله خاص خود را حل کرد، کار می کند. این فرآیند یا از طریق یک شبکه کامپیوتری یا از طریق کامپیوتری با دو یا چند پردازنده انجام می شود.
پردازش موازی و محاسبات موازی پشت سر هم اتفاق میافتند، بنابراین اصطلاحات اغلب به جای یکدیگر استفاده میشوند. با این حال، در جایی که پردازش موازی مربوط به تعداد هستهها و CPUهایی است که به صورت موازی در رایانه کار میکنند، محاسبات موازی به روشی مربوط میشود که نرمافزار برای بهینهسازی آن شرایط رفتار میکند.
تفاوت بین محاسبات متوالی و موازی
محاسبات متوالی که به عنوان محاسبات سریال نیز شناخته میشود، به استفاده از یک پردازنده برای اجرای برنامهای اشاره دارد که به دنبالهای از دستورالعملهای مجزا تقسیم میشود، که هر کدام یکی پس از دیگری بدون همپوشانی در هر زمان معین اجرا میشوند. نرم افزار به طور سنتی به صورت متوالی برنامه ریزی شده است، که رویکرد ساده تری را ارائه می دهد، اما به طور قابل توجهی توسط سرعت پردازنده و توانایی آن برای اجرای هر سری از دستورالعمل ها محدود شده است. در جایی که ماشین های تک پردازنده از ساختارهای داده متوالی استفاده می کنند، ساختارهای داده برای محیط های محاسباتی موازی همزمان هستند.
اندازهگیری عملکرد در برنامهنویسی متوالی بسیار پیچیدهتر و مهمتر از معیارهای محاسبات موازی است، زیرا معمولاً فقط شامل شناسایی تنگناها در سیستم میشود. معیارها در محاسبات موازی را می توان با معیار و چارچوب های تست رگرسیون عملکرد، که از روش های مختلف اندازه گیری، مانند درمان آماری و تکرارهای متعدد استفاده می کند، به دست آورد. توانایی جلوگیری از این تنگنا با جابجایی داده ها از طریق سلسله مراتب حافظه به ویژه در محاسبات موازی برای علم داده، محاسبات موازی یادگیری ماشین و موارد استفاده از هوش مصنوعی محاسبات موازی مشهود است.
محاسبات متوالی عملاً برعکس محاسبات موازی است. در حالی که محاسبات موازی ممکن است پیچیدهتر باشد و هزینه بیشتری داشته باشد، مزیت این که بتوان یک مشکل را سریعتر حل کرد، اغلب بر هزینههای دستیابی به سختافزار محاسباتی موازی سنگینی میکند.
برای اجاره سرورهای ارزان پشت این شکل کلیک کنید.
تجربه استفاده از لپتاپ و سرور ارزان و قدرتمند با استفاده از سرورهای شبیه سازان
اینجا کلیک کنیدآیا HEAVY.AI یک راه حل محاسباتی موازی ارائه می دهد؟
پلتفرم HEAVY.AI از قدرت محاسباتی موازی عظیم پردازندههای گرافیکی برای تجزیه و تحلیل دادههای بزرگ استفاده میکند، و به تحلیلگران دادههای بزرگ و دانشمندان داده این قدرت را میدهد تا به صورت تعاملی پرس و جو کنند، تجسم کنند و جریانهای کاری علم داده را در میلیاردها رکورد در میلیثانیه تقویت کنند. پلتفرم HEAVY.AI برای غلبه بر محدودیتهای مقیاسپذیری و عملکرد ابزارهای تجزیه و تحلیل قدیمی با ویژگیهای مقیاس، سرعت و مکان مجموعه دادههای بزرگ امروزی طراحی شده است.
مطالب مرتبط:
خدمات پردازش موازی
سیستم پردازش موازی: راهکاری پیشرفته برای پردازش دادههای بزرگ
پردازش موازی: تکنولوژی روز دنیا برای افزایش سرعت و کارایی
ویژگی ها و کاربرد پردازش موازی
سیستم پردازش موازی به چه صورتی عمل می کند؟
پردازش موازی چیست و کاربردی دارد؟
عملکرد سیستم پردازش موازی
سیستمهای پردازش موازی
پردازش موازی چیست؟
کاربردهای سیستم پردازش موازی
عملکرد سیستم پردازش موازی
پردازش یا رایانش موازی
اجاره سیستم پردازش موازی
ملاحضات در انتخاب سیستم پردازش موازی
کاربردهای پردازش موازی
خدمات پردازش موازی
آموزش پردازش موازی در انسیس فلوئنت
آموزش پردازش موازی در اباکوس ABAQUS
آموزش پردازش موازی در انسیس فلوئنت
12مثال و کاربردهای پردازش موازی
پردازش موازی
کاربرد پردازش موازی
پردازش موازی
اجاره سیستم پردازش موازی
مزایا و معایب پردازش موازی
پردازش موازی و پایگاه های داده موازی
پردازش موازی در متلب
پردازش موازی در متلب
درباره سرور پردازش موازی چه میدانید؟
پردازش موازی ارزان
مزایا و معایب پردازش موازی
آزمایشگاه پردازش موازی
دیدگاهتان را بنویسید