คลัสเตอร์จาก Raspberry Pi 3. การสร้างระบบการปรับใช้แอปพลิเคชันโดยใช้ Docker

ในโพสต์รับเชิญของวันนี้ Bruce Tulloch ซีอีโอและกรรมการผู้จัดการของ BitScope Designs กล่าวถึงการใช้การประมวลผลแบบคลัสเตอร์กับ Raspberry Pi และนักบินล่าสุดของคลัสเตอร์ Los Alamos National Laboratory 3000-Pi ที่สร้างด้วย BitScope Blade

ปกติแล้วการประมวลผลประสิทธิภาพสูงและ Raspberry Pi จะไม่พูดออกมาพร้อมกัน แต่ห้องปฏิบัติการแห่งชาติ Los Alamos กำลังสร้างคลัสเตอร์ Raspberry Pi ที่มี 3,000 คอร์เป็นนักบิน ก่อนที่จะขยายขนาดเป็น 40,000 คอร์หรือมากกว่านั้นในปีหน้า

น่าทึ่งมาก แต่ทำไมล่ะ?

กลุ่ม Raspberry Pi แบบดั้งเดิม

เช่นเดียวกับคนส่วนใหญ่ เราชอบคลัสเตอร์ที่ดี! ผู้คนสร้าง Raspberry Pi ขึ้นมาตั้งแต่แรกเริ่ม เพราะมีราคาไม่แพง ให้ความรู้ และสนุกสนาน สร้างขึ้นด้วย Pi, Pi 2, Pi 3 และแม้แต่ Pi Zero ดั้งเดิม แต่ไม่มีคลัสเตอร์ใดที่พิสูจน์แล้วว่าใช้งานได้จริงเป็นพิเศษ

นั่นไม่ได้หยุดพวกมันว่ามีประโยชน์! ฉันเห็นกลุ่ม Raspberry Pi ค่อนข้างน้อยในการประชุมเมื่อสัปดาห์ที่แล้ว

สิ่งเล็กๆ ที่ดึงดูดสายตาฉันนั้นมาจากผู้คนที่ openio.io ซึ่งใช้คลัสเตอร์ Raspberry Pi Zero W ขนาดเล็กเพื่อสาธิตแพลตฟอร์มพื้นที่เก็บข้อมูลออบเจ็กต์ที่กำหนดโดยซอฟต์แวร์ที่ปรับขนาดได้ ซึ่งบนเครื่องขนาดใหญ่นั้นใช้เพื่อจัดการข้อมูลระดับเพตะไบต์ แต่ มีน้ำหนักเบามากจนทำงานได้ดีกับสิ่งนี้:

มีอีกตัวอย่างที่น่าสนใจที่บูธ ARM ซึ่งแพลตฟอร์มคอนเทนเนอร์เอกพจน์ของ Berkeley Labs ได้รับการสาธิตการทำงานอย่างมีประสิทธิภาพมากบนคลัสเตอร์ขนาดเล็กที่สร้างด้วย Raspberry Pi 3

รายการโปรดของฉันมาจาก Edinburgh Parallel Computing Center (EPCC): Nick Brown ใช้คลัสเตอร์ของ Pi 3 เพื่ออธิบายซูเปอร์คอมพิวเตอร์ให้กับเด็กๆ ด้วยแอปพลิเคชันแบบโต้ตอบที่น่าดึงดูด แนวคิดก็คือให้ผู้มาเยี่ยมชมอัฒจันทร์ออกแบบปีกเครื่องบิน จำลองปีกเครื่องบิน จำลองปีกเครื่องบิน และดูว่าเครื่องบินที่ใช้ปีกใหม่สามารถบินจากเอดินบะระไปนิวยอร์กโดยใช้เชื้อเพลิงเต็มถังได้หรือไม่ ของฉันทำมันได้ โชคดีนะ!

คลัสเตอร์ Raspberry Pi รุ่นต่อไป

เราได้สร้างคลัสเตอร์ Raspberry Pi ความแข็งแกร่งทางอุตสาหกรรมขนาดเล็กมาระยะหนึ่งแล้วด้วย BitScope Blade

เมื่อ Los Alamos National Laboratory ติดต่อเราผ่านทาง SICORP ผู้ให้บริการ HPC เพื่อขอให้สร้างคลัสเตอร์ที่ประกอบด้วยโหนดหลายพันโหนด เราได้พิจารณาตัวเลือกทั้งหมดอย่างรอบคอบ จำเป็นต้องมีความหนาแน่น เชื่อถือได้ ใช้พลังงานต่ำ และกำหนดค่าและสร้างได้ง่าย ไม่จำเป็นต้อง "ทำงานทางวิทยาศาสตร์" แต่จำเป็นต้องทำงานในเกือบทุกรูปแบบเหมือนกับที่คลัสเตอร์ HPC เต็มรูปแบบทำ

ฉันจะอ่านและตอบความคิดของคุณในความคิดเห็นด้านล่างโพสต์นี้ด้วย

หมายเหตุบรรณาธิการ:

นี่คือรูปถ่ายของ Bruce สวมเครื่องบินเจ็ตแพ็ค เจ๋งใช่มั้ยล่ะ!


