در بخش اول با مفهوم Clustering آشنا شدیم و پس از نحوه راه اندازی و شبکه کردن چهار عدد Raspberry Pi Zero را با استفاده از ClusterHat انجام دادیم. با کلیک بر روی شروع آموزش کلاسترینگ می توانید بخش اول این آموزش را مشاهده کنید. اما در بخش دوم این آموزش با استفاده از برنامه مناسب، کارایی خوشه را اندازه خواهیم گرفت. همراه ما باشید.
برنامه محک جهت تعیین میزان کارایی خوشه Raspberry Pi Zero
پیدا کردن یک برنامه محک مناسب برای تعیین کارایی خوشه سختتر از چیزی بود که انتظار داشتیم. پیش از این از Linpack توزیعشده برای تعیین میزان کارایی خوشههای دیگر استفاده کرده بودم. اما نسخه استاندارد Lindpack محاسبات را میان چندین پردازنده و حافظه یکسان توزیع میکند (محاسبات همگن یا Homogeneous computing)
برای تست و مقایسه سرعت دو بورد iPerf نصب می نماییم:
# Install iperf package on all 5 boards apt-get install iperf # Run server on controller iperf -s -V # Run client for 100 seconds on a Pi Zero, connecting to controller iperf -c controller -i 1 -t 100 -V
سرعت شبکه مبتنی بر USB (network-over-USB) توسط ClusterHAT فوقالعاده بود. سرعت انتقال از یکی از Pi Zero ها به Pi 3 فقط کمی کندتر از اترنت خارجی Pi 3 است (1/94 مگابیت بر ثانیه). پهنای باند مورد استفاده در ClusterHAT در مجموع 9/162 مگابیت بر ثانیه است. به عبارت دیگر اگر هر 4 Pi Zero ها به صورت همزمان از شبکه داخلی استفاده کنند. پهنای باند مصرفی هر کدام از آنها به طور میانگین حدود 40 مگابیت بر ثانیه خواهد بود. در صورتیکه 4 Pi Zero به جای وصل شدن به ClusterHAT به پورت خارجی اترنت Pi 3 وصل شوند، میزان پهنای باند استفاده شده از این مقدار هم کمتر خواهد بود.
سعی کردیم Linpack را بر روی هر 4 Pi اجرا کنیم، اما هستههای Pi 3 هر واحد کاری را به سرعت انجام میدهند و منتظر میمانند تا هستههای Pi Zero هم کار خود را انجام دهند و سپس به سراغ واحد کاری بعدی میروند.
در ابتدا تصمیم گرفتم از Linpack که برای خوشههای ناهمگن سفارشیسازی شده و برنامه محک SHOC استفاده کنم اما هیچ کدام از آنها برای بوردهای RPi در دسترس نبودند (فاقد یک کتابخانه OpenCL کارآمد بودند.)
HPC Challenge Linpack
به همین دلیل بهتر است که برای تعیین میزان کارایی خوشه از HPC Challenge Linpack که در پکیج hpcc Debian در دسترس است استفاده کنیم. این نرمافزار یک Raspbian Linux سفارشیسازیشده قابل دانلود (Debian Jessie 8.4) می باشد که ClusterHAT را پشتیبانی و ارائه می نماید. این نرمافزار بر روی یک کارت حافظه microSDHC مدل Kingston Class 10 و ظرفیت 16گیگابایت ( در هر کدام از Pi ها یکی از این کارت حافظهها وجود داشت) اجرا میشد. برنامههای محک را برای یک Pi Zero، سپس برای هر 4 عدد Pi Zero به صورت همزمان و در آخر برای RPi 3 چهارهستهای اجرا کردیم:
یک روش برای تخمین حداکثر کارایی خوشه این است که امتیازات Linpack متعلق به 4 عدد Pi Zero و Pi 3 را با هم جمع ببندیم. بدون شک این روش نمیتواند حداکثر توان محاسباتی خوشه را تعیین کند زیرا سرعت محاسباتی یک Pi 3 در مقایسه با 4 عدد Pi Zero که به صورت همزمان با هم کار میکنند، بیش از دو MFLOPS (یک میلیون عملیات ممیز شناور در ثانیه) است. سرعت محاسباتی Pi 3 تا حدی به هستههای سریعی بر میگردد که در آن وجود دارند، البته سرعت انتقال دادهها به صورت گره به گره (Node-node communication) در Pi 3 و در مقایسه با Zero ها که ارتباطشان به وسیله Ethernet-over-USB میسر میشود، بسیار سریعتر است.
ساخت کیس ClusterHAT
بُرش به وسیله اشعه لیزر خیلی آسان است. در ادامه طرحی از یک کیس ارائه می شود که میتوان آن را دانلود و مطابق با سلیقه شخصی تغییر داد. ابتدا یک ورق آکریلیک اکسترود (پرسپکس) به قطر 3 میلیمتر را با اشعه لیزر برش می دهیم:
برای ایجاد طرح 2D اولیه جعبه از اپلیکیشن تحت وب Making a leaser-cut box/case with elastic clips کمک گرفتیم و سپس با استفاده از اپلیکیشن رایگان Inkscape سوراخهایی برای پورتهای اترنت، HDMI، USB و ویدئو/ صوت به آن اضافه کردیم و طرح اولیه را برای برش به وسیله اشعه لیزر آماده کردیم. دلیل تفاوت رنگها نشاندهنده مسیر برش لیزر با سرعت و قدرت متفاوت است. لذا خطوط سبز را اول بُرش داده تا سوراخهایی برای پورتها ایجاد کنیم. سپس خطوط صورتی برشهایی برای بیرون کشیدن قطعات کوچک هستند. در انتها رنگ نارنجی هم متن/خطوطی هستند که بر روی جعبه حک شدهاند و در آخر خطوط آبی نشاندهنده حاشیه صفحه هستند. برای آشنایی بیشتر با نحوه برش ورقی به قطر 3 میلیمتر با اشعه لیزر فایلهای زیر را دانلود کنید:
Pi 3 را با 4 استندآف/ اسپیسر شش گوش (Hex spacer) M2.5 در کیس تعبیه میکنیم که PCB را به استندآف 12 میلیمتری که ClusterHAT از آن استفاده میکند، پیچ میکند. 4 پیچ دیگر باقی میماند که به کمک آنها خوشه را به قسمت پایینی کیس وصل میکنیم. بهتر است پایه نگهدارنده (Adhesive feet) ClusterHAT را به جای اینکه مستقیماً بر روی PCB بچسبانیم، بر روی سطح کیس آکریلیک قرار دهیم.
فهرست قیمت وسایل مورد نیاز
جمعبندی
ClusterHAT سختافزاری ارزان قیمت و بدون دردسر برای ورود به دنیای محاسبات خوشهای است. شما میتوانید اپلیکیشنهای استاندارد و توزیعی HPC (آنهایی که برای CPU و نه GPU نوشته شدهاند) را با صرف فقط چند وات برق در یک خوشه اجرا کنید.
بدون شک سرعت محاسباتی RPi Zero بسیار کند است. اما یک خوشه کوچک مثل این برای آموزش و حتی توسعه نرمافزارهای توزیع شده بسیار مناسب است. نرمافزارهای توزیع شده را میتوان بعدها به سیستمهای قویتر منتقل کرد.
1 دیدگاه