انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: سید وحید رضا برهانی در 05 فروردین 1397، 12:02 قظ
-
سلام
من می خوام که چندتا کامپیوتر رو با شبکه به هم وصل کنم تا قدرت پردازش کامپیوترم بیشتر بشه. حالا می خوام بدونم که چیکار باید بکنم؟ و اصلا اسم این روش چیه؟ یا اینکه نرم افزارها باید برای اینکار باید به طور خاص کامپایل شده باشند یا اینکه خود هسته لینوکس می تونه اینکارهارو مدریت کنه؟ واینکه اصلا می شه یا نه؟ و در همین راستا نرم افزار gnu parallel دقیقا چی کار می کنه؟
-
سلام
من می خوام که چندتا کامپیوتر رو با شبکه به هم وصل کنم تا قدرت پردازش کامپیوترم بیشتر بشه. حالا می خوام بدونم که چیکار باید بکنم؟ و اصلا اسم این روش چیه؟ یا اینکه نرم افزارها باید برای اینکار باید به طور خاص کامپایل شده باشند یا اینکه خود هسته لینوکس می تونه اینکارهارو مدریت کنه؟ واینکه اصلا می شه یا نه؟ و در همین راستا نرم افزار gnu parallel دقیقا چی کار می کنه؟
تا اون جایی که می دونم اسم این روش کلاستر(cluster) کردن هست...برای کلاستر کردن هم اموزش های زیادی وجود داره...اجرای چیز های مختلف هم به این شکل هست که یه کامپیوتر داریم که مدیریت بقیه کامپیوتر ها رو بر عهده داره(دقیقن مثل یه خوشه)و برنامه ها اجرا میشن...
درباره gnu parallel هم اطلاعات خاصی ندارم ... فقط ی دونم نرم افزاری هست برای اجرای موازی برنامه ها.
-
وصل کردن چند کامپیوتر به هم، سیستم شما رو به یک سیستم قویتر تبدیل نمیکنه. روشهایی مثل Process Migration هم هست که اونها هم بازده خوبی نداره. اگر به چنین موضوعاتی علاقهمند هستند که چطور یک کامپیوتر قویتر توسط چندین کامپیوتر داشته باشید، بهتره با خوندن یک کتاب در مورد Concurrent Systems این موضوع رو شروع کنید.
-
راستش علاقه اون مدلی ندارم فقط چون دارم یکسری پردازشهای مولکلوکی دارم که چند روز طول می کشه گفتم شاید چندتا کامپیوتر رو بهم وصل کنم زودتر بشه. حالا همین کلاستر رو تست می کنم ببینم چی می شه.
ممنون از همه
-
یه نگاه به توزیع Rocks Cluster بی انداز.
-
راستش علاقه اون مدلی ندارم فقط چون دارم یکسری پردازشهای مولکلوکی دارم که چند روز طول می کشه گفتم شاید چندتا کامپیوتر رو بهم وصل کنم زودتر بشه. حالا همین کلاستر رو تست می کنم ببینم چی می شه.
ممنون از همه
خب چرا از سرویس های پردازش کننده ابری استفاده نمی کنی؟
اگر مقدار هزینه هم برات مهم نیست و از این نوع پردازش ها زیاد داری fpga ها هم انتخاب خوبی هستند...
-
بستگی به پروسسهات داره که چه مدلی هستن (blocking یا non-blocking). پکتهای دیتا باید توی شبکه حرکت کنند و این ممکن هست که یه latency اضافه کنه و اینکه باید صبر کنه تا پروسه تموم بشه یا نه صبر نکنه. و همچنین اینکه بعضی زبونهای برنامهنویسی (مثل پایتون (CPython)) به صورت پیشفرض برای پارالل پروگرمینگ مناسب نیستن. (میتونی در مورد GIL توی اینترنت سرچ کنی یا این رو بخونی: https://wiki.python.org/moin/GlobalInterpreterLock)
در هر صورت اگه خواستی این کار رو انجام بدی، اگه درست فهمیده باشم، خودت نمینویسی و میخوای از یه نرمافزار دیگه استفاده کنی، اول از همه باید ببینی که آیا نرمافزارت پارالل پروگرمینگ ساپورت میکنه یا نه، اگه ساپورت میکنه، میتونی در مورد این بخونی:
https://en.wikipedia.org/wiki/Beowulf_cluster
در مورد MPI هم بخون:
https://en.wikipedia.org/wiki/Message_Passing_Interface
-
راستش علاقه اون مدلی ندارم فقط چون دارم یکسری پردازشهای مولکلوکی دارم که چند روز طول می کشه گفتم شاید چندتا کامپیوتر رو بهم وصل کنم زودتر بشه. حالا همین کلاستر رو تست می کنم ببینم چی می شه.
ممنون از همه
خب چرا از سرویس های پردازش کننده ابری استفاده نمی کنی؟
اگر مقدار هزینه هم برات مهم نیست و از این نوع پردازش ها زیاد داری fpga ها هم انتخاب خوبی هستند...
نه سرویس ابری بدردم نمی خوره
بستگی به پروسسهات داره که چه مدلی هستن (blocking یا non-blocking). پکتهای دیتا باید توی شبکه حرکت کنند و این ممکن هست که یه latency اضافه کنه و اینکه باید صبر کنه تا پروسه تموم بشه یا نه صبر نکنه. و همچنین اینکه بعضی زبونهای برنامهنویسی (مثل پایتون (CPython)) به صورت پیشفرض برای پارالل پروگرمینگ مناسب نیستن. (میتونی در مورد GIL توی اینترنت سرچ کنی یا این رو بخونی: https://wiki.python.org/moin/GlobalInterpreterLock)
در هر صورت اگه خواستی این کار رو انجام بدی، اگه درست فهمیده باشم، خودت نمینویسی و میخوای از یه نرمافزار دیگه استفاده کنی، اول از همه باید ببینی که آیا نرمافزارت پارالل پروگرمینگ ساپورت میکنه یا نه، اگه ساپورت میکنه، میتونی در مورد این بخونی:
https://en.wikipedia.org/wiki/Beowulf_cluster
در مورد MPI هم بخون:
https://en.wikipedia.org/wiki/Message_Passing_Interface
یک جورایی آره خودم نمی خوام بنویسم و معلوم هم نیست که از چه تکنیکی استفاده می کنه. البته بعضی نرم افزار ها موقع کامپایل می شه کانفیگ کنی که از openmpi ساپورت کنه یا نه. ولی خب در کل اگر بشه می خوام که من فط یکمی نرم افزار نصب کنم و یکمی کانفیگ انجام بدم وبقیه کارها رو خودت سیستم عامل مدریت کنه. فعلا همین کلاستر رو پی گیری می کنم چون ظاهرا ساده ترین راه هست. و منم دنبال معجزه نمی گردم مثلا یک کاری که یک هفته طول می کشه تا جواب بده رو من ۵ روزه با دوتا کامپیوتر انجام بشه برای من کافی هست!
اون توزیع رو هم اول باید در موردش تحقسق کنم (rocksclusters)
-
این کار ربطی به توزیع مورد استفاده تو نداره که بخوای عوضش کنی. توزیعهای استاندارد کارت رو راه میاندازن.
اگه میخوای از MPI استفاده کنی، خود MPI همه کاری رو انجام میده. این رو بخون:
http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan
-
این کار ربطی به توزیع مورد استفاده تو نداره که بخوای عوضش کنی. توزیعهای استاندارد کارت رو راه میاندازن.
اگه میخوای از MPI استفاده کنی، خود MPI همه کاری رو انجام میده. این رو بخون:
http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan
توزیع رو برای این گفتم که درگیر کانفیگ نشم. هرچند اون توزیع گویا یک نرم افزار ویژه داره ( چون باید لایسنسش رو تایید کنی) به هرحال هنوز نگاهش نکردم.
اون لینک رو دیدم ولی ظاهرا باید نرم افزار رو دوباره کامپایل کرد (یک نرم افزار عادی رو تست کردم) ولی این نرم افزاری که استفاده می کنم باینری هست ( کلوزسورس :( ) حالا درست فهمیدم که باید دوباره کامپایل بشه یا نه؟