16 ความคิดเห็น

    พวกคุณต้องเริ่มสร้าง "ชุดผู้ประกอบ" คอมพิวเตอร์ ตอนเด็กๆ ฉันได้รับชุดอุปกรณ์สร้างกล้ามเนื้อเมื่อฉันอายุ 7-8 ขวบในวันคริสต์มาส ฉันทำทุกอย่างที่ใครๆ ก็คิดได้ ต่อมาฉันกลายเป็นวิศวกรเครื่องกล ฉันออกแบบชิ้นส่วนสำหรับกังหันก๊าซ GE และเมื่อคุณเปิดไฟ ฉันมีความเชื่อมโยงโดยตรงกับการจ่ายไฟให้กับ RPis ทั่วโลก

    คุณมีส่วนพื้นฐานส่วนใหญ่แล้วในตอนนี้ คุณต้องมีบัส เช่น บัส CM DDR3 หาก RPi 3B หรือเมื่อใดก็ตามที่ RPi 4 ออกมา มีอะแดปเตอร์หรือ pinout ที่เชื่อมต่อกับบัสนั้น การทำคลัสเตอร์จะเป็นเรื่องง่าย ฉันจินตนาการถึง CM โปรเซสเซอร์สี่ตัว, โปรเซสเซอร์กราฟิก/เครื่องขุด Bitcoin บน CM, CM พร้อม SSD เป็นต้น ชุดเครื่องสร้างคอมพิวเตอร์…

    • เกิดอะไรขึ้นกับการใช้สวิตช์และอีเธอร์เน็ตแฟบริคเป็น "บัส" บนฮาร์ดแวร์ที่มีอยู่

    มีการนำเสนอวิดีโอสั้นๆ ที่กล่าวถึงคลัสเตอร์ Los Alamos Pi ว่ามันถูกสร้างขึ้นอย่างไร จะใช้ทำอะไร และเหตุใดจึงเลือกโซลูชันนี้เหนือคลัสเตอร์อื่นๆ

    นอกจากนี้ เมื่อพิจารณาถึงความสนใจใน OctoPi และคลัสเตอร์ Pi อื่นๆ จะมีส่วนที่เกี่ยวกับการประมวลผลแบบขนานในฟอรัม Raspberry Pi ได้หรือไม่

    • นั่นเป็นความคิดที่ดี ฉันคิดว่ามันถึงเวลาแล้ว

    มีการสาธิต airwing ฟรีหรือไม่?

    • คลัสเตอร์ EPCC Raspberry Pi เรียกว่า Wee Archie () และคลัสเตอร์ (เช่นเดียวกับ Los Alamos ที่เราสร้างขึ้น) นั้นเป็น "แบบจำลอง" แม้ว่าจะมีจุดประสงค์ที่ค่อนข้างแตกต่างออกไปก็ตาม ในกรณีของพวกเขา มันเป็นตัวแทนของ Archer (http://www.archer.ac.uk/) ซูเปอร์คอมพิวเตอร์ระดับโลกที่ตั้งและดำเนินการในสหราชอาณาจักร National Supercomputing Service Nick Brown (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) คือคนที่อยู่เบื้องหลังการสาธิตที่ฉันเห็นที่ SC17 วางสายเขา!

    ฉันดีใจที่ได้ออกจากแผนกคอมพิวเตอร์ประสิทธิภาพสูงแล้ว นี่คือความบ้าคลั่ง รหัส Fortran ที่แพร่หลายในห้องปฏิบัติการจะไม่ทำงานเหมือนกันบนสถาปัตยกรรม ARM เมื่อซูเปอร์คอมพิวเตอร์ที่โค้ดนั้นใช้งานจะถูกใช้กับเครื่องที่ใช้สถาปัตยกรรม Intel โปรเจ็กต์นี้จะทำให้นักศึกษาฝึกงานได้มีโอกาสเรียนรู้สิ่งที่พวกเขาควรเรียนรู้ในวิทยาลัย

    • ปัญหาที่ค้างอยู่ประการหนึ่งเกี่ยวกับการประมวลผลระดับ Exascale คือ การตรวจสอบการคำนวณที่ทำงานบนคอร์จำนวนมากในหลายกล่องนั้นไม่มีประสิทธิภาพ ในเวลาเดียวกัน ความน่าจะเป็นที่โหนดทั้งหมดทำงานโดยไม่มีข้อผิดพลาดตลอดระยะเวลาการคำนวณจะลดลงแบบทวีคูณเมื่อมีการเพิ่มโหนดมากขึ้น

      ระบบหน่วยความจำแบบขนานแบบกระจายที่มีประสิทธิภาพประสิทธิผลได้รับการเปรียบเทียบกับการเลี้ยงไก่ เมื่อใคร่ครวญฝูงแกะที่มีขนาดใหญ่ถึงขนาดต้องใช้เมกะวัตต์ในการเลี้ยงพวกมัน การฝึกต้อนแมลงสาบจะดีกว่า นี่ไม่เกี่ยวกับการปรับแต่งโค้ด Fortran แต่เกี่ยวกับวิธีจัดการข้อผิดพลาดของฮาร์ดแวร์ในการคำนวณแบบขนานที่มีการกระจายอย่างหนาแน่น ดังที่กล่าวไว้ในข่าวประชาสัมพันธ์ เราไม่รู้วิธีบู๊ตเครื่อง exascale: เมื่อโหนดสุดท้ายบู๊ต โหนดอื่นๆ อีกหลายโหนดก็ขัดข้องไปแล้ว ในความคิดของฉันการสร้างแบบจำลองความยากลำบากระดับ exascale เหล่านี้ด้วยคลัสเตอร์คอมพิวเตอร์ Raspberry Pi จำนวนมากนั้นเป็นไปได้ ตัวอย่างเช่น การทิ้ง RAM ขนาด 1GB บนเครือข่าย 100Mbit ของ Pi นั้นมีอัตราส่วนข้อมูลต่อแบนด์วิธที่คล้ายคลึงกัน เหมือนกับการทิ้ง RAM ขนาด 1TB ผ่านการเชื่อมต่อระหว่างกันขนาด 100Gbit

      • ตรงไปที่เอริค ปัญหาคือปัญหาเรื่องขนาด การบูตเครื่อง การรันเครื่องจักร การรับข้อมูลเข้าและออก และการตรวจสอบชี้เพื่อหลีกเลี่ยงการสูญเสียงานคำนวณจำนวนมหาศาล

        สิ่งที่น่าสนใจที่ฉันได้เรียนรู้จากโครงการนี้...

        โดยปกติแล้วเราจะคิดว่าอัตราความผิดพลาดของลำดับ 10^-18 นั้นค่อนข้างดี แต่ในระดับนี้ เราสามารถพบอัตราความผิดพลาดดังกล่าวได้ภายในระยะเวลาของการยิงนัดเดียวบนเครื่องจักรขนาดใหญ่ ในระดับ exascale สิ่งนี้จะแย่ลง คำว่าชุมชน HPC ใช้สำหรับสิ่งนี้คือ “ความยืดหยุ่น”; เครื่องจักรจำเป็นต้องสามารถทำวิทยาศาสตร์ด้วยวิธีที่เชื่อถือได้และตรวจสอบได้ แม้ว่าปัญหา "ในโลกแห่งความเป็นจริง" เหล่านี้จะเข้ามาแทรกแซงการทำงานของคลัสเตอร์พื้นฐานก็ตาม

        พวกเขาทำ "วิทยาศาสตร์แบบซิงโครนัส" มากมายในวงกว้าง ดังนั้นจึงหลีกเลี่ยงไม่ได้ที่จะต้องมีจุดตรวจสอบ และลอส อลามอสตั้งอยู่ที่ระดับความสูงค่อนข้างสูง (ประมาณ 7,300 ฟุต) ดังนั้นเครื่องจักรจึงได้รับรังสีคอสมิกในระดับที่สูงกว่า ซึ่งหมายความว่าพวกเขาพบ "ข้อผิดพลาดแบบอะนาล็อก" ในอัตราที่สูงกว่า ซึ่งอาจทำให้เกิดข้อผิดพลาดในการคำนวณและการล่มของโหนดแบบสุ่ม

        ปัญหาทั้งหมดเหล่านี้สามารถสร้างแบบจำลอง ทดสอบ และทำความเข้าใจได้โดยใช้ Raspberry Pi Cluster ด้วยต้นทุนที่ต่ำกว่ามากและใช้พลังงานต่ำกว่าในเครื่องขนาดใหญ่ การเข้าถึงรูทไปยังคลัสเตอร์หลัก 40,000 คลัสเตอร์เป็นระยะเวลานานนั้นเปรียบเสมือนความฝันที่เป็นจริงสำหรับคนที่ทำงานคือการแก้ปัญหาเหล่านี้

    ฉันสร้างคลัสเตอร์ Raspberry Pi 120 กลุ่มสำหรับการสแกน 3 มิติ ใช้มัลติคาสต์ UDP ล้วนๆ เพื่อควบคุมทั้งหมดโดยใช้การส่งแพ็กเก็ตเครือข่ายเดียว ทำงานได้ดีจริงๆ :-)

    นั่นคล้ายกับสิ่งที่เราต้องการจากโครงการรากหญ้าใหม่มาก แต่แทนที่จะเป็นคลัสเตอร์ทางกายภาพที่อยู่ใกล้ๆ เรากำลังคิดถึง 'กลุ่ม' (แบบ Borg แต่ก็ดี…) สำหรับการเรนเดอร์ Three.js GPU 3D ฉันมีต้นแบบที่ทำงานอยู่ หากคุณ Bing หรือ Google บน sustasphere คุณจะพบ GitHub ที่เกี่ยวข้อง (แต่ยังไม่ทันสมัยทั้งหมด) ต้นแบบปัจจุบันแสดงผล (ชัดเจน) ในเบราว์เซอร์ของคุณ ด้วยการรวมกลุ่มนี้ การโทรผ่านเบราว์เซอร์ของคุณจะถูกส่งไปที่ (หวังว่า) หลายพัน Raspberry's; การกระทืบแต่ละครั้งแบบเรียลไทม์เป็นส่วนหนึ่งของการเรนเดอร์ 3 มิติ ใน 'หัวของฉัน' ฉันกำลังคิดถึง Open Suze ที่ซ้อนกับ Express.js

    สำหรับการจ่ายพลังงานของแต่ละโหนด เราขอขอบคุณลมและสกรูอาร์เคมีเดียน พร้อมหัวไฮดรอลิก พร้อมไดนาโมจักรยานธรรมดา...

    ดี แต่ทำไม? เราอยากจะยกย่องเสียงสะท้อนจากอดีต (คำแถลงของพอร์ตฮูรอน); นำเสนอขอบเขตแห่งศักดิ์ศรีเสมือนจริง ให้โอกาสผู้คนได้แสดงอารมณ์ของตน กำหนดความหมายของศักดิ์ศรีอีกครั้ง ลองนึกภาพโมซาร์ทแสดง Nozze di Figaro ของเขา (สำหรับฉันเป็นตัวอย่างที่สมบูรณ์แบบในการนำศิลปะมาสู่ผู้คนและแบ่งปันความคิดเกี่ยวกับศีลธรรม) และการสามารถอยู่ที่นั่นได้จริงๆ เคลื่อนที่ไปรอบๆ 'นับรูจมูก' และอาจถึงขั้น 'ทำร่างกายให้แข็งแรง' อีกด้วย

    ใช่ คุณจะต้องมี GPU-collective เพื่อสิ่งนั้น

    จากประสบการณ์ของคุณ คุณช่วยแนะนำเราเกี่ยวกับเส้นทางข้างหน้าได้ไหม ช่วยในการตัดสินใจที่ถูกต้อง?

    > นักบินล่าสุดของคลัสเตอร์ Los Alamos National Laboratory 3000-Pi

    ควรอ่านคลัสเตอร์ 750-Pi, 5 เบลด อันละ 150 Pis รวมทั้งหมด 3000 คอร์ (4 คอร์ต่อ CPU ต่ออัน)

    โอเค ฉันเป็นคนนูบี้ที่ใช้ Raspberry Pi 3 แต่ฉันสงสัยว่าพวกเขาใช้ LFS กับคลัสเตอร์เบลด bitscope หรือไม่? …และถ้าเป็นเช่นนั้น มันทำงานอย่างไร?

    • ไม่ใช่ LFS แต่ไม่ใช่ Raspbian เช่นกัน (ยกเว้นการทดสอบครั้งแรก) ในที่สุดพวกเขาจะเผยแพร่เพิ่มเติมเพื่ออธิบายสิ่งที่พวกเขากำลังทำอยู่ แต่ก็เพียงพอที่จะบอกว่ามันเป็นซอฟต์แวร์สแต็คแบบลีนซึ่งมีจุดมุ่งหมายเพื่อให้ง่ายสำหรับพวกเขาในการจำลองการทำงานของคลัสเตอร์ขนาดใหญ่บนคลัสเตอร์ "เล็ก" นี้

    เหตุใด “การหลีกเลี่ยงการใช้การ์ด Micro SD” จึงสำคัญ

    ฉันมีแอปพลิเคชันอยู่ในใจสำหรับคลัสเตอร์ pi ซึ่งฉันต้องการที่เก็บข้อมูลในเครื่อง ถ้าฉันไม่สามารถใช้การ์ด MicroSD ได้ จะต้องทำอย่างไร?

    • เมื่อรันคลัสเตอร์ที่มีโหนด 750 โหนด (เช่นเดียวกับที่ Los Alamos กำลังทำอยู่) การจัดการและอัปเดตรูปภาพบนการ์ด SD 750 ทั้งหมดถือเป็นฝันร้าย

      หากคลัสเตอร์ของคุณเล็กลงก็อาจไม่เป็นปัญหา (จริงๆ แล้วเรามักจะทำเช่นนี้กับ Blade Racks ขนาดเล็กที่มี 20 หรือ 40 โหนด)

      อย่างไรก็ตาม อีกประเด็นคือความแข็งแกร่ง

      การ์ด SD มักจะเสื่อมสภาพ (ความเร็วขึ้นอยู่กับ) คุณเป็นยังไงบ้างใช้พวกเขา) โหนดบูต PXE (net) ไม่เสื่อมสภาพ ที่เก็บข้อมูลในตัวเครื่องอาจไม่จำเป็น (หากคุณใช้ระบบไฟล์ที่ให้บริการ NFS หรือ NBD ผ่าน LAN) แต่แบนด์วิธในการเข้าถึงที่เก็บข้อมูล (ระยะไกล) อาจมีปัญหา (หากโหนดทั้งหมดข้ามบน LAN ในคราวเดียว ขึ้นอยู่กับ โครงสร้างเครือข่ายของคุณและ/หรือแบนด์วิธเซิร์ฟเวอร์ NFS/NBD)

      ตัวเลือกอื่นคือแท่ง USB (เสียบเข้ากับพอร์ต USB ของ Raspberry Pi) (โดยปกติ) เร็วกว่าและ (สามารถ) เชื่อถือได้มากกว่าการ์ด SD และคุณสามารถบูตจากการ์ดเหล่านั้นได้เช่นกัน!

      ทั้งหมดที่กล่าวมา ไม่มีปัญหากับการ์ด SD ที่ใช้ภายในข้อจำกัดใน Raspberry Pi Clusters

