আমি কীভাবে একটি ক্লাস্টার তৈরি করব?


63

- বাসায় কম্পিউটারের একটি ক্লাস্টার নির্মাণের সম্পর্কে গত কয়েক বছর ধরে অনলাইন প্রায় ফ্লোটিং কয়েকটি নিবন্ধ হয়েছে এখানে উদাহরণস্বরূপ।

পাই কম দামের কারণে এই জাতীয় জিনিস তৈরি / পরীক্ষার জন্য ভাল প্ল্যাটফর্ম হিসাবে আমাকে আঘাত করে; "জেনেরিক" গাইডগুলি কি পাইতে স্থানান্তরিত করতে পছন্দ করে খুব সহজেই, বা এমন কোনও প্রকল্পের চেষ্টা করার সময় আমার বিশেষভাবে কিছু জানা উচিত?


3
সম্পর্কিত ফোরামের থ্রেড: raspberrypi.org/phpBB3/viewtopic.php?p=18356#p18356
ফাইন

এইগুলি নামকরণ করার কারণে আমি ট্যাগ "ব্র্যাম্বল" যুক্ত করেছি। "একসাথে একসাথে রাখুন এবং হ্যাডুপ বা এরকম কিছু চালান" এর বাইরে যথাযথ উত্তর দিতে পারবেন না - সত্যই, আমি উত্তরটি নিজেরাই দেখার জন্য প্রশ্নটির পক্ষে হয়েছি!
উইন্ডো হয়েছে

অন্যান্য পাই ব্যবহারকারীরা "ব্র্যাম্বল" ম্যাজিক শব্দটি সম্পর্কে জানেন না; ফাউন্ডেশনের ফোরামটি অনুসন্ধান করা হয়ত সহায়তা করেছিল কিন্তু সাড়া দিতে বেশিরভাগ সময় ধীর হয় তাই আমি আপনাকে ভোট দেব না।
এমপিএল

4
: SouthHampton বিশ্ববিদ্যালয়ের 64 Pi ক্লাস্টার (বা "সুপারকম্পিউটার") জন্য তিনটি পদক্ষেপ উত্পাদিত হয়েছে southampton.ac.uk/~sjc/raspberrypi/...
অ্যালেক্স এল

উত্তর:


35

আমি ডিস্পিকে দেখার পরামর্শ দিই - বিতরণকৃত গণনা পাইথন মডিউল।

একটি পিসি থেকে অনেকগুলি রাস্পবেরি পাই (নোড) এর উপর একটি প্রোগ্রাম চালাতে (সার্ভার - ধরে নিন আইপি 192.168.0.100):

  • প্রতিটি রাসপিতে অপারেটিং সিস্টেম ইনস্টল করুন

  • আপনার নেটওয়ার্কে প্রতিটি রসপি সংযুক্ত করুন। আইপি (যদি গতিশীল হয়) সন্ধান করুন, বা স্থির আইপি সেট আপ করুন।
    (আসুন ধরে নেওয়া যাক আপনার কাছে তিনটি নোড রয়েছে এবং তাদের আইপিগুলি রয়েছে 192.168.0.50-52)

  • পাইথন সেটআপ করুন (যদি ইতিমধ্যে না থাকে), ইনস্টল করুন dispy, তারপরে dispynode.py -i 192.168.0.100প্রতিটি রসপিতে চালান। এটি সার্ভারের কাছ থেকে কাজের তথ্য পাওয়ার জন্য ডিসপিনোডকে বলবে।

  • পিসিতে (সার্ভার) ইনস্টল করুন dispy, তারপরে নিম্নলিখিত পাইথন কোডটি চালান:

#!/usr/bin/env python
import dispy
cluster = dispy.JobCluster('/some/program', nodes=['192.168.0.50', '192.168.0.51', '192.168.0.52'])

আপনি /some/programপাইথন ফাংশন দিয়ে প্রতিস্থাপন করতে পারেন - যেমন compute

