**خوشهٔ کامپیوتر** (به انگلیسی: Computer cluster) نوعی از سیستم‌های پردازش موازی و توزیع شده‌است، که متشکل از مجموعه‌ای از رایانه‌های مستقل می‌باشد که تمام این گره‌ها در ارتباط تنگاتنگ با کل سیستم هستند و به عنوان یک منبع یکپارچه کار می‌کنند.

  

تکنسین آلمانی

تاریخچه
-------

اولین جرقه و الهام برای کلاستر در دههٔ ۶۰ میلادی در آی بی ام زده شد. در آن زمان مهندسان در حال بررسی یک طرح پیشنهادی جهت برقراری ارتباط مابین رایانه‌های مرکزی بودند، تا به زیر ساخت پردازش موازی که از لحاظ هزینه به صرفه باشد برسند. در آن زمان دو سیستم کارآمد HASP و JES و موفقیت‌های حاصل از آن‌ها اجازهٔ توزیع کارها مابین خوشه‌ای از رایانه‌های مرکزی را به مهندسان می‌داد. با این حال پردازش کلاستر، شتاب لازم را تا زمان توسعهٔ ۳ تکنولوژی اساسی بکار رفته در کلاستر در دههٔ ۸۰ را بخود نگرفت. این ۳ تکنولوژی اساسی عبارتند از:

* پردازنده‌هایی با کارائی بالا
* شبکه‌هایی با سرعت بالا
* توسعهٔ ابزارهای مناسب برای ایجاد پردازش

احتمالاً می‌توان همزمانی ۲ مؤلفهٔ نیاز بر قدرت پردازش و بالا بودن هزینه‌های ایجاد ابر رایانه‌های سنتی را دلیل ۴ برای بروز این شتاب دانست.
پیشرفت‌های قابل توجه و توسعهٔ این تکنولوژی‌ها همراه با کاهش هزینه‌ها و در دسترس قرار گرفتن قطعات و تجهیزات مورد نیاز باعث شد تا کلاسترها و شبکه‌ای از رایانه‌های شخصی و ایستگاه‌های کاری به یک راه حل معقول و اساسی برای ایجاد زیرساخت پردازش موازی تبدیل شوند. در نتیجه کلاسترها تبدیل به نقشه راه اصلی برای زیر ساخت موازی و توزیع شده برای پردازش‌های با کارائی بالا و پردازش‌های با دسترسی بالا و پردازش‌های با عملکرد بالا شدند.
مسیر پردازش موازی در حال دور شدن از زیر ساخت‌های سنتی و تخصیص یافته مانند دستگاه Cray/SGI T3E و نزدیک شدن به سیستم‌های ارزان و چند منظوره که از رایانه‌های چند پردازنده‌ای که به صورت منظم ومتقارن ویا نامنظم ونامتقارن بهم متصل شده‌اند می‌باشد.
ظهور و شتاب ناگهانی کلاسترها با چند پروژه آکادمیک و دانشگاهی مانند Beowulf و Berkeley NOW و HPVM رانده شد، که باعث اثبات برتری کلاسترها به زیر ساخت‌های سنتی شد.

انواع کلاستر
------------

عموماً کلاسترها به ۲ بخش اساسی تقسیم می‌شوند: کلاسترهای با کارائی بالا و کلاسترهای با دسترسی بالا.

کلاستر با دسترسی بالا، برای ایجاد سرویس‌هایی با قابلیت اطمینان بالا کاربرد دارد.

کلاستر با کارائی بالا، برای رسیدن به قدرت پردازشی بهتر نسبت به یک رایانه تنها طراحی شده‌اند.

### کلاسترهای با کارائی بالا

پردازش با کارائی بالا شاخه‌ای از علوم رایانه است که در آن بر توسعهٔ ابر رایانه‌ها و الگوریتم‌های موازی و نرم‌افزارهای مرتبط تمرکز شده‌است. پردازش با کارائی بالا بخاطر هزینهٔ کمتر و اهمیت بخش‌های مورد نیاز در آن‌ها مهم و حائز اهمیت است:

۱. حل مسائل مهم محاسباتی:
طراحی پیشرفته محصولات -
بررسی و شبیه‌سازی محیط -
تحقیقات

۲. ذخیره‌سازی و پردازش داده‌ها:
جستوجوی اطلاعات -
پردازش تصویر

#### کلاسترهای بئوولف

بئوولف را می‌توان ماشینی مخصوص برای پردازش‌های موازی نامید، که برای اینکار طراحی و بهینه‌سازی شده‌است. در تاریخ ۱۹۹۴ توماس استرلینگ و دان بکر کلاستری با ۱۶ گره ساختند و آن را بئوولف نامگذاری کردند. در آن زمان این سیستم اولین نمونه از ایدهٔ ساخت کلاستر با استفاده از COTS به معنی دستگاه‌های معمولی و رایج در بازار بود که توانایی برآورده‌سازی انتظار برای منابع پردازشی را داشت، که از ناسا به مرکز تحقیقاتی و علمی توسعه یافت.
۲ کلاس متفاوت برای بئوولف موجود است:
کلاس اول بئوولف‌هایی که از قطعات و ابزار معمول و استانداردهای رایج استفاده شده باشند.

کلاس دوم بئوولف‌هایی که لزوماً از ابزار رایج استفاده نشده و برای استفادهٔ خاص تغییر داده شده باشند.

### کلاسترهای با دسترسی بالا

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