ใช้งานโดยผู้ที่ชื่นชอบเพื่อวัตถุประสงค์ที่หลากหลาย ตัวอย่างเช่น ผู้ที่สนใจอย่าง David Guill ตัดสินใจใช้มันเพื่อสร้างคลัสเตอร์ ซึ่งเป็นกลุ่มคอมพิวเตอร์ที่เชื่อมต่อถึงกัน และเป็นตัวแทนทรัพยากรฮาร์ดแวร์ตัวเดียวจากมุมมองของผู้ใช้ มีการตัดสินใจที่จะเรียกโครงการ 40-Node Raspi Cluster เป็นที่น่าสังเกตว่า David ต้องการคลัสเตอร์เพื่อที่จะได้รับประสบการณ์ในการเขียนโปรแกรมบนระบบแบบกระจาย ดังนั้นคลัสเตอร์ Raspberry Pi จะเข้ามาแทนที่ซูเปอร์คอมพิวเตอร์จริงในระหว่างการฝึกของเขา

พูดง่ายๆ ก็คือ มันเป็นไปได้ที่จะประกอบคลัสเตอร์จาก Raspberry Pi โดยใช้ชั้นวางหรือตู้ราคาไม่แพงแทนเคส (เช่นในกรณีของ ) แต่เนื่องจาก David สนใจในการดัดแปลง เขาจึงตัดสินใจสร้างคลัสเตอร์ที่มีสไตล์ ใกล้เคียงกับรูปลักษณ์และความสะดวกสบายของโซลูชันแบบอนุกรมมากที่สุด และต้องบอกว่าเดวิดประสบความสำเร็จ เพราะโปรเจ็กต์ของเขาใช้ความคิดมากกว่าคดีต่อเนื่องหลายเรื่อง อย่างไรก็ตาม ตัวโครงการ 40-Node Raspi Cluster นั้นทำจากแผงอะคริลิก ตัดให้ได้ขนาดโดยใช้เลเซอร์และติดกาวด้วยมือ

