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

امروزه سرعت پردازنده و پردازش کامپیوتر ها بر اساس فلاپس که به معنی عملیات شناور هر نقطه در ثانیه، مقیاسی برای سنجش کارائی پردازشگر رایانه‌هاست محاسبه میشود ، پردازنده های معمول امروزی در هرکلاک 4 فلاپ انجام میدهند که در این حالت یک پردازنده 2.5 گیگاهرتزی 10 بیلیون فلاپ انجام میدهد(10 بیلیون فلاپس = 10 گیگا فلاپس) که توسط فرمول و جدول زیر محاسبه میشود .

این مطلب هم میتواند برای شما مفید باشد   مک آدرس MAC Address : تشریح ساختار و معرفی

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

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

در یک سیستم چند پردازنده ، تمام پردازنده ها ممکن است برابر باشند، یا ممکن است برخی  برای مقاصد خاص در نظر گرفته شده باشند .

در سیستم هایی که تمام پردازنده بصورت یکسان برای هدفی واحد در نظر گرفته میشوند سیستم های چندپردازشی متقارن (Symmetric Multi-Processing: SMP) نامیده می شوند  و در سیستم هایی که پردازنده ها برای اعمال مختلفی در نظر گرفته شده و هر کدام کار خاصی را انجام خواهند داد به سیستم های  سیستم های چند پردازنده  نامتقارن (ASMP: Asymmetric multiprocessing )، سیستم های چند پردازنده با  دسترسی نا یکنواخت به حافظه (NUMA) ، و سیستم های چند پردازنده خوشه ای تقسیم میشوند .

این مطلب هم میتواند برای شما مفید باشد   آشنایی با روش های حذف اطلاعات بدون امکان بازیابی | علی قلعه بان

 

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

متد کوپلینگ پردازنده ها برای ساخت رایانه های بزرگ

به طور کلی سیستم های چند پردازنده به دو روش معمول کوپلینگ میشوند :

  • سیستمهای چندپردازنده سخت-درگیر: Tightly coupled multiprocessor systems

که دارای چند سی پی یو هستند که در سطح باس (bus) به هم مربوط شدهاند  برای مثال از IBM p690 Regatta میتوان به عنوان یک سیستم چندپردازنده سخت درگیر نام برد .

  • سیستمهای چندپرداز نرم-درگیر:  Loosely coupled multiprocessor systems

