• پردازش متوالی و موازی اطلاعات. انواع پردازش اطلاعات موازی

    پردازش موازی داده ها

    علوم کامپیوتر، سایبرنتیک و برنامه نویسی

    تشخیص خودکار همزمانی درجه و سطوح توازی. انواع موازی سازی. عملکرد VS موازی به عوامل زیادی بستگی دارد و تا حد زیادی به معماری و ساختار سیستم، ساختار یک سیستم موازی را ترسیم می‌کند و توضیح می‌دهد: میزان و سطح موازی بودن سیستم; از سازماندهی انتقال داده بین پردازنده های موازی؛ از سیستم سوئیچینگ؛ از تعامل پردازنده ها و حافظه؛ در رابطه بین سخت افزار و پیاده سازی نرم افزارعملیات کلان

    سخنرانی 1

    پردازش موازی داده ها

    طرح

    1. شکل ردیف-موازی الگوریتم.

    2. تشخیص خودکار موازی.

    3. درجه و مراتب توازی.

    4. انواع توازی.

    موازی سازی این توانایی انجام همزمان چندین عملیات حسابی، منطقی یا خدماتی است. علاوه بر این، عملیات می تواند هم بلوک بزرگ و هم بلوک کوچک باشد.

    عملکرد شبکه های WAN موازی به عوامل زیادی و تا حد زیادی به معماری و ساختار سیستم بستگی دارد.(ساختار یک سیستم موازی را ترسیم کرده و توضیح دهید):

    از درجه و سطح توازی در سیستم;

    از سازماندهی انتقال داده بین پردازنده های موازی؛

    از سیستم سوئیچینگ؛

    از تعامل پردازنده و حافظه؛

    از رابطه بین اجرای سخت افزار و نرم افزار یک عملیات کلان.

    پردازش موازی می تواند بر اساس اصول مختلفی باشد:

    توازی فضایی؛

    موازی زمانی:

    1. لوله کشی.
    2. برداری.
    3. ماتریس.
    4. سیستولیک.
    5. سازماندهی ساختار پردازش جریان داده
    6. سازماندهی سیستم بر اساس ساختار هایپرمکعب.
    7. بازسازی دینامیکی هواپیما.

    توصیف هر الگوریتمی سلسله مراتبی است و بر اساس ویژگی تودرتو است. هنگام برنامه نویسی، تخصیص دهیدسطوح تودرتو:وظایف، وظایف، وظایف فرعی (فرایندها)، عملیات کلان، عملیات.تودرتو عمق موازی سازی را تعیین می کند و یکی از ویژگی های مهم الگوریتم ها در تحلیل مدل های محاسباتی موازی است.

    1. شکل ردیف-موازی الگوریتم

    کلی ترین شکل نمایش الگوریتم ها نمودار کنترل اطلاعات الگوریتم است.که وابستگی داده بین عبارات الگوریتم و پرش های بدون شرط و شرطی در برنامه را منعکس می کند. چنین نموداری به طور ضمنی شامل انواع موازی سازی برای روش انتخاب شده برای حل مسئله است.شکل خاص تری از نمایش موازی کاری، دستگاه فرم موازی ردیفی (LPF) است.

    الگوریتم در فرم پله ای-موازیبه صورت لایه نشان داده می شود و ردیف صفر شامل عملگرها (شاخه ها) مستقل از یکدیگر است.

    نمودار را می توان علامت گذاری کردانتقال ، به معنی انتقال نتایج محاسبه یک عملیات اولیه از یک لایه به یک عملیات از لایه بعدی. طبقات با انتقال تقسیم می شوند. می تواند باشدانتقال های "خالی".و عملیات ابتدایی "خالی".. یک عملیات خالی مربوط به ذخیره نتیجه به دست آمده در ردیف قبلی است. در یک زنجیره متوالی از فعالیت ها، یک فعالیت خالی را می توان در هر ردیفی قرار داد.

    هنگام ساخت JPF، آنها بر آن تکیه می کنند مجموعه پایهعملیات اولیه (PNO). شکل موازی ردیفی با موارد زیر مشخص می شودمولفه های :

    1. طول شمارش (تعداد طبقات) L.

    2. عرض ردیف i - b i.

    3. عرض نمودار یک فرم موازی ردیفی B = حداکثر (b i).

    4. میانگین عرض نمودار JPFچهارشنبه

    5. فاکتور پر کردنمن - رده k i .

    6. ضریب پراکندگی عملیات در نمودار - Q j i، j BNO، تعداد j کجاست -ام نوع عملیات درردیف i.

    7. حداقل تعداد مورد نیاز ماشین حساب (از BNO) برای پیاده سازی الگوریتم نشان داده شده توسط این نمودار در JPF.

    8. حداقل زمان حل الگوریتم (مجموع زمان پاسخ ماشین حساب با حداکثر مقدار محاسبات برای هر ردیف) Tmin.

    9. قابلیت اتصال الگوریتم (تعداد نتایج میانی که باید در طول اجرای الگوریتم ذخیره شوند)با .

    2. تشخیص خودکار همزمانی

    دو راه برای ساخت یک الگوریتم موازی وجود دارد: مستقیماً از بیان مسئله یا با تبدیل یک الگوریتم متوالی.

    روش‌های ساخت یک الگوریتم موازی از یک الگوریتم متوالی بر اساس انتخاب ساختارهای معمولی معمولی در یک الگوریتم متوالی است که طبق قوانین خاصی با موارد موازی جایگزین می‌شوند. (این اجازه می دهد تا حد معینی، درجه موازی از دست رفته توسط الگوریتم هنگام برنامه نویسی در یک زبان ترتیبی افزایش یابد.)

    ماهیت تغییر در درجه موازی در طول آماده سازی برنامه کامپیوتری در شکل 1 نشان داده شده است. 2.2.

    توازی بالقوه

    روش

    راه حل ها

    متن اصلی

    برنامه ماشین

    برنج. 2.2. تغییر موازی بالقوه در طول توسعه برنامه:

    1 سیستم برنامه نویسی موازی؛

    2 برنامه نویسی متوالی و

    کامپایلر برداری

    علیرغم سطح پایین تر موازی که هنگام ساخت یک الگوریتم موازی با تبدیل از یک الگوریتم سریال به دست می آید، این روش به طور گسترده ای مورد استفاده قرار می گیرد، زیرا استفاده از برنامه های کاربردی گران قیمت توسعه یافته و اشکال زدایی شده برای DOD سریال را ممکن می سازد.

    در یک برنامه متوالی، وجود داردآشکار و پنهان پردازش موازی.

    هنگام تجزیه و تحلیل برنامه، یک نمودار جریان داده ساخته می شود. برای تشخیص موازی صریح فرآیندها، مجموعه متغیرهای ورودی (خوانده) تجزیه و تحلیل می شوند.آر و متغیرهای خروجی (قابل ضبط).دبلیو هر فرآیند

    صریح پردازش موازی را می توان در بین فرآیندها تشخیص داد i و j (i ≠ j ) داشتن شرایط زیر:

    ورودی یک فرآیند نباید توسط فرآیند دیگری اصلاح شود (نوشته شود).

    هیچ دو فرآیندی نباید متغیرهای مشترک را تغییر دهد

    الف) R i W j =;

    ب) W i R j =;

    ج) W i W j =;

    پنهان شده است پردازش موازی به نوعی فرآیند تبدیل برای یک برنامه سریال نیاز دارد تا امکان اجرای موازی آن را فراهم کند. تبدیل می تواند به صورت زیر باشد:

    الف) کاهش ارتفاع درختان عبارات حسابی (شکل 2.3). برای عبارات حسابی با n متغیرها یا ثابت ها، کاهش ارتفاع درخت به شما امکان می دهد تا به پردازش سریعتر سفارش برسید O(n/log2n ) استفاده كردنپردازنده های O(n)

    ب) تبدیل روابط خطی بازگشتی.

    ((الف + ب) + ج) + د

    (a + b)+ (c + d)

    برنج. 2.3. کاهش ارتفاع درخت

    ج) جایگزینی اپراتورها؛

    د) تبدیل بلوک های انتقال و چرخه های شرطی به شکل متعارف.

    ه) توزیع چرخه ها.

    معماری های موازی به دست می آورند عملکرد بالا، اگر تبدیل موازی ویژگی های معماری هواپیما را که قرار است الگوریتم بر روی آن اجرا شود در نظر بگیرد.

    هنگام تبدیل موازی، برنامه ها موارد زیر را در نظر می گیرند: 1) طرح بندی داده ها در حافظه. 2) آدرس دهی حافظه (شاخص سازی). 3) انتخاب مسیر داده (روش اتصال پردازنده و حافظه).

    شکل 2.4. ذخیره سازی

    ماتریس های شیفت

    به عنوان مثالی از در نظر گرفتن چیدمان در حافظه، حافظه را با آدرس دهی مورب در نظر می گیریم. برای اطمینان از پردازش موازی ماتریس‌ها، عناصر سطرها و ستون‌های آن‌ها باید به‌گونه‌ای بین دستگاه‌های حافظه پردازنده‌ها توزیع شوند که بتوان آنها را به طور همزمان خواند و پردازش کرد. در این مورد، ماتریس با یک شیفت ذخیره می شود (شکل 2.4).

    هر الگوریتمی شامل بخش های متوالی (اسکالر) است. ثابت شده است که طول این بخش های اسکالر عامل تعیین کننده در اجرای الگوریتم در هواپیمای موازی است.

    3. درجه و مراتب توازی

    درجه موازی(د) ترتیب تعداد دستگاه های موازی در سیستم هنگام اجرای الگوریتم وظیفه است، مشروط بر اینکه تعداد پردازنده ها (دستگاه های پردازشگر) محدود نباشد.(تعریف دیگری نیز وجود دارددرجات موازیتعداد پردازنده های یک سیستم چند پردازنده ای است که در اجرای برنامه به صورت موازی در هر بار t.)

    1) درجه پایین: 2 تا 10 پردازنده.

    2) درجه متوسط: 10 تا 100 پردازنده.

    3) درجه بالا: 100 تا 10 4 پردازنده

    4) درجه فوق العاده بالا: از 10 4 تا 10 6 پردازنده.

    برنج. 2.5. نمایه همزمانی

    نمایش گرافیکی پارامتر D(t ) به عنوان توابع زمان نامیده می شوندپروفایل همزمانی برنامه. تغییرات در استفاده از پردازنده در طول زمان مشاهده به عوامل بسیاری (الگوریتم، منابع موجود، درجه بهینه سازی ارائه شده توسط کامپایلر و غیره) بستگی دارد. روی انجیر شکل 2.5 نمایه همزمانی معمولی را نشان می دهد.

    که در برنامه های کاربردیطیف گسترده ای از موازی سازی بالقوه وجود دارد. در برنامه های فشرده محاسباتی، در هر چرخه، از 500 تا 3500 می توان به صورت موازی اجرا کرد. عملیات حسابیاگر یک محیط محاسباتی موجود برای انجام این کار وجود داشته باشد. با این حال، حتی یک پردازنده فوق اسکالر که به درستی طراحی شده باشد، قادر است از 2 تا 5.8 دستورالعمل در هر چرخه پشتیبانی کند. این کاهش در درجه اول به دلیل هزینه های ارتباطات و سیستم است.

    درجه موازی به طور قابل توجهی تأثیر می گذارد: معماری هواپیما، به ویژه سیستم سوئیچینگ، سازماندهی تعامل بین پردازنده هایی که به طور موازی کار می کنند، و روش های تبادل داده بین پردازنده ها و حافظه. تأثیر قوی‌تری بر عملکرد امکانات محاسباتی نسبت به میزان موازی‌سازی توسط سطح موازی‌سازی اعمال می‌شود.

    در نظر گرفتن الگوریتمیو شماتیک سطوح موازی

    موارد زیر وجود داردسطوح الگوریتمی موازی سازی:

    1. سطح شغلی:

    الف) بین وظایف؛

    ب) بین مراحل کار.

    2. سطح برنامه:

    الف) بین قسمت های برنامه(بخش هایی از یک کار بر روی مجموعه ای از ماشین حساب ها اجرا می شود).

    ب) در چرخه ها.

    (اگر تکرارهای منفرد در حلقه به یکدیگر وابسته نباشند. برای مثال : برای I:=1 تا N A(I):=B(I) + C(I)) را انجام دهید

    3. سطح فرمان:

    الف) بین مراحل اجرای دستور.

    4. سطح حسابی و رقمی:

    الف) بین عناصر یک عملیات برداری؛

    ب) داخل مدارهای منطقی ALU.

    هر یک از سطوح با ویژگی های خاصی مشخص می شود که بر اساس آن ساختارهای ویژه امکانات محاسباتی توسعه یافته است. سطح فرمان در هر اجرا شده است کامپیوترهای مدرناز جمله کامپیوترهای شخصی

    سطح طرحواره موازیاین سطح سخت افزاری است که در آن پردازش داده ها موازی می شود یا محاسبات موازی سازماندهی می شود.

    پردازش موازی را می توان در سطوح مدار زیر اجرا کرد:

    1. در سطح گیت های منطقی و عناصر حافظه.این پایین ترین سطحسطح ترانزیستور در اینجا مدارهای منطقی موازی از گیت های منطقی ساخته می شوند ( LS ) (مثلاً: جمع کننده موازی).

    2. سطح مدارهای منطقی و اتوماتای ​​ساده با حافظه.یک اتومات اولیه موازی از مدارهای منطقی ساخته شده است ( EA).

    3. سطح ثبت و مدارهای مجتمعحافظهدر اتوماتای ​​ابتدایی، مدارهای ریزپردازنده موازی به دست می آیند (نماینده مجلس).

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

    5 . سطح کلان پردازنده هایی که عملیات بزرگ را اجرا می کنند.در اینجا موازی سازی عملیات کلان پیاده سازی می شود. کلان پردازنده ها برای ساختن سیستم های چند پردازنده ای موازی ( MPS).

    6. مرحله کامپیوترها، پردازنده ها و برنامه ها.بالاترین سطح موازی سازی از سیستم های چند پردازنده ای موازی است سیستم های محاسباتی (در مقابل).

    4. انواع توازی

    4.1. توازی طبیعی و

    همزمانی بسیاری از اشیاء

    در نمودار اطلاعات، زیرگراف‌های مستقل «عمودی» را می‌توان متمایز کرد که از هیچ نتیجه میانی به‌دست‌آمده از اجرای عملیات اولیه زیرگراف دیگر متقابلاً استفاده نمی‌کنند. به این نوع توازی، توازی طبیعی وظایف مستقل می گویند.

    وظیفه دارد همزمانی طبیعی، اگر در فرمول اولیه خود به عملیات بر روی بردارهای چند بعدی، ماتریس های چند بعدی یا توابع شبکه تقلیل یابد (شکل 2.6). در اینجا از نتایج متوسط ​​وظایف استفاده نمی شود. هر کار مستقل از کارهای دیگر برنامه ریزی شده است. این نوع موازی سازی نیازی به ادغام رایانه ها در مجتمع ها ندارد. با این حال، افزایش تعداد وظایف مستقل در SOD باعث افزایش توان عملیاتی سیستم می شود. به عنوان مثال: پردازش تراکنش ها به یک DB در سرورهای چند پردازنده ای.

    1 وظیفه

    2 وظیفه

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

    اوری

    اوری

    اوری

    اوری

    Ori+1

    Ori+1

    Ori+1

    Ori+1

    1

    در 2

    3

    در 4

    برنج. 2.7. نمودار اطلاعات

    وظیفه مشخص شده است

    همزمانی مجموعه ای از اشیاء

    موازی شیء چندگانهنشان می دهد مورد خاصتوازی طبیعی معنای آن این است که وظیفه پردازش اطلاعات در مورد اشیاء متفاوت، اما یکسان است که بر اساس برنامه مشابه یا تقریباً یکسان پردازش می شوند (شکل 2.7).

    در اینجا وزن نسبتا کمی توسط به اصطلاح اشغال شده استعملیات یکپارچه. عملوندهای اولیه عملیات انتگرال بردارها یا توابع یا مجموعه ای از اشیا هستند و نتیجه یک عدد است. به عنوان مثال، محاسبه حاصل ضرب نقطه برای بردارهای n بعدی

    شامل دو نوع عملیات است: حاصل ضرب زوجی اجزای بردار و سپس "عملیات انتگرال" (عملیاتی بر روی یک بردار n بعدی) که همه اجزای این بردار را با هم جمع می کند.

    با موازی بودن مجموعه ای از اشیا، بیشتر از حالت کلی، موقعیت هایی وجود دارد که بخش های جداگانهمحاسبات باید برای اشیاء مختلف متفاوت انجام شود.

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

    موازی بودن مجموعه ای از اشیاء با موارد زیر مشخص می شودمولفه های :

    1. طول کل برنامه L طول تمام عملگرها در همه شاخه ها خلاصه می شود.

    2. میانگین طول برنامه L cf بر اساس رتبه تکلیف محاسبه می شود.

    پایه ای مشخصه کمیوظیفه موازی شدن استرتبه وظیفه r (®) این تعداد پارامترهای پردازش موازی است (به عنوان مثال، تعداد اجزای برداری، تعداد نقاطی که تابع در آنها مشخص شده است).

    3. ارزش واگرایی مسئله D

    اگر برنامه پردازش اطلاعات برای همه r پس اشیا دقیقاً یکسان است D =1 و هر چه برنامه های اشیاء مختلف با یکدیگر متفاوت باشند، بیشتر می شود D.

    4.2. موازی سازی شاخه های مستقل

    ذات همزمانی شعب مستقلشامل این واقعیت است که در برنامه برای حل مسئله، بخش های مستقلی که شاخه نامیده می شود، قابل تشخیص است. اگر CS دارای سخت افزار مناسب باشد، شاخه ها را می توان به صورت موازی اجرا کرد (شکل 2.8).

    شاخه برنامه Y به شاخه بستگی ندارد x اگر:

    برنج. 2.8. نمودار اطلاعاتی یک کار که با

    همزمانی شعب مستقل

    بین آنها بدون لینک کاربردی، یعنی هیچ یک از متغیرهای ورودی شاخه Y، متغیر خروجی شاخه X یا هر شاخه وابسته به X نیست.

    1. بین آنها هیچ ارتباطی در زمینه های کاری حافظه ندارند;
    2. آنها باید برآورده شوندتوسط برنامه های مختلف ;
    3. مستقل در مدیریت، یعنی شرایط اجرای شاخه Y نباید به ویژگی های ایجاد شده در طول اجرای شاخه X یا شاخه وابسته به آن بستگی داشته باشد.

    4.3. موازی بودن عملیات مجاور یا

    موازی سازی محلی

    موازی سازی عملیات مجاورزمانی اتفاق می‌افتد که داده‌های ورودی برای عملیات جاری در مراحل اولیه محاسبه به دست می‌آید و ساخت ابزارهای محاسباتی به شما امکان می‌دهد تا اجرای چندین عملیات را که با داده‌ها و نتایج به یکدیگر مرتبط نیستند، ترکیب کنید.

    توازی محلی با موارد زیر مشخص می شودمولفه های :

    1. نشانگر اتصال عملیات مجاوراحتمال استفاده از نتیجه برخی عملیات در عملیات بعدی است. هرچه اتصال یک عملیات کمتر باشد، عمق موازی بودن عملیات مجاور برای آن بیشتر است. به طور معمول، مقدار دارای مقادیر 0.10.5 است.

    2. این احتمال وجود دارد که با شروع از یک عملیات معین، حداقل یک زنجیره از طول وجود داشته باشد ll

    3. احتمال اینکه از هر عملیاتی در برنامه شروع شود، زنجیره ای از دقیقا وجود داردل عملیاتی که می تواند به طور همزمان انجام شودل

    4. عمق موازی عملیات مجاور L PSO انتظار طول زنجیره ای از عملیات است که می تواند به طور همزمان انجام شود

    بهینه‌سازی محلی برنامه‌ها شامل مشاهده چندین دستورالعمل است که باید پشت سر هم اجرا شوند و ترتیب برخی از آنها را تغییر می‌دهد، شاید تعداد ثبات‌ها و سلول‌های حافظه را تغییر دهیم تا از حداکثر موازی بودن عملیات مجاور اطمینان حاصل کنیم.

    در بیشتر موارد، شاخص اتصال عملیات مجاور نه چندان به مشکل که به کیفیت بهینه سازی محلی بستگی دارد.

    ________________________________________________________________________________________________

    دوره آموزشی "سازمان کامپیوتر"

    10 -

    (پروژه درسی)

    اثر به سایت اضافه شد: 1395/06/20

    "> سخنرانی " xml:lang="en-US" lang="en-US">6

    "> پردازش موازی داده ها

    "> موازی سازی توانایی انجام همزمان چندین عملیات حسابی، منطقی یا خدماتی است. علاوه بر این، عملیات می تواند هم بلوک بزرگ و هم بلوک کوچک باشد.

    پردازش موازی می تواند بر اساس اصول مختلفی باشد:

    توازی فضایی؛

    موازی زمانی:

    1. لوله کشی.
    2. ">بردارسازی.
    3. "> ماتریس.
    4. "> سیستولیک.
    5. "> سازماندهی ساختار پردازش جریان داده.
    6. "> سازماندهی سیستم بر اساس ساختار هایپرمکعب.
    7. "> بازسازی دینامیکی هواپیما.

    "> توصیف هر الگوریتمی سلسله مراتبی است، بر اساس ویژگی تودرتو. هنگام برنامه نویسی، سطوح تودرتو متمایز می شوند: وظایف، وظایف، وظایف فرعی (فرایندها)، عملیات کلان، عملیات.

    "> 1. شکل ردیف-موازی الگوریتم

    "> کلی‌ترین شکل نمایش الگوریتم‌ها، نمودار کنترل اطلاعات الگوریتم است. شکل خاص‌تر نمایش موازی وظایف، دستگاه شکل موازی لایه‌ای (LFP) است.

    "> الگوریتم به صورت موازی ردیفی به صورت لایه‌ها نشان داده می‌شود و ردیف صفر شامل عملگرها (شاخه‌های) مستقل از یکدیگر است.

    "> در نمودار، می‌توانید انتقال‌ها را تعیین کنید، به این معنی که نتایج محاسبه یک عملیات ابتدایی از یک لایه به یک عملیات از ردیف بعدی. ردیف‌ها بر اساس انتقال تقسیم می‌شوند. می‌تواند انتقال‌های "خالی" و "خالی" باشد. عملیات ابتدایی

    "> هنگام ساخت NPF، آنها بر اساس مجموعه اصلی عملیات ابتدایی (BNO) هستند. شکل موازی ردیفی با پارامترهای زیر مشخص می شود:

    "> 1. طول نمودار (تعداد طبقات)" xml:lang="en-US" lang="en-US">L">.

    "> 2. عرض " xml:lang="en-US" lang="en-US">i"> - لایه - " xml:lang="en-US" lang="en-US">b;vertical-align:sub" xml:lang="en-US" lang="en-US">i">.

    "> 3. عرض یک نمودار از شکل موازی ردیفی" xml:lang="en-US" lang="en-US">B">= " xml:lang="en-US" lang="en-US">حداکثر">(" xml:lang="en-US" lang="en-US">b;vertical-align:sub" xml:lang="en-US" lang="en-US">i">).

    "> 4. میانگین عرض نمودار JPF B;vertical-align:sub">cf "> ">.

    "> 5. ضریب پر کردن" xml:lang="en-US" lang="en-US">i"> ردیف " xml:lang="en-US" lang="en-US">k;vertical-align:sub" xml:lang="en-US" lang="en-US">i"> – ">.

    "> 6. ضریب پراکندگی عملیات در ستون -" xml:lang="en-US" lang="en-US">Q;vertical-align:super" xml:lang="en-US" lang="en-US">j;vertical-align:sub" xml:lang="en-US" lang="en-US">i"> – ">, " xml:lang="en-US" lang="en-US">j"> BNO، که در آن "> - مقدار " xml:lang="en-US" lang="en-US">j"> -مین نوع عملیات در" xml:lang="en-US" lang="en-US">i"> - لایه.

    "> 7. حداقل تعداد مورد نیاز ماشین حساب (از BNO) برای پیاده سازی الگوریتم نشان داده شده توسط این نمودار در JPF.

    "> 8. حداقل زمان برای حل الگوریتم (مجموع زمان پاسخ ماشین حساب با حداکثر مقدار محاسبات برای هر ردیف) T;vertical-align:sub" xml:lang="en-US" lang="en-US">دقیقه">.

    "> 9. اتصال الگوریتم (تعداد نتایج میانی که باید در فرآیند اجرای الگوریتم ذخیره شوند) С.

    "> 2. تشخیص خودکار همزمانی

    "> دو راه برای ساختن یک الگوریتم موازی وجود دارد: مستقیماً از بیان مسئله یا با تبدیل یک الگوریتم متوالی.

    "> روش‌های ساخت یک الگوریتم موازی از یک الگوریتم متوالی مبتنی بر انتخاب ساختارهای معمولی است که اغلب در یک الگوریتم ترتیبی اتفاق می‌افتند، که طبق قوانین خاصی، با موارد موازی جایگزین می‌شوند.

    "> علیرغم سطح پایین تر موازی که هنگام ساخت یک الگوریتم موازی با تبدیل از یک الگوریتم سریال به دست می آید، این روش به طور گسترده ای مورد استفاده قرار می گیرد، زیرا توانایی استفاده از برنامه های کاربردی گران قیمت توسعه یافته و اشکال زدایی شده برای سریال DOD را فراهم می کند.

    "> در یک برنامه متوالی، بین پردازش موازی صریح و ضمنی تمایز قائل می‌شود.

    "> هنگام تجزیه و تحلیل برنامه، یک نمودار جریان داده ساخته می شود. برای تشخیص موازی صریح فرآیندها، مجموعه متغیرهای ورودی (خوانده) تجزیه و تحلیل می شوند." xml:lang="en-US" lang="en-US">R"> و متغیرهای خروجی (قابل نوشتن)." xml:lang="en-US" lang="en-US">W"> از هر فرآیند.

    "> پردازش موازی پنهان به نوعی فرآیند تبدیل برای یک برنامه سریال نیاز دارد تا امکان اجرای موازی آن را فراهم کند. تبدیل می تواند به شرح زیر باشد:

    "> الف) کاهش ارتفاع درختان عبارات حسابی (شکل 6.3).

    "> ب) تبدیل روابط بازگشتی خطی.

    "> ج) جایگزینی اپراتورها.

    "> د) تبدیل بلوک های انتقال و چرخه های شرطی به شکل متعارف.

    "> ه) توزیع چرخه ها.

    اگر تغییر شکل موازی ویژگی‌های معماری هواپیما را که قرار است الگوریتم بر روی آن اجرا شود، در نظر بگیرد، معماری‌های موازی به عملکرد بالایی دست می‌یابند.

    "> به عنوان مثالی از در نظر گرفتن چیدمان در حافظه، حافظه را با آدرس دهی مورب در نظر می گیریم. برای اطمینان از پردازش موازی ماتریس ها، عناصر سطرها و ستون های آنها باید به گونه ای بین دستگاه های حافظه پردازنده ها توزیع شوند که می توان به طور همزمان خواند و پردازش کرد.در این حالت ماتریس با تغییر ذخیره می شود (شکل 6.4).

    "> هر الگوریتمی شامل مقاطع متوالی (اسکالر) است. ثابت شده است که طول این مقاطع اسکالر عامل تعیین کننده ای در اجرای الگوریتم در هواپیمای موازی است.

    "> 3. درجه و سطوح توازی

    "> درجه موازی"> (" xml:lang="en-US" lang="en-US">D">) "> این ترتیب تعداد دستگاه های موازی در سیستم هنگام اجرای الگوریتم وظیفه است، مشروط بر اینکه تعداد پردازنده ها (دستگاه های پردازشگر) محدود نباشد.

    "> 1) درجه پایین: 2 تا 10 پردازنده.

    "> 2) درجه متوسط: از 10 تا 100 پردازنده.

    "> 3) درجه بالا: 100 تا 10;vertical-align:super">4 "> پردازنده ها.

    "> 4) درجه فوق العاده بالا: از 10;vertical-align:super">4 "> تا 10 ;vertical-align:super">6 "> پردازنده.

    ">نمایش گرافیکی پارامتر" xml:lang="en-US" lang="en-US">D">(" xml:lang="en-US" lang="en-US">t">) به عنوان تابعی از زمان، مشخصات موازی یک برنامه نامیده می شود. شکل 6.5 یک نمایه موازی معمولی را نشان می دهد.

    "> در برنامه های کاربردی، طیف گسترده ای از موازی سازی بالقوه وجود دارد. در برنامه های فشرده محاسباتی، اگر یک محیط محاسباتی برای این کار وجود داشته باشد، می توان از 500 تا 3500 عملیات حسابی را به صورت موازی در هر چرخه انجام داد. پردازنده فوق اسکالر طراحی شده قادر به پشتیبانی از 2 تا 5.8 دستور در هر چرخه است. این کاهش در درجه اول به دلیل هزینه های ارتباطی و سیستم است.

    تأثیر قوی‌تری بر عملکرد امکانات محاسباتی نسبت به میزان موازی‌سازی توسط سطح موازی‌سازی اعمال می‌شود.

    سطوح الگوریتمی و مداری موازی را در نظر بگیرید.

    سطوح الگوریتمی موازی زیر وجود دارد:

    1. سطح وظیفه:

    الف) بین وظایف؛

    ب) بین مراحل کار.

    2. سطح برنامه:

    الف) بین بخش های برنامه؛

    ب) در چرخه ها.

    3. سطح فرمان (بین مراحل اجرای دستور).

    4. سطح حسابی و رقمی:

    "> الف) بین عناصر یک عملیات برداری؛

    "> ب) داخل مدارهای منطقی ALU.

    "> هر یک از سطوح با ویژگی های خاصی مشخص می شود که بر اساس آن ساختارهای ویژه ابزارهای محاسباتی توسعه یافته است. سطح فرمان در هر رایانه مدرن از جمله رایانه های شخصی اجرا می شود.

    "> سطح طرح موازی سطح سخت افزاری است که در آن پردازش داده ها موازی می شود یا محاسبات موازی سازماندهی می شود.

    "> پردازش موازی را می توان در سطوح مدار زیر پیاده سازی کرد:

    "> 1. در سطح دروازه های منطقی و عناصر حافظه (شکل 6.6).

    "> 2. سطح مدارهای منطقی و اتوماتای ​​ساده با حافظه (شکل 6.7).

    "> 3. سطح ثبات ها و مدارهای حافظه مجتمع (شکل 6.8).

    4. سطح ریزپردازنده های ابتدایی (شکل 6.9).

    "> 5. سطح کلان پردازنده هایی که عملیات بزرگ را اجرا می کنند (شکل 6.10).

    6. سطح کامپیوترها، پردازنده ها و برنامه ها (شکل 6.11).

    «> 4. انواع توازی

    "> 4.1. توازی طبیعی و

    ">موازی بودن بسیاری از اشیاء

    در نمودار اطلاعات، زیرگراف‌های مستقل «عمودی» را می‌توان متمایز کرد که از هیچ نتیجه میانی به‌دست‌آمده از اجرای عملیات اولیه زیرگراف دیگر متقابلاً استفاده نمی‌کنند. به این نوع توازی، توازی طبیعی وظایف مستقل می گویند.

    مشکل اگر در فرمول اولیه خود به عملیاتی بر روی بردارهای چند بعدی، ماتریس های چند بعدی یا توابع شبکه تقلیل یابد، توازی طبیعی دارد (شکل 6.12).

    توازی مجموعه اشیاء مورد خاصی از توازی طبیعی است. معنای آن این است که وظیفه پردازش اطلاعات در مورد اشیاء متفاوت، اما یکسان است که طبق برنامه مشابه یا تقریباً یکسان پردازش می شوند (شکل 6.13).

    "> در اینجا، به اصطلاح عملیات انتگرال وزن نسبتا کمی را اشغال می کند. با موازی بودن مجموعه ای از اشیاء، بیشتر از حالت عمومی، موقعیت هایی وجود دارد که بخش های جداگانه محاسبات باید به طور متفاوت برای اشیاء مختلف انجام شود.

    ">4.2. موازی سازی شاخه های مستقل

    ماهیت موازی سازی شاخه های مستقل این است که می توان بخش های مستقلی را که شاخه نامیده می شود در برنامه برای حل مسئله اختصاص داد. اگر CS دارای سخت افزار مناسب باشد، شاخه ها را می توان به صورت موازی اجرا کرد (شکل 6.14).

    "> شاخه برنامه Y مستقل از شاخه X است اگر:

    ">- هیچ پیوند عملکردی بین آنها وجود ندارد، یعنی هیچ یک از متغیرهای ورودی شاخه Y، متغیر خروجی شاخه X یا هر شاخه ای که به X وابسته است نیست.

    "> - هیچ ارتباطی بین آنها از نظر زمینه های حافظه کاری وجود ندارد.

    ">- آنها باید توسط برنامه های مختلف اجرا شوند.

    ">- در کنترل مستقل هستند، یعنی شرط اجرای شاخه Y نباید به علائم ایجاد شده در طول اجرای شاخه X یا شاخه ای که به آن وابسته است بستگی داشته باشد.

    "> 4.3. موازی سازی عملیات مجاور یا

    "> موازی سازی محلی

    موازی سازی عملیات مجاور زمانی اتفاق می افتد که داده های ورودی برای عملیات جاری در مراحل اولیه محاسبه به دست آید و ساخت ابزارهای محاسباتی به شما امکان می دهد اجرای چندین عملیات را که با داده ها و نتایج خروجی به یکدیگر مرتبط نیستند ترکیب کنید.

    بهینه‌سازی محلی برنامه‌ها شامل مشاهده چندین دستورالعمل است که باید پشت سر هم اجرا شوند و ترتیب برخی از آنها را تغییر می‌دهد، شاید تعداد ثبات‌ها و سلول‌های حافظه را تغییر دهیم تا از حداکثر موازی بودن عملیات مجاور اطمینان حاصل کنیم.

    در بیشتر موارد، شاخص اتصال عملیات مجاور نه چندان به مشکل که به کیفیت بهینه سازی محلی بستگی دارد.

    "> 5. مدل وظیفه

    مدل وظیفه برای تحلیل مقایسه ایساختار کامپیوترهای موازی بنابراین، باید ماهیت نسبتاً کلی داشته باشد و فقط ترکیب اشکال موازی و انواع اتصالات را توصیف کند.

    به عنوان یک قاعده، هر مدل مسئله ای بر اساس تجزیه و تحلیل کلاس مدل سازی شده از مسائل ساخته می شود. بر اساس نتایج تجزیه و تحلیل، الگوریتم ها به نمای موازی. الگوریتم مورد مطالعه را می توان به صورت برنامه ای متشکل از دنباله ای از بخش های سه نوع نشان داد (شکل 6.15):

    1. مقاطع اسکالر (SC)؛
    2. بخش هایی با موازی شاخه های مستقل (BT)؛
    3. نمودارهای برداری (VC).

    مدل وظیفه مجموعه ای از پارامترها است که یک برنامه موازی را مشخص می کند

    هنگام ساخت یک مدل کار، هدف اصلی تعیین زمان نسبی اجرای آن هنگام پیاده سازی توسط الگوریتم مورد مطالعه است.

    "> شکل 6.15. نسبت تعداد کل محاسبات قابل انتساب به بخش های مختلف الگوریتم در مدل مسئله

    " xml:lang="en-US" lang="en-US">W">ck

    " xml:lang="en-US" lang="en-US">Wt

    " xml:lang="en-US" lang="en-US">W">vk

    " xml:lang="en-US" lang="en-US">م;vertical-align:sub">sk

    " xml:lang="en-US" lang="en-US">م;vertical-align:sub" xml:lang="en-US" lang="en-US">t

    " xml:lang="en-US" lang="en-US">م;vertical-align:sub">vk

    " xml:lang="en-US" lang="en-US">A

    " xml:lang="en-US" lang="en-US">در

    " xml:lang="en-US" lang="en-US">C

    مقدار محاسبه

    طول نسبی

    وزارت آموزش و پرورش و علوم فدراسیون روسیه

    موسسه آموزشی بودجه دولتی فدرال آموزش عالی حرفه ای "مهندسی و فناوری دولتی بریانسک"

    آکادمی"

    گروه فناوری اطلاعات

    پردازش متوالی و موازی اطلاعات

    شهرک سازی و کار گرافیکی شماره 1

    توسط رشته

    "فناوری های پردازش اطلاعات"

    گزینه شماره 16

    RGR-02068025.230400.084

    بریانسک 2015

    مقدمه 3

    پردازش موازی اطلاعات 4

    سیستم های اشتراک گذاری حافظه 6

    پردازش موازی SQL 7

    پردازش متوالی اطلاعات 9

    سیستم های دسته ای ساده 10

    مراجع 13

    معرفی

    در این محاسبه و پردازش گرافیکی، متوالی و موازی اطلاعات در نظر گرفته شده است. برای هر یک از آنها مثال هایی آورده شده است.

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

    پردازش اطلاعات موازی مدلی از پردازش اطلاعات است که بر اساس آن اطلاعات در بلوک های عملکردی خاصی دستخوش یک سری تحولات می شود، به طوری که در هر لحظه به طور همزمان (موازی) در چندین بلوک پردازش می شود.

    پردازش اطلاعات موازی

    پردازش داده های موازی، که ایده انجام چندین عمل به طور همزمان را در بر می گیرد، دو نوع دارد: خط لوله و موازی.

    پردازش موازی. اگر دستگاه خاصی در هر واحد زمان یک عملیات انجام دهد، در هزار واحد، هزار عملیات را انجام خواهد داد. اگر فرض کنیم که پنج دستگاه مستقل وجود دارد که می توانند به طور همزمان کار کنند، آنگاه سیستم پنج دستگاه می تواند همان هزار عملیات را نه در هزار، بلکه در دویست واحد زمان انجام دهد. به طور مشابه، سیستمی از دستگاه های N کار مشابهی را در 1000/N واحد زمان انجام می دهد. مشابه‌های مشابهی را می‌توان در زندگی یافت: اگر یک سرباز در 10 ساعت باغی را حفر کند، یک گروه از پنجاه سرباز با همان توانایی‌ها که به طور همزمان کار می‌کنند، همان کار را در 12 دقیقه انجام می‌دهند - اصل موازی در عمل!

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

    ایده پردازش خط لوله این است که مراحل جداگانه ای از اجرای یک عملیات مشترک را مشخص کند و هر مرحله با تکمیل کار خود، نتیجه را به مرحله بعدی منتقل کند و همزمان بخش جدیدی از داده های ورودی را بپذیرد. ما به دلیل ترکیبی از عملیات های قبلی با فواصل قبلی، یک سود آشکار در سرعت پردازش دریافت می کنیم. فرض کنید که یک عملیات را می توان به پنج ریز عملیات تقسیم کرد که هر یک در یک واحد زمان انجام می شود. اگر یک دستگاه سریال تقسیم ناپذیر وجود داشته باشد، 100 جفت آرگومان برای 500 واحد پردازش می کند. اگر هر ریز عملیات به یک مرحله جداگانه (یا در غیر این صورت می گویند - مرحله) یک دستگاه نوار نقاله جدا شود، در پنجمین واحد زمانی در مرحله متفاوت پردازش چنین دستگاهی، پنج جفت آرگومان اول پیدا شود، و کل مجموعه صد جفت در زمان 5 + 99 = 104 واحد پردازش می شود - شتابی نسبت به یک دستگاه متوالی تقریباً پنج برابر (با توجه به تعداد مراحل خط لوله).

    به نظر می رسد که پردازش خط لوله را می توان با موفقیت جایگزین موازی سازی معمولی کرد، که برای آن دستگاه اصلی باید به تعداد دفعاتی که قرار است تعداد مراحل خط لوله تخصیص داده شود، کپی شود. در واقع، پنج دستگاه مثال قبلی، 100 جفت آرگومان را در 100 واحد زمان پردازش خواهند کرد، که سریعتر از دستگاه خط لوله است! بنابراین با افزایش پنج برابری تعداد دستگاه ها، هم میزان تجهیزات و هم هزینه آن را به میزان قابل توجهی افزایش می دهیم. تصور کنید که یک کارخانه خودروسازی تصمیم گرفت خط مونتاژ را حذف کند و در عین حال سرعت تولید خودرو را حفظ کند. اگر قبلاً هزار ماشین در خط مونتاژ به طور همزمان وجود داشت ، پس با قیاس با مثال قبلی ، باید هزار تیم را استخدام کرد که هر یک از آنها قادر به مونتاژ کامل ماشین از ابتدا تا انتها هستند. صدها عملیات مختلف را انجام می دهد و آن را همزمان با زمانی که ماشین قبلاً در خط مونتاژ بود انجام می دهد.

    امروزه کمتر کسی از موازی سازی در معماری کامپیوتر شگفت زده می شود. همه ریزپردازنده های مدرن از نوعی پردازش موازی استفاده می کنند. در هسته پنتیوم 4 مراحل مختلفاجرا می تواند به طور همزمان تا 126 میکرو عملیات باشد. با این حال، خود این ایده ها مدت ها پیش ظاهر شدند. در ابتدا، آنها در پیشرفته ترین و در نتیجه مجردترین رایانه های زمان خود معرفی شدند. سپس، پس از توسعه مناسب فناوری و تولید ارزان‌تر، به رایانه‌های طبقه متوسط ​​فرود آمدند و سرانجام، امروزه همه اینها به طور کامل در ایستگاه‌های کاری و رایانه‌های شخصی تجسم یافته است.

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

    هنگامی که چندین برنامه درخواست می کنند که کارهایشان در یک کامپیوتر تک پردازنده پردازش شود، تمام کار باید توسط همان پردازنده انجام شود. هدف از پردازش موازی معمولاً بهبود عملکرد برنامه است. هنگامی که یک برنامه یک درخواست کار برای یک کامپیوتر چند پردازنده ای صادر می کند، کامپیوتر کار را به وظایف فرعی منطقی تقسیم می کند و سپس آنها را با استفاده از چندین پردازنده به صورت موازی پردازش می کند که زمان اجرای کار را کاهش می دهد. تعداد وظایف فرعی حاصل از تقسیم یک کار بزرگ، درجه موازی نامیده می شود . کاهش زمان پردازش اطلاعات مورد نیاز برای تکمیل یک کار با میزان موازی بودن رابطه مستقیم دارد. آنها سعی می کنند سرعت سیستم ها را با پردازش موازی به گونه ای افزایش دهند که از حداکثر عملکرد هر پردازنده در سیستم اطمینان حاصل شود.


    4 درس، 1 و 2 جریان، ترم 7

    سخنرانی (34 ساعت)، تست

    بخش مسئول دوره: ASVK

    کامپایلر برنامه: عضو مسئول RAS، دکترای فیزیک-ریاضی. علوم Voevodin Vl.V.،

    سخنرانان: عضو مسئول RAS، دکترای فیزیک-ریاضی. علوم Voevodin Vl.V.

    حاشیه نویسی

    دوره بحث می کند مسائل کلیسازماندهی محاسبات موازی ویژگی‌های معماری سیستم‌های محاسباتی موازی مدرن در نظر گرفته شده، روش‌ها و پارادایم‌های اصلی برنامه‌نویسی در محیط‌های موازی بررسی می‌شوند.

    برای جریان های 1 و 2، رویکردهای هماهنگی ویژگی های معماری سیستم های موازی و ساختار الگوریتم ها، مسائل تئوری تجزیه و تحلیل ساختار برنامه ها و الگوریتم ها، مدل ها در محاسبات موازی مورد بحث قرار می گیرد.

    برنامه

    1. وظایف بزرگ و ابر رایانه ها. پردازش داده های موازی و خط لوله. موازی سازی و خط لوله در معماری کامپیوترهای مدرن با کارایی بالا دستورات اسکالر و برداری دستگاه های اسکالر، خط لوله و برداری. سلسله مراتب حافظه در رایانه ها به عنوان وسیله ای برای افزایش سرعت اجرای برنامه، محلی بودن محاسبات و محلی بودن استفاده از داده ها. قانون امدال و پیامدهای آن، شتاب فوق خطی.

    2. کلاس های اصلی سیستم های محاسباتی موازی مدرن. کامپیوتر با حافظه مشترک، مثال ها، دلایل کاهش عملکرد در برنامه های واقعی. معماری های SMP، NUMA، ccNUMA. سوئیچینگ پردازنده ها و ماژول های حافظه، باس، سوئیچر ماتریس، شبکه امگا. سیستم های محاسباتی نوار نقاله، مثال ها، علل کاهش عملکرد. کامپیوترهایی با حافظه توزیع شده، مثال‌ها، علل کاهش عملکرد. توپولوژی ارتباط بین پردازنده ها: ستاره، شبکه، چنبره سه بعدی، ابر مکعب دوتایی، خواص آنها. خوشه های محاسباتی، مثال ها، تأخیر و توان عملیاتیمختلف فن آوری های ارتباطی. معماری با موازی سازی در سطح دستورالعمل ماشین، VLIW، فوق اسکالر.

    3. فن آوری های برنامه نویسی موازی. زبان‌های متوالی سنتی و کامپایلرهای موازی، مشکلات. نظرات و دستورالعمل های ویژه به کامپایلر، برنامه های افزودنی زبان های موجود. زبان های خاصبرنامه نویسی موازی برنامه نویسی با استفاده از کتابخانه ها و رابط های ارسال پیام. کتابخانه های موضوعی موازی، بسته های تخصصی و سیستم های نرم افزاری سطح بالا. فن آوری های برنامه نویسی موازی MPI، OpenMP، Linda.

    4. عملکرد سیستم های محاسباتی موازی. تطبیق پذیری و تخصصی بودن رایانه ها، عملکرد پردازنده های ویژه. قانون مور روشهای ارزیابی عملکرد معرفی یک پارامتر عددی واحد، Mflops، MIPS. اوج و عملکرد واقعی کامپیوتر تست Linpack و تغییرات آن مجموعه های مکمل برنامه های تست، استریم و NPB.

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

    6. سیستم های محاسباتی توزیع شده غیر همگن. فراکامپیوترها و فراکامپیوترها، پروژه های متا رایانه ای موجود. ویژگی های متمایز متا کامپیوترها مفهوم GRID، اجزای اساسی و خدمات، پروژه های موجود از بخش های GRID، مفهوم سازمان مجازی.

    ادبیات

    1. Voevodin V.V., Voevodin Vl.V. محاسبات موازی - سن پترزبورگ: BHV Petersburg, 2002. - 608 p.

    2. کورولف ال.ن. معماری پردازنده های کامپیوترهای الکترونیکی. - م.: اد. دانشکده VMK MGU، 2003.

    3. V.V. Korneev. سیستم های محاسباتی موازی - م.: انتشارات "دانش"، 1378. - 320 ص.

    4. مواد مرکز اطلاعات و تحلیلی برای محاسبات موازی Parallel.ru

    ادبیات اضافی

    1. Antonov A.S. برنامه نویسی موازی با استفاده از تکنولوژی

    MPI: آموزش. - M.: انتشارات دانشگاه دولتی مسکو، 2004. - 71 ص.

    راه هایی برای بهبود عملکرد هواپیما در معماری آن تعبیه شده است. از یک طرف، این مجموعه ای از پردازنده ها، بلوک های حافظه، دستگاه های ورودی / خروجی و البته راه های اتصال آنها است، به عنوان مثال. محیط ارتباطی از طرف دیگر، اینها اقدامات واقعی هواپیما برای حل یک مشکل خاص است و اینها عملیات روی دستورات و داده ها هستند. این در واقع کل پایه اساسی برای پردازش موازی است. پردازش موازی، تجسم ایده انجام چندین عمل به طور همزمان، دارای چندین نوع است: فوق اسکالر، خط لوله،SIMD– پسوندها،هایپر نخ زنی، چند هسته ایاساساً این نوع پردازش های موازی بصری هستند، بنابراین ما فقط توضیح کوچکی خواهیم داد. اگر دستگاه خاصی در هر واحد زمان یک عملیات انجام دهد، در هزار واحد، هزار عملیات را انجام خواهد داد. اگر فرض کنیم که پنج دستگاه مستقل وجود دارد که می توانند به طور همزمان کار کنند، آنگاه همان هزار عملیات یک سیستم پنج دستگاهی می تواند نه در هزار، بلکه در دویست واحد زمان انجام دهد. به طور مشابه، سیستمی از دستگاه های N کار مشابهی را در 1000/N واحد زمان انجام می دهد. مشابه‌های مشابهی را می‌توان در زندگی یافت: اگر یک سرباز در 10 ساعت باغی را حفر کند، یک گروه متشکل از 50 سرباز با همان توانایی‌ها، که به طور همزمان کار می‌کنند، همان کار را در 12 دقیقه (پردازش داده‌های موازی) و حتی با آهنگ ها (پردازش موازی دستورات).

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

    سوپراسکالر.مانند مثال قبلی، تنها هنگام ساخت یک خط لوله، از چندین پیاده سازی سخت افزاری و نرم افزاری واحدهای عملکردی استفاده می شود، به عنوان مثال، دو یا سه ALU، سه یا چهار دستگاه نمونه گیری.

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

    چند هسته ای. البته می توان چند پردازش را در سطح تراشه پیاده سازی کرد، یعنی. چندین پردازنده را روی یک تراشه قرار دهید (Power 4). اما اگر ریزپردازنده را همراه با حافظه به عنوان هسته سیستم در نظر بگیریم، آنگاه چندین هسته از این دست در یک تراشه ساختاری چند هسته ای ایجاد می کنند. در عین حال، توابع در کریستال یکپارچه شده اند (به عنوان مثال، رابط های شبکه و سیستم های مخابراتی) که برای اجرای آنها معمولاً از چیپست ها استفاده می شود (پردازنده های Motorola MPC8260، Power 4).

    اجرای فناوری محاسباتی با کارایی بالا در حال حاضر در چهار جهت اصلی پیش می رود.

    1. کامپیوترهای وکتور خط لوله. واحدهای عملکردی خط لوله و مجموعه ای از دستورالعمل های برداری دو ویژگی چنین ماشین هایی هستند. برخلاف رویکرد سنتی، دستورالعمل‌های برداری بر روی کل آرایه‌های داده‌های مستقل عمل می‌کنند، که بارگذاری موثر خطوط لوله موجود را ممکن می‌سازد. دستوری مانند A=B+C می تواند به معنای اضافه کردن دو آرایه به جای دو عدد باشد. نماینده مشخصه این روند، خانواده کامپیوترهای نوار نقاله CRAY است که به عنوان مثال شامل CRAY EL، CRAY J90، CRAY T90 می شود (در مارس 2000، شرکت آمریکایی TERA بخش CRAY را از Silicon Graphics, Inc.) خریداری کرد. .

    2. کامپیوترهای موازی انبوهبا حافظه مشترک ایده ساخت کامپیوترهای این کلاس بی اهمیت است: بیایید ریزپردازنده های تولید انبوه را بگیریم، هر کدام را با حافظه محلی خود عرضه کنیم، آن را از طریق برخی از رسانه های ارتباطی وصل کنیم - همین. چنین معماری دارای مزایای زیادی است: اگر عملکرد بالا مورد نیاز است، می توان پردازنده های بیشتری را اضافه کرد، اگر بودجه محدود باشد یا نیاز باشد. قدرت پردازش، سپس انتخاب پیکربندی بهینه و غیره آسان است.

    با این حال، یک "منهای" تعیین کننده نیز وجود دارد که بسیاری از "مضافات" را به هیچ کاهش می دهد. واقعیت این است که مستقل است، بلکه ترکیبی از سه مورد قبلی است. از چندین پردازنده (سنتی یا بردار خط لوله) و یک حافظه مشترک برای آنها، یک گره محاسباتی تشکیل می دهیم. اگر توان محاسباتی دریافتی کافی نباشد، چندین گره را با کانال های پرسرعت ترکیب می کنیم. این معماری نامیده می شود خوشه SV1، اچ پی مثال، آفتاب StarFire، NEC SX-5, جدیدترین مدل های IBM SP2

    3. موازیرایانه های حافظه مشترک. همه رمچنین کامپیوترهایی توسط چندین پردازنده یکسان مشترک هستند. این مشکلات کلاس قبلی را حذف می کند، اما موارد جدیدی را اضافه می کند - تعداد پردازنده هایی که به حافظه مشترک دسترسی دارند به دلایل صرفا فنی نمی توانند زیاد شوند. این جهت شامل بسیاری از رایانه های چند پردازنده SMP مدرن یا، به عنوان مثال، گره های جداگانه رایانه های HP است مثالو خورشید StarFire.

    4. سیستم های خوشه ایآخرین جهت، به طور دقیق، مستقل نیست، بلکه ترکیبی از سه قبلی است. از چندین پردازنده (سنتی یا بردار خط لوله) و یک حافظه مشترک برای آنها، یک گره محاسباتی تشکیل می دهیم. اگر توان محاسباتی دریافتی کافی نباشد، چندین گره را با کانال های پرسرعت ترکیب می کنیم. این معماری نامیده می شود خوشهو طبق این اصل CRAY SV1، اچ پی مثال، آفتاب StarFire، NEC SX-5, جدیدترین مدل های IBM SP2و دیگران. این جهت است که در حال حاضر امیدوارکننده ترین برای طراحی رایانه هایی با شاخص های عملکرد رکورد است.