หลัก คุณสมบัติที่โดดเด่นเหล็กโปรเจ็กต์คลัสเตอร์ 40-Node Raspi Cluster: รูปลักษณ์เท่ มีขนาดค่อนข้างเล็ก (เหมือนหอคอยขนาดใหญ่) เข้าถึงส่วนประกอบทั้งหมดได้ง่าย และสามารถเปลี่ยนได้โดยไม่ต้องถอดเคส การยึดชิ้นส่วนหลักและส่วนประกอบต่างๆ โดยไม่ต้องใช้สกรูอีกด้วย ตามลำดับในสายไฟ (และในโครงการนี้ก็มีไม่น้อย) โปรเจ็กต์นี้ประกอบด้วยคอมพิวเตอร์ Raspberry Pi ขนาดกะทัดรัด 40 เครื่อง (คอร์ Broadcom BCM2835 จำนวน 40 คอร์ที่มีความถี่ 700 MHz, RAM แบบกระจาย 20 GB), สวิตช์ 24 พอร์ตสองตัว, แหล่งจ่ายไฟ ATX หนึ่งตัว, ฮาร์ดไดรฟ์ 1 TB ห้าตัว (ขยายได้สูงสุด 12 ชิ้น ), หน่วยความจำแฟลช 440 GB รวมถึงเราเตอร์ที่มีการเชื่อมต่อไร้สาย


