วิธีแชร์ CPU หรือ RAM


21

ในเครือข่ายเราแบ่งปันไฟล์ (Disk Driver) หรือฐานข้อมูล แต่เราจะแชร์ CPU หรือ RAM ผ่านเครือข่ายได้อย่างไร


3
ปัญหาในการทำเช่นนี้คือเมื่อเปรียบเทียบกับเวลาแฝงในระดับนาโนวินาทีระหว่าง CPU และ RAM เครือข่ายจะช้าอย่างไม่น่าเชื่อ!
Phoshi

@Phoshi: แม้จะมีเวลาแฝงที่เพิ่มโดยเครือข่ายการตั้งค่าดังกล่าวอาจเร็วกว่าการแลกเปลี่ยนดิสก์
Piskvor

@Piskvor: แต่อย่างที่ทุกคนสามารถบอกคุณได้ swap บนดิสก์เป็นผลงานที่ยอดเยี่ยมมาก!
Phoshi

@Phoshi: ฉันเห็นด้วย - เป็นจริงและทางออกที่ดีที่สุดคือ "เพิ่มหน่วยความจำกายภาพเพิ่มเติม" ทั้งหมดที่ฉันพูดคือการเพจออกไปยังอุปกรณ์ที่รวดเร็ว (เช่น ramdisk) บนเครือข่ายที่รวดเร็วอาจยังเร็วกว่าการเพจจิ้งไปที่ดิสก์จริง กล่าวอีกนัยหนึ่ง: นี่อาจเป็นอุปกรณ์การสลับที่เร็วกว่าการสลับบนสื่อที่มีอยู่จริงแม้ว่ามันจะมีขนาดของคำสั่งที่ช้ากว่า RAM จริงก็ตาม
Piskvor

1
@Piskvor: มีความเป็นไปได้ทั้งหมดและแม้ว่าคุณจะผิดก็เป็นไปตามลำดับความสำคัญเดียวกันดังนั้นจะไม่แย่ลงอย่างมากในกรณีที่เลวร้ายที่สุด ฉันคิดว่ามันอาจจะถูกกว่าที่จะมีที่เก็บข้อมูลจริงในท้องถิ่นมากขึ้น!
Phoshi

คำตอบ:


21

เมื่อต้องการทำเช่นนี้โปรแกรมที่เข้าถึงทรัพยากร CPU / RAM จะต้องได้รับการออกแบบเป็นพิเศษเพื่อเข้าถึงทรัพยากรดังกล่าว ระบบที่ตั้งค่าในลักษณะนี้เรียกว่าคลัสเตอร์และวิธีการทั่วไปของทรัพยากรที่ใช้ร่วมกันคือโปรโตคอลที่เรียกว่า MPI (ข้อความผ่านส่วนต่อประสาน) เป็นการดาวน์โหลดฟรีและใช้งานกับ Linux สามารถสร้างคลัสเตอร์ที่ทรงพลัง (อาจเป็นคอมพิวเตอร์สุดยอด) ในราคาที่ประหยัด แต่ก็ไม่มีประโยชน์อีกต่อไปเว้นแต่คุณจะมีโปรแกรมที่ออกแบบมาเพื่อใช้ประโยชน์จาก MPI โดยเฉพาะ มีแบบฝึกหัดคลัสเตอร์ที่ดีอยู่ที่นั่นถ้าคุณยังสนใจคุณควรลองใช้ดู

แก้ไข:

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


กรุณาบอกฉันอ้างอิงบางอย่าง
MJH

1
@MJH ดูคำตอบที่แก้ไขแล้วของฉัน
ubiquibacon

Thanks.but กวดวิชานี้ทำงานบน Linux และฉันใช้ Windows.also โดยนี้แอปพลิเคชันจะต้องเขียนภายใต้ MPI และข้อ จำกัด
MJH

3
@MJH ถ้าคุณต้องการทำงานกับ Windows คุณเพียงแค่ต้องการ MPI library ที่ทำงานกับ Windows ได้ แต่แนวคิดก็เหมือนกัน MPICH ใช้งานได้กับ Windows หรือคุณสามารถสร้างคลัสเตอร์ Windows ของคุณด้วย Windows HPC (มีค่าการนำไฟฟ้า MPI) หากคุณมีเหรียญเหลืออยู่ แม้ว่าสิ่งนี้จะช่วยให้คุณใช้ Windows ได้ แต่คุณยังคงต้องใช้โปรแกรมที่เขียนขึ้นสำหรับ MPI แต่ขณะนี้ยังไม่มีวิธีแก้ไข
ubiquibacon