شمای طبقه‌بندی رایانش خوشه‌ای
-----------------------------

در حالیکه مدل DMMP از الگوی فلوین-جانسون نشان دهندهٔ تعدادی از پیاده‌سازی‌های مختلف رایانه است با اینحال شرح سطح بالایی از رایانش خوشه‌ای هم می‌باشد. بر اساس این الگو توماس استرلینگ شمای رایانش خوشه‌ای را به ترتیب زیر ارائه داده‌است:

* رایانش خوشه‌ای
	+ Pile of PCs
		- Beowulf
		- NT-PC clusters
		- DSHMEM- NUMA
	+ NOW/COW
	+ WS Farms/ Cycle Harvesting

معماری کلاستر
-------------

### فناوریهای اتصالات داخلی و نرم‌افزارهای ارتباطاتی

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

### سیستم تک تصویر

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

### میان افزار سیستم مدیریت منابع

سیستم مدیریت منابع خوشه به عنوان یک میان افزار که سیستم SSI را بر روی خوشه ایجاد می‌کند، عمل می‌کند. این عمل باعث می‌شود تا کاربران بتوانند کارهای خود را بدون نیاز به درک پیچیدگی‌های زیر ساخت کلاستر انجام دهند. یک RMS خوشه را از طریق چهار شاخه عمده مدیریت می‌کند، یعنی: مدیریت منابع، صف کار، برنامه‌ریزی کارها و مدیریت کار.

ابزارها
-------

در جدول زیر برخی از بسته‌های موجود جهت پیاده‌سازی و مدیریت کلاستر همراه برخی از عرضه کنندگان این بسته‌ها آمده‌است:

| محصولات موجود بر روی لینوکس | عرضه کنندگان | قابلیت‌ها |
| --- | --- | --- |
| Oracle Grid Engine | Oracle | زمانبندی کارها |
| Ganglia | Platform | نظارت بر کلاستر |
| Platform ISF | Platform Computing | زمانبندی منابع |
| xCat | ClusterCorp | استقرار و تأمین |
| PBS Professional | Altair | حسابداری و تجزیه، گزارش دهی و تحلیل |
| Platform HPC | Platform Computing | پورتال کاربر نهایی |
| Amazon Elastic | Amazon | تجزیه تحلیل داده در مقیاس بزرگ |
|

منابع
-----

1. ↑  cluster computing: Architectures, Operating Systems, Parallel Processing & Programming Languages ; Richard S. Morrison ,page 22
2. ↑  Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers ,page 1
3. ↑  Linux HPC cluster Installation ; IBM redbooks , page 5
4. ↑  cluster computing: Architectures, Operating Systems, Parallel Processing & Programming Languages ; Richard S. Morrison ,page 21
5. ↑  Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers ,page 2
6. ↑  High Performance Cluster Computing: Architectures and Systems, Rajkumar Buyya,1999

| * ن
* ب
* و
رایانش موازی |
| --- |
| عمومی | 
* رایانش ابری
* ابررایانه
* خوشه کامپیوتری
* رایانش توزیع‌شده
* رایانش مشبک

 |  |
| سطوح | 
* بیت
* دستوری
* داده
* وظیفه

 |
| ریسه‌ها | 
* Superthreading
* فراریسمانی

 |
| نظریه | 
* قانون امدال
* قانون گوستافسون
* کارایی هزینه
* استاندارد کرپ-فلت
* کاهش‌سرعت
* افزایش‌سرعت

 |
| عناصر | 
* فرآیند
* ریسه
* فیبر
* PRAM
* Instruction window

 |
| هماهنگی | 
* چندپردازشی
* چندریسمانی
* Memory coherency
* انسجام حافظه نهان
* Cache invalidation
* Barrier
* همزمانی
* حالت‌برداری برنامه‌ای

 |
| برنامه‌نویسی | 
* مدل‌ها
	+ موازی‌سازی تلویحی
	+ موازی‌سازی آشکار
	+ هم‌روندی
* طبقه‌بندی فلین
	+ اس‌آی‌اس‌دی
	+ اس‌آی‌ام‌دی
	+ ام‌آی‌اس‌دی
	+ ام‌آی‌ام‌دی
		- اس‌پی‌ام‌دی
* الگوریتم‌های چندریسمانی
* الگوریتم‌های غیرمسدودکننده

 |
| سخت‌افزار | 
* چندپردازشگر
	+ متقارن
	+ نامتقارن
* حافظه
	+ نوما
	+ کوما
	+ توزیع‌شده
	+ مشترک
	+ مشترک توزیع‌شده
* چندریسمانی همزمان
* ام‌پی‌پی
* سوپراسکالر
* پردازنده برداری
* ابررایانه
* *بیوولف*

 |
| رابط‌های برنامه‌نویسی | 
* Ateji PX
* ریسه‌های پازیکس
* OpenMP
* OpenHMPP
* OpenACC
* PVM
* MPI
* UPC
* Intel Threading Building Blocks
* بوست (کتابخانه‌های سی++)
* Global Arrays
* Charm++
* Cilk
* Co-array Fortran
* اپن‌سی‌ال
* کودا
* Dryad

 |
| مشکلات | 
* Embarrassingly parallel
* Software lockout
* مقیاس‌پذیری
* وضعیت رقابتی
* بن‌بست (علوم رایانه)
* بن‌بست
* الگوریتم قطعی
* Parallel slowdown

 |
| 
* **رده**
* **داده**

 |