คอมพิวเตอร์ Raspberry Pi ในโปรเจ็กต์นี้ถูกจัดกลุ่มเป็นกลุ่มสี่เครื่องบนตัวยึดอะคริลิกแบบกำหนดเอง ซึ่งมีสิบเครื่องในโปรเจ็กต์นี้ ด้วยการติดตั้งนี้ (เช่นเดียวกับในเบลดเซิร์ฟเวอร์) ทำให้เข้าถึงได้สะดวกและเปลี่ยนคอมพิวเตอร์ขนาดกะทัดรัดได้ง่าย เบลด Raspberry Pi แต่ละตัวมีตัวแปลง DC-DC ขนาดกะทัดรัดของตัวเอง ซึ่งขับเคลื่อนโดยแหล่งจ่ายไฟ ATX ทั่วไป การระบายความร้อนของคลัสเตอร์ดำเนินการโดยใช้พัดลมขนาด 140 มม. สี่ตัว ซึ่งด้านหลังมีการติดตั้งตัวกรองไว้

LED จำนวนมากจะเพิ่ม "การดัดแปลง" เพิ่มเติมให้กับโครงการ 40-Node Raspi Cluster - มีมากกว่าสามร้อยดวงในโครงการ (บนมินิคอมพิวเตอร์, สวิตช์, เราเตอร์และพัดลม) และระหว่างการทำงานพวกเขาจะกะพริบตาม กับภาระ ขนาดของโครงการนี้คือ 25 x 39 x 55 ซม. และค่าก่อสร้างประมาณ 3,000 ดอลลาร์

ด้วยภายนอกและ มุมมองภายในเช่นเดียวกับคุณสมบัติของโครงการ 40-Node Raspi Cluster คุณสามารถดูได้จากรูปภาพและวิดีโอที่แนบมา หากคุณสนใจโปรเจ็กต์นี้ คุณสามารถทำความคุ้นเคยกับมันโดยละเอียดยิ่งขึ้น และ David อธิบายการก่อสร้างสัตว์ประหลาดตัวนี้อย่างละเอียด คุณสามารถเยี่ยมชมบันทึกย่อที่เกี่ยวข้องบนเว็บไซต์ส่วนตัวของเขา

การใช้งานคอมพิวเตอร์ Raspberry Pi ที่ได้รับความนิยมอย่างหนึ่งคือการสร้างคลัสเตอร์ Raspberry Pie มีขนาดเล็กและราคาไม่แพง ดังนั้นจึงใช้สร้างคลัสเตอร์ได้ง่ายกว่าการใช้พีซี คลัสเตอร์ Raspberry Pie จะต้องมีขนาดค่อนข้างใหญ่จึงจะแข่งขันกับพีซีเครื่องเดียวได้ คุณอาจต้องใช้ประมาณ 20 พายเพื่อสร้างคลัสเตอร์ที่มีพลังการประมวลผลมากเท่ากับพีซี แม้ว่าคลัสเตอร์ Pi อาจไม่ทรงพลังขนาดนั้น แต่ก็เป็นโอกาสอันดีที่จะเรียนรู้เกี่ยวกับการประมวลผลแบบกระจาย

มีคอมพิวเตอร์แบบกระจายหลายประเภทซึ่งสามารถใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน มีซุปเปอร์คอมพิวเตอร์ที่ใช้แก้ปัญหาทางคณิตศาสตร์ เช่น การสร้างแบบจำลองสภาพอากาศ หรือการจำลองปฏิกิริยาเคมี ระบบเหล่านี้มักใช้ Message Passing Interface (MPI) ทีมงานที่ University of Southampton ได้สร้างซูเปอร์คอมพิวเตอร์ที่ใช้ MPI แบบ 64 โหนด ระบบนี้ใช้สำหรับการสอนนักเรียนเกี่ยวกับซูเปอร์คอมพิวเตอร์

เทคโนโลยีอื่นที่มักใช้ในการคำนวณแบบกระจายคือ Hadoop ซึ่งกระจายข้อมูลไปยังหลายโหนด Hadoop มักใช้สำหรับการประมวลผลชุดข้อมูลขนาดใหญ่และการขุดข้อมูล วิศวกรของ Nvidia ได้สร้างคลัสเตอร์ Hadoop ขนาดเล็กโดยใช้ Raspberry Pies เขาใช้คลัสเตอร์ของเขาเพื่อ ทดลองและทดสอบแนวคิดต่างๆ ก่อนที่จะนำไปใช้กับระบบที่มีประสิทธิภาพยิ่งขึ้น

การใช้คลัสเตอร์ Raspberry Pi เป็นเว็บเซิร์ฟเวอร์

คลัสเตอร์สามารถใช้เป็นเว็บเซิร์ฟเวอร์ได้ เว็บไซต์จำนวนมากได้รับการเข้าชมมากเกินไปในการทำงานบนเซิร์ฟเวอร์เครื่องเดียว ดังนั้นจึงจำเป็นต้องใช้เซิร์ฟเวอร์หลายเครื่อง โหนดที่เรียกว่าโหลดบาลานเซอร์ได้รับคำขอจากเว็บเบราว์เซอร์ ซึ่งส่งต่อคำขอไปยังเซิร์ฟเวอร์ของผู้ปฏิบัติงาน โหลดบาลานเซอร์จะส่งต่อการตอบสนองจากเซิร์ฟเวอร์กลับไปยังไคลเอนต์

ขณะนี้ไซต์นี้โฮสต์อยู่ในคลัสเตอร์ Raspberry Pi โหนดผู้ปฏิบัติงานเป็นเว็บเซิร์ฟเวอร์มาตรฐานที่มีเนื้อหาเหมือนกัน ฉันเพิ่งติดตั้ง Apache ลงไปและคัดลอกเว็บไซต์ของฉันไปยังแต่ละโหนด

ฉันใช้ Raspberry Pi พิเศษเพื่อโฮสต์สำเนาการพัฒนาของไซต์นี้ และเพื่อควบคุมคลัสเตอร์ Pi นี้เชื่อมต่อกับเครือข่ายท้องถิ่นของฉันผ่าน wifi ดังนั้นฉันจึงสามารถเข้าถึงสำเนาการพัฒนาของไซต์ของฉันจากแล็ปท็อปของฉัน

