มีบางพื้นที่ที่เราต้องการเครื่องคอมพิวเตอร์ขนาดเล็กที่สามารถทำงานร่วมกันได้เหมือนซูเปอร์คอมพิวเตอร์ มาดูกันว่าสามารถทำได้อย่างไร
ซูเปอร์คอมพิวเตอร์ส่วนใหญ่มีซีพียูที่เชื่อมต่อกันโดยมีซีพียูมาสเตอร์โหนดที่แบ่งงานประมวลผลขนาดใหญ่ให้เป็นงานย่อย งานย่อยเหล่านี้จะได้รับมอบหมายให้กับซีพียูที่เชื่อมต่อกัน ซึ่งจะทำงานร่วมกันเพื่อทำงานให้เสร็จภายในเวลาที่สั้นลงมาก
ดังนั้นให้เราออกแบบซูเปอร์คอมพิวเตอร์ของเราเอง ซึ่งจะเป็นระบบพื้นฐานที่คุณสามารถเชื่อมต่อโหนดได้มากเท่าที่คุณต้องการเพื่อตอบสนองความต้องการในการคำนวณและการประมวลผลของคุณ เราจะใช้คอมพิวเตอร์บอร์ดเดียวและเชื่อมต่อเข้าด้วยกัน และทำให้หนึ่งในนั้นเป็นโหนดหลัก โหนดหลักจะกระจายงานและควบคุมคอมพิวเตอร์เครื่องอื่นๆ ทั้งหมด
ส่วนประกอบที่จำเป็นสำหรับโครงการนี้แสดงอยู่ในตารางรายการวัสดุ ต้นแบบแสดงในรูปที่ 1
รูปที่ 1: ซูเปอร์คอมพิวเตอร์พร้อมระบบระบายความร้อน
แต่ละโหนดของคลัสเตอร์สำหรับซูเปอร์คอมพิวเตอร์ของเราจะต้องมีส่วนประกอบที่ระบุไว้ในรายการวัสดุ หากต้องการสร้างซูเปอร์คอมพิวเตอร์คลัสเตอร์ที่มี RPI 100 ชุด คุณจะต้องใช้ส่วนประกอบข้างต้น 100 ชุด
คุณสามารถออกแบบระบบแบบแร็คธรรมดาหรือออกแบบบล็อกของแต่ละโหนดและเชื่อมต่อบล็อกเพื่อสร้างคลัสเตอร์ขนาดใหญ่สำหรับใช้งานส่วนตัว มาดูกันว่าคุณสามารถสร้างซูเปอร์คอมพิวเตอร์คลัสเตอร์แบบบล็อกได้อย่างไร โดยที่แต่ละบล็อกมีซีพียูสองตัวพร้อมระบบจัดการพลังงานและระบบระบายความร้อนที่กำหนดค่าไว้ล่วงหน้าแยกกัน การออกแบบนี้ทำให้คุณมีความยืดหยุ่นในการเพิ่มบล็อกคลัสเตอร์แต่ละบล็อกได้ตามต้องการ คุณสามารถบรรลุพลังการประมวลผลได้มากถึงหนึ่งเทราไบต์โดยเพิ่มบล็อกโหนดเดี่ยวเหล่านี้ให้เพียงพอ
ให้เราออกแบบเคสแบบบล็อกเดียวที่สามารถรองรับคอมพิวเตอร์บอร์ดเดียว RPi ได้ 2 เครื่องและถังเก็บน้ำระบายความร้อนทรงกระบอก ในการออกแบบเคส ให้เว้นช่องว่างด้านหน้าไว้ 2 ช่องเพื่อเปิดพอร์ต USB และอีเทอร์เน็ตของ RPi เว้นช่องว่างด้านล่างไว้ 2 ช่องเพื่อร้อยสายไฟและขั้วต่อของแหล่งจ่ายไฟ (ดูรูปที่ 2) นอกจากนี้ ให้เว้นช่องว่างระบายอากาศไว้เพื่อให้อากาศถ่ายเทได้สะดวกเพื่อให้ระบบเย็นลง
รูปที่ 2: การออกแบบเคสสำหรับบล็อค
หลังจากออกแบบเคสฮาร์ดแวร์ตามที่อธิบายไว้ข้างต้นแล้ว ให้พิมพ์แบบ 3 มิติ คุณสามารถออกแบบเองได้หากต้องการ หรือจะเลือกใช้ระบบแบบแร็คก็ได้ และตั้งค่าระบบระบายความร้อนและซีพียูในการตั้งค่าแร็ค
ระบบระบายความร้อนที่ดีสำหรับซูเปอร์คอมพิวเตอร์เป็นสิ่งจำเป็น เนื่องจากซีพียูจะต้องทำงานที่ซับซ้อนและอาจร้อนขึ้นอย่างรวดเร็ว ขอแนะนำให้ใช้ระบบระบายความร้อนแบบคู่ โดยใช้เทอร์โมอิเล็กทริกก่อนแล้วจึงระบายความร้อนด้วยน้ำ หากต้องการผลลัพธ์ที่ดีขึ้น สามารถใช้สารหล่อเย็นแบบของเหลวแทนน้ำได้
สำหรับอ่างเก็บน้ำ/สารหล่อเย็น คุณสามารถใช้ภาชนะทรงกระบอกใสที่ปิดสนิทซึ่งทำจากแก้วหรือพลาสติกที่ใส่ไว้ในเคสที่ออกแบบไว้ก่อนหน้านี้ได้ อ่างเก็บน้ำจะต้องป้องกันการรั่วซึมเพื่อหลีกเลี่ยงความเสียหายต่อส่วนประกอบอิเล็กทรอนิกส์ที่อยู่ใกล้เคียงหรือทำให้เกิดไฟฟ้าลัดวงจร
รูปที่ 3: ท่อทางเข้าและทางออกที่ติดตั้งในอ่างเก็บน้ำ
ตามที่แสดงในรูปที่ 3 ให้เจาะรูสำหรับท่อน้ำเข้าและน้ำออกในอ่างเก็บน้ำ และเจาะรูอีกรูหนึ่งสำหรับสายไฟของปั๊มน้ำแบบจุ่ม ต่อท่อน้ำและสายไฟเข้าด้วยกัน จากนั้นปิดรูด้วยกาวยางเพื่อให้แน่ใจว่าไม่มีน้ำรั่วจากอ่างเก็บน้ำ ดูรายละเอียดในรูปที่ 4 รูปที่ 5 และรูปที่ 6
รูปที่ 4 : เจาะรูทางเข้าและทางออกของน้ำให้แน่นหนาและป้องกันน้ำรั่วซึมด้วยกาว
รูปที่ 5: ฝาปิดถังน้ำ
รูปที่ 6: อ่างเก็บน้ำที่เต็มไปด้วยของเหลว
คลุมส่วนประกอบอิเล็กทรอนิกส์ในอ่างเก็บน้ำด้วยแผ่นพลาสติกหรือเทปกาวเพื่อป้องกันหยดน้ำที่เกิดจากความชื้นภายใน ไม่ก่อให้เกิดปัญหาใดๆ ใส่ท่อทางเข้าและทางออกไว้ในบล็อกระบายความร้อนด้วยน้ำอะลูมิเนียม (ดูรูปที่ 7 และรูปที่ 8) และต่อปั๊มน้ำและสายเทอร์โมอิเล็กทริกเข้ากับแหล่งจ่ายไฟ DC 5V
รูปที่ 7: การตั้งค่าโมดูลเทอร์โมอิเล็กทริกบนชิปโปรเซสเซอร์ของ RPi
รูปที่ 8: บล็อกอลูมิเนียมสำหรับระบายความร้อนด้วยน้ำ
เมื่ออ่างเก็บน้ำปั๊มน้ำหล่อเย็นและระบบระบายความร้อนทั้งหมดพร้อมสำหรับการติดตั้งแล้ว ตอนนี้คุณสามารถประกอบส่วนประกอบต่างๆ และเริ่มสร้างบล็อกของซูเปอร์คอมพิวเตอร์ได้แล้ว ขั้นแรก ให้ยึดคอมพิวเตอร์บอร์ดเดียว RPi ไว้ภายในเคสที่คุณออกแบบไว้ ดังที่แสดงในรูปที่ 9 จากนั้นจึงติดตั้งบล็อกระบายความร้อนตัวแรกบนบล็อกนั้น จากนั้น ติดตั้ง RPi ตัวที่สองไว้ภายในเคส โดยตรวจสอบให้แน่ใจว่าพอร์ตต่างๆ อยู่ภายนอกและสามารถเข้าถึงได้ผ่านรอยตัดในเคสที่ทำขึ้นเพื่อจุดประสงค์นั้น
รูปที่ 9: RPI วางลงในเคส
ยึด RPi ตัวที่ 2 ด้วยสกรู จากนั้นจึงยึดเทอร์โมอิเล็กทริกและบล็อกระบายความร้อนไว้บนนั้นด้วย จากนั้นปิดด้านบนของเคส เพื่อให้ดูเท่และมองเห็นน้ำไหล ให้ใช้แผ่นอะคริลิกใสปิดเคส รายละเอียดสามารถดูได้ในรูปที่ 10 ถึงรูปที่ 12
รูปที่ 10: อ่างเก็บน้ำที่ยึดด้วย RPI ในตัว
รูปที่ 11: มุมมองด้านบน
อ้างอิงแผนผังการเชื่อมต่อที่แสดงในรูปที่ 13 จากนั้นเชื่อมต่อปั๊มน้ำและเครื่องทำความเย็นเทอร์โมอิเล็กทริกกับแหล่งจ่ายไฟ DC 5-12V, 2A และจ่ายไฟให้กับ RPi ด้วยแหล่งจ่ายไฟ DC 2A, 5V
รูปที่ 12: การติดตั้งโมดูลตัวระบายความร้อนด้วยน้ำ
ติดตั้งระบบปฏิบัติการ Raspbeian เวอร์ชันล่าสุดใน RPi สร้างหน่วยหลักที่จะแบ่งงานที่ซับซ้อนออกเป็นโหนดที่ประกอบกันทั้งหมด และควบคุมโหนดเหล่านี้สำหรับการประมวลผลและการคำนวณ เช่นเดียวกับซูเปอร์คอมพิวเตอร์ ในการดำเนินการดังกล่าว ให้เปิดเทอร์มินัล Linux และตั้งค่า MPI ติดตั้ง MiPIH และเตรียมโหนดหลักที่จะแบ่งและควบคุมงานในกลุ่มคอมพิวเตอร์
sudo apt-get update
เปลี่ยนรหัสผ่านผู้ใช้ 'pi'
ภายใต้ 'การทำงานเครือข่าย' เปลี่ยนชื่อโฮสต์เป็น nodeX โดยแทนที่ X ด้วยหมายเลขเฉพาะ (node1, node2 เป็นต้น) node1 จะเป็นหน่วยหลักของเรา
ตั้งค่าอีเทอร์เน็ต:
sudo nano /etc/dhcpcd.conf
ไปที่จุดสิ้นสุดของไฟล์และเพิ่มสิ่งต่อไปนี้:
interface eth0
static ip_address=10.0.0.1/24
แล้วสร้างเอกลักษณ์เฉพาะตัว:
ssh-keygen -t rsa
Setup master node
ssh-copy-id 10.0.0.1
ตอนนี้โหนดหลักพร้อมแล้ว เปิดเทอร์มินัลของโหนดที่สองและเชื่อมต่ออีเทอร์เน็ตกับ RPi ทั้งสองตัวด้วยขั้วต่ออีเทอร์เน็ตและทำซ้ำขั้นตอนข้างต้นในนั้นเช่นกัน หากต้องการเพิ่มโหนดเพิ่มเติม (ซึ่งอาจเป็นพันโหนด) ให้สร้างอิมเมจที่สามารถบูตได้ของการตั้งค่า RPi ข้างต้นและเตรียมการ์ด SD ของโหนดทั้งหมดด้วยอิมเมจเดียวกัน
รูปที่ 13: แผนผังการเชื่อมต่อของโครงการ
เชื่อมต่อทั้งหมดด้วยขั้วต่ออีเทอร์เน็ต จากนั้นบูตทั้งหมดและตั้งค่าเป็นโหนดของมาสเตอร์โดยใช้คำสั่งและการกำหนดค่าต่อไปนี้ เปิดเทอร์มินัลและรันคำสั่งต่อไปนี้บนแต่ละโหนดของซูเปอร์คอมพิวเตอร์:
sudo apt install mpich
python3-mpi4py
sudo apt ติดตั้ง mpich
python3-mpi4py ไพธอน3-mpi4py
เมื่อเสร็จสมบูรณ์แล้ว การทดสอบ MPI จะทำงานบนแต่ละโหนด:
mpiexec -n 1 hostname
จาก node1 (10.0.0.1) ให้รันคำสั่งต่อไปนี้:
mpiexec -n 4 –hosts 10.0.0.1,10.0.0.2,
10.0.0.2,10.0.0.4 hostname
เมื่อการตั้งค่าทุกอย่างเสร็จสิ้น คุณสามารถทดสอบระบบได้ เชื่อมต่อแต่ละโหนดและจ่ายไฟให้ทั้งหมด
หากต้องการทดสอบซู เปอร์คอมพิวเตอร์ ให้ดาวน์โหลดโค้ดจากGithub
เปิดเทอร์มินัลของโหนดมาสเตอร์และรันสิ่งต่อไปนี้ในเทอร์มินัล Linux:
mpiexec -n 1 python3 prime.py 1000
เมื่อคุณรันโค้ดข้างต้น งานอันซับซ้อนในการค้นหาจำนวนเฉพาะที่สูงถึง 1,000 หรือ 4,000 หรือแม้แต่ 100,000 จะถูกแบ่งออกไปยังโหนดทั้งหมดในระบบ และโหนดจะประมวลผลร่วมกันและคำนวณเพื่อให้ได้ผลลัพธ์ รูปที่ 14 แสดงวิธีการทำงานของโปรแกรม
รูปที่ 14: การรันโค้ด
ดาวน์โหลดซอร์สโค้ด