|
XGRID تکنولوژی
|
||
|
پیاده سازی سیستم های توزیع شده |
سیستم های Grid نوعی از سیستم های توزیع شده یا موازی هستند که اشتراک ، انتخاب و جمع آوری منابع را در فواصل جغرافیایی فراهم می اورد. بر اساس این تعریف ملاحظه میشود که امکان اجام کارها بصورت موازی وجود دارد.شاید مهمترین دلایل استفاده از سیستم های موازی را بتوان در 4 مورد زیر خلاصه نمود:
1- Application ها بطور حریضانه به دنبال منابع هستند .
2- کامپیوترهای موجود معماری تک پردازنده و ترتیبی دارند .
3- پیشرفت تکنولوژی شبکه های کامپیوتری .
4- محدودیت فیزیکی سخت افزارها در افزایش سرعت .
با توجه به موارد فوق درمی یابیم موازی سازی یک امر ضروری برای انجام کارهای بزرگ و سنگین می باشد.با انجام موازی سازی قابلیتهایی نظیر ،توازن سازی ،همپام سازی ، در دسترس بودن ، انعطاف پذیری و کاهش هزینه امکان پذیر میشود.اما برای نوشتن برنامه های موازی به محیطی نیاز است که این کار انجام گیرد .در این مورد کلا" دو دیدگاه وجود دارد .
الف – Implicit parallelism
در این دیدگاه موازی سازی توسط زبانها و کمپایلرهای موازی پشتیبانی میشوندو تمامی عملیات مربوط به موازی سازی در آن زبانها یا کمپایلرها حمایت می شوند.این زبانها و کمپایلرها خاص ابر رایانه ها طراحی میشوند.
ب – Explicit parallelism
در این دیدگاه زبان موازی نداریم ، در واقع از همان زبانهای سریال استفاده میشود و این برنامه نویس است که موازی سازی را انجام می دهد.برای این منظور برنامه نویس می بایست قسمتهای موازی را تشخیص داده و بکمک ابزار برنامه نویسی آنها را از هم جدا کند. این روش که در سیستم های Grid و Cluster کاربرد دارد برنامه به بخشهای زیر تقسیم می شود :
1- تقسیم بندی فرایندها
2- نگاشت روی پردازنده ها
3- ساختارهای ارتباطی
سپس می بایست مدل برنامه نویسی موازی تعیین گردد .بطور کلی مدلهای برنامه نویسی موازی بصورتهای زیر وجود دارد :
1- Share memory
در این حالت معماری مابصورت حافظه مشترک بوده و دستورات بصورت Read و Write می باشند.برخی از این ابزار عبارتند از : DSM ، Java ، Openmp.
2- Message passing
در این حالت در محیط شبکه هر سیستم حافطه و پردازنده خودش را دارد و از دستورات Send و Receive استفاده میشود. برخی از این ابزار عبارتند از : MPI و PVM
تذکر: نسخه تحت ویندوز MPICH می باشد که شامل توابع کتابخانه ای برای نوشتن برنامه های موازی است .در پروژه نیز ما از این ابزار استفاده کرده ایم .
3- Hybrid
به ترکیبی از دو مدل فوق اشاره دارد .برخی از این ابزار عبارتند از MPI,Openmp.
4- Object & Service Oriented
این ابزار در سطح کاربر بوده و بالاتر از Middleware قرار می گیردولی کارایی کم میشود.برخی از این ابزار عبارتند از Dcom و Corba .
برای انجام برنامه نویسی موازی می بایست بخشاهای زیر را در کد ایجاد کرد و رعایت نمود:
1- Partitiong که برای بخش بخش کردن Task بکار می رود.
2- Communication برای برقرای ارتباط بین بخشهای جدا شده در فاز اول می بایست رعایت شود.
3- Agglomeration که نحوه اتصال دو بخش فوق را بعد از برقرای ارتباط و بخش بندی را مشخص می کند.
4- Mapping/Scheduling که نسبت دادن کارها به پردازندها را انجام میهد بطوریکه زمان انجام کار حداقل شده و راندامان بالایی داشته باشیم .
برنامه نویسی موازی یک Task پیچیده است زیرا برنامه هایی را که مینویسیم شامل بخشهای موازی است .ابزارهای برنامه نویسی کمک می کنند تا حدی این پیچیده گی کاهش یابد.برای نوشتن برنامه ای موازی به چنین محیطهایی نیاز داریم .مهمترین نکته ای که از دیدگاه کاربر مهم است آنستکه برخی از چیزها را Transparence کنیم و همچنین بتوانداز مفاهیم قبلی برنامه نویسی استفاده نماید.
در این روش برنامه به یکسری زیر برنامه تقسیم می شود و هر بخش از آن بین گره های شبکه اجرای می گردد.هر زیر برنامه بصورت ترتیبی نوشته شده است ولی چون همه پردازنده ها موازی برنامه را اجرا می کنند در نتیجه برنامه موازی اجرای میشود.متغیرهایی که روی هر پردازنده اجرا میشوند کاملا"Private هستند و برای ارتباط فقط از مبداء به مقصد پیام ارسال میشود.
همانطور که اشاره شد برای انجام برنامه نویسی موازی از ابزار MPICH که کتابخانه ای از توابع موازی را فراهم می آورد استفاده شده است .هدف از این پروژه انجام عملیات ضرب ماتریس بصورت موازی است .همانطور که در نمودارملاحظه میشود این پروسه روی چندین ماشین اجرا شده است .با افزایش تعداد ماشینها سرعت انجام عملیات نیز افزایش می یابد.
MPICH ابزاری است که توابع استاندارد کتابخانه ای MPI را برای اجرا در انواع سیستم ها فراهم می آورد. این ابزار در سیستم های عامل NT4,window 2000,windows xp و Windows server قابل استفاده است و هر جا که ارتباطات بصورت TCP/IP وجود دارد قابل بکارگیری است.همچنین برای کمپایل برنامه های نوشته شده از محیط 6.x++ VC بهره می بریم .
در این برنامه عمدتا از دستورات انتقال پیام استفاده شده است و باتوجه به کاربرد این دستورات در برنامه این دستورات را بصورت زیر شرح می دهیم .
همانطور که ذکر شده این برنامه براساس Message passing کار می کند .بطور کلی به دو صورت گروهی (Collective) و نقطه به نقطه (Point to point) انتقال پیام انجام میشود.در حالت اول یک فرستنده به چندین گیرنده پیام را ارسال می کند.و در حالت نقطه به نقطه یک فرستنده و یک گیرنده داریم که پیام را بیکدیگر ارسال می نمایند.این روش خود بصورتهای زیر انجام میشود:
1- سنکرون : در این حالت دقیقا وقتی که گیرنده می خواهد داده را بردارد، فرستنده متوجه میشود.به عبارتی وقتی کار ارسال پیام تمام شد فرستنده متوجه میشود و ادامه کار منوط به این است گیرنده داده را بردارد. برای مثال ماشین فاکس چنین خصوصیتی دارد.
2- آسنکرون :در این حالت فرستنده از برداشتن داده توسط گیرنده آگاه نیست .به عبارتی وقتی پیام سیستم را ترک می کند متوجه نمی شویم که رسیده است یا نه . برای مثال سیستم پست نامه را میتوان نام برد.
3- عملیات بلوک کردن :وقتی انجام میشود و نتیجه را باز می گرداند که عملیات تکمیل شده باشد.
4- عملیات بدون بلوک کردن : در این حالت عملیات شروع شده و معلوم نیست چه زمانی خاتمه می یابد.به عبارتی برای اطمینان از انجام عملیات باید تست انجام شود.برای مثال سمافور در سیستم عامل اینچنین است .
با توجه به مطالب فوق می توان دریافت که ارسال سنکرون Blocking و ارسال آسنکرون Non blocking است .
در مقابل ارتباطات گروهی قادر هستند که عملیات زیر را انجام دهند :
1- میتوان از آنها بعنوان ارتباطات نقطه به نقطه استفاده نمود.
2- امکان انجام پردازشهای سنکرون ( Barrier) را دارد .
3- قابلیت انجام ارتباطات یک به چند ( Broadcast ) را دارد.
4- قابلیت انجام عملیات Reduction بدین معنی که ترکیب داده از پردازنده های متعدد برای تولید نتیجه نهایی و بر آیند.
همانطور که اشاره شده MPI یک زبان نیست بلکه یک کتابخانه از توابع به منظور نوشتن برنامه های موازی است و می بایست هدر فایلهای آن را در سورس برنامه معرفی نمود.فرمت توابع MPI که بهنگام برنامه نویسی بکار گرفته میشود بصورت زیر است :
MPI_Xxxxx(parameter,…);
عمده توابعی که در برنامه استفاده شده است تقریبا" مشابه برنامه محاسبه عدد P می باشد.با این تفاوت که در این جا عملیات ضرب ماتریس انجام میشود. به منظور تمایز پروسس های مختلف اولین روتین که بکار می رود MPI_Initاست .این روتین یک گروه یا Communicator ایجاد می کند و به تمام پردازنده هایی که در یک گروه هستند شماره ای اختصاص می دهد.به این شماره اصطلاحا" Rankگفته میشود.بصورت پیش فرض Masterشماره Rank صفر را می گیرد و بقیه پردازندهها به ترتیب شماره گذاری میشوند.در واقع Rank به پروسه IDاست .
الگوریتم کار بدین صورت است که بعد از تعریف متعیرها ی مورد نیاز ،زمان شروع برنامه را ثبت می کنیم سپس برای نمایش شماره و نام ماشین پردازش گر از فرمان Fprintf استفاده کرده ایم که در واقع MyID و processor name را بر می گرداند.سپس تعداد سطر و ستون ماتریس مورد نظر را تعریف می کنیم .این مقادیر ثابت می باشند و انجام تغییرات آن منوط به دستکاری در سورس برنامه است.در واقع دو ماتریس 1000 در 1000 در این برنامه در هم ضرب شده اند .که بصورت ریاضی بصورت 1000*1000*1000 تعریف میشود. در ادامه بعد از تخصیص حافظه مورد نیاز ماتریسها را بصورت تصادفی مقدار دهی می کنیم و در بخش آخر عملیات ضرب ماتریسها انجام میشود.برای این منظور ابتدا توسط تابع MPI_Bcast اندازه هر یک از ماتریسها برای بقیه گره ها معرفی می کنیم . در واقع در شرط اول فقط اطلاعات ماتریس ها برای ID صفر و رد شرط دوم اطلاعات مورد نیاز سایر گره ها مشخص میشود.در بخش عمل ضرب ماتریسها بدین صورت انجام میشود هر پروسس یک سطر از ماتریس را در کل ماتریس بعدضرب می کند .در این جا نتایج خروجی توسط تابع Printf چاپ نشده است و تنها زمان محاسبه وپردازش چاپ گردیده است .
سورس برنامه به پیوست تقدیم شده است ( برنامه و توضیحات روی CD نیز وجود دارد). برای درک بیشتر برنامه توابعی که در بکار رفته است را در ادامه به تفکیک شرح می دهیم :
1- MPI_Comm_Rank : این تابع شماره Rank را بر می گرداند .برای مثال روی Master شماره صفر را میدهد .
2- MPI_Comm_size : این تابع سایز گروه در Communicator را بر می گرداند به عبارتی تعداد پروسه هایی که در گروه وجود دارند را می دهد.
3- MPI_Send : این تابع که به ارسال استاندارد مشهور است و مهم آنستکه که عملیات ارسال تکمیل شده باشد.به عبارتی زمانی کامل میشود که پیام ارسال شده باشد و از نوع Blocking است .
4- MPI_Recv : در تابع دریافت استاندارد بااجرای Send ،طرف گیرنده ،بهنگام اجرای Receive یک پیام به فرستنده ارسال می کند .
5- MPI_Wtime : این تابع Wall clock رابر می گرداند .هر وقت بخواهیم زمان را اندازه گیری کنیم این تابع را بعد از Send و بعد از Receive صدا می زنیم .
6- MPI_Bcast :از این تابع برای ارسال یک به چند استفاده می کنیم .به عبارتی از گره ریشه پیام را به یک سری از زیر گره های ارسال می کنیم .
7- MPI_Reduce : این تابع وظیفه ارسال نتایج حاصل از پردازش زیرگره ها را به گره ریشه را دارد.
8- MPI_Barrier :از این تابع برای سنکرون کردن گره ها استفاده میشود. به عبارتی منتظر می ماند تا الباقی گره ها نتایج را ارسال نمایند .
این برنامه در یک محیط شبکه Workgroup با 5 سیستم اجرا شده است . مشخصات این سیستم ها طبق جدول زیر است .
|
نام ماشین |
نوع پردازنده |
میزان حافظه اصلی |
|
Laptop |
1.6 centrino |
512MB DDR |
|
Hossini |
1.83 dual core napa |
512 MB DDR2/533 |
|
Hasani |
3000 full cache LGA |
512 MB DDR2/677 |
|
Ruhi |
3000 full cache LGA |
512 MB DDR2/677 |
|
Sabser(Server HP ML370) |
Dual Xeon 3.6 2MB L2 |
2GB DDR2/677 ECC |
همانطور که از جدول فوق پیداست این 5 سیستم برای اجرای ماتریس 1000*1000 در نظر گرفته شده اند.همانطور که از نتایج خروجی و نمودار پیداست .با اجرای مرحله به مرحله برنامه زمان اجرای پردازش ثبت شده است .برای اینکه بتوانیم برنامه ها را بصورت موازی اجرا نمامیم می بایست در ابتدا MPICHرا در تمامی ماشینها نصب کنیم .بعد از نصب برای اینکه تمامی سیستم ها با هم کار کنند اولا یک کاربر مشترک با رمز عبور یکسان باید تعریف گردد و ثانیا در صورتیکه Firewall روی کارت شبکه سیستم فعال است باید غیر فعال گردد.در مرحله بعد با کاربر و رمزی که برای آن تعریف کرده ایم MPI registerرا اجرا می کنیم تا رجیستر گردد.سپس فایل کمپایل شده (فایل اجرایی برنامه ) در تمامی کامپیوترهای شبکه در یک پوشه که نام آن در تمامی سیستم ها یکسان است و به اشتراک گذاشته شده کپی می کنیم سپس از طریق MPIch Configure tool. لیست ماشینهای شبکه را اضافه می کنیم و برنامه را در ماشین Master اجرا می کینم در اولین مرحله با 1 ماشین بیشترین زمان انجام محاسبه ثبت شده است .با افزایش تعداد پردازنده ها تا 5 عدد کاملا" زمان پردازش بهینه شده و در کمترین مقدار خود قرار گرفته است .اما با زیاد کردن تعداد ماشین ها چون هر ماشین ممکن بوده است بیشتر از یک عمل را انجام دهد به علت وجود پروسه های مختلف برای تقسیم کار و همچنین به علت وجود سربار در ارتباطات زمان انجام پردازش سیر صعودی به خود میگیرد.همچنین نمودار نشان می دهد که همیشه با افزایش تعداد پردازنده ها زمان پردازش افزایش نمی یابد و به علت وجود سربار سیستم بصورت None dedicate عمل خواهد کرد.
|
Oracle 10g Available | |||||
|
| گزارش انتشار نهایی: Rocks Cluster Distribution 4.2.1 |
نسخه بهروز شده جدیدی از Rocks Cluster Distribution منتشر شد. این نسخه برای معماریهای i386 و x86_64 منتشر شده است. این نسخه تعدادی از اشکالات فنی نسخه 4.2 را برطرف مینماید. در این نسخه حداقل حافظه مورد نیاز برای گرههای پردازشی به ۵۱۲ مگابایت کاهش یافته است. برای اطلاعات دقیقتر اینجا را ببینید. برای دریافت به اینجا مراجعه نمایید. |
|
بزرگترين كامپيوتر دنيا با اينترنت دو |
|
|
با ورود فن آوري جديد Grid يا اينترنت2 به عرصه ارتباطات ، اينترنت ديگر وسيله اي نخواهد بود كه صرفا به كار ارسال ايميل و يا داشتن وب سايت خلاصه بيايد.
با ايجاد امكان استفاده ازمنابع سخت افزاري ساير كامپيوترها ، رايانه خانگي را به ابر قدرتي بي رقيب مبدل خواهد كرد. اين سيستم در واقع مجموعه اي ازنرم افزارها، سخت افزارها و جريانهاي اطلاعرساني است كه به كاربر امكان استفاده كامل و همزمان از بانكهاي اطلاعاتي پراكنده را ميدهد. كافيست با دانلود كردن يك محافظ نمايشگر مخصوص به كامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شود و به سيستمهاي بزرگ تحقيقاتي اجازه دهد از منابع آزاد و بلااستفاده سيستم آن استفاده كنند. تصور كنيد كه اگر از منابع سختافزاري اين همه كامپيوتر غيرفعال استفاده شود و همه را بتوان در يك كامپيوتر جمع كرد، چه دستگاه پرقدرتي بدست خوهد آمد. تكنولوژي Grid كه در سال 1996 اولين گامهاي آن درجهت اينترنت نسل بعد برداشته شد حاصل تلاش دسته جمعي دولت آمريكا، دانشگاهها و مراكزعلمي و نيز شركتهاي خصوصي نظير لوسنت، سيسكو و لورتل است. اين پديده با برخورداري از بهترين و سريع ترين امكانات جستوجو ، سرعت بسيار بالا و داشتن امكانات قوي براي هر نوع تحقيق علمي جايگزين به حق اينترنت در پنج سال آينده خواهد بود. از سال 1996 گريدها ارتباطات بسيار سريعي را ميان دانشكدهها، مراكز آموزشي، صنعتي و دولتي به منظور ايجاد قابليت عظيم شبكه اي جهت پژوهش و توسعه ، امكان آزمودن محصولات فيبري و روترها و ايجاد سرويسهاي جديد شبكه و نرم افزارهاي مربوط به اينترنت استاندارد فعلي فراهم كردهاند. ايجاد ارتباط دوسويه از راه دور از جمله ويژگيهاي كليدي اين فناوريست كه آن را به يك رسانه آموزشي قدرتمند تبديل كرده است. اين ويژگي منحصر بفرد، كارايي بسيار بالايي را براي سازمان ها و موسسات تحقيقاتي، سازمانهاي انرژي اتمي، بخشهاي مرتبط با فيزيك ، شيمي و زيست شناسي بهمراه داشته است. بعنوان مثال درعلم پزشكي ، قابليت تصويربرداري سه بعدي از مغز و معاينه تخصصي پزشكي از راه دور؛ در حوزه اخترشناسي قابليت كنترل تلسكوپ از راه دور و مشاهده اطلاعات دريافت شده از طريق آن ؛ در بخش سرگرمي، ارائه تصاوير ويدئويي پيشرفته ديجيتال به صورت ارتباط دو طرفه و در بخش آموزش از راه دور نيز، ايجاد امكانات آموزشي ميان موسسات مختلف جهان وبرهم كنش بلادرنگ بين دانشجويان و اساتيد، از جمله كاربردهاي تجربي قابل انجام از طريق اين فناوريست. سه نوع اصلي اين پديده تكنولوژيك عبارتند از: الف - گريدهاي اطلاعاتي گريدهاي اطلاعاتي يا Data Grid كار ذخيرهسازي اطلاعات و سپس ارائه آن به كاربران را بعهده دارند.كاربران اين سيستمها بدون آگاهي از موقعيت جغرافيايي و مكاني اين اطلاعات ، قابليت دسترسي به آن را دارند. فرض كنيد دو دانشگاه در دو سوي دنيا روي يك مطلب علمي مشترك تحقيق ميكنند . هر يك از آنها اطلاعات خاص خود را ذخيره و قابليت دسترسي يكديگر را به برخي از اين اطلاعات (نه تماميآن) فراهم ميكنند.. اين دانشگاهها ميتوانند از يك Data Grid استفاده و اطلاعات خود را با ضريب امنيتي بالايي با هم بهاشتراك بگذارند. در اين نوع گريد دستگاههاي متصل بهسيستم نياز بهقدرت زياد ندارند و فقط مسئول به اشتراك گذاشتن اطلاعات هستند. اما گريد هاي محاسباتي يا Computational Grid از آن جا كه نياز زيادي به قدرت پردازندهها دارند، بايد از ماشينهايي با قدرت بسيار بالا سيستمهاي جوينده منابع يا Scavenging Grid نيز نوع ديگري از گريد است كه به صورت مداوم بهدنبال ظرفيتها، منابع آزاد و چرخه پردازنده (CPU Cycle) كامپيوترهاي متصل به گريد است تا از اين منابع با كسب اجازه قبلي صاحبان اين كامپيوترهاي شخصي ، استفاده بهينه كند. با استفاده از Grid Computing در يك سازمان يا موسسه بزرگ ميتوان از منابع بلااستفاده كامپيوترهاي سازمان استفاده مطلوبي داشت و در عين حال سرعت پردازش اطلاعات در سيستمهايي كه با كمبود حافظه مواجهند را جبران نمود. از طرف ديگر، سرعت نرمافزارهايي كه از اين منبع بزرگ سختافزاري استفاده ميكنند، بسيار بالا خواهد بود و درنتيجه ميتوانيم نرمافزارهايي با قابليتهاي بالاتر فراهم و منابع بيشتري. را در اختيار استفادهكنندگان قرار دهيم. گريدهاي محاسباتي مزاياي زيادي براي مديران و برنامهنويسان به همراه دارد. آنان با دسترسي آسانتر به اطلاعات قادر به اجراي برنامههايي خواهند شد كه نياز به حافظه زيادي دارد . سازمانها و شركتهاي بزرگي كه دربخش IT سرمايه گذاري قابل توجهي كردهاند نيز حداكثراستفاده را از سيستم هاي خود بكار خواهند گرفت. يكي از قدرتمندترين ابزارهاي ايجاد، كنترل و مديريت سيستمهاي گريد ، ابزار Globus است. اين پروژه كه از سال 2003 بصورت عملي در آمد حاصل تلاش مشترك محققان و برنامهنويسان گريد در سراسر دنياست. امنيت، مديريت منابع و مديريت دقيق اطلاعات از جمله خدمات اصلي اين ابزار است. چنانچه نرمافزار يا مجموعهاي از نرمافزارها بخواهند از گريد استفاده كنند، مسئله بهاشتراك گذاشتن اطلاعات، تكه تكه كردن اين اطلاعات، انتقال آن با امنيت كامل و مديريت اين اطلاعات كار دشوار و حائز اهميتي است. درواقع كاربر گريد فقط اطلاعاتي را وارد ميكند و نميداند در داخل سيستم چه ميگذرد. در نتيجه اين سيستمها بايد طوري اين كار را انجام دهند كه كاربران بدون نگراني از انتشار اطلاعات سري خود يا بروز اشتباه در محاسبات ، به آن اعتماد كنند. همچنين آنان بايد از دسترسي بهمنابع خود در سيستم اطلاع حاصل كنند و بدانند كدام كاربر به اطلاعات آنها دسترسي دارد. سرعت اين سيستمها نيز نكته حائز اهميت ديگر است. اگر سيستمهاي گريد از سرعت كافي برخوردار نباشد، بدون شك دلسردي كاربران را به همراه خواهد داشت. در مجموع به نظر ميرسد دانشگاهها تنها واجدين شرايط براي تعيين اهداف اينترنت2 يا Grid technology هستند، چراكه آنها هم متقاضي انواع كاربردهاي آن و هم تامين كننده افراد مستعد براي اين پروژه هستند. ماموريتهاي تحقيقاتي و آموزشي دانشگاهها بطور روزافزون نيازمند تشريك مساعي پرسنل و سخت افزارهايي است كه در سراسر كشور پراكندهاند و اين دقيقا همان وظيفهاي است كه كاربردهاي اينترنت2 بدنبال آن است. در عين حال افراد مستعد و متخصص در زمينه كامپيوتر و شبكه در دانشگاههاي عضو اينترنت 2 بسيارزيادند. دانشگاهها در واقع تاريخ طولاني مدتي در توسعه شبكههاي تحقيقاتي پيشرفته و به كار گماري آنها داشته اند. بطوريكه تركيب نيازها و منابع، مجموعه كاملي را براي توسعه نسل جديد قابليتهاي اينترنت فراهم كرده است. در حال حاضر بنياد ملي علوم آمريكا صاحب يكي از بزرگترين رايانههاي شبكه اي دنيا به نام Teragrid است. بنياد مذكور اخيرا با اختصاص بودجهاي معادل 150 ميليون دلار عمر كاري اين ابر رايانه را 5 سال ديگر تمديد كرده است. تراگريد از بهم پيوستن 16 ابررايانه در سراسر آمريكا ايجاد و قادر است 50 تريليون محاسبه را در هر ثانيه انجام دهد. دانشمندان از اين ابررايانه درعلوم پزشكي، شبيه سازي نحوه تا خوردن و خم شدن مولكولهاي پروتئين؛ پيشبيني زمين لرزه و نيز تغييرات اوضاع جوي استفاده ميكنند. پروژه ديگر SETI@home) Search for Extra Terrestrial Intelligence) به معناي جستجو براي يافتن هوش فرازميني است كه از سال 1999 شروع و تا زمان دسترسي به اهداف خود يعني پيدايش نشانههاي موجودات فرازميني ادامه خواهد يافت. در اين پروژه حدود 4/5 ميليون كامپيوتر از سراسر دنيا به هم پيوسته اند و به اين ترتيب بزرگترين ابركامپيوتر و نيز بزرگترين پروژه Grid Computing جهان را تشكيل دادهاند. سرعت كاري اين كامپيوتر 70 ترافلاپس(70 ميليارد عمليات مميز شناور در ثانيه) است. به گفته دكتر دن ورتيمر مدير پروژه SEREDID و دانشمند ارشد پروژه مذكور در مصاحبه اختصاصي با ماهنامه شبكه؛ براي مشاركت در پروژه ويافتن موجودات هوشمند فرازميني كافيست يك كامپيوتر در خانه، محل كار يا مدرسه كه به اينترنت هم متصل است داشته باشيد، با دريافت برنامه محافظ صفحه نمايش مخصوص پروژه كه از نشاني http://seti.berkeley.edu قابل دانلود است به خيل عظيم پردازش كنندگان اطلاعات پروژه SETI خواهيد پيوست. در واقع با اجازه دارنده كامپيوتر و در زمانهاي بيكاري كامپيوتر داده ها به نام شما پردازش و به دانشگاه بركلي بازميگردد.. شايد شما نخستين كسي باشيد كه علائم مربوط به هوش فرازميني را يافته ايد!! امروزه ، با آنكه امکاناتی برای ايجاد آرایههای کامپيوتری در سيستم عاملهايي چون Linux ازمدتها پيش درنظر گرفته شده است، اما شرکتهايي مانند مايكروسافت و اوراكل بتازگي ضرورت روی آوردن به اينگونه فنآوریها را احساس کردهاند ! مايكروسافت در Windows Server 2003 امکاناتی برای Cluster سازی حداکثر 8 کامپيوتر را پيشبينی کرده است طبق آخرين اطلاعات، اوراكل پيشبينی کرده است طی 3 تا 5 سال آينده استفاده از تکنولوژی جديد آن شرکت در زمينه Grid Computing که به همراه Oracle 10g ارائه ميگردد کاملا رايج شود. سخنگوي اين شرکت با شعار "10 برابر توانايي پردازشی با يک دهم هزينه" ، اعلام کرده است که انتظار ميرود در اين مدت نيمی از استفاده کنندگان اوراکل از فن آوری Grid Computingاستفاده کنند. از سوي ديگر شركت سان مايكروسيستمز تصميم دارد دوسرويس جديد خود يكي تبديل متن به صوت مناسب برا ي پادكستينگ و ديگري تبديل فايلهاي اطلاعاتي به فرمت open document را با استفاده از فناوري گريد به كاربران عرضه كند. درحال حاضر در بسياري از محافل اطلاعاتي و مراكزIT كشور صحبت از محاسبات شبكهاي يا Grid Computing است ؛ اما اين اصطلاح هنوز براي بسياري از كاربران ناشناخته باقي مانده است. از آنجا كه به موجب آخرين آمارهاي منتشره در سايت ايسنا كاربران اينترنت در كشورما 4/39 درصد از كل كاربران خاورميانه را شامل ميشود لازم است که مديران IT به جای خريد و انبار کامپيوترهاي گران قيمت ، اندکی از زمان پرارزش خود را صرف مطالعه تکنولوژیهای جديد كنند. با توسعه اينترنت، نياز به سرويس دهندههای پرقدرت تر افزایش مييابد به اين ترتيب استفاده از کامپيوترهای قوی و گرانقيمت الزاما بهترين راه حل نيست. فراموش نکنيم که Google با گريدي معادل 15000 کامپيوتر شخصی به مراجعه کنندگان خود سرويس ميدهد. دوازدهمين كنفرانس بين المللي انجمن كامپيوتر ايران با هدف رشد و اعتلاي دانش كامپيوتر كه از تمامي محققين و دانش پژوهان اين حوزه براي ارائه آخرين دستاوردهاي تحقيقاتي و علمي خود در زمينه علوم كامپيوتر دعوت بعمل آورده بود قرار است با همكاري دانشگاه شهيد بهشتي تهران ، اول تاسوم اسفند ماه سال جاري در دانشكده برق و كامپيوتر دانشگاه شهيد بهشتي برگزار شود. يكي از موضوعات مورد توجه در اين كنفرانس تكنولوژي Grid است ، بايد ديد دست اندركاران اين حوزه تا چه ميزان مراكز علمي و پژوهشي كشور را آگاه و مجهز به اين امكان خواهند كرد. www.gridcomputing.com |
|
فناوري Grid - انقلابي در فناوري اطلاعات كه به وعدههاي اينترنت عمل ميكند! | |||||||||||||||
|
| |||||||||||||||
|
امروزه فناوري جديدي به نام Grid به عرصه ارتباطات الكترونيك قدم نهاده است كه براساسآن با دانلود كردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايند. انواع Grid ابزار قدرتمند Globus نگاهي بهاجزاي Grid شکل1- سيستمهاي Gird از ديد استفاده کنندگان شكل2- GSI در Gird شكل 3- موقعيت سرويسهاي MDS در Gird شكل 4- موقعيت زمانبندها در Grid شكل5- GASS در Gird شكل 6- بخش مديريت منابع در Grid
پيچيدگيها www.gridcomputing.com/ingplanet.com | |||||||||||||||
|
| |||||||||||||||
|
روزي آنها را خواهيم يافت - گفتگوي اختصاصي با دانشمند ارشد پروژه SETI@Home | |||||||||||||
|
| |||||||||||||
|
● پروژه SETI از كجا شروع شد؟
هنوز هيچگونه شواهدي مبني بر يافت شدن زندگي ماوراي زميني نظير آنچه روي كره زمين وجود دارد، پيدا نشده است و هرگونه علايم راديويي از ساير سياراتي كه ستارههاي ديگر در گردش هستند، دريافت شده است. يعني هنوز هيچگونه علايم حيات در ساير نقاط عالم ديده نشده است. مطالعات نشان ميدهد كه حيات برروي كره زمين در حدود 4 ميليارد سال قبل آغاز شده است يا به عبارت بهتر شرايط ايجاد حيات از آن زمان پديد آمده است. به همين خاطر به نظر ميرسد كه چنين شرايطي ممكن است در ساير سيارات كه به دور ستارههاي ديگري نيز به وجود آمده باشد. در منظومه شمسي، بعضي قمرهاي سياره مشتري نظير اروپا و همچنين سياره مريخ داراي چنين شرايطي بودهاند. اكتشافات دو دهه اخير كه توسط فضاپيماهاي متعدد صورت گرفته اين نظريه را قوت بخشيده است. ضمن آن كه سيارات ديگري خارج از منظومه شمسي كشف شدهاند كه به دور ستارههايي در گردش بودهاند و اندازههايي بزرگتر از زمين داشتهاند. شايد اگر سيارهاي در حجم و اندازه كره زمين در جاي ديگري از كهكشان يافت شود، احتمال مشاهده موجودات فرازميني افزايش يابد. اما چگونه ميتوان به وجود چنين موجوداتي پي برد؟ هر چند كه بين تمدن انساني و يك تمدن ماوراي زميني احتمالاً هيچ زبان مشتركي وجود ندارد، اما راههايي براي تشخيص هوشمند بودن آنها وجود دارد. رياضيدانان، فيزيكدانان، شيميدانان و اخترشناسان قانوني ساختهاند كه ثابت ميكند يك <زبان عمومي> در سراسر كيهان وجود دارد. تصاوير تلويزيوني يكي از راهها براي ايجاد ارتباط هستند كه احتمالاً قابلدرك هستند و نيازي به فهميدن زبان طرف مقابل ندارند. ● چقدر احتمال يافتن موجودات فرازميني وجود دارد؟
نماي ديگري از آرسيبو ● با معرفي پروژه SETI@home قصد داريد كه همه مردم جهان و حتي در خانهها، براي يافتن هوشفرازميني كمك بگيريد. آيا همينطور است؟
● آقاي دكتر ورتيمر، با تشكر مجدد از شما كه فرصتي را جهت طرح اين سؤالات در اختيارمان قرار داديد. | |||||||||||||
|
| |||||||||||||
Xgrid تافته اي جدا بافته
اشاره :
نيمنگاهي به كشورهاي پيشرفته صنعتي براي درك نقش عظيم و انكارناپذير رايانهها به عنوان نبض تپنده تعاملات و فعاليتهاي علمي، اجتماعي و اقتصادي آنها كافي است. امروزه چگونگي بهرهگيري از توان پردازش رايانهها در حوزههاي بسيار حساسي چون صنايع نظامي و امنيتي، ميتواند نقشي بسزا و تعيينكننده در اوضاع و شرايط سياسي ملل مختلف ايفا كند. به طوري كه اندك غفلتي در اين مقوله گاه سبب بروز خسارات جبرانناپذيري ميگردد. و در نهايت ديري نخواهد گذشت كه بخش بزرگي از سرنوشت ملتها را خواسته يا ناخواسته، سطح دانش آنها از رايانه و ميزان گسترش آن در علوم و عرصههاي ديگر رقم خواهد زد. غرض آنكه، بد نيست هر از گاهي فلسفه گسترش رايانهها را با نگاهي فراتر از گرافيك و رندر و هاليوود يا هك و چك و امثال آنها بنگريم. امروز پيشرفت و گسترش علومي چون ژنتيك، بيوانفورماتيك، هوشمصنوعي، سايبرنتيك و موارد ديگري كه گاه فقط نامي از آنها شنيدهايم – حالا آنهايي را كه نشنيدهايم بماند – مديون پيشرفت و گسترش رايانههاست. كه اگر اينگونه نبود، رايانهها شايد چيزي بيش از اسباببازيها عصر حاضر نبودند. اما موضوعي كه قصد طرح آن را داريم، پيرامون يكي از روشهاي انقلابي و نويد بخش تأمين منابع پردازشي يعني grid است. شركت اپل به تازگي اقدام به معرفي فناوري انحصاري خود در اين زمينه كرده است كه در نوشتار حاضر سعي داريم ضمن معرفي اين فناوري، نگاهي به معماري و ساختار كلي و همچنين قابليتهاي آن داشته باشيم.
متن کامل مقاله ( 162 کيلوبايت )
اطلاعاتی در مورد ابر رایانه ها
ابر رایانه وسیله ای برای تبدیل مسایل محاسبه ای به مسایل ورودی و خروجی است.
کن باچر (Ken Batcher) ابر رایانه رایانه ای است که در زمان معرفی از نظر ظرفیت پردازش و به خصوص سرعت محاسبه ازدیگر ماشین ها قوی تر باشد. اولین ابر رایانه ها در دهه ی 1960به طور عمده در موسسه اطلاعات کنترل (CDC) توسط سیمور کری«Seymour Cray» طراحی شد. کری تا دهه ی 1970 زمانی که برای تاسیس شرکت خود پژوهشکده کری, از آن جدا شد آنرا هدایت می کرد. کری بعدها با طرح های جدید خود بازار ابر رایانه را در دست گرفت و تا 25 سال (1965 1990) بی رقیب ماند. در دهه ی 1980به موازات تولید یک دهه قبل تر کامپیوتر کوچک هاشمار زیادی از رقیبان کوچکتر وارد بازار شدند اما بسیاری از آنها در" رکود بازار ابر رایانه ها" ی اواسط دهه ی 1990 ناپدید شدند. امروزه ابر رایانه ها طرح های یک بار تولید شونده هستند که توسط شرکت های "سنتی" مانند IBM و HP طراحی می شوند. این شرکت ها بسیاری از شرکت های دهه ی 1980 را برای استفاده از تجاربشان خریداری کردند، هر چند در طراحی ابر رایانه ها موسسه ی کری متخصص تر است .
معنای کلمه ی ابر رایانه تا حدی متغیر است , و ابر رایانه های امروزی فردا دیگر کاربردی نخواهند داشت، همانگونه که از کولاسوس (Colossus)،* (اولین رایانه ی الکترونیکی برنامه دار رقمی دنیا، که طی جنگ جهانی دوم رمز های آلمانی ها را می شکست) پیدا است. ماشین های اولیه ی سی دی سی (CDC) صرفاً پردازنده های منفرد پر سرعتی بودند که تا ده برابر سریع تر از سریع ترین ماشین هایی که توسط دیگر شرکت ها معرفی شده بودند کار می کردند. در دهه ی 1970 بیشتر ابر رایانه ها برای استفاده از پردازنده ی برداری طراحی می شدند و بسیاری از بازیگر های تازه کار برای ورود به بازار پردازنده هایی از این نوع را با قیمت ارزان تر عرضه می کردند. در دهه های 1980و 1990 پردازنده های برداری جای خود را به سیستم های پردازش موازی فشرده با هزاران سی پی یو (CPU) ساده ای داد که برخی از آنها واحد های غیر مرسوم و برخی طرح های متداول و سنتی بودند. امروزه طرح های موازی بر پایه ی ریز پردازنده های RISC " غیر مرسوم" مانند PowerPC یا PA_RISC قرار دارند.
ابزار های نرم افزاری
ابزار های نرم افزار ی پردازش توزیعی، API های استاندارد از جمله MPI و PVM و راه حل های نرم افزاری متکی بر منبع باز مانند Beowulf و openMosix، که کار ساخت نوعی از " ابر رایانه های مجازی" با استفاده از مجموعه های ایستگاه کار ها و خدمتگذار های عادی را تسهیل بخشید، را شامل می شود. فن آوری هایی مانند Rendezvous راه تولید خوشه های رایانه های ویژه را هموار ساخت. یک نمونه، تابع تفسیر توزیعی در برنامه کاربردی ترکیبیApple's Shake ست. رایانه هایی که از نرم افزار Shake استفاده می کنند کافی است فقط در شبکه در مجاورت یک دیگر باشند تا به طور خود کار منابع همدیگر را پیدا و مورد استفاده قرار دهند. در حالی که هنوز هیچ کس خوشه رایانه ی ویژه ای ای بهتر از ابر رایانه های سال گذشته نساخته است فاصله ی بین رایانه های رومیزی، یا حتی لپ تاپ ها و ابر رایانه ها در حال ناپدید شدن است و این احتمال وجود دارد که این روند با افزایش پشتیبانی توکار برای همسانی(parallelism) و پردازش توزیعی در سیستم عامل های رایانه های رومیزی تداوم یابد. یک زبان برنامه نویسی آسان برای ابر رایانه ها مبحث تحقیقاتی باز و وسیعی را در علم رایانه به جا ی می گذارد .
کاربرد ها
ابر رایانه ها برای کارهایی که به محاسبات زیاد و دقیق نیازمند است به کار می رود از جمله: پیش بینی وضع هوا , تحقیقات آب و هوایی ( که شامل گرم شدن جهانی می شود)، نمونه سازی مولکولی (محاسبه ی ساختار ها و خصوصیات ترکیب های شیمیایی، درشت مولکول های زیستی، بسپار ها, و بلور ها، شبیه سازی های فیزیکی ( مانند شبیه سازی هوا پیما در تونل باد، شبیه سازی انفجار جنگ افزار های هسته ای و تحقیقات در مورد جوش هسته ای )، رمز گشایی و مانند آن. موسسه های نظامی و علمی از بزرگترین مشتری ها می باشند.
طراحی
ابر رایانه ها به دلیل به کار گیری طرح های ابتکاری و جدید با سرعتی بیشتر از رایانه های متداول کار می کنند. این طرح ها ان ها را قادر می سازد بسیاری کارها را با وجود نیاز به برسی فنی جزییات بغرنج به صورت موازی انجام دهند.ان ها بیشتر برای انجام گونه های خاصی از محاسبات تخصص دارند و در برابر بیشتر کارهای محاسباتی عادی عملکرد ضعیفی از خود نشان می دهند. سازمان دهی حافظه این رایانه ها به دقت تنظیم شده است تا در تمام زمان ها پردازنده با داده ها و دستور العمل ها تغذیه شود. در واقع, بیشتر تفاوت پیاده سازی بین رایانه های کند تر و ابر رایانه ها به خاطر طرح سازمان دهی حافظه و ترکیب بندی اجزا است .
قانون Amdahl برای تمام سیستم های موازی صادق است. ابر رایانه ها تلاش زیادی را برای حذف توالی نرم افزاری اعمال کرده و برای شتاب دادن به تنگنا های (bottlenecks) باقی مانده از سخت افزار بهره می گیرند.
چالش های ابر رایانه و فن آوری ها
یک ابر رایانه تولید گرما می کند و باید خنک شود. خنک سازی بیشتر ابر رایانه ها یک مشکل HVAC بزرگ است .
اطلاعات نمی تواند با سرعتی بیشر از سرعت نور بین دو جز یک ابر رایانه جا به جا شود. به همین دلیل، ابر رایانه هایی که چندین متر طول دارند باید دارای زمان پاسخگویی دست کم یک دهم نانو ثانیه باشد. به این خاطر در طرح ابر رایانه ی کری ساخت سیمور کری از کابل های کوتاه ا ستفاده شده بود.
ابر رایانه ها مقادیر زیادی داده را در مدت زمان کوتاهی مصرف و تولید می کنند. برای اطمینان از این که اطلاعات به سرعت منتقل و به درستی ذخیره و باز یابی می شود به کاری بیشتر نیاز است .
فن آوری هایی که برای ابر رایانه ها شکل گرفته اند عبارتند از:
پردازش برداری
خنک سازی به کمک مایع
دسترسی به حافظه نا یکنواخت(NUMA)
لوح های شیاری ( که اولین نمونه ی ان بعد ها RAID نام گرفت)
سیستم فایل موازی
|
تکنیک های پردازش
تکنیک های پردازش برداری اول بار برای ابر رایانه ها توسعه یافت و همچنان در برنامه های کاربردی با کارایی بالامتخصص مورد استفاده قرار می گیرد . تکنیک های پردازش برداری به بازار مجتمع در معماریDSP ودستورهای پردازش SIMD برای رایانه های همه منظور تحلیل یافته است . سیتم عامل سیستم عامل آنها، که اغلب نسخه ای از لینوکس است، با سیستم عامل های دیگر ماشین های کوچکتر تفاوتی ندارند. به هر حال از آنجا که توسعه دهندگان سیستم های عامل منابع برنامه نویسی را محدود کرده اند رابط کاربری ان ها ضعیف تر است. و از این واقعیت منتج می شود که وقتی این رایانه ها که اغلب قیمتی برابر با صد ها هزار دلار دارند به بازار های خیلی کوچک فروخته می شوند بودجه ی R&D آنها اغلب محدود می شود. به طرز جذابی این روندی مداوم در صنعت رایانه بوده است. برنامه نویسی معماری موازی ابر رایانه ها اغلب استفاده از تکنیک های برنامه نویسی خاصی را برای به کار گیری سرعت شان تحمیل می کند .کمپایلر های فرترن تک منظوره سریعتر از کمپایلر های زبان برنامه نویسی C و زبان برنامه نویسی++C کد تولید می کنند بنا بر این فرترن زبان انتخابی برنامه نویسی علمی و بنابر این زبان بیشتر برنامه هایی که در ابر رایانه ها پیاده می شود است. برای بهره گیری از موازی بودن ابر رایانه ها، در خوشه های با اتصال شل از PVM و MPI ودر ماشین های با حافظه مشترک و هماهنگ از OpenMP استفاده می شود . انواع ابر رایانه های همه کاره سه دسته ی اصلی از ابر رایانه های همه کاره وجود دارد: ماشین های مبتنی بر پردازش موازی عملیات های محاسباتی مشترک را در آن واحد بر حجم زیادی از داده انجام شود. رایانه های خوشه ای با کابل کشی کوتاه برای پشتیبانی از تعداد زیادی پردازنده و برای این که حافظه ی آنها بتواند با هم در ارتباط باشد از رابط های مخصوص استفاده می کنند . پردازنده ها و وسایل کابل کشی از ابتدا برای ابر رایانه ها طراحی می شوند.سریعترین ابر رایانه های همه کاره دنیا از این فن آوری استفاده می کنند. خوشه های commodity از تعداد زیادی پی سی های commodity که با شبکه های محلی با پهنای باند زیاد و سرعت عکس العمل کم به هم مرتبطند استفاده می کنند. در سال 2002 قانون مور (Moore) و اقتصاد مقیاس عامل های غالب در طراحی ابر رایانه ها است: در حال حاضر یک رایانه رو میزی جدید از یک ابر رایانه ی 15 ساله قدرتمند تر است، و دست کم برخی از ترفند های طراحی که باعث می شد ابر رایانه های پیشین بهتر از ماشین های رومیزی کنونی کار کنند درون یک commodity pc's جا داده شده اند .از این گذشته , هزینه ی توسعه و تولید تراشه ها باعث می شد تا طراحی تراشه های سنتی برای یک اجرای کوتاه عملا غیر اقتصادی شده وتراشه های تولید انبوه که با داشتن تقاضا های کافی از عهده ی هزینه ی تولید خود بر می آمدند جای آنها را بگیرند . علاوه بر این، بسیاری از مسایلی که توسط ابر رایانه ها انجام می شد به طور ویژه برای موازی سازی ( در اصل، تبدیل کردن به بخش های ریز تر برای این که بتوان در ان واحد بر روی ان ها کار کرد) و به خصوص، موازی سازی نسبتاً زمخت (coarse-grained parallelization) که مقدار اطلاعات مورد نیاز برای انتقال بین واحد های پردازش مستقل از هم را محدود می کند، مناسب است. به همین دلیل برای بسیاری از کار ها می توان " خوشه های" رایانه ای با طرح استاندارد که قابل برنامه نویسی برای کار به صورت یک رایانه ی بزرگ هستند را جایگزین ابر رایانه های سنتی و متداول کرد. بسیاری از این ها از سیستم عامل لینوکس استفاده می کنند، به آنها خوشه های Beowulf گفته می شود.
|
High Performance Linux Clusters
To the outside world, a "supercomputer" appears to be a single system. In fact, it's a cluster of computers that share a local area network and have the ability to work together on a single problem as a team. Many businesses used to consider supercomputing beyond the reach of their budgets, but new Linux applications have made high-performance clusters more affordable than ever. These days, the promise of low-cost supercomputing is one of the main reasons many businesses choose Linux over other operating systems. This new guide covers everything a newcomer to clustering will need to plan, build, and deploy a high-performance Linux cluster. The book focuses on clustering for high-performance computation, although much of its information also applies to clustering for high-availability (failover and disaster recovery). The book discusses the key tools you'll need to get started, including good practices to use while exploring the tools and growing a system. You'll learn about planning, hardware choices, bulk installation of Linux on multiple systems, and other basic considerations. Then, you'll learn about software options that can save you hours--or even weeks--of deployment time. Since a wide variety of options exist in each area of clustering software, the author discusses the pros and cons of the major free software projects and chooses those that are most likely to be helpful to new cluster administrators and programmers. A few of the projects introduced in the book include:
— MPI, the most popular programming library for clusters. This book offers simple but realistic introductory examples along with some pointers for advanced use. — OSCAR and Rocks, two comprehensive installation and administrative systems — openMosix (a convenient tool for distributing jobs), Linux kernel extensions that migrate processes transparently for load balancing — PVFS, one of the parallel filesystems that make clustering I/O easier — C3, a set of commands for administering multiple systems Ganglia, OpenPBS, and cloning tools (Kickstart, SIS and G4U) are also covered. The book looks at cluster installation packages (OSCAR & Rocks) and then considers the core packages individually for greater depth or for folks wishing to do a custom installation. Guidelines for debugging, profiling, performance tuning, and managing jobs from multiple users round out this immensely useful book
کلاستر لینوکس زیر بار
خوب با پیگیری و انجام مراحل شرح داده شده در بخشهای پیشین مقاله کلاسترها، اکنون یک کلاستر آماده به کار دارید که میتوانید قدرت آنرا آزمایش کرده و به نحوه کلی عملکرد کلاسترها پی ببرید.
برای شروع، از روی ایستگاه کاری که بعنوان مانیتور آنرا در نظر گرفتهام، از روی کنسول وارد گره شماره ۱ و گره شماره ۲ میشوم. روی گره شماره ۱ با استفاده از دستور mosmon برنامه مانیتور کلاستر را که میزان بار هر گره را بصورت نمودارهای میلهای نمایش میدهد، اجرا میکنم. روی گره شماره ۲، دستور زیر را در خط فرمان تايپ میکنم:
# for x in 1 2 3 4
do
awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' &
done
دستور فوق، ۴ اسکریپت awk را که شدیدا بار CPU را بالا خواهند برد، بطور همزمان اجرا میکند. به کنسول گره شماره ۱ بازگشته و نمودار بار را زیر نظر میگیرم:

بیچاره گره شماره ۲! نمودار به سقف رسیده است! انتظار میرود پس از چند لحظه پردازشها به گرههای بعدی کلاستر (که ما فقط گره شماره ۱ را داریم) منتقل شوند. بسیار جالب است. پس از چند ثانیه پردازشها به گره شماره ۱ منتقل شده و بار آن به سرعت بالا میرود:

همانطوری که در تصویر بالا مشاهده میکنید، میزان بار گره شماره ۱ به شدت بالا رفته و از بار گره شماره ۲ کاسته میشود. خوب این آزمایش بدی برای حصول اطمینان از کارکرد کلاستر نیست، ولی برای بررسی دقیقتر و گرفتن نتایج عملیتر، نیاز داریم تا تعدادی عملیات واقعی پردازشی را روی کلاستر انجام دهیم. یکی از بهترین عملیات پردازشی که میتواند به خوبی کارایی کلاستر را در بوته آزمایش قرار دهد، عملیات کد کردن فایلهای موسیقی است.
به این منظور، ما دو نرمافزار کد کردن فایلهای موسیقی با فرمت wav را انتخاب کرده و آزمایشات را به کمک آنها انجام خواهیم داد.
نصب نرمافزارهای لازم
نرمافزارهای مورد نیاز را تنها در گرهای که مایلید آزمایشات را از طریق آن انجام دهید نصب نمایید و نصب آن در سایر گرهها ضروری نیست. این قابلیت کلاستر سازی نامحسوس OpenMosix است که باعث میشود تا ما نیازی به نصب این نرمافزارها و قرار دادن فایلهای هدف روی یک اشتراک قابل دسترس در تمام شبکه نداشته باشیم.
نرمافزاری که ما از آن برای آزمایشات خود استفاده خواهیم کرد، نرمافزار کدینگ فایلهای صوتی به فرمت MP3 به نام Lame میباشد که یکی از سریعترین کد کنندههای MP3 در جهان بوده و یک نرمافزار بازمتن است. این نرمافزار را از لینک زیر دانلود نمایید. ضمنا حجم آن کمی بیشتر از ۱ مگابایت میباشد:
http://unc.dl.sourceforge.net/sourceforge/lame/lame-3.93.1.tar.gz
پس از دانلود بسته کد منبع، جهت نصب نرمافزار دستورات زیر را در خط فرمان اجرا نمایید:
# gunzip lame-3.93.1.tar.gz
# tar -xf lame-3.93.1.tar
# cd lame-3.93.1
# ./configure
# make
# make install
نرمافزار Lame پس از چند دقیقه کامپایل و به راحتی نصب میشود. من نرمافزار را روی هر دو گره کلاستر نصب کردهام، چون میخواهم دقیقا نحوه عملکرد آنرا در شرایط مختلف بررسی کنم. مورد دیگری که به آن نیاز است، تعدادی فایل wav است که باید آنها را تهیه کنید. من ۵ عدد فایل wav برای انجام آزمایشات تهیه کردهام که حجم آنها حدود ۱۹۶ مگابایت میباشد (در حقیقت فایلهای MP3 بودهاند که توسط XMMS به فرمت wav برگردانده شدند).
من در دایرکتوری root هریک از گرهها یک دایرکتوری به نام wav ایجاد کرده و فایلهای wav را در آنجا قرار دادم. در مرحله نخست آزمایش، هر یک از گرهها بصورت فردی فایلهای MP3 را کد میکنند. برای انجام آزمایش، دستور زیر را در خط فرمان وارد میکنم:
# cd /root/wav
# for x in *.wav
do
lame $x
done
در حقیت یک حلقه عملیات تبدیل فایلها را یک به یک انجام میدهد. نتیجه حاصل مطابق جدول زیر میباشد:
|
نام گره |
زمان انجام |
|
Cyber |
18:46 s |
|
Debian |
5:01 s |
خوب نتیجه قابل انتظار است، ماشین پنتیوم ۸۰۰ مگاهرتزی باید هم سریعتر از سلرون ۳۳۳ مگاهرتزی باشد. پس از این مرحله OpenMosix را اجرا کرده و کلاستر را زیر بار میگذارم. دستور عملیات به صورت زیر است:
# cd /root/wav
# for x in *.wav
do
lame $x &
done
با اضافه شدن کاراکتر & تمامی ۵ عملیات به صورت همزمان و در پس زمینه اجرا خواهند شد. اجرای همزمان ۵ پروسه باعث مهاجرت پروسهها به گره دیگر کلاستر و وارد شدن کلاستر در عملیات میگردد. خوب همانطور که انتظار میرفت، کلاستر واقعا کار میکند! بسیار هیجان انگیز است. نتیجه کار مطابق جدول زیر میباشد:
|
نام گره آغاز کننده پروسهها |
زمان انجام |
|
Cyber |
4:11 s |
|
Debian |
3:36 s |
همانطور که میبینید، نتیجه عملیات بسیار جالب است. زمان ۵ دقیقهای عملیات در دستگاه قویتر به سه دقیقه و نیم و زمان ۱۸ دقیقه و ۴۶ ثانیهای دستگاه ضعیفتر به چهار دقیقه و ۱۱ ثانیه کاهش یافته است!
برپا سازی کلاسترهای OpenMosix
جهت برپا سازی یک کلاستر، شما به حداقل دو دستگاه مبتنی بر لینوکس که به یک شبکه داخلی متصل بوده و قادر به کامپایل کردن و اجرای هستههای سری 2.4 باشند، نیاز دارید. همچنین شبکه شما باید دارای حداقل سرعت ۱۰۰ مگابیت باشد. این سرعت به شما سرعت بسیار خوبی را اعطا خواهد نمود. سرعت اترنت استاندارد یعنی ۱۰ مگابیت به شما سرعت چندان جالب توجهی نخواهد داد. البته در صورتی که شبکه شما از این نوع است و مایل هستید تا فقط OpenMosix را تجربه نمایید، پاسخگو خواهد بود. استفاده از اترنتهای گیگابیت مفید بوده ولی انتخابی است. البته ممکن است واقعا به آن نیاز نداشته باشید و اترنت ۱۰۰ مگابیت امور شما را به خوبی انجام دهد.
اتصال گرههای کلاستر به یک سوئیچ پرسرعت سیستمهای شما را قادر خواهد ساخت تا در حالت Full Duplex عمل نموده و پهنای باند شما دو برابر گردد. همچنین میتوانید در یک کلاستر ۲ یا ۳ گرهای از سیم کشی مخصوص جهت اتصال مستقیم گرهها به هم استفاده نمایید.
داشتن فضای Swap کافی قویا توصیه میشود. به این صورت شما قادر خواهید بود تا گرهها را بصورت دینامیک از کلاستر خارج نمایید بدون اینکه با کمبود حافظه مواجه شوید. این موضوع نیز انتخابی بوده و ممکن است در شرایط خاصی که کلاستر تحت فشار کاری بالایی قرار دارد، به شما کمک کند.
در کنار مطالب بالا، باز هم اضافه میکنم که امکان ایجاد یک کلاستر مبتنی بر فقط دو دستگاه لینوکس و یک اترنت استاندارد نیز وجود دارد.
لازم نیست که تمام کامپیوترهایی که در یک کلاستر قرار میگیرند قوی باشند و یا مهم نیست که دارای سختافزارهای متنوعی باشند. هر قدرت پردازشی میتواند به سرعت جمعی کمک کند!
شروع کار
فرایند برپاسازی کلاسترهای لینوکس بسیار ساده میباشد. ابتدا باید هستههایی که OpenMosix روی آنها فعال شدهاند را روی گرههای کلاسترها نصب کرده و سپس ابزارهای کاربری را روی همه آنها نصب کرده و یک تنظیم کوچک در یک فایل پیکربندی انجام دهیم.
به عنوان نخستین مرحله از کار، باید ابزارهای نرمافزاری لازم را فراهم آورید. نخستین چیزی که به آن نیاز دارید، کد منبع هستهای است که مایلید روی آن کار کنید. کد منبع هسته خود را میتوانید از http://kernel.org دریافت نمایید. من برای اجرای پروژه، از هسته 2.4.23 استفاده کردهام. در قدم بعدی باید وصلههای هسته OpenMosix و سپس ابزارهای نرمافزاری OpenMosix را دریافت نمایید. برای دانلود وصلههای هسته OpenMosix میتوانید به سایت رسمی آن در آدرس http://openmosix.sf.net یا http://openmosix.org مراجعه کنید و یا از لینکهای زیر برای هستههای مورد نظرتان استفاده کنید:
هسته 2.4.21:http://tab.tuxfamily.org/download/openmosix/releases/patch-2.4.21-om-20030825.bz2
هسته 2.4.22:http://tab.tuxfamily.org/download/openmosix/releases/patch-2.4.22-om-20031215.bz2
هسته 2.4.23:http://tab.tuxfamily.org/download/openmosix/stable/patch-2.4.23-om-20031215.bz2
هسته 2.6.0 (آزمایشی):http://tab.tuxfamily.org/download/openmosix/unstable/patch-2.6.0-om-0.20031202.1.bz2
ابزارهای نرمافزاری:http://umn.dl.sourceforge.net/sourceforge/openmosix/openmosix-tools-0.3.5.tar.bz2
فراموش نکنید که همیشه میتوانید جدیدترین نسخههای وصله هسته و ابزارهای نرمافزاری OpenMosix را از سایت رسمی آن دریافت نمایید. پس از اتمام دریافت تمامی اقلام مورد نیاز (تنها کد منبع هسته دارای حجم زیادی است و بقیه ابزارها همگی بین ۲۰۰ تا ۳۰۰ کیلوبایت ظرفیت دارند!) باید تجهیز گرههای کلاستر را شروع کنید. ابتدا لازم است در شبکه محلی خود کامپیوترهایی را که مایلید به عنوان گرههای کلاستر استفاده کنید، تعیین نمایید. من در دفتر کار خود دو دستگاه را برای این منظور انتخاب کردم. (تصویر زیر)

همانطوری که قبلا اشاره کردم، لازم نیست که گرههای کلاستر حتما قویترین ایستگاههای کاری روی شبکه باشند. دستگاههای انتخابی من دارای مشخصات زیر هستند:
Node No.1 : Debian (LAN SERVER)
CPU : P-III 800 MHz
RAM: 128 MB SD-RAM
NIC : SIS 100 Mbps
HDD: 2x40GB
Distro : Debian GNU/Linux 3.0 (woody)
Kernel: 2.4.23 (will be 2.4.23-om)
Node No.2 : Cyber (Workstation)
CPU : Celeron 333 MHz
RAM: 160 MB SD-RAM
NIC : D-Link 100 Mbps
HDD: 1x6.4GB
Distro : Libranet GNU/Linux 2.8.1
Kernel: 2.4.21 (will be 2.4.23-om)
پس از تعیین گرههای کلاستر، شروع به نصب نرمافزارهای لازم برای این کار میکنیم. این عملیات را برای تمام گرهها باید تکرار کرد. برای شروع هسته OpenMosix را نصب میکنیم. ابتدا کد منبع هسته را در آدرس usr/src کپی کرده و آنرا با استفاده از دستورهای زیر باز میکنیم:
# cd /usr/src
# bzip2 -d linux-2.4.23.tar.bz2
# tar -xf linux-2.4.23.tar
# mv linux linux.old
# ln -s linux-2.4.23 linux
سپس وصله هسته را در کد منبع خود اعمال میکنیم:
# cd linux
# cat /home/alan/patch-2.4.23-om-20031215.bz2 | bzip2 -d | patch -p1 -l
کد منبع هسته در چند ثانیه وصله خواهد شد. اکنون میتوانید طبق روالهای گذشته هسته را پیکربندی و کامپایل نمایید. فقط اطمینان حاصل کنید که گزینههای زیر را در بخش OpenMosix پیکربندی هسته انتخاب کنید:
[*] openMOSIX process migration support
[*] Stricter security on openMOSIX ports
[*] openMOSIX File-System
[*] Poll/Select exceptions on pipes
برای شروع پیکربندی هسته، دستور زیر را وارد نمایید:
# cd /usr/src/linux
# make menuconfig
پس از اتمام پیکربندی و ذخیره تغییرات، برای کامپایل شدن هسته دستورات زیر را وارد نمایید:
# make-kpkg clean
# make-kpkg --revision=8:MOSIX01 kernel_image
و یا خیلی سادهتر:
# make-kpkg clean
# make-kpkg kernel_image
این نحو عملیات کامپایل هسته به یک بسته دبیان ختم خواهد شد که قادرید آنرا به راحتی روی سیستم نصب نمایید. مدت زمان انجام عملیات کامپایل هسته به سرعت پردازنده سیستم بستگی دارد. پس از اتمام عملیات کامپایل هسته، بستهای را که ایجاد شده است، نصب میکنیم:
# dpkg -i kernel_image-2.4.23-om_MOSIX01_i386.deb
هنگام نصب این بسته، مدیر بوت Lilo به طور خودکار پیکربندی خواهد شد. در صورتی که از گراب استفاده میکنید، باید تغییرات را بطور دستی در فایل پیکربندی آن اعمال نمایید. برای این منظور باید فایل boot/grub/menu.lst را ویرایش کرده و خطوط زیر را اضافه نمایید. البته مقادیری مانند پارتیشنهای قابل بوت و سایر آدرسها ممکن است روی سیستمهای شما متفاوت باشد که آنها را باید تغییر دهید:
title Libranet GNU/Linux, kernel 2.4.23 OpenMosix
root (hd0,1)
kernel /vmlinuz-2.4.23-om root=/dev/hda3 ro hdb=scsi
savedefault
boot
پس از اتمام نصب هستهها، اکنون باید ابزارهای نرمافزاری OpenMosix را نصب نماییم. برای این منظور، فایلی را که دانلود کرده بودیم، باز کرده و کامپایل و نصب میکنیم:
# bzip2 -d openmosix-tools-0.3.5.tar.bz2
# tar -xf openmosix-tools-0.3.5.tar
# cd openmosix-tools-0.3.5
# ./configure --with-kerneldir=/usr/src/linux-2.4.23/
# make
# make install
کامپایل و نصب ابزارهای نرمافزاری مدت زیادی طول نمیکشد (۱-۲ دقیقه یا کمتر روی پردازندههای قویتر). پس از اتمام آن، باید در یکی از فایلهای پیکربندی مربوطه لیست گرههای کلاستر را تعریف کرده و سپس سرویس OpenMosix را طوری تعریف کنیم تا هر بار بصورت خودکار اجرا شود. به این منظور ابتدا دستور:
# vi /etc/openmosix.map
اجرا کرده و باید مشخصات گرهها را بصورت <شماره گره> <آدرس IP گره> <تعداد> وارد نماییم:
1 192.168.0.1 1
1 192.168.0.7 1
آرگومان شماره هنگامی مفید است که بخواهیم چند آدرس IP پشت سرهم را تعریف نماییم. مثلا در صورتی که ۱۰ گره داشته باشیم که آدرس آنها از ۲۵ شروع میشود، وارد خواهیم کرد:
1 192.168.0.25 10
و عملیات تایپ ما را بسیار کمتر خواهد کرد. این فایل پیکربندی روی تمام گرهها یکسان است. بنابراین میتوانید آنر روی تمام گرهها کپی کنید. پس از انجام این کار به راهاندازی خودکار OpenMosix میپردازیم. ابتدا باید تعیین کنید که سطح اجرایی پیشگزیده هر یک از گرهها کدام است. به این منظور دستور زیر را وارد نمایید:
# runlevel
N 2
خوب سطح اجرایی پیشگزیده ما ۲ است (سیستمهای مبتنی بر دبیان). بنابراین وارد دایرکتوری etc/rc2.d میشویم. در صورتی که سطح اجرایی شما متفاوت شد، این عملیات را با دایرکتوری مربوط به آن که میتواند rc3.d، rc4.d و... باشد انجام دهید:
# cd /etc/rc2.d
# ln -s ../init.d/openmosix S20openmosix
در اینجا نمیخواهم فلسفه دستورات بالا را توضیح دهم زیرا از مسیر اصلی دور خواهیم شد. پس از اتمام عملیات بالا و بوت سیستمها، سیستمهایی داریم که مبتنی بر OpenMosix بوده و سرویس آن نیز بطور خودکار اجرا میشود. برای بکار افتادن کلاستر، گرهها را بوت میکنیم. گره شماره ۱ با موفقیت OpenMosix را اجرا میکند، ولی گره شماره ۲ با پیغام Invalid Map File قادر به اتصال به کلاستر نیست. پس مقداری جستجو و بررسی فایل پیکربندی، متوجه میشوم که در فایل etc/hosts یک ورودی به صورت زیر موجود است:
127.0.0.1 cyber
آنرا تبدیل به ورودی زیر میکنم:
192.168.0.7 cyber
مجددا سرویس OpenMosix را با دستور etc/init.d/openmosix restart اجرا میکنم. اکنون بدون مشکل اجرا میشود. برای حصول اطمینان از شناخته شدن تمام گرههای کلاستر، با دستور زیر آنها را آزمایش میکنم:
# mosctl status 1
up.
# mosctl status 2
up.
بسیار عالی! هر دو گره کلاستر در حال اجرا هستند. اکنون کلاستر ما آماده است. با استفاده از دستور mosmon میتوانید وضعیت کلی کلاستر را بررسی نمایید. اینکه کدام سیستمها دارای چه مقدار بار فعال هستند و با گذاشتن بار روی یکی از آنها چه اتفاقی خواهد افتاد و ...
مفاهیم کلاسترها و OpenMosix
پیشدرآمد
مبحث کلاسترها در لینوکس یکی از جذابترین و جالبترین مباحث برای افراد علاقهمند به پردازشهای موازی است. بدلیل علاقه بسیار زیاد خودم به این مبحث تصمیم به تهیه مقالهای در این مورد گرفتم و بهتر دیدم یکی از بهترین مقالات موجود را ترجمه کرده و تجربههای خودم را نیز به آن اضافه کنم. مقاله حاضر برگرفته از نوشتههای دانیل رابینز (Daniel Robbins) میباشد. این نوشتهها را میتوانید از این نشانی دریافت نمایید. دانیل رابینز طراح و خالق لینوکس Gentoo میباشد. همانطور که اشاره کردم، این یک ترجمه تنها نیست. من خود تمام آنرا عملا انجام داده و بخشهای عملی راهنمای فوق را کاملا تغییر داده و روش آسانتری را برای اجرای کلاستر پیشنهاد کردهام. در بخش نخست این مقاله که اکنون در حال خواندن آن هستید، با مفاهیم کلاسترهای لینوکس تا حدودی آشنا خواهید شد. در بخش بعدی به طور عملی اقدام به برپاسازی یک کلاستر لینوکس خواهیم کرد.
کلاسترها چه هستند؟
به طور عمومی هنگامی که صحبت از کلاسترها میشود، مقصود فناوریهایی است که از طریق آن کامپیوترهای مختلف بتوانند با هم و با اشتراک قدرت پردازش هم، بتوانند امور پردازشی را که به آنها محول شده است، انجام دهند. این امور پردازشی همه چیز میتواند باشد. از پردازشهای سنگین علمی تا تبدیل فایلهای موسیقی و یا رندر کردن جلوههای ویژه فیلمهای سینمایی. برای مثال، تمامی جلوههای ویژه فیلمهای ارباب حلقهها توسط کلاسترهای لینوکس رندر و پردازش شدهاند.
انواع مختلفی از فناوریهای کلاستر سازی برای سیستمعامل لینوکس وجود دارند. یکی از شناخته شده ترین آنها کلاستر Beowulf است. این کلاستر حاوی چندین ماشین است که توسط یک شبکه محلی پرسرعت به هم متصل شدهاند. برای استفاده از این سیستمهای کلاستر، برنامههای کاربردی باید مجددا برای استفاده از آن با استفاده از کتابخانههای کلاستر سازی نوشته شوند. عمومیترین کتابخانههای کلاستر سازی عبارتند از PVM و MPI. هر دوی این کتابخانهها بسیار عالی کار میکنند. با استفاده این کتابخانهها، برنامه نویسان قادر به نوشتن برنامههایی هستند که از منابع روی کلاستر همانند منابع روی یک کامپیوتر، بهره گیری نمایند.برای بسیاری از برنامههای کاربردی، PVM و MPI امکان افزایش خطی قدرت پردازش کلاسترها را با توجه به تعداد ماشینهای روی آن فراهم مینمایند.
PVM و MPI به درد همه نمیخورد!
با اینکه کلاسترهای Beowulf بسیار قدرتمند هستند، ولی به درد همه کس نمیخورند! بزرگترین اشکال آنها نیاز به نرمافزارهای خاص میباشد که با استفاده از PVM و MPI نوشته شده باشند تا بتوانند از مزایای کلاستر استفاده کنند. البته این برای مراکز علمی و تحقیقاتی که برنامههای کاربردی خاص خود را از ابتدا مینویسند، اشکال مهمی نیست. آنها به راحتی قادرند تا از MPI و PVM استفاده کنند.
حقیقتا درصد افراد و موسساتی که برنامههای کاربردی خود را از ابتدا مینویسند بسیار پایین است. برای کسانی که مایل هستند تا یک کلاستر بنا کرده و از مزایای آن در اجرای برنامههای کاربردی عادی استفاده کنند، این یک مسئله بزرگ است! برنامههای کاربردی این دسته از موسسات بدون استفاده از کتابخانههای کلاستر سازی نوشته شدهاند، بنابراین این گونه موسسات قادر نیستند تا از مزایای کلاسترها بهرهگیری نمایند.
آیا جالب نیست که یک فناوری وجود داشته باشد تا بتوانید با استفاده از آن از مزایای کلاسترهای لینوکس استفاده کنید، بدون آنکه نیاز داشته باشید تا برنامههای کاربردی خود را از ابتدا نوشته و یا حتی آنها را مجددا کامپایل نمایید؟ خوشبختانه چنین فناوری وجود دارد و نام آن OpenMosix است!
ورود به OpenMosix
OpenMosix قابلیتهای کلاستر سازی را به هسته لینوکس اضافه میکند، بنابراین هر پروسه استاندارد لینوکس قادر خواهد بود تا از مزایای منابع کلاستر استفاده نماید. با استفاده از تکنیکهای موازنه بار تطبیقی (Adaptive Load Balancing) پردازشهای در حال اجرا بر روی یک گره (node) از کلاستر، قادرند تا بطور نامحسوس به یک گره دیگر از کلاستر مهاجرت کرده و بتوانند سریعتر اجرا شوند. بدلیل اینکه OpenMosix بطور کاملا نامحسوس (Transparent) عمل میکند، پردازشهایی که از یک گره به گره دیگر مهاجرت میکنند، حتی نمیدانند (لازم هم نیست بدانند) که در یک ماشین دیگر در حال اجرا هستند!
نامحسوس بودن OpenMosix به این معنی است که برای استفاده از مزایای موازنه بار تطبیقی آن، نیازی به برنامه نویسی خاصی نیست. در حقیقت، یک نصب پیشگزیده OpenMosix به طور خودکار پردازشها را به بهترین گره منتقل خواهد کرد. این قابلیت OpenMosix را تبدیل به یک راهحل کلاستر سازی میکند که میتواند برای بخش عظیمی از برنامهها مفید باشد.
OpenMosix دقیقا چکار میکند؟
بزرگترین کاری که OpenMosix انجام میدهد، تبدیل دستهای از ماشینهای لینوکس به یک سیستم بزرگ مجازی چند پردازندهای متقارن (SMP=Symmetric MultiProcessor) است. هرچند نحوه عملکرد آن با سیستمهای SMP واقعی مقداری تفاوت دارد. نخست اینکه سیستمهای واقعی SMP که مبتنی بر ۲ یا چند پردازنده هستند، میتوانند اطلاعات را با سرعت بسیار بالا تبادل نمایند، در صورتی که در OpenMosix سرعت ارتباط بین گرههای کلاستر، محدود به سرعت شبکه محلی است که گرهها در آن قرار دارند. استفاده از ارتباطات اترنت گیگابیت و یا سایر انواع پر سرعت اترنت باعث خواهد شد تا تبادل دادهها با سرعت بالاتری صورت گرفته و کارایی کلاستر بالاتر باشد.
البته OpenMosix دارای مزایایی نسبت به سیستمهای چند پردازندهای سنتی داراست. با استفاده از OpenMosix شما قادر به ایجاد کلاسترهایی حاوی دها و حتی صدها کامپیوتر با سختافزار ارزان هستید در حالی که سیستمهای SMP که حاوی تعداد زیادی پردازنده باشند، میتوانند بسیار گرانقیمت باشند. برای بسیاری از برنامههای کاربردی، OpenMosix نسبت به سیستمهای SMP یا Mainframe، حرف بیشتری برای گفتن دارد. البته دلیلی وجود ندارد که شما نتوانید OpenMosix را بر روی سیستمهای قدرتمند چند پردازندهای اجرا نمایید. حتی این امکان وجود دارد تا OpenMosix را به همراه برنامههای کاربردی که با MPI یا PVM توسعه یافتهاند، اجرا نمایید تا سرعت کلاستر خود را بهینه نمایید.
همانند سیستمهای SMP سنتی، OpenMosix قادر نیست تا یک پروسه را روی چند پردازنده فیزیکی اجرا نماید. واضحتر اینکه نباید انتظار داشته باشید تا اجرای برنامهای مانند مرورگر موزیلا روی یک کلاستر سریعتر از یک سیستم تک پردازندهای باشد، مگر اینکه اجرا پروسه آنرا به یک گره سریعتر روی کلاستر منتقل نمایید. بعلاوه در حال حاضر OpenMosix امکان جداسازی رشتههای متعدد به هم پیوسته را از یکدیگر فراهم نمیکند.
OpenMosix قادر است تا پروسههای استاندارد لینوکس را بین گرههای کلاستر بدون مشکل مهاجرت دهد. در صورتی که یک برنامه کاربردی تعداد زیادی زیر پروسه داشته باشد، آنگاه OpenMosix قادر است تا هر یک از آنها را به یک گره مناسب در کلاستر منتقل کند. شما میتوانید از این قابلیت حتی در برنامههای کاربردی که دارای زیر پروسه نیستند نیز استفاده کنید. برای مثال، در صورتی که نیاز دارید تا تعدادی فایل موسیقی را از فرمت wav به mp3 تبدیل نمایید، تبدیل هر فایل یک پروسه خواهد بود. شما میتوانید تمام این پروسهها را یکجا اجرا نمایید. در آنصورت عمل پردازش بین کلاستر پخش خواهد شد (بجای اینکه عملیات تبدیل فایلها را یک به یک انجام دهید). در صورتی که شما ۱۲ فایل موسیقی و ۱۲ گره همسان داشته باشید، عملیات تبدیل ۱۲ بار سریعتر انجام خواهد شد.
Mosix در برابر OpenMosix
پروژه OpenMosix جدیدترین شعبه پروژه Mosix میباشد که یکی از اهداف آن فراهم کردن کلاستر سازی نامحسوس روی لینوکس است. پس چرا ما از OpenMosix استفاده کنیم؟ دلایل خوبی برای این امر وجود دارد. در اواخر سال ۲۰۰۱ رهبری پروژه Mosix تصمیم به انتشار نسخههای جدیدی از Mosix تحت مجوزهای غیر GPL گرفت (کدهایی که قبلا GPL بودند). بنابراین نسخههای جدید Mosix دیگر نرمافزار آزاد نبودند و حقوق کاربران نیز در آنها نامشخص بود و هیچ مانعی برای نویسنده Mosix وجود نداشت تا از کاربران درخواست پرداخت وجه نماید.
این تغییر مجوز باعث ایجاد نگرانیهایی در میان کاربران Mosix شد و برداشته شدن کدهای منبع و حذف لیستهای پستی Mosix بدون توضیح موجه، این نگرانی را تشدید نمود. خوشبختانه این کاربران تنها کسانی نبودند که در باره این تغییرات جدید نگران بودند. موشه بار (Moshe Bar) یکی از مدیران پروژه Mosix با این تغییر مجوز از GPL موافق نبود. بنابراین وی پروژه OpenMosix را شروع کرد تا این اطمبنان حاصل شود که ارائه نسخه آزاد و رایگان Mosix به عموم مردم ادامه پیدا خواهد کرد. سایت رسمی پروژه OpenMosix در آدرس http://openmosix.sf.net یا http://openmosix.org قرار دارد.
پس از آغاز این پروژه، تعداد زیادی از کاربران Mosix به OpenMosix روی آوردند. سیاست توسعه باز موشه باعث شد تا توسعه OpenMosix سرعت بیشتری بگیرد. در حال حاصر ۱۴ نفر بطور فعال روی پروژه OpenMosix کار میکنند در حالی که تعداد افراد پروژه Mosix تنها ۴ نفر است. در حال حاضر تعداد زیادی رفع اشکال، بهینه سازی سرعت و بهینه سازی در کدهای OpenMosix صورت گرفته است و تعدادی قابلیت جدید و بهینه سازی مجدد در سرعت نیز بزودی ارائه خواهند شد. در حقیت جدا شدن پروژه OpenMosix از Mosix باعث ارائه راهحلهای بهتری برای کلاستر سازی تحت سیستمعامل لینوکس فراهم نموده است.
|
نخستين مركز ابرپردازش استان اصفهان در دانشگاه صنعتي آغاز به كار كرد رييس مركز خدمات محاسبات پيشرفته دانشگاه صنعتي اصفهان از آغاز به كار نخستين مركز ابرپردازش استان اصفهان در اين دانشگاه خبرداد.
|
در صنایع و دانشگاهها برای حل مسائل شبیه سازی، مدل سازی، طراحی و غیره نیاز به انجام محاسبات کامپیوتری بسیار وقتگیری میباشد که در عمل طولانی شدن زمان، حل مساله را غیرممکن ویا بسیار مشکل میکند. در واقع باید گفت که در بسیاری از موارد، نیازهای محاسباتی برای حل مسائل و طراحی سیستم های واقعی فراتر از توانائی کامپیوترهای معمولی که در دسترس همگان قرار دارد میباشد. به ناچار طراحان و کاربران به سوی استفاده از ابرکامپیوترها سوق پیدا میکنند. همانطورکه میدانید ابرکامپیوترها، کامپیوترهای بسیار گران قیمتی میباشند که پرداخت هزینه های چندمیلیون دلاری آنها خارج از توانائی بسیاری از موسسات حتی درسطح بین المللی میباشد. علاوه براین، ابرکامپیوترها به عنوان یک سلاح استراتژیک محسوب شده و محدودیتها و نظارتهای شدیدی در فروش و صادرات آنها اعمال می گردد.
راه حل این مشکل اساسی چه چیزی می تواند باشد؟ آیا واقعا می توان به این مشکل فائق آمد؟ مسلما وجود جواب مثبتی برای این سوال می تواند بسیار ارزشمند باشد و موسسات ما را قادر به رقابت با بزرگترین موسسات بینالمللی سازد. خوشبختانه باید گفت جواب مثبتی برای این مساله وجود دارد. با استفاده از ایده ی موازی کردن تعداد زیادی کامپیوتر معمولی می توان به کامپیوترهائی بسیار قدرتمند دست یافت. امروزه استفاده از این ایده در ساخت ابرکامپیوترها رایج گردیده است، بطوریکه درحال حاضر ابرکامپیوترهای ساخته شده به این روش در میان 10 ابرکامپیوتر برتر جهان میباشند.
این محصول جدید که Blue Gene/P نام گرفته است، سه برابر از پرقدرترین ابرکامپیوتر موجود با نام BlueGene/L که پیشتر توسط شرکت IBM ساخته شده بود، سریعتر است.
این ابرکامپیوتر جدید قادر است محاسبات را با سرعت پتافلاپ(petaflop) انجام دهد. بر این اساس، Blue Gene/P میتواند هر هزار محاسبه را تنها ظرف یک ثانیه انجام دهد.
طبق گفتههای شرکت IBM، این ابرکامپیوتر جدید 100 هزار بار از پرتوانترین کامپیوترهای شخصی موجود سریعتر است.
دولت آمریکا که این ابرکامپیوتر را از شرکت IBM خریداری کرده است قصد دارد اواخر سال جاری آن را در آزمایشگاه ملی آرگون وابسته به وزارت انرژی این کشور نصب کند.
قرار است از این دستگاه فوق سریع در محاسبات پیچیده و شبیهسازیهای رشتههای مختلف علمی، از فیزیک گرفته تا نانوتکنولوژی مورد استفاده قرار گیرد.
Blue Gene/L که هماکنون به عنوان سریعترین ابرکامپیوتر دنیا مورد استفاده قرار میگیرد، در آزمایشگاه ملی Lawrence Livermore در ایالت کالیفرنیای آمریکا واقع شده است.
ابر رایانه وسیله ای برای تبدیل مسایل محاسبه ای به مسایل ورودی و خروجی است.
ابر رایانهرایانه ای است که در زمان معرفی از نظر ظرفیت پردازش و به خصوص سرعت محاسبه ازدیگرماشین ها قوی تر باشد. اولین ابر رایانه ها در دهه ی 1960به طور عمده در موسسهاطلاعات کنترل (CDC) توسط سیمورکری «Seymour Cray» طراحی شد. کری تا دهه ی 1970زمانی که برای تاسیس شرکت خود پژوهشکده کری, از آن جدا شد آن را هدایت می کرد. کریبعدها با طرح های جدید خود بازار ابر رایانه را در دست گرفت و تا 25 سال 1965تا 1990 بی رقیب ماند. در دهه ی 1980به موازات تولید یک دهه قبل تر کامپیوتر کوچكها شمار زیادی از رقیبان کوچکتر وارد بازار شدند اما بسیاری از آنها در" رکود بازارابر رایانه ها" اواسط دهه ی 1990 ناپدید شدند. امروزه ابر رایانه ها طرح های یکبار تولید شونده هستند که توسط شرکت های "سنتی" مانند IBM و HP طراحی می شوند. اینشرکت ها بسیاری از شرکت های دهه ی 1980 را برای استفاده از تجاربشان خریداری کردند،هر چند در طراحی ابر رایانه ها موسسه ی کری متخصص تر است .
معنای کلمه یابر رایانه تا حدی متغیر است , و ابر رایانه های امروزی فردا دیگر کاربردی نخواهندداشت، همانگونه که از کولاسوس (Colossus)، اولین رایانه ی الکترونیکی برنامه داررقمی دنیا، که طی جنگ جهانی دوم رمز های آلمانی ها را می شکست) پیدا است. ماشین هایاولیه ی سی دی سی (CDC) صرفاً پردازنده های منفرد پر سرعتی بودند که تا ده برابرسریع تر از سریع ترین ماشین هایی که توسط دیگر شرکت ها معرفی شده بودند کار میکردند. در دهه ی 1970 بیشتر ابر رایانه ها برای استفاده از پردازنده ی برداری طراحیمی شدند و بسیاری از بازیگر های تازه کار برای ورود به بازار پردازنده هایی از ایننوع را با قیمت ارزان تر عرضه می کردند. در دهه های 1980و 1990 پردازنده های برداریجای خود را به سیستم های پردازش موازی فشرده با هزاران سی پی یو (CPU) ساده ای دادکه برخی از آنها واحد های غیر مرسوم و برخی طرح های متداول و سنتی بودند. امروزهطرح های موازی بر پایه ی ریز پردازنده های RISC " غیر مرسوم" مانند PowerPC یا PA_RISC قرار دارند.
ابزار های نرم افزاری
ابزار های نرم افزار یپردازش توزیعی، API های استاندارد از جمله MPI و PVM و راه حل های نرم افزاری متکیبر منبع باز مانند Beowulf و openMosix، که کار ساخت نوعی از " ابر رایانه هایمجازی" با استفاده از مجموعه های ایستگاه کار ها و خدمتگذار های عادی را تسهیلبخشید، را شامل می شود. فن آوری هایی مانند Rendezvous راه تولید خوشه های رایانههای ویژه را هموار ساخت. یک نمونه، تابع تفسیر توزیعی در برنامه کاربردیترکیبیApple's Shake ست. رایانه هایی که از نرم افزار Shake استفاده می کنند کافیاست فقط در شبکه در مجاورت یک دیگر باشند تا به طور خود کار منابع همدیگر را پیدا ومورد استفاده قرار دهند. در حالی که هنوز هیچ کس خوشه رایانه ی ویژه ای ای بهتر ازابر رایانه های سال گذشته نساخته است فاصله ی بین رایانه های رومیزی، یا حتی لپ تاپها و ابر رایانه ها در حال ناپدید شدن است و این احتمال وجود دارد که این روند باافزایش پشتیبانی توکار برای همسانی(parallelism) و پردازش توزیعی در سیستم عامل هایرایانه های رومیزی تداوم یابد. یک زبان برنامه نویسی آسان برای ابر رایانه ها مبحثتحقیقاتی باز و وسیعی را در علم رایانه به جا ی می گذارد .
کاربرد ها
ابر رایانه ها برای کارهایی که به محاسبات زیاد و دقیق نیازمند است به کار میرود از جمله: پیش بینی وضع هوا , تحقیقات آب و هوایی ( که شامل گرم شدن جهانی میشود)، نمونه سازی مولکولی (محاسبه ی ساختار ها و خصوصیات ترکیب های شیمیایی، درشتمولکول های زیستی، بسپار ها, و بلور ها، شبیه
طراحی
ابر رایانه ها به دلیل به کار گیری طرح های ابتکاری و جدید با سرعتی بیشتر از رایانه های متداول کار می کنند. این طرح ها ان ها را قادر می سازد بسیاری کارها را با وجود نیاز به برسی فنی جزییات بغرنج به صورت موازی انجام دهند.ان ها بیشتر برای انجام گونه های خاصی از محاسبات تخصص دارند و در برابر بیشتر کارهای محاسباتی عادی عملکرد ضعیفی از خود نشان می دهند. سازمان دهی حافظه این رایانه ها به دقت تنظیم شده است تا در تمام زمان ها پردازنده با داده ها و دستور العمل ها تغذیه شود. در واقع, بیشتر تفاوت پیاده سازی بین رایانه های کند تر و ابر رایانه ها به خاطر طرح سازمان دهی حافظه و ترکیب بندی اجزا است.
XPipe is an approach to manageable, scaleable, robust XML processing based on the assembly line principle, common in many areas of manufacturing.
XPipe is a philosophy and a set of open-source software that implements in philosophy. The idea is that XPipe become the reference implementation of the architecture and also serve as a focal point for XPipe experimentation and discussion.
The XPipe project was instigated by (and is sponsored by) Propylon to promote the assembly line approach to XML processing in the industry.
Propylon's engineering team, lead by XML/SGML "lifer", Sean McGrath have been using this approach very sucessfully for many years and feel it is time it was more widely known and nurtured. (Waaay back in 1995, Propylon (or Digitome as it was known then) where developing solutions based on the pipeline approach, known as IDM. The IDM approach of "transformation decomposition" was the subject of a paper given at SGML '95 called "SGML Transformation: The IDM approach"
Propylon have a consulting/services team that build XML processing solutions for clients. Propylon are developing a suite of commercial offerings based on the assembly line approach to XML processing. The PropelX line of products will bring the XPipe approach to leading commercial app server/portal server, integration server and transformation server platforms.
برای کسب اطلاعات بیشتر و دانلود برنانه های مورد نیاز به سایت زیر مراجعه نمایید
برای عضویت می توانید روی لینک زیر کلیک نمایید.
http://www.irexpert.ir/Webforms/SignUp/NewSignUp.aspx?EID=167
سايت IrExpert ، با هدف ايجاد بانک اطلاعاتي جامع متخصصين ايراني و نيز به منظور اطلاع رساني مناسب در کليه زمينه هاي تخصصي راه اندازی شده است.
با عضويت در اين سايت داراي Home Page اختصاصي مي شويد که مي توانيد مشخصات فردی، مهارتهای تخصصی و ليست پروژه های خود را در آن ثبت کرده و در عرصه جهانی معرفی نماييد. همچنين آخرين اخبار تخصصي، فراخوان کنفرانسها و همايش ها، بهترين فرصتهاي شغلي و بورس هاي تحصيلي داخل و خارج از کشور بصورت روزانه به آدرس Email شما ارسال مي شوند.