Pi พิเศษยังมีการเชื่อมต่ออีเธอร์เน็ตกับคลัสเตอร์ Pi เมื่อฉันต้องการอัปเดตไซต์ของฉัน ฉันสามารถถ่ายโอนการเปลี่ยนแปลงจากไซต์การพัฒนาไปยังไซต์ที่ใช้งานจริงบนคลัสเตอร์ได้ การอัปเดตไซต์จะถูกใส่ลงในไฟล์ .tar.gz ซึ่งโหนดของผู้ปฏิบัติงานดาวน์โหลดโดยอัตโนมัติจากไซต์การพัฒนา เมื่อดาวน์โหลดแล้ว การอัพเดตจะถูกแตกไฟล์ลงในระบบไฟล์ในเครื่อง

การกำหนดค่าเซิร์ฟเวอร์ Raspberry Pi

พายทั้งหมดในระบบนี้ไม่มีหัว ฉันสามารถเข้าสู่ระบบ Pi ด้วยไซต์การพัฒนาโดยใช้ Remote Desktop Protocol และจาก Pi นั้น ฉันสามารถเข้าสู่ระบบ Pies ของผู้ปฏิบัติงานโดยใช้ SSH ได้

Pies ทั้งหมดในคลัสเตอร์ใช้ที่อยู่ IP แบบคงที่ ในคลัสเตอร์ที่ใหญ่กว่า การตั้งค่าเซิร์ฟเวอร์ DHCP บนโหลดบาลานเซอร์อาจเป็นการดีกว่า ที่อยู่ IP ที่ใช้ในคลัสเตอร์อยู่บนซับเน็ต 192.168.1.xxx

สำหรับ Pi ของผู้ปฏิบัติงานแต่ละคน ฉันตั้งค่าการ์ด SD ขนาด 4GB โดยใช้ Raspbian เวอร์ชันล่าสุด ใน raspi-config ฉันตั้งค่าตัวเลือกต่อไปนี้:

  • ขยาย fs
  • ตั้งชื่อโฮสต์
  • ตั้งรหัสผ่าน
  • ตั้งค่าหน่วยความจำแยกเป็น 16MB สำหรับ GPU
  • โอเวอร์คล็อก CPU ไปที่ 800MHz
  • เปิดใช้งาน ssh

บนการ์ดแต่ละใบ ฉันติดตั้ง Apache และไลบรารีบางตัวที่ CMS ของฉัน, libxml2 และ python-libxml2 ต้องการ ฉันใช้คำสั่งนี้เพื่อเปิดใช้งานการเขียน mod ใหม่ ซึ่ง CMS ของฉันก็ต้องการเช่นกัน:

$ sudo a2enmod เขียนใหม่

ในที่สุด ฉันคัดลอกสคริปต์บางส่วนลงในการ์ด SD แต่ละอัน ซึ่งอนุญาตให้ Pi แต่ละตัวซิงโครไนซ์เนื้อหากับ Pi ที่กำลังพัฒนา ในคลัสเตอร์ที่ใหญ่ขึ้น การสร้างอิมเมจการ์ด SD จะต้องดำเนินการแก้ไขล่วงหน้าทั้งหมด

การสร้างโหลดบาลานเซอร์

โหลดบาลานเซอร์ต้องมีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซ อินเทอร์เฟซหนึ่งสำหรับรับคำขอจากเราเตอร์ และอินเทอร์เฟซเครือข่ายอีกอินเทอร์เฟซสำหรับส่งต่อคำขอไปยังคลัสเตอร์เซิร์ฟเวอร์ โหนดในคลัสเตอร์อยู่บนเครือข่ายย่อยที่แตกต่างจากส่วนที่เหลือของเครือข่าย ดังนั้นที่อยู่ IP ของอินเทอร์เฟซที่สองของตัวจัดสรรภาระงานจะต้องอยู่บนเครือข่ายย่อยเดียวกันกับส่วนที่เหลือของคลัสเตอร์ อินเทอร์เฟซแรกของตัวจัดสรรภาระงาน มีที่อยู่ IP 192.168.0.3 ในขณะที่ที่อยู่ IP ของอินเทอร์เฟซที่สองคือ 192.168.1.1 Pies ทั้งหมดในคลัสเตอร์มีที่อยู่ IP บนซับเน็ต 192.168.1.xxx

ฉันสร้างโหลดบาลานเซอร์โดยใช้พีซีเครื่องเก่าที่มี RAM 512MB และ CPU 2.7GHz x86 ฉันเพิ่มการ์ดอีเทอร์เน็ต PCI ตัวที่สองและติดตั้ง Lubuntu ซึ่งเป็น Ubuntu เวอร์ชันน้ำหนักเบา ฉันจะติดตั้ง Ubuntu แต่พีซีเครื่องนี้ค่อนข้างเก่า ดังนั้น Lubuntu จึงอาจเป็นตัวเลือกที่ดีกว่า ฉันใช้พีซีเพราะฉันไม่แน่ใจว่า Pi ตัวเดียวจะมีประสิทธิภาพเพียงพอที่จะทำหน้าที่เป็นโหลดบาลานเซอร์ได้หรือไม่ และ Pi มีการเชื่อมต่ออีเธอร์เน็ตเพียงอันเดียว ฉันต้องการให้การเชื่อมต่อเครือข่ายของโหลดบาลานเซอร์ทั้งสองเป็นอีเธอร์เน็ตสำหรับการปรับปรุง ประสิทธิภาพและเสถียรภาพ

โปรดทราบว่าไม่ได้เปิดใช้งานการส่งต่อ IP ตัวจัดสรรภาระงานไม่ใช่เราเตอร์ ควรส่งต่อคำขอ HTTP เท่านั้น ไม่ใช่ทุกแพ็กเก็ต IP ที่ได้รับ

การตั้งค่าซอฟต์แวร์โหลดบาลานเซอร์

