معماری موازی و چند هستهای
معماری موازی و چند هستهای به سختافزاری مربوط میشود که عملیات زیادی را به صورت همزمان اجرا میکند — هستههای متعدد روی یک تراشه، واحدهای برداری و SIMD، و پردازندههای گرافیکی (GPU) با موازیسازی گسترده — همراه با ساختارهای حافظه و ارتباطی که امکان پیشرفت صحیح و کارآمد کار موازی را فراهم میآورند.
Definition
معماری موازی و چند هستهای، طراحی سختافزار رایانهای است که محاسبات متعددی را به طور همزمان از طریق هستههای تکراری، واحدهای گسترده موازی داده، یا شتابدهندههای تخصصی، همراه با مکانیزمهای اتصال داخلی و حافظه که آنها را هماهنگ میکنند، انجام میدهد.
Scope
این حوزه سازماندهیهای سختافزاری برای موازیسازی را پوشش میدهد: ریزپردازندههای چندتراشهای و طراحیهای چند هستهای، سیستمهای حافظه مشترک و انسجام و سازگاری مورد نیاز آنها، پردازندههای SIMD و برداری برای موازیسازی در سطح داده، و معماریهای GPU. این حوزه به چگونگی ساخت سختافزار موازی و مقیاسپذیری عملکرد آن میپردازد. این حوزه شامل جنبه نرمافزاری برنامهنویسی موازی و توزیعشده و سیستمهای توزیعشده در مقیاس خوشه نمیشود که تحت عنوان «محاسبات توزیعشده و موازی» پوشش داده میشوند، و همچنین موتور اجرای تک هستهای که تحت عنوان «ریزمعماری پردازنده» پوشش داده میشود، را نیز در بر نمیگیرد.
Sub-topics
Core questions
- سختافزار موازی چگونه عملکرد را مقیاسبندی میکند و چه عواملی این مقیاسبندی را محدود میکنند؟
- چگونه هستههای متعدد روی یک تراشه یکپارچه شده و به حافظه مشترک متصل میشوند؟
- سختافزار حافظه مشترک چه تضمینهایی در مورد سازگاری و انسجام حافظه باید ارائه دهد؟
- طراحیهای SIMD، برداری و GPU چگونه از موازیسازی در سطح داده بهرهبرداری میکنند؟
- چگونه معماریهای موازی با بارهای کاری تطبیق داده میشوند تا حداکثر توان عملیاتی مفید در هر وات را به دست آورند؟
Key concepts
- ریزپردازنده چندتراشهای
- موازیسازی در سطح رشته
- موازیسازی در سطح داده
- پردازش SIMD و برداری
- GPU و چند هستهای
- حافظه مشترک و انسجام
- سازگاری حافظه
- شبکه اتصال داخلی
- قانون آمدال و مقیاسپذیری
- سختافزار همگامسازی
Key theories
- قانون آمدال
- افزایش سرعت ناشی از موازیسازی یک محاسبه توسط کسری که باید به صورت ترتیبی اجرا شود، محدود میشود: حتی با پردازندههای نامحدود، بخش سریالی حداکثر سرعت کلی را تعیین میکند، که این امر نحوه طراحی و ارزیابی معماریهای موازی را شکل میدهد.
- طبقهبندی موازیسازی به سبک فلین
- سختافزار موازی بر اساس نحوه ترکیب جریانهای دستورالعمل و داده سازماندهی میشود — به عنوان مثال، تک دستورالعمل چند داده (SIMD) برای موازیسازی داده و چند دستورالعمل چند داده (MIMD) برای سیستمهای چند هستهای و چند پردازندهای — طبقهبندیای که انتخابهای معماری را چارچوببندی میکند.
Mechanisms
پردازندههای چند هستهای چندین هسته را روی یک دای قرار میدهند که یک یا چند سطح حافظه نهان (cache) و یک رابط حافظه را به اشتراک میگذارند و توسط یک اتصال داخلی روی تراشه به هم متصل میشوند. پروتکلهای انسجام، حافظههای نهان آنها را سازگار نگه میدارند و یک مدل سازگاری حافظه، ترتیب عملیات حافظه را که در بین هستهها دیده میشود، تعریف میکند. سختافزار موازی داده — واحدهای برداری، خطوط SIMD، و GPUها با هستههای سبکوزن متعدد — یک عملیات را روی بسیاری از عناصر داده اعمال میکند، در حالی که اصول اولیه همگامسازی، رشتههای موازی را هماهنگ میکنند.
Clinical relevance
پس از توقف مقیاسبندی فرکانس ساعت تک هستهای، معماری موازی و چند هستهای به مسیر اصلی برای دستیابی به عملکرد بالاتر تبدیل شد، بنابراین تقریباً تمام پردازندههای مدرن چند هستهای هستند. GPUها و واحدهای SIMD اکنون قدرت گرافیک، محاسبات علمی، و عملیات ماتریسی را که در قلب یادگیری عمیق قرار دارند، تأمین میکنند و سختافزار موازی را برای بارهای کاری با عملکرد بالا و هوش مصنوعی محوری میسازند.
History
ماشینهای موازی به ابررایانههای برداری مانند Cray-1 در دهه 1970 و به ریزپردازندههای تحقیقاتی دهههای 1980 و 1990 بازمیگردند. پایان مقیاسبندی فرکانس در حدود اواسط دهه 2000، صنعت را به سمت تراشههای چند هستهای به عنوان پیشفرض سوق داد. GPUها از خطوط لوله گرافیکی با عملکرد ثابت به شتابدهندههای چند هستهای قابل برنامهریزی تکامل یافتند و معماریهای موازی داده برای یادگیری ماشین مدرن بنیادی شدند.
Debates
- چند هستهای عمومی در مقابل شتابدهندههای تخصصی
- با کاهش بازده از چند هستهای همگن، بحثی در مورد اینکه تا چه حد باید شتابدهندههای خاص دامنه (GPUها، واحدهای تنسور) را به هستههای عمومی ترجیح داد، وجود دارد، که در آن قابلیت برنامهریزی و انعطافپذیری در مقابل کارایی برای بارهای کاری خاص مورد معامله قرار میگیرد.
Key figures
- Gene Amdahl
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
- David E. Culler
Related topics
Seminal works
- hennessy2019
- amdahl1967
- patterson2020
Frequently asked questions
- چرا پردازندهها به سمت هستههای متعدد حرکت کردند؟
- افزایش فرکانس ساعت یک هسته در اواسط دهه 2000 به محدودیتهای توان و حرارت رسید. افزودن هستههای بیشتر، توان عملیاتی کلی را در همان بودجه توان افزایش داد، بنابراین چند هستهای به روش غالب برای ادامه رشد عملکرد تبدیل شد — اگرچه بار افزایش سرعت را به نرمافزار موازی منتقل میکند.
- یک GPU چه تفاوتی با یک CPU چند هستهای دارد؟
- یک CPU دارای چند هسته قدرتمند است که برای اجرای عمومی با تأخیر کم بهینه شدهاند. یک GPU دارای هستههای سادهتر زیادی است که برای کارهای موازی داده با توان عملیاتی بالا بهینه شدهاند و همان عملیات را روی بسیاری از عناصر داده اجرا میکنند، که برای گرافیک و محاسبات عددی متراکم مناسب است اما برای همه بارهای کاری مناسب نیست.