บางคำถามที่น่าสนใจ ฉันคิดว่าคุณอาจเข้าใจผิดเล็กน้อยว่า "ซุปเปอร์คอมพิวเตอร์" ที่สร้างขึ้นด้วย Raspberry Pis ทำงานอย่างไร พวกเขาไม่ทำงานเป็นระบบแบ่งปันโหลดอัตโนมัติ พวกเขาได้รับการออกแบบมาสำหรับสิ่งที่เรียกว่าการเขียนโปรแกรมแบบขนานซึ่งงานที่ซับซ้อนจะแบ่งออกเป็นชิ้นส่วนที่สามารถดำเนินการได้พร้อมกัน Pi หลักในคลัสเตอร์ (โหนดใหญ่) รับผิดชอบการจัดการงานโดยรวมและแต่ละ Pi ในคลัสเตอร์ (โหนดไคลเอ็นต์) ดำเนินงานที่จัดสรรและรายงานผลลัพธ์กลับไปที่โหนดหลัก ไลบรารี่เช่นOpenMPIเป็นกุญแจสำหรับสิ่งนี้
นอกจากนี้กลุ่ม Raspberry Pi ที่สร้างขึ้นยังไม่ได้สร้างเป็นอุปกรณ์คอมพิวเตอร์ที่มีประสิทธิภาพ พวกเขาได้รับการสร้างขึ้นเป็นแพลตฟอร์มการพัฒนา มันถูกกว่ามากที่จะซื้อ 32 Raspberry Pis กว่า 32 เดสก์ท็อปพีซี คุณสามารถพัฒนาและทดสอบซอฟต์แวร์การเขียนโปรแกรมแบบขนานของคุณด้วยวิธีที่ถูกกว่ามาก ทางเลือกเดียวถ้าคุณไม่มี Pis หรือพีซีคือการขอเวลา CPU บนคอมพิวเตอร์จริง ขึ้นอยู่กับขนาดของคอมพิวเตอร์ที่มีปัญหาการทำเช่นนั้นอาจเสียค่าใช้จ่ายหรือมีเวลารอนานก่อนที่ทรัพยากรจะพร้อมใช้งาน เหตุใดผู้คนจึงสร้างคลัสเตอร์ส่วนตัวขึ้นมา มันสมเหตุสมผลแล้วที่จะเรียกใช้แอปพลิเคชันของคุณบนคอมพิวเตอร์จริงเมื่อคุณรู้ว่ามันใช้งานได้!
ดังนั้นโปรดระลึกไว้เสมอและดำเนินการตามคำถามเฉพาะของคุณ
ในคลัสเตอร์ที่เหมาะสม Pis ไม่ทำหน้าที่เป็นคอมพิวเตอร์เสมือนเครื่องเดียว คุณมีการควบคุมหลวมแต่ละชิ้นในรูปแบบของงานหรือทรัพยากรระบบการจัดสรรเช่นที่ดวงอาทิตย์กริดเครื่องยนต์ งานจะถูกจัดสรรออกไปยังโหนดตามต้องการและเมื่องานเสร็จสิ้นทรัพยากรของโหนดนั้นจะว่างสำหรับงานใหม่
ในคลัสเตอร์เนื่องจากแต่ละ Pi ใช้สำเนา Linux ของตัวเองแต่ละ Pi จะรักษาการควบคุมท้องถิ่นของพอร์ต GPIO ฉันไม่แน่ใจว่าซอฟต์แวร์จะใช้งานอย่างไรในสภาพแวดล้อมการคำนวณแบบขนาน แต่มีคุณอยู่
คลัสเตอร์ไม่ได้ทำให้ Pi เร็วขึ้นจริงๆเพราะไม่ใช่คอมพิวเตอร์เครื่องเดียว สิ่งที่คุณได้รับคือความสามารถในการทำมากขึ้นในครั้งเดียว คุณไม่ จำกัด จำนวนทวีคูณของสองคน อย่างไรก็ตามมีข้อ จำกัด สูงสุดที่ใช้งานได้จริงสำหรับคอมพิวเตอร์ที่ทำคลัสเตอร์โดยขึ้นอยู่กับงานที่คุณเรียกใช้ ลองนึกภาพถ้าคุณใช้การคำนวณแบบขนานบน Pis จำนวนมากที่ต้องใช้ 200 ขั้นตอน อย่างไรก็ตามแต่ละขั้นตอนถัดไปต้องการข้อมูลที่ทุก Pi คำนวณจากขั้นตอนก่อนหน้า ดังนั้นแต่ละ Pi ต้องได้รับข้อมูลจาก Pi อื่น ๆ ทุกการทำซ้ำ ขึ้นอยู่กับระยะเวลาในการคำนวณแต่ละครั้งคุณสามารถใช้เวลาในการส่งข้อมูลมากกว่าการคำนวณ นี่คือเหตุผลที่คอมพิวเตอร์ซุปเปอร์ส่วนใหญ่ใช้InfiniBandเครือข่าย มันเร็วมากดังนั้นคุณสามารถคำนวณได้มากขึ้น วิธีแก้ปัญหานี้คือการใช้ Pis ให้น้อยลง แต่ให้พวกเขาทำซ้ำได้มากขึ้นในแต่ละครั้ง แต่อาจไม่สามารถทำได้ขึ้นอยู่กับอัลกอริทึมของคุณ ดังนั้นขีด จำกัด บนในทางปฏิบัติ (ใน Pis สิ่งนี้จะไม่ดีเป็นพิเศษเพราะ USB Ethernet ค่อนข้างช้า)
ดังนั้นเพื่อการใช้งานจริงกระจายเว็บโฮสติ้ง! คุณสามารถใช้ประโยชน์จาก Pis หลาย ๆ ตัวที่นี่ไม่ใช่คลัสเตอร์ปกติ สมมติว่าคุณมี 5 Pis เราจะเรียกพวกเขาว่า GatewayPi, WebPi1, WebPi2, WebPi3 และ DataPi GatewayPi หันหน้าไปทางอินเทอร์เน็ตเรียกใช้ Nginix เพื่อจัดการคำขอเว็บ แต่ไม่ได้ทำการประมวลผลใด ๆ แต่สิ่งที่ควรทำก็คือโหลดบาลานซ์. มันใช้ proxying และส่งต่อการร้องขอขาเข้าไปยัง WebPi1, WebPi2 หรือ WebPi3 แบบสุ่ม เราเพิ่มประสิทธิภาพโครงสร้างพื้นฐานเว็บของเราเป็นสามเท่าเพราะตอนนี้เราสามารถจัดการคำขอได้มากขึ้นพร้อมกัน แล้ว DataPi ล่ะ DataPi ได้แนบฮาร์ดไดรฟ์ที่เก็บข้อมูลเว็บทั้งหมดของเราและใช้เซิร์ฟเวอร์ NFS WebPiX เมาท์ที่ NFS แชร์เพื่อให้สามารถเข้าถึงข้อมูลสำหรับการประมวลผล วิธีนี้เราเพียงแค่ทำการสำรองข้อมูลในที่เดียวและสามารถประหยัดพื้นที่ดิสก์ได้
สิ่งที่ฉันได้อธิบายไปแล้วคือรูปแบบที่ บริษัท ขนาดใหญ่อย่าง Google และ Facebook ใช้ แต่ลดขนาดลงเป็นขนาด Raspberry Pi สิ่งที่จับได้เพียงอย่างเดียวคือเนื่องจากค่าใช้จ่ายของ Pis การทำเช่นนี้คือการสร้างแพลตฟอร์มการพัฒนาเดียวกัน การใช้ Pis หลายอันเนื่องจากความสามารถในการคำนวณค่อนข้างต่ำในไม่ช้าประสิทธิภาพการทำงานจะสิ้นเปลืองพลังงานเมื่อคุณมุ่งไปที่การจัดการข้อมูลจำนวนมาก แต่เพื่อการเรียนรู้? พวกเขาสมบูรณ์แบบ