มีการใช้งานซอฟต์แวร์ที่แตกต่างกันมากมายสำหรับการทำโหลดบาลานซ์ ฉันใช้โมดูลโหลดบาลานเซอร์ของ Apache เพราะติดตั้งง่าย ก่อนอื่น ฉันต้องแน่ใจว่าระบบปฏิบัติการของพีซีของฉันเป็นเวอร์ชันล่าสุด:

อัปเดต sudo apt-get
sudo apt-get อัปเกรด

จากนั้นฉันติดตั้ง Apache:

sudo apt-get ติดตั้ง apache2

จำเป็นต้องเปิดใช้งานโมดูล Apache เหล่านี้:

พร็อกซี sudo a2enmod
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

ขั้นตอนต่อไปคือการแก้ไข /etc/apache2/sites-available/default เพื่อกำหนดค่าโหลดบาลานเซอร์ โมดูลพร็อกซีจำเป็นสำหรับการส่งต่อ HTTP แต่ทางที่ดีที่สุดคือไม่อนุญาตให้เซิร์ฟเวอร์ของคุณทำงานเป็นพร็อกซี ผู้ส่งอีเมลขยะและแฮกเกอร์มักใช้พร็อกซีเซิร์ฟเวอร์ของผู้อื่นเพื่อซ่อนที่อยู่ IP ของตน ดังนั้นการปิดการทำงานนี้จึงเป็นสิ่งสำคัญ คุณสมบัติโดยการเพิ่มบรรทัดนี้:

ปิด ProxyRequests

แม้ว่าคำขอพร็อกซีจะถูกปิดใช้งาน แต่โมดูลพร็อกซียังคงเปิดใช้งานอยู่ และและทำหน้าที่เป็นพร็อกซีย้อนกลับ ถัดไป กำหนดคลัสเตอร์และสมาชิกโดยเพิ่มโค้ดนี้:

อินเทอร์เฟซผู้จัดการ Balancer

โมดูลบาลานเซอร์มีเว็บอินเทอร์เฟซที่ทำให้สามารถตรวจสอบสถานะของเซิร์ฟเวอร์แบ็คเอนด์และกำหนดการตั้งค่าได้ คุณสามารถเปิดใช้งานเว็บอินเตอร์เฟสได้โดยเพิ่มโค้ดนี้ใน /etc/apache2/sites-available/default:

นอกจากนี้ยังจำเป็นต้องสั่งให้ Apache จัดการคำขอไปยังหน้า /balancer-manager ในเครื่องแทนที่จะส่งต่อคำขอเหล่านี้ไปยังเซิร์ฟเวอร์ของผู้ปฏิบัติงาน คำขออื่น ๆ ทั้งหมดจะถูกส่งต่อไปยังคลัสเตอร์ที่กำหนดไว้ข้างต้น

ProxyPass /balancer-ผู้จัดการ !

ProxyPass/บาลานเซอร์://rpicluster/

เมื่อบันทึกการเปลี่ยนแปลงเหล่านี้แล้ว Apache ควรรีสตาร์ทด้วยคำสั่งนี้:

$ sudo /etc/init.d/apache2 รีสตาร์ท

เมื่อฉันเปิดเบราว์เซอร์และไปที่ http://192.168.0.3 ฉันเห็นหน้าแรกของเว็บไซต์ของฉัน ถ้าฉันไปที่ http://192.168.0.3/balancer-manager ฉันเห็นหน้านี้ในภาพทางด้านขวา

ขั้นตอนสุดท้ายในการทำให้คลัสเตอร์ออนไลน์คือการปรับการตั้งค่าการส่งต่อพอร์ตในเราเตอร์ของฉัน ฉันแค่ต้องตั้งกฎสำหรับการส่งต่อแพ็กเก็ต HTTP ไปที่ http://192.168.0.3

นี่คือ /etc/apache2/sites-available/default ที่สมบูรณ์สำหรับโหลดบาลานเซอร์: ServerAdmin webmaster@localhost DocumentRoot /var/www ตัวเลือก FollowSymLinks AllowOverride ทั้งหมดตัวเลือกดัชนี FollowSymLinks MultiViews AllowOverride All Order อนุญาตปฏิเสธอนุญาตจากทั้งหมด ScriptAlias ​​​​/cgi-bin/ /usr/lib/cgi-bin/ตัวเลือก AllowOverride ไม่มี +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py ลำดับ อนุญาต ปฏิเสธ อนุญาตจากทั้งหมด คำขอพร็อกซีปิดอยู่ BalancerMember http://192.168.1.2:80 BalancerMember http://192.168.1.3:80 BalancerMember http://192.168.1.4:80 BalancerMember http://192.168.1.5:80 AllowOverride ไม่มี อนุญาตคำสั่งซื้อ ปฏิเสธอนุญาตจาก ProxySet ทั้งหมด lbmethod=byrequests ProxyPass /balancer-ผู้จัดการ !

ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # ค่าที่เป็นไปได้ ได้แก่: debug, info, Notice, warn, error, crit, # alert, emerg

LogLevel เตือน CustomLog $(APACHE_LOG_DIR)/access.log รวมกัน โมดูล BitScope Cluster ประกอบด้วยมินิคอมพิวเตอร์ Raspberry Pi 150 เครื่องพร้อมสวิตช์เครือข่ายในตัว ภาพ: BitScopeโปรแกรมเมอร์และนักวิทยาศาสตร์ไม่สามารถเข้าถึงซูเปอร์คอมพิวเตอร์ประสิทธิภาพสูงจริงเพื่อทดสอบโปรแกรมของตนได้อย่างง่ายดายเสมอไป ยิ่งไปกว่านั้น ซูเปอร์คอมพิวเตอร์มักจะยุ่งอยู่กับซอฟต์แวร์อื่นตลอด 24 ชั่วโมงอยู่แล้ว มันยากที่จะหาหน้าต่าง คุณต้องเขียนใบสมัครล่วงหน้าและเข้าแถว ยังไง

โปรแกรมใหม่

จะทำงานในสภาพแวดล้อมแบบมัลติโปรเซสเซอร์จริง งานจะขนานกันได้ดีแค่ไหน?