2
ขอบคุณสำหรับคำตอบนี้ - บทแนะนำที่อ้างถึงดูเหมือนว่ามีการเปลี่ยนแปลงที่อยู่เป็นuiowa.edu/mihpclab/hpcSystsemTechnicalReport/ … ... ไชโย!
sdaau

9

คุณสามารถแชร์ RAM โดยใช้ดิสก์ RAM แต่ดูเหมือนว่าการแชร์ดิสก์ปกติยกเว้นว่าอยู่ใน RAM ของคอมพิวเตอร์เครื่องอื่น ไม่มีวิธีใดที่คอมพิวเตอร์เครื่องหนึ่งจะใช้ RAM ของคอมพิวเตอร์เครื่องอื่นราวกับว่าเป็น RAM ของตัวเอง แต่มีวิธีการใช้ RAM ของคอมพิวเตอร์เครื่องอื่น เพิ่มเติมเกี่ยวกับเรื่องนั้นในย่อหน้าถัดไป

สำหรับการแชร์ CPU นั้นเป็นไปได้ แต่ไม่มีมาตรฐานเดียวสำหรับมัน คุณไม่สามารถแชร์และให้คอมพิวเตอร์เครื่องอื่นใช้ทรัพยากรที่จำเป็น แต่คุณต้องมีแอพพลิเคชั่นที่ออกแบบมาเป็นพิเศษซึ่งสามารถทำงานกับคอมพิวเตอร์หลายเครื่องได้ในคราวเดียว สิ่งนี้มักเรียกว่าการคำนวณแบบกระจายและถูกใช้โดยบางโครงการวิจัยเช่น SETI @ Home, Einstein @ Home, Climateprediction.net และอื่น ๆ อีกมากมาย

โดยทั่วไปโปรแกรมทำงานในลักษณะที่มีเซิร์ฟเวอร์กลางหนึ่งตัวที่กระจายงานที่ต้องทำ คอมพิวเตอร์บนเครือข่ายจะดาวน์โหลดหน่วยงานจากคอมพิวเตอร์ส่วนกลางและประมวลผล หลังจากนั้นคอมพิวเตอร์ส่วนกลางจะรับผลลัพธ์จากลูกค้าและรวมเข้าเป็นผลลัพธ์เดียว วิธีนี้คอมพิวเตอร์ "แชร์" CPU และ RAM ทรัพยากรผ่านเครือข่าย ข้อเสียของการทำเช่นนี้คือต้องมีการสร้างโปรแกรมในลักษณะที่ทำงานผ่านเครือข่ายและตอนนี้การคำนวณแบบกระจายไม่เป็นที่นิยมในหมู่การใช้งานทั่วไปสำหรับคอมพิวเตอร์ดังนั้นจึงมีโปรแกรมเฉพาะจำนวนน้อยที่สนับสนุน ในทางกลับกันมันถูกใช้เพื่อจุดประสงค์ทางวิทยาศาสตร์เนื่องจากมีราคาถูกกว่าเพื่อให้ได้คอมพิวเตอร์ส่วนบุคคลจำนวนมากหรือ playstations 3 มากกว่าเพื่อเข้าถึงคอมพิวเตอร์เมนเฟรม