আপনি পাইথন অবজেক্টস, মডিউল এবং ফাইলগুলি (যা dispyপ্রতিটি নোডে স্থানান্তর করবে) এর মতো নির্ভরতা অন্তর্ভুক্ত করতে পারেনdepends=[ClassA, moduleB, 'file1']


8
কেউ যদি এটি করেছে কিনা তা শুনতে আমি খুব পছন্দ করব - দয়া করে একটি মন্তব্য করুন যদি তা কাজ করে তবে আমাকে জানান!
অ্যালেক্স এল

আমার ক্ষেত্রে (ওপেনেলিক + পাইথন ২.7) আমি এই ত্রুটিটি "ফাইল" পেয়েছি ।/Lib/m মাল্টিপ্রসেসিং /__init__.py ", লাইন ৮৪, <মডুল>, আমদানি-সংক্রান্ত: /usr/lib/python2.7/lib-dynload/ _মল্টিপ্রসেসিং.সো: অপরিবর্তিত প্রতীক: সেমলক টাইপ "।
গুইডো

তবে ডিসপেই ৩-৩. whe চালিত হুইজি + পাইথন 3 দিয়ে! 2013-03-13 23: 01: 30,664 - ডিসপাইনোড - 192.168.1.34:51348 এ 1 সিপাস পরিবেশন করা। আপনি যখন কোনও টাস্ক চালু করেন (অর্থাত্ / বিন / এলএস) নোডটি টাস্কটি গ্রহণ করে, এক্সিকিউটিভকে / টেম্পে স্থানান্তরিত করে তবে কিছু ভুল হয়ে যায় "এক্সিকিউটিং ['/ tmp / dispy / b7e04cb4a1e144e1 / ls'] (<ক্লাস 'OSError এর সাথে ব্যর্থ হয়েছে '>, ওএসআরর (8,' এক্সিকিউট ফর্ম্যাট ত্রুটি '), <0x16f2580 এ টেক্সব্যাক অবজেক্ট>) "
গুইডো

10

আপনার ইতিমধ্যে কাজটি সম্পর্কে সচেতন হওয়া উচিত - রসপি বক্সেনের একটি ক্লাস্টারের এমনকি নামও রয়েছে even Embedded লিনাক্স উইকি বলে কাঁটাঝোপ হিসাবে "একটি সংজ্ঞায়িত করা হয় Beowulf ক্লাস্টার রাস্পবেরী Pi ডিভাইস"। রাস্পবেরী Pi Homebrew একটি নম্বর আছে পোস্ট সম্পর্কে brambles , এবং দেখতে আরো ফাউন্ডেশন র নিজস্ব ফোরাম।


14
আমি মনে করি না যে কাউকে উত্তর গুগল করতে বলা এই সাইটের পক্ষে ভাল। নামটি জানা দরকারী তবে আপনার উত্তরে কিছু সামগ্রী এবং রেফারেন্স লিঙ্ক যুক্ত করার বিষয়টি বিবেচনা করুন।
জো

সামগ্রী এবং লিঙ্কগুলি যোগ করেছেন, @ জো @ অবতীর্ণ ব্যক্তিরা এখন তাদের মতামত পুনর্বিবেচনা করলে ভাল হবে ...
এমপিএল

1
আমি যদি আমি আপনাকে সত্যিই কমিয়ে দিতাম ...
জো

আপনার যে অন্তর্নিহিত ঘটনাটি ঘটেছিল তা এড়াতে আমি খুব সাবধানতার সাথে এটিকে যুক্ত করেছিলাম, জো। সম্ভবত তারা বুঝতে পারে না যে এখানে ভোটগুলি একই বোতামটি পুনরায় ক্লিক করে পূর্বাবস্থায় ফেলা যায়, কেবল বিপরীত বোতামটি ক্লিক করে বিপরীত নয়।
এমপিএল

10