که معمولاً با عنوان خوشه از آنها یاد میشود( شامل چند کامپیوتر جداگانه هستند که توسط سیستمهای ارتباطی با سرعت بالا معمولا اترنت گیگابیت (Gigabit Ethernet) به هم وصل شدهاند . برای مثال از Linux Beowulf cluster  میتوان برای این مدل نام برد .

این مطلب هم میتواند برای شما مفید باشد   نمایش شبکه های وای فای با SSID مخفی توسط ابزار کاربردی Netsh

 

یکی از عناصر مهم در کوپلینگ پردازنده ها که هماهنگی بین پردازنده ها و نرم افزارهای اجرایی در سیستم ها را بعهده دارد Coupling Facility  یا تجهیزات کوپلینگ نامیده میشود و با 3 هدف کلی مورد استفاده قرار میگیرد .

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

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

  • خط ارسال CFS:  Coupling Facility Send  : تمامی اطلاعات ارسالی در تجهیزات کوپلینگ توسط این خطوط ارسال میشود
  • خط دریافت CFR :Coupling Facility Receive  : تمامی اطلاعات ارسالی در تجهیزات کوپلینگ توسط این خطوط ارسال میشود
  • حافظه مجازی چندگانه  MVS  : Multiple Virtual Storage: نسخه ای  از معروفترین سیستم عامل هایی است که بر روی بزرگ رایانه ها مورد استفاده قرار میگیرد .

این سیستم برای راه اندازی رایانه های بزرگ مطلوب میباشد ولی نمیتواند برای دیگر موارد از جمله ابررایانه ها مورد استفاده قرار گیرد چرا که با توجه به محدودیت های سخت افزاری که این سیستم دارد امکان گسترش زیاد آن امکان پذیر نبوده و دارای محدودیتی هایی میباشد و از این نظر قادر به تامین نیازهای پردازشی برای ابر رایانه ها نخواهد بود  برای مثال در گسترش این سیستم ها مواردی از قبیل  Lock-structure sizing وnumber of systems و lock entry  size موثر بوده و نحوه و میزان گسترش این سیستم ها توسط فرمول زیر و با متغیرهای بالا بدست می آید یعنی تمامی عوامل این سیستم کاملا به همدیگر وابسته بوده و هر کدام میتوانند در گسترش سیستم نقش داشته باشند در جدول زیر نحوه محاسبه و نحوه گسترش این سیستم توضیح داده شده است .

10 MB * number_of_systems * lock_entry_size

متد کوپلینگ پردازنده ها برای ساخت ابر رایانه ها

با توجه به اینکه  این سیستم ها در زمینه های شبیه سازی ، بیو انفورماتیک ، هواشناسی ، نجوم ،فیزیک و تحقیقات ژنتیکی مورد بهره برداری قرار میگیرند و نیاز به گرافیک و سرعت پردازش بالا برای این امور میباشد در بحث ابررایانه ها متد کوپلینگ پردازنده ها برای دسترسی به سرعت پردازش بالا با روش خوشه رایانه‌ای Computer Cluster صورت میگیرد . خوشه رایانه‌ای  به گروهی از چند رایانه گفته می‌شود که با بصورت سخت درگیر . یا نرم درگیر به هم دیگر وصل شده و با هم کار می‌کنند وبر خلاف سیستم های رایانش مشبک که در مکان های متفاوتی از هم میتوانند قرار بگیرند ، ولی خوشه رایانه ای را از خیلی جهات می‌توان یک رایانه در نظر گرفت.در این روش خوشه ها از طریق شبکه های محلی سریع به همدیگر متصل بوده و اتصالات داخلی اجزای آنها نیز توسط روشهای Fast Ethernet , Gigabit Ethernet ,ATM , Clan ,Myrinet ,SCI,Atoll ,… صورت میگیرد .

در حالت کلی بخش های مختلف تشکیل دهنده یک خوشه رایانه ای عبارتند از : سیستم های کامیپیوتری قوی – سیستم عامل با قابلیت کار با سیستم های چند پردازشی – تجهیزات شبکه ای با سرعت بالا –کارت های شبکه – پروتکل های ارتباطات سریع –میان افزار ( مانند سولار سیستم ) – نرم افزارهای با قابلیت  کار در محیط چند پردازشی

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

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

سطح خوشه میزان کاربر
خوشه گروهی 2-99
خوشه دپارتمانی 10 -100
خوشه سازمانی 100 – میزان افراد و کاربران سازمان
متاکامپیوتر های ملی مانند کاربران اینترنت که به محدوده خاصی محصورنیست
متاکامپیوترهای بین المللی هزاران تا میلیون ها کاربر

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

در این روش کوچکترین و اولین قطعه سخت افزاری برای کوپلینگ پردازنده ها چیپ پردازش یا Compute Chip  گفته میشود که هر چیپ دارای 2 دو پردازنده با سرعت 5.6 گیگا فلاپس میباشند در مرحله بعدی کارت های پردازش یا Compute card ها هستند که بر روی خود دو چیپ پردازش را جای میدهند که با این حساب بر روی هر کارت پردازش 4 پردازنده قرار میگیرد سپس تعداد 16 کارت پردازش  بر روی کارت های گره یا Node card ها قرار گرفته و در مجموع بر روی هر کارت گره 64 پردازنده قرار میگیرد که دارای سرعتی بالغ بر 180 گیگافلاپس خواهد بود .در مرحله بعدی 1024 عدد از  این کارت گره ها بر روی کابنیت های مخصوص یا همان رک های نگهدارنده قرار گرفته که هر کدام از این کابینت ها دارای 2048 پردازنده میشوند و سرعتی بالغ بر 5.7 ترا فلاپس را دارا میشوند .

و در پایان یک ابر رایانه با 64 کابینت و مجموع 131072 پردازنده دارای سرعتی بالغ بر 360 ترا فلاپس خواهد بود که قادر خواهد بود میزان 1000000000000*360 دستور را در هر ثانیه پردازش نماید . البته این ساختار در ساخت اکثر ابررایانه های امروزی صادق بود و تفاوت آنها در استفاده از سخت افزار و پروتکل های مختلف میباشد  .اما امروزه با رشد روزافزون تکنولوژی سازندگان ابررایانه های با بهره گیری از روش های نوین توانسته اند سرعت پردازش ابر رایانه ها را تا 1000000000000000 پردازش در ثانیه یا همان پتافلاپس ارتقا دهند .  این روش نوین که از آن با عنوان GPU Computing  به روشی اطلاق میشود که درآن  با ترکیب پردازنده های چند هسته ای و پردازنده های گرافیکی به سرعتی که دارای میزان بالایی از هسته میباشند به سرعت بسیار بالایی میتوان دست یافت ، Titan که امروزه بعد از Tihane 2 قویترین ابررایانه دنیا میباشد اولین ابررایانه ای بود که با استفاده از تکنولوژی GPU Computing به سرعتی بالغ بر 10 پتافلاپس دست یافت .

اگر به نمودار بالا نیز دقت کنید شاهد رشد بسیار چشمگیر تکنولوژی GPU Computing خواهید بود که چگونه در این مدت کم از پزدازنده های پرقدرت چندین هسته ای پیشی گرفته است نا گفته نماند محدودیت میزان هسته پردازنده ها درقبال مقدار هسته هایی که یک GPU  میتواند داشته باشد علت اصلی این رشد چشمگیر بوده که امروزه تمامی شرکت های سازنده ابررایانه  را به سوی این تکنولوژی سوق داده است و اکثر شرکت ها در تولیدات خود از این تکنولوژی بهره میبرند . در ذیل به لیست 10 ابررایانه برتر دنیا را می بینید که برخی از آنها با بهره گیری از این تکنولوژی توانسته اند در رتبه های برتر این صنعت قرار گیرند .