เป็นซอฟต์แวร์ที่มีส่วนแบ่งการประยุกต์ใช้ของฉันในเครือข่ายของฉันโดยไม่จำเป็นต้องต่อกับเครือข่ายต่างประเทศ (อดีตฉันต้องการแสดงผลไฟล์ที่เครื่องคอมพิวเตอร์ของฉันแสดงผลใน 7 วัน แต่ฉันแบ่งปันไปยังเครือข่ายของฉันและการแสดงผลลดลงถึง 1 วัน?!.
MJH

@MJH โชคไม่ดีที่ฉันไม่เคยได้ยินโปรแกรมใด ๆ
AndrejaKo

1
การแบ่งปัน ramdisks นั้นไม่มีจุดหมายเลยใช่มั้ย คุณจะได้รับความผันผวนของหน่วยความจำพร้อมความช้าของพื้นที่เก็บข้อมูลบนเครือข่าย
Journeyman Geek

1
@ AndrejaKo สำหรับการแปลงรหัสวิดีโอแบบตรงฉันไม่เคยได้ยินเรื่องใดเลย (แต่บางคนกำลังทำ Google ฉันพบโครงการหนึ่งหรือสองโครงการในอัลฟา / เบต้าที่ทำ) อย่างไรก็ตามสำหรับการแสดงผล 3 มิติผมได้ไม่เห็นโปรแกรมแสดงผล 3 มิติตั้งแต่ 90 ที่ไม่ได้รับการสนับสนุน เครือข่าย การแสดงผล
Scott Chamberlain

5

มีซอฟต์แวร์สำหรับแบ่งปันแอปพลิเคชันของฉันในเครือข่ายของฉันหรือไม่โดยไม่จำเป็นต้องใช้เครือข่ายต่างประเทศ (เช่นฉันต้องการเรนเดอร์ไฟล์ที่พีซีของฉันแสดงผลใน 7 วัน แต่ฉันแชร์สิ่งนี้กับเครือข่ายของฉัน MJH 12 มี.ค. 54 เวลา 13:19 น

คุณมีปัญหาเกี่ยวกับ XYคุณไม่ควรถามว่า "ฉันจะแชร์คอมพิวเตอร์ซีพียูและ ram accros ได้อย่างไร" แต่ "ฉันจะใช้คอมพิวเตอร์หลายเครื่องเพื่อทำให้การแสดงผลของฉันใช้ ZZZZZ เร็วขึ้นได้อย่างไร"

มันขึ้นอยู่กับซอฟต์แวร์ที่คุณใช้และสิ่งที่คุณกำลังแสดงผล (คุณแปลงรหัสวิดีโอหรือคุณกำลังสร้างโมเดล / วิดีโอ 3D หรือไม่)

เพื่อเลือกตัวอย่างซอฟต์แวร์ 3D ฟรีBlenderสนับสนุนการเรนเดอร์แบบกระจายซึ่งคุณสามารถมีคอมพิวเตอร์จำนวนมากที่ทำงานร่วมกันเพื่อสร้างผลลัพธ์เดียว หากคุณกำลังทำวิดีโอเรนเดอร์ googling อย่างรวดเร็วพบว่าโครงการโอเพ่นซอร์สMediaEncodingClusterที่ช่วยให้คุณสามารถเรนเดอร์วิดีโอและไฟล์เสียงโดยใช้คอมพิวเตอร์หลายเครื่อง


5

ระบบปฏิบัติการเดียวที่ฉันรู้ซึ่งอนุญาตให้แชร์ CPU / RAM คือ plan9 คุณสามารถส่งออก / ติดตั้งได้เกือบทุกอย่าง ไม่ได้หมายความว่าการแสดงนั้นดีแน่นอน


0

มันจะเป็นคุณสมบัติที่ดีในการแบ่งปัน cpu / ram สำหรับงานผ่านเครือข่าย ขณะนี้เรายังคงมีแนวคิดเก่า ๆ อยู่เล็กน้อยในการเก็บโปรแกรมไว้ในที่ที่สิ่งต่าง ๆ เกิดขึ้น แต่เราสามารถอนุญาตให้ซีพียูหลายเครื่องบนเครื่องเดียวกันสามารถเข้าถึงโค้ดได้ เรามีวิธีหนึ่ง (อย่างน้อย) ที่ทำอะไรแบบนี้ java บนเว็บเพจทำงานโดยใช้ทั้งเซิร์ฟเวอร์และไคลเอนต์ แต่มันยังคงถูกล็อกในวิธีที่เซิร์ฟเวอร์ - ไคลเอนต์จะทำสิ่งต่าง ๆ (ที่เซิร์ฟเวอร์เก็บข้อมูลส่วนใหญ่) สิ่งที่เราต้องสามารถมอบหมายงานให้กับเครื่องได้ในลักษณะเดียวกับที่เราทำเมื่อเรามี cpus หลายตัว (ยกเว้นเครื่องที่ทำงานต้องมีโปรแกรม snip และ data snip ที่กำหนดไว้ทำให้ภาระงานหนักบนเครือข่าย หากงานของตัวเองไม่ใช่เรื่องง่ายและอาจทำให้เกิดปัญหาคอขวดใหม่ฉันชอบความคิดที่ว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.