เพื่อช่วยนักพัฒนา ซึ่งได้รับมอบหมายจากแผนกคอมพิวเตอร์ประสิทธิภาพสูงของห้องปฏิบัติการแห่งชาติ Los Alamos บริษัท BitScope ของออสเตรเลียได้พัฒนาโมดูลการประมวลผล "ทดสอบ" BitScope Cluster ของมินิคอมพิวเตอร์ Raspberry Pi 150 เครื่อง ที่สามารถรวมเป็นคลัสเตอร์และทดสอบโปรแกรมของพวกเขาบน พวกเขา.

ห้องปฏิบัติการแห่งชาติ Los Alamos ดำเนินการหนึ่งในสิบซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุดในโลก - Trinity

ซูเปอร์คอมพิวเตอร์ Trinity ที่ห้องปฏิบัติการแห่งชาติ Los Alamos

ผู้นำของห้องปฏิบัติการมุ่งมั่นที่จะค้นหาวิธีที่จะให้นักพัฒนาสามารถเข้าถึงการประมวลผลแบบขนานประสิทธิภาพสูง โดยไม่ต้องเข้าถึงซูเปอร์คอมพิวเตอร์จริงๆ เพื่อที่พวกเขาจะได้ทดสอบโปรแกรมของตนได้



"โมดูล Raspberry Pi ช่วยให้นักพัฒนาสามารถทราบวิธีการเขียนซอฟต์แวร์ดังกล่าวและทำให้มันทำงานได้อย่างน่าเชื่อถือ โดยไม่ต้องมีม้านั่งทดสอบขนาดเดียวกันซึ่งมีค่าใช้จ่ายถึงหนึ่งในสี่พันล้านดอลลาร์ และใช้ไฟฟ้าถึง 25 เมกะวัตต์" Gary Glider จาก ลอสแอนเจลิส ห้องปฏิบัติการแห่งชาติอลาโมซา

แต่ละโมดูลมีโหนดที่ใช้งานอยู่ 144 โหนด โหนดสำรอง 6 โหนด และโหนดควบคุม 1 โหนด โมดูลนี้มีรูปแบบ 6U เมื่อติดตั้งในชั้นวางเซิร์ฟเวอร์ศูนย์ข้อมูล ตามรายงานบนเว็บไซต์อย่างเป็นทางการ คลัสเตอร์ที่มี 1,000 โหนดบนแร็ค 42U จะมีราคาประมาณ 120-150 ดอลลาร์ต่อโหนด นี่เป็นมาร์กอัปที่ค่อนข้างใหญ่เมื่อเทียบกับราคามาตรฐานของ Raspberry Pi ซึ่งทราบกันว่าอยู่ที่ 35 ดอลลาร์

แต่ละโมดูล BitScope Cluster ประกอบด้วย Building Block ที่เรียกว่า “Cluster Packs” การติดตั้งหนึ่งยูนิตในชั้นวางเกิดขึ้นอย่างแม่นยำในรูปแบบของ "แพ็คเกจ" เหล่านี้



คลัสเตอร์แพ็ค

หนึ่งโหนด (มินิคอมพิวเตอร์ Raspberry Pi 3) มีโปรเซสเซอร์ ARMv8 แบบ quad-core 64 บิตที่ 1.2 MHz ดังนั้นหากเราจินตนาการถึงคลัสเตอร์ที่มีห้าโมดูลก็จะมีโหนดที่ใช้งานอยู่ 720 โหนดนั่นคือคอร์ตัวประมวลผลที่ใช้งานอยู่ 2880 คอร์ การทดสอบว่าโปรแกรมมีความขนานกันดีเพียงใดก็เพียงพอแล้ว



นี่คือลักษณะของมินิคอมพิวเตอร์หนึ่งแถวใน Cluster Pack เมื่อมองอย่างใกล้ชิด

แม้ว่าโซลูชันดังกล่าวจะมีราคาถูกกว่าซูเปอร์คอมพิวเตอร์มาก แต่ก็ยังไม่สามารถเรียกได้ว่าเป็นงบประมาณ มีเพียงองค์กรวิจัยขนาดใหญ่เท่านั้นที่สามารถซื้อคลัสเตอร์ขนาดเล็กได้ในราคา 100,000 ดอลลาร์หรือ 150,000 ดอลลาร์สำหรับโปรแกรมการทดสอบล้วนๆ จริงๆ แล้ว โมดูลดังกล่าวอาจได้รับการออกแบบมาสำหรับองค์กรวิจัยที่ร่ำรวยเหล่านี้ ซึ่งเป็นเจ้าของซูเปอร์คอมพิวเตอร์ อย่างไรก็ตาม ผู้สร้างมินิซูเปอร์คอมพิวเตอร์กล่าวว่า นี่คือ "โซลูชันที่คุ้มค่าและปรับขนาดได้มากที่สุดในโลก: ราคาไม่แพงในการสร้าง ใช้งาน และสนับสนุน"

โมดูล BitScope Cluster ยังช่วยประหยัดพลังงานได้อย่างมาก คุณสามารถคำนวณการใช้พลังงานของแต่ละรายการได้ด้วยตัวเอง โดยนับ 5 W ต่อโหนด หากเราสมมติว่าโหนดสำรองมีการใช้พลังงานน้อยที่สุด โมดูลจะยังคงมีโหนดที่ใช้งานอยู่ 144 โหนดและโหนดควบคุมหนึ่งโหนด รวม 145×5=725 วัตต์.

BitScope ตั้งใจที่จะเปิดตัวโมดูลเหล่านี้ให้ขายฟรีในช่วงต้นปี 2561

จากข้อมูลของบริษัท นอกเหนือจากการพัฒนาซอฟต์แวร์แล้ว คลัสเตอร์ดังกล่าวยังมีประโยชน์ในฐานะเครื่องจำลองเครือข่ายเซ็นเซอร์ ในการวิจัยเกี่ยวกับเครือข่ายประสิทธิภาพสูงและ Internet of Things

บทความที่เกี่ยวข้อง

2024 liveps.ru การบ้านและปัญหาสำเร็จรูปในวิชาเคมีและชีววิทยา