সাউদাম্পটন ইউনিের কিছু ছেলেরা একটি ক্লাস্টার একসাথে রেখে তাদের কাজের বিশদ বিবরণ http://www.southampton.ac.uk/~sjc/raspberrypi/ তে লিখেছেন ।



আসলে এমপিআই ব্যবহার করে এই প্রকল্প থেকে অনেক কিছু শেখার আছে। আমি এই লোকের কাজের উপর ভিত্তি করে আমার পরীক্ষা-নিরীক্ষা চালাচ্ছি। আমি এই উত্তরটি প্রশ্নের সঠিক উত্তরটি চিহ্নিত করার পরামর্শ দিচ্ছি।
বেনকাস

6

এটি সম্পূর্ণরূপে সম্ভব, তবে সবচেয়ে বড় সমস্যা হ'ল প্রাপ্যতা। এটি এমন একটি ধারণা যা আমি কেবল কার্যক্ষম বলে মনে করি না, তবে দরকারী হিসাবে আপনি পোর্টেবল সমান্তরাল কম্পিউটিংয়ের ধারণার সাথে যেতে পারেন। সুনির্দিষ্ট হিসাবে, ফরটারন এবং সি ++ এর মতো কোডিং ভাষাগুলি সেরা করবে languages

beowulf.org ক্লাস্টার কম্পিউটিং সম্পর্কে আরো জানার জন্য


1

এটি 'ডিস্পি' সম্পর্কিত উপরের গিডো গার্সিয়ার পোস্টের জবাব - আমি তার পোস্টে কীভাবে উত্তর দেব তা আমি বুঝতে পারি না।

যখন একটি প্রোগ্রাম ('/ bin / ls') সমান্তরাল সম্পাদনের জন্য 'ডিস্পি' দিয়ে বিতরণ করা হয়, তখন ক্লায়েন্ট মেশিনে থাকা প্রোগ্রামটি প্রতিটি নোডে ('/ tmp') স্থানান্তরিত হয়। এটি এমন হয় যাতে ক্লায়েন্ট মেশিনে ব্যবহারকারী বিকাশিত প্রোগ্রামটি এনএফএস বা কিছু অংশীদারি নির্দেশ না করে স্থানান্তরিত হয়। এটি কেবল তখন নোড এবং ক্লায়েন্ট আর্কিটেকচারের সাথে সামঞ্জস্য বাইনারি প্রোগ্রামগুলির সাথে কাজ করে। আপনার ক্ষেত্রে, আমি অনুমান করছি যে ক্লায়েন্ট আর্কিটেকচার দূরবর্তী নোডগুলির চেয়ে আলাদা এবং কোনও নোড ক্লায়েন্টের কাছ থেকে স্থানান্তরিত বাইনারি '/ বিন / এলএস' চালাতে পারে না। আপনি যদি প্রতিটি নোডে / বিন / এলএস চালাতে চান তবে ডিরেক্টরিটি মুদ্রণ করার জন্য পাইথন ফাংশন বা প্রোগ্রাম লিখতে আরও সহজ হতে পারে (উদাহরণস্বরূপ, os.listdir ব্যবহার করে) এবং বাইনারি এক্সিকিউটেবলের পরিবর্তে বিতরণ করতে পারেন।


অন্যান্য ব্যক্তির উত্তর / প্রশ্নগুলিতে মন্তব্য করতে আপনার 50 টি খ্যাতি দরকার। যদিও স্বাগতম!
ইমপালস

1

আপনি যদি এটির সাথে একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত কন্ট্রোল প্যানেল চান তবে এখানে http://pi.interworx.com রয়েছে । কীভাবে প্রতিলিপি করা যায় সে সম্পর্কে তাদের এই পৃষ্ঠায় নির্দেশনা রয়েছে, তবে সাবডোমেন স্বতঃ একটি রসবি পাই ক্লাস্টার থেকে চলমান হওয়ায় আপনাকে ধৈর্য ধরতে হবে। এটি নীচে যাওয়ার ক্ষেত্রে এখানে একটি ফটো রয়েছে:

http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.