Raspberry Pi Super Computer ที่ Java One 2022
โดยคริส เบนเซน
หากคุณต้องการ คุณสามารถอ่านบล็อกโพสต์นี้บน GitHub ที่นี่
เดิมที Raspberry Pi Super Computer ถูกสร้างขึ้นสำหรับ Oracle Open World ในเดือนตุลาคม 2019 มี Raspberry Pi 3b+ 1,050 ตัวในแร็คเซิร์ฟเวอร์สี่ตัวที่กำหนดค่าในกล่องสี่เหลี่ยมขนาดใหญ่ที่ชวนให้นึกถึงกล่องตำรวจอังกฤษที่เป็นที่นิยมในซีรีส์ทีวี BBC บางรายการ ก้าวไปข้างหน้าอย่างเร็วจนถึงวันนี้ Raspberry Pi Super Computer (Pi Cluster)ถูกส่งไปยังขยะอิเล็กทรอนิกส์ บางส่วนถูกถอดออกและนั่งอยู่เฉย ๆ เป็นเวลาสองปีจนถึงเดือนพฤษภาคมของปีนี้ เมื่อพบทางไปที่โรงรถของฉันเพื่อ ยกเครื่องใหม่ทั้งหมด
สำหรับประวัติชั่วคราวว่า Raspberry Pi 1,050 เกิดขึ้นได้อย่างไร คุณสามารถอ่านประวัติชั่วคราวของคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลก
เริ่มต้นด้วยการที่ Gerald Venzl จาก Oracle Switzerland นำคลัสเตอร์ 12 โหนดมาให้ฉันสนใจ จากนั้นเราก็ระดมความคิดเกี่ยวกับคลัสเตอร์ขนาดใหญ่กับ Stephen Chin เรียนรู้ว่า Pi Cluster ไปเป็นขยะอิเล็กทรอนิกส์ได้อย่างไรระหว่างการล็อกดาวน์จากโควิดและไฟป่าในแคลิฟอร์เนีย และวิธีที่ Eric Sedlar ช่วยชีวิตมัน และสุดท้ายก็จัดเก็บมันไว้ที่ Oracle Labs หากคุณพบว่ายาวเกินไป ให้ดูวิดีโอการสร้างต้นฉบับของคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลกที่เรารู้จัก การสร้างคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลกโดย Gerald Venzl และวิดีโอนี้ของคลัสเตอร์ Big Pi ในโรงรถของฉัน — ตอนที่ 1 .
และอีกอย่าง ถ้าคุณกำลังอ่านข้อความนี้อยู่ มีความเป็นไปได้สูงที่คุณจะเป็น Luminary ที่ยอดเยี่ยม Luminary คืออะไร? เป็นกลุ่มนักพัฒนาที่เพิ่งเปิดตัวของเราที่เชื่อมโยงนักพัฒนาเช่นคุณเข้ากับเนื้อหาทางเทคนิคสุดพิเศษ ข้อเสนอพิเศษฟรี และชุมชนที่จะช่วยคุณสร้างสิ่งที่เจ๋งพอๆ กับคลัสเตอร์นี้กลายเป็น Luminary วันนี้
คืนชีพ
เมื่อมีการประกาศ CloudWorld เราเสนอทันทีเพื่อชุบชีวิต Raspberry Pi Super Computer ที่ใหญ่ที่สุดในโลก(ที่เรารู้จัก ) ใครไม่ชอบเรื่องราวการฟื้นคืนชีพที่ดี? ข้อเสนอมีลักษณะดังนี้:
1. บริจาคให้กับ Computer History Museum เป็นชิ้นงานศิลปะสำหรับ Pi-Day
2. Raspberry Pi มีค่าในขณะนี้ จับฉลากชิ้นส่วนของ Pi เพื่อลุ้นรับ Raspberry Pi 3B+ ฟรีจากหนึ่งในคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลก
3. เรามีโอกาสเดียวที่จะสร้างประวัติศาสตร์ เราแก้ไขสำหรับ CloudWorld เพิ่มพัดลมเพื่อไม่ให้ร้อนเกินไป และเรียกใช้เป็นอุปกรณ์ "ในองค์กร" และ "ขอบ" ที่แสดงเทคโนโลยีที่สร้างขึ้นในห้องปฏิบัติการ เราจะรวมGraalPython , JavaและOracle Linux 9ที่ทำงานบนทุกอุปกรณ์ใน Pi Cluster ทั้งหมดนี้เชื่อมต่อกับOracle Cloud Infrastructure (OCI)ผ่าน Site-to-Site (เลื่อนไปที่ด้านล่างเพื่อดูคำแนะนำในเรื่องนี้)VPN สำหรับภายในองค์กรและผ่านไมโครเซอร์วิส อินสแตนซ์การประมวลผล ฐานข้อมูลอัตโนมัติ เกตเวย์บริการ และโหลดบาลานเซอร์ การแสดงภาพ AR จะเหมาะ และเราสามารถรันบางสิ่งที่ยอดเยี่ยมบนมันได้ เช่น เมื่อเรารันSETI@home บน Raspberry Pi Mini Super Computer ซึ่งเป็นคลัสเตอร์ 84-Pi ฉันเกิดความคิดที่จะตั้งค่าบริการเพื่อให้ทุกคนในโลกสามารถส่งโค้ดไปยังคลัสเตอร์เพื่อเรียกใช้ปริมาณงาน ในขณะที่เราอวดบริการ Digital Twin AR/VR และสร้างบล็อกและวิดีโอเพื่อสร้างแรงบันดาลใจให้กับนักพัฒนาและนักเรียน เราสามารถแสดงให้ผู้คนเห็นว่าเหตุใดนักพัฒนาและนักเรียนจึงสนุกสนานกับการเรียนรู้และใช้งานOracle's Free Tier แถมยังได้สถิติโลกกินเนสบุ๊คอีกด้วย
เราเลือกตัวเลือกที่สามและการค้นหาห้องทดลองใหม่ก็เริ่มขึ้น ฉันได้พูดคุยกับผู้นำของทีมผลิตภัณฑ์ต่างๆ ที่กล่าวถึงข้างต้น ตลอดจนผู้นำในชุมชน Raspberry Pi เช่นJeff Geerlingและ Eben Upton และวางแผน ฉันไม่สามารถบอกคุณเกี่ยวกับแผนทั้งหมดได้เพราะเราเพิ่งวางรากฐานสำหรับมัน แต่ยังมีอีกมากมายที่จะตามมา นี่เป็นเพียงเรื่องราวของการนำ Pi Cluster ไปยัง DevNucleus ที่ CloudWorld และการกล่าวถึงสิ่งที่เกิดขึ้นหลังจากนั้นสั้นๆ ปรากฎว่าการตัดสินของกินเนสบุ๊คมีราคาแพงมาก!
ขั้นตอนแรกคือการระบุงบประมาณและการประเมินงานเพื่อดูว่าเป็นไปได้หรือไม่ เรารู้ว่าเราต้องการ:
1. แฟน แฟนคลับเยอะ.
2. เปลี่ยนชิ้นส่วนที่ขาดหายไป
3. เพื่อทดสอบทุกสิ่ง
4. การเขียนโปรแกรมใหม่
ทุกเครือข่าย Pi บูท ในปี 2019 ฉันมี Oracle Linux 7 ที่ทำงานบนคลัสเตอร์ทั้งหมด แต่ยังคงใช้งานได้หรือไม่ เรามีซอร์สโค้ด ที่อยู่ MAC และทุกอย่างที่จำเป็นในการทำอีกครั้งหรือไม่
ขั้นตอนที่สองคือการหาสถานที่เพื่อทำงานใน Pi Cluster ลองหาสถานที่ที่มีประตูสองบาน ใกล้กับลิฟต์บรรทุกสินค้า มีกำลังและพื้นที่เพียงพอสำหรับใช้งาน และเครือข่ายที่ไม่ล็อคแน่นหนา — ไม่ใช่เรื่องง่าย! ฉันดูสิ่งอำนวยความสะดวกของ Oracle ทั่วโลก ลอจิสติกส์ของการทำงานบางอย่างเช่นนี้จากระยะไกลและงานทางกายภาพทั้งหมดที่จะต้องใส่เข้าไปหมายความว่าทุกที่ในโลกจะทำงานได้ก็ต่อเมื่อตรงตามข้อกำหนดบางประการเท่านั้น ฉันต้องเดินทางไปที่นั่น ตั้งค่าทุกอย่าง และมีคนช่วยเป็นโหล เราตั้งค่าให้เข้าถึงจากระยะไกล แต่จะต้องมีคนคอยช่วยเหลือเมื่อเกิดสิ่งผิดปกติ หลังจากรับประทานอาหารกลางวันกับภรรยาที่น่ารักของผม เราตัดสินใจว่าโรงรถของเราทำงานได้ดีที่สุด และนั่นคือจุดเริ่มต้น ของ #BigPiClusterInMyGarage
การเพิ่มพัดลม — ทำให้ Raspberry Pi เย็นลง
เมื่อได้รับมอบ ฉันไปทำงานเพื่อให้แน่ใจว่างบประมาณของเราถูกต้อง จากนั้นจึงแก้ไขและทดสอบสิ่งต่างๆ พร้อมกับสั่งซื้อชิ้นส่วนอะไหล่ (ส่วนใหญ่เป็นพัดลม) แฟน ๆ มากมาย: แฟนใหม่ 250 คนอย่างแน่นอน คลัสเตอร์จบลงด้วยพัดลม 257 ตัว และนั่นไม่นับพัดลมที่อยู่ในสวิตช์ เซิร์ฟเวอร์ หรือพาวเวอร์ซัพพลายแต่ละตัว สิ่งนี้ต้องการให้ฉันแยกส่วนคลัสเตอร์ทั้งหมดและประกอบใหม่ ไม่ได้ถอดโบลต์ทุกตัวออก แต่แบงค์ 2U ของ Pi 21 ทั้งหมด 21 ชิ้นถูกถอดแยกชิ้นส่วน Pi ทุกๆ ตัวที่ 5 จะถูกถอดและเปลี่ยนใหม่ ซึ่งหมายความว่าต้องพิมพ์แคดดี้ Pi ใหม่ 250 ตัวพร้อมตัวยึดสำหรับพัดลม คุณสามารถเรียนรู้เกี่ยวกับสิ่งนั้นได้ ที่ นี่ Victor Agredaใช้ Ultimaker S5 ที่เพิ่งซื้อมาเพื่อพิมพ์แคดดี้เวอร์ชั่นพัดลมสองสามโหล แฟนๆ ทุกคนต้องการพลัง และขอบคุณEli Schilling มากเพื่อสร้างชุดสายไฟจำนวนมาก นอกจากนี้ เราได้เพิ่มไข่อีสเตอร์เข้าไปด้วย ฉันรู้ว่ามันไม่มีอะไรเหมือนไข่อีสเตอร์ถ้าฉันบอกคนทั้งโลกเกี่ยวกับเรื่องนี้ แต่ฉันจะอธิบายรายละเอียดเพิ่มเติมในหัวข้อ Warble ด้านล่าง (เพราะมันเจ๋งเกินไปที่จะไม่พูดอะไรเลย) ฉันมีวิดีโอสองสามรายการที่บันทึกงานบางส่วนที่สามารถพบได้ในA Temporal History of The World's Largest Raspberry Pi Cluster
ระบบปฏิบัติการ — ระบบปฏิบัติการที่ฉลาดที่สุด
ฉันคิดว่าพวกเราหลายคนประเมินคุณค่าของระบบปฏิบัติการที่ดีต่ำไปเมื่อสร้างโครงสร้างพื้นฐานและฮาร์ดแวร์ และ Oracle Linux ก็เป็นอันดับหนึ่ง ฉันลงรายละเอียดเพิ่มเติมเกี่ยวกับระบบปฏิบัติการในA Temporal History of The World's Largest Raspberry Pi Cluster (และฉันมีสิ่งอื่นๆ ที่ฉันกำลังทำอยู่ เพื่อให้คุณสามารถตั้งค่าการบูทเครือข่าย Pi ที่บ้านได้)เนื่องจากเรามีงานที่ต้องต่อยอด เราจึงต้องอัปเกรดจาก Oracle Linux 7 เป็น Oracle Linux 9 ฉันจะบอกความลับให้คุณฟัง มันไม่ง่ายอย่างนั้น อย่างไรก็ตาม ทีม Oracle Linux ทำงานได้อย่างยอดเยี่ยมและสมควรได้รับเครดิตทั้งหมดสำหรับการตั้งค่าระบบปฏิบัติการสำหรับ Pi Cluster ลองใช้ Oracle Linux 9 มันคุ้มค่าที่จะใช้หรืออัปเกรดเป็น มีข้อติดขัดเล็กน้อย เช่น ชั้นความปลอดภัยที่เพิ่มเข้ามา ซึ่งหมายความว่าบัญชีรูทจะไม่มีสิทธิ์เข้าถึง SSH ตามค่าเริ่มต้นอีกต่อไป
เป็นมูลค่าการกล่าวขวัญที่นี่ว่าเราบูต Pi อย่างไร ทุก Pi ในคลัสเตอร์กำลังบูทเครือข่ายจากเมานต์ NFS แบบอ่านอย่างเดียวบนเซิร์ฟเวอร์ และเราได้เพิ่มบริการ systemd เพื่อรันสคริปต์ทุบตีทุกครั้งที่เซิร์ฟเวอร์หรือ Pi บูท สิ่งนี้ทำให้การกำหนดค่าสิ่งที่เราเรียกใช้แทบจะง่ายดาย
ซอฟต์แวร์และบริการคลาวด์ — GraalVM ทำงานได้อย่างรวดเร็วบนไคลเอ็นต์หรือบนคลาวด์
ซอฟต์แวร์ทั้งหมดเป็นโอเพ่นซอร์สและสามารถพบได้ที่นี่ในที่เก็บ DevRel GitHub ของเรา มีบางอย่างที่มาจากห้องแล็บและไม่สามารถใช้ได้แม้ว่าจะเป็นการแสดงตัวอย่างเทคโนโลยีก็ตาม(ฉันลองแล้ว แต่ยังไม่พร้อม)ดังนั้นจึงไม่รวมสิ่งเหล่านั้น ถูกเตือน โค้ดส่วนใหญ่เขียนอย่างรวดเร็ว สิ่งที่คุณพบอาจไม่มีเหตุผลมากนัก ดังนั้นให้ฉันอธิบาย
ประการแรก มีซอฟต์แวร์อยู่ในคลัสเตอร์ เซิร์ฟเวอร์เรียกใช้คอนเทนเนอร์ Docker ที่ประกอบด้วย GraalPython ที่ด้านบนของGraalVM Dockerfileนั้นอยู่ระหว่างการปรับปรุงอย่างต่อเนื่อง ดังนั้นฉันยังไม่แนะนำให้คัดลอก ฉันได้จัดทำรายงานข้อผิดพลาด แต่ทันทีที่ตัวแปรสภาพแวดล้อม Graal และ CTRL+C ทำงาน(และอาจมีการสร้างอิมเมจใหม่สำหรับ GraalPython)คุณจะต้องดำดิ่งลงไปทันที ในขณะเดียวกัน โปรดทราบว่านี่เป็นวิธีหนึ่งของ ทำมัน ฉันเคยเห็นเกี่ยวกับประสิทธิภาพที่ เพิ่มขึ้น 8 เท่าเมื่อรันโค้ด Python แท้ภาย ใต้GraalVM น่าประทับใจทีเดียว!
ทุกอุปกรณ์ในคลัสเตอร์เรียกใช้บริการเว็บ เซิร์ฟเวอร์จะออกอากาศข้อความ UDP ด้วยที่อยู่ IP และพอร์ตเพื่อให้อุปกรณ์ใดๆ ฟังและสื่อสารกับเซิร์ฟเวอร์เพื่อค้นหาอัตโนมัติ นี่เป็นสิ่งใหม่จากปีที่แล้วซึ่งที่อยู่ IP ของเซิร์ฟเวอร์ถูกใส่ลงในตัวแปรสภาพแวดล้อม ที่อยู่ IP ไม่เปลี่ยนแปลง ดังนั้นเราจึงสามารถฮาร์ดโค้ดได้ แต่มีสองประเด็น: ใครก็ตามที่ทำงานเกี่ยวกับสิ่งนี้จำเป็นต้องเรียกใช้ระบบทดสอบกับเดสก์ท็อปและจำลอง Pi หรือ Pis สองตัวบนโต๊ะทำงาน และ ตัวแปรสภาพแวดล้อมจะหายไปเมื่อคุณ sudo สิ่งนี้แก้ปัญหาได้มากมายจริง ๆ ! เมื่อ Pi บูทขึ้นมา มันจะเรียกใช้เว็บเซิร์ฟเวอร์ ฟังข้อความ UDP ลงทะเบียนที่อยู่ IP และที่อยู่ MAC กับเซิร์ฟเวอร์ และฟังการทำงาน เป็นระยะๆ
ทุก ๆ ห้าวินาที Pi แต่ละอันจะส่งข้อมูลทั้งหมด(CPU, หน่วยความจำ, อุณหภูมิ ฯลฯ)ไปยังจุดสิ้นสุด REST บนฐานข้อมูลอิสระผ่านการสนับสนุน ORDS ดั้งเดิม สามารถดูเอกสารได้ที่นี่ ฉันใส่รหัสบางอย่างในตำแหน่งที่หาก Pi ไม่สามารถส่งข้อมูลได้ มันจะรอนานขึ้นเล็กน้อยในครั้งต่อไป โดยปรับขนาดได้สูงสุด 60 วินาที กลายเป็นกองข้อมูลที่ Autonomous Database จัดการได้อย่างง่ายดาย ฉันได้ลองใช้ฐานข้อมูลอื่นๆ อีก 2-3 ฐานข้อมูลที่จะไม่ตั้งชื่อ และสมมุติว่าพวกเขาไม่สามารถจัดการฐานข้อมูลนั้นได้ บางครั้งทำให้เกิดความล่าช้ามากกว่าห้าวินาที
Digital Twin พร้อม AR/VR — แสดงภาพข้อมูลของคุณ
ฉันสร้างโมเดล 3 มิติที่มีรายละเอียดค่อนข้างมากของ Pi Cluster ซึ่งสามารถพบได้ที่นี่และเปิดในโปรแกรม 3 มิติที่คุณชื่นชอบ ผู้เชี่ยวชาญด้าน AR/VR และคลาวด์ของเราWojciech Pluta , Victor Martin , Bogdan FarcaและStuart Cogginsไปทำงานสร้างประสบการณ์ AR และ VR ที่น่าทึ่ง พวกเขาปรับแต่งฐานข้อมูล เขียนแอพ APEX และรัน socket.io สำหรับการสตรีม พวกเขาใช้ประโยชน์จากคลัสเตอร์ Kubernettes ที่เรียกว่าOCI OKEดังนั้นประสบการณ์ 3D จึงสามารถปรับขนาดได้โดยไม่ล้ม ซึ่งหมายความว่าทุกคนสามารถวาง Digital Twin of the Pi Cluster ไว้ในห้องนั่งเล่นของตนได้ เรามีไอแพดสำหรับ AR และคิวอาร์โค้ดที่พิมพ์ออกมา เพื่อให้ไอแพดสามารถติดตามคลัสเตอร์ด้วยความแม่นยำในระดับมิลลิเมตร ทำให้ผู้เข้าร่วมประชุมสามารถดูการดำเนินไปของคลัสเตอร์ได้แบบโต้ตอบ ทีมยังสร้างเวอร์ชั่น Meta VR ซึ่งรายละเอียดจะเปิดเผยในไม่ช้า พลังงานไม่เพียงพอที่จะเรียกใช้คลัสเตอร์ทั้งหมดในโรงรถของฉัน ดังนั้นเราจะรวมสิ่งนี้และทดสอบก่อนที่ประตูจะเปิดที่ CloudWorld มันอาจจะทำงาน มันอาจจะล้มลง อะไรจะเกิดมันก็ต้องเจอแต่เรื่องดีๆ! ฉันจะเพิ่มลิงก์ที่นี่เมื่อเรามีบางอย่างเกี่ยวกับ AR/VR Digital Twin
บริการ OCI — ที่ศูนย์กลางของทุกโครงการคือโครงสร้างพื้นฐานระบบคลาวด์
ในโรงรถของฉัน Pi Cluster ได้รับการตั้งค่าเป็นเซิร์ฟเวอร์ "ภายในองค์กร" ฉันสร้างเครือข่ายย่อยแยกบน Ubiquity Dream Machine Pro ของฉัน กำหนดค่า VPN แบบไซต์ต่อไซต์เป็น OCI โดยใช้Bastionและใช้ Jump Box ในเครื่องที่มีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซ(หนึ่งรายการสำหรับซับเน็ต Pi Cluster และอีกรายการสำหรับ Pi Cluster ) . ดังนั้น Pi Cluster จึงปรากฏต่อโลกภายนอกเป็นที่อยู่ IP เดียว แสดงตัว เสียบปลั๊กไฟเครือข่าย และคุณก็สบายดี ฉันหวังว่าการตั้งค่าจะง่ายขนาดนั้นและฉันไม่ต้องทดสอบทุกอย่าง — ตรวจสอบให้แน่ใจว่าสายเคเบิลไม่เด้งออกจากตำแหน่ง — แต่ขอบอกว่ามันง่ายขนาดนั้นเพราะมันฟังดูสนุกกว่า
เราไม่สามารถควบคุมเครือข่ายที่ CloudWorld ได้ ดังนั้น Pi Cluster จึงเป็น “อุปกรณ์ขอบ” โดยจะใช้บริการคลาว ด์เช่นServices Gateway , Load BalancerและDomain Management ใช่ เรามีโดเมน ฉันจะไปที่ส่วนถัดไป
เครือข่ายมีลักษณะดังนี้:
หากคุณมีคำถามใดๆ เกี่ยวกับเรื่องนี้ ให้ไปที่ช่อง Slack สาธารณะของ Oracle สำหรับนักพัฒนา ถามคำถามที่คุณต้องการ ตั้งค่าอย่างไร ใช้บริการอะไร คุณจะพบคำตอบของคุณที่นั่น!
IoT — งานเฉพาะที่มีน้ำหนักเบาด้วยไมโครคอนโทรลเลอร์ขนาดเล็กราคาไม่แพง
นอกจากนี้เรายังมี Arduinos ที่ทำงานบนคลัสเตอร์ Arduino ตัวแรกคือ Arduino Mega ที่มี Ethernet HAT รหัสต้นฉบับสามารถพบได้ที่นี่ มันเรียกใช้บริการเว็บและเปิดโซลินอยด์สองตัวสำหรับการเข้าถึงระยะไกลเพื่อรีเซ็ตทางกายภาพและปุ่มเปิดปิดบนเซิร์ฟเวอร์ ฉันได้เปลี่ยนแปลงซอฟต์แวร์เล็กน้อยเมื่อเทียบกับพื้นที่เก็บข้อมูลและยังไม่ได้เผยแพร่ ดังนั้นฉันจึงทิ้งเวอร์ชันเก่านี้ไว้ เวอร์ชันที่ฉันยังไม่ได้เผยแพร่จะลงทะเบียนเองและรอคำสั่งเริ่มต้นง่ายๆ เมื่อ SSH ของนักพัฒนาเข้าสู่ Bastion
Arduino ตัวที่สองเป็นฮาร์ดแวร์ตัวเดียวกัน แต่เรียกใช้เซิร์ฟเวอร์ REST ที่รับฟัง JSON payload และเชื่อมต่อกับNeoPixels โหล ในแสงที่ด้านบนของกล่องตำรวจ
Warble — ภาษาโปรแกรมแบบกำหนดเองที่ออกแบบมาสำหรับ Pi Cluster
เรากำลังโฮสต์โดเมนhttps://warble.withoracle.cloudบน OCI ซึ่งสนับสนุนโดยDomain Management , Load BalancerและCompute Instance อินสแตนซ์การประมวลผลกำลังเรียกใช้ซอฟต์แวร์เดียวกันกับที่ทำงานบน Pi Cluster: A Docker Container with GraalPython และบริการบนเว็บ ยังไม่พร้อมสำหรับช่วงไพร์มไทม์ แต่โปรดกลับมาตรวจสอบอีกครั้งที่นี่หรือบน Twitter ในวันที่ 18-20 ตุลาคม เพราะจะมีการถ่ายทอดสดในช่วง CloudWorld และฉันคิดว่ามันต้องสนุกมากแน่ๆ
เราได้สร้างภาษาโปรแกรมที่ออกแบบมาสำหรับ Twitter เพื่อใช้งานบน Pi Cluster ที่เรียกว่าWarble Warble ไม่ใช่ภาษาโปรแกรมที่มีคุณสมบัติครบถ้วน และฉันใช้ทางลัดมากมาย มันถูกสร้างให้ใช้ตัวอักษรน้อยที่สุดเท่าที่จะเป็นไปได้ ดังนั้นคุณจึงสามารถโพสต์ Warble ไปที่ Twitter และให้มันทำงานบน Pi Cluster ฉันมีสคริปต์ Python ที่ทำงานบนอินสแตนซ์ของคอมพิวเตอร์โดยใช้ Twitter API เพื่อค้นหาแฮชแท็ก#pi หากอักขระถัดไปเป็นวงเล็บปีกกาแบบเปิดและอักขระตัวสุดท้ายเป็นวงเล็บปีกกาแบบปิด แสดงว่าเรามี Warble และเก็บไว้ในฐานข้อมูล ตัวอย่างเช่น:
> #pi{PRINT(“hello cluster”)}
< hello cluster
คงจะดีไม่น้อยที่จะได้เห็นว่าใครสามารถคำนวณ Pi เป็นตัวเลขมากที่สุดบนหนึ่งในคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลก
> #pi{PRINT(2*ROUND(ACOS(0.0),3))}
< 3.142
Twitter จะสนุกมาก แม้ว่ามันจะควบคุม API และนี่คือเหตุผลที่เรามีโดเมนที่โฮสต์ ฉันจะจัดเตรียมจุดสิ้นสุด REST เพื่อโพสต์ Warbles อาจมีคนคิดวิธีคำนวณ Pi ด้วยBailey–Borwein–Plouffe_formulaโดยใช้ Warble หรือวิธีอื่น
ฉันจะไม่เขียนไวยากรณ์ไวยากรณ์ แต่ฉันจะยกตัวอย่างบางส่วน
Warble รองรับตัวแปร:
> #pi{x=0PRINT(x)}
< 0
> #pi{x=1/16.0²*(4.0/(8*k+1)-2.0/(8*k+4)-1.0/(8*k+5)-1.0/(8*k+6)}
<
> #pi{i=0;WHILE(i<10){PRINT(i);i++}}
< 0
< 1
< 2
< 3
< 4
< 5
< 6
< 7
< 8
< 9
> #pi{FOR(i=0;i<10;i++){PRINT(i)}}
< 0
< 1
< 2
< 3
< 4
< 5
< 6
< 7
< 8
< 9
นอกจากนี้คุณยังสามารถบันทึกค่าและโหลดได้อีกครั้ง เป็นผู้ใช้เฉพาะ:
> #pi{SAVE(“pi”,1)}
<
> #pi{x=LOAD(“pi”);x++;SAVE(“pi”,x);PRINT(x)}
< 2
> #pi{PLAYSOUND(”http://downloads.bbc.co.uk/doctorwho/sounds/tardis.mp3");}
<
> #pi{LIGHTS(0,255,0,0)}
<
> #pi{LIGHTS(23,0,255,0)}
<
> #pi{LIGHTS(0,0,255,0);SLEEP(20);LIGHTS(0,0,255,0)}
<
> #pi{FOR(i=0;i<24;i++){LIGHTS(i,0,255,0)}SLEEP(20);FOR(i=0;i<24;i++){LIGHTS(i,0,0,255)}}
<
บน Ubiquity Dream Machine Pro ด้วยความช่วยเหลือจากTim Cleggฉันได้สร้างซับเน็ตใหม่ นี่คือโครงร่างของขั้นตอนที่เราปฏิบัติตาม ฉันจะไม่ให้การจับภาพหน้าจอหรือวิดีโอที่เฉพาะเจาะจง เนื่องจากตัวเลือกบน Ubiquity และ Oracle Cloud จะเปลี่ยนไป ต่อไปนี้คือไฮไลท์บางส่วนของสิ่งที่คุณต้องการและสิ่งที่ต้องทำ:
ภายใต้เครือข่าย สร้างเครือข่ายใหม่ด้วยชื่อ ฉันเลือก "ปี่"
VLAN ID: 3
ประเภทเครือข่าย: มาตรฐาน
สร้างชื่อเครือข่าย VPN แบบ Site-to-site
: pivpn
Pre-shared Key: ***********************
ที่อยู่เซิร์ฟเวอร์: <ที่อยู่ IP ของเราเตอร์> ( เกตเวย์
/ซับเน็ตระยะไกล: 10.0.0.0/24
ที่อยู่ IP ระยะไกล: <ที่อยู่ IP ของ VPN ระยะไกล> ขั้นสูง: โปรไฟล์ IPsec
ด้วยตนเอง : ระยะทางเส้นทางที่กำหนดเอง: 30 เวอร์ชันการแลกเปลี่ยนคีย์: IKEv1 การเข้ารหัส: AES-256 แฮช: SHA1 IKE DH Group: 5 ESP DH Group: 5 Perfect Forward Secrecy: เปิดใช้งานDynamic Routing: เปิดใช้งาน
ฉันสร้างกฎไฟร์วอลล์สามข้อ:
1. pi บล็อก 192.168.3.1 (เกตเวย์)
ประเภท: LAN Local
Action: Drop
Source, Souce Type: Network
Source, Network: pi
Destination, Source Type: Network
Destination, Network: pi
Destination, Network Type: Gateway IP Address
2. เริ่มต้นยอมรับปี่
ประเภท: LAN กำลัง
ดำเนินการ: ยอมรับ
แหล่งที่มา ประเภทแหล่งที่มา:
แหล่งที่มาของเครือข่าย เครือข่าย:
ปลายทางเริ่มต้น ประเภทแหล่งที่มา:
ปลายทางเครือข่าย เครือข่าย: pi
3. บล็อก pi เป็นค่าเริ่มต้น
ประเภท: LAN Out
การดำเนินการ: Drop
Source ประเภทแหล่งที่มา: ปลายทางเครือข่าย เครือข่าย: ปลายทาง
pi ประเภทแหล่งที่มา: แหล่งที่มาของเครือข่าย เครือข่าย: ค่าเริ่มต้นขั้นสูง: ตรวจสอบสถานะการจับคู่ด้วยตนเองตรวจสอบสถานะการจับคู่ใหม่ไม่ถูกต้อง
4. ใน OCI ไปที่ Networking and Site-to-Site VPN
Create IPSec Connection
ตั้งชื่อให้มัน
คุณจะต้องการให้ได้รับที่อยู่ IP สาธารณะของคุณ
dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com
คุณจะต้องสร้างสองอุโมงค์ ดังนั้นฉันจึงตั้งค่าทั้งสองให้ชี้ไปที่ VPN เดียวกัน เนื่องจาก OCI ต้องการสองอุโมงค์ และฉันเปิดเพียงหนึ่งอุโมงค์ในเครือข่ายของฉัน คุณจะเพิ่มสิ่งนี้ลงใน VPN
5. ตั้งค่า Dynamic Routing Gateway
6. ตั้งค่า VCN เพิ่ม Ingress Rule ด้วย CIDR ที่เป็นซับเน็ตในเครื่องของคุณ เช่น ของฉันคือ 192.168.3.0/24
อนาคต
หลังจากผ่านขั้นตอนสำหรับ DevNucleus ที่ Oracle CloudWorld แล้ว Pi Cluster ก็มุ่งหน้าไปยัง Oracle Labs ที่ซึ่ง... ตอนนี้ส่วนถัดไปยังเป็นความลับอยู่เล็กน้อย การใช้งานที่เป็นไปได้ ได้แก่:
1. รันการทดสอบเพิ่มเติมสำหรับ GraalVM และ Java
2. โครงการ Edge Computing
3. Robots & Parallel Processing (เช่น โครงข่ายประสาทเทียม)
5. กิจกรรมที่คุณซึ่งเป็นผู้พัฒนาแนะนำ
ด้วย Pi Day 2023 ใกล้เข้ามาแล้ว คุณจะต้องคอยติดตามวิวัฒนาการขั้นต่อไปของเทคโนโลยีที่น่าทึ่งนี้อย่างแน่นอน ใครจะรู้? Pi บางตัวอาจหาทางออกจากคลัสเตอร์และไปอยู่ในมือของคุณ
ฉันอยากจะขอบคุณทุกคนที่มีส่วนร่วมในโครงการ อ่านประวัติชั่วคราวของคลัสเตอร์ Raspberry Pi ที่ใหญ่ที่สุดในโลกเพื่อดูว่าโปรเจกต์ที่น่าทึ่งนี้เกิดขึ้นได้อย่างไร





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)