กลับไปหน้าบทความ

อ่าน 6 นาที

หน่วยความจำภายนอกแบบขนาน

ในวิทยาการคอมพิวเตอร์ โมเดลหน่วยความจำภายนอกแบบขนาน (PEM) เป็น เครื่องจักรนามธรรมหน่วย ความจำภายนอก ที่รับรู้แคช [ 1 ] เป็นการเปรียบเทียบการประมวลผลแบบขนานกับ โมเดล...

หน่วยความจำภายนอกแบบขนาน

แบบจำลอง PEM

ในวิทยาการคอมพิวเตอร์โมเดลหน่วยความจำภายนอกแบบขนาน (PEM)เป็นเครื่องจักรนามธรรมหน่วยความจำภายนอกที่รับรู้แคช[ 1 ]เป็นการเปรียบเทียบการประมวลผลแบบขนานกับ โมเดล หน่วยความจำภายนอกแบบ โปรเซสเซอร์เดี่ยว (EM) ในทำนองเดียวกัน เป็นการเปรียบเทียบที่รับรู้แคชกับเครื่องจักรเข้าถึงแบบสุ่มแบบขนาน (PRAM) โมเดล PEM ประกอบด้วยโปรเซสเซอร์จำนวนหนึ่ง พร้อมด้วยแคชส่วนตัวของแต่ละตัว และหน่วยความจำหลักที่ใช้ร่วมกัน

แบบอย่าง

คำนิยาม

แบบจำลอง PEM [ 1 ]เป็นการผสมผสานระหว่างแบบจำลอง EM และแบบจำลอง PRAM แบบจำลอง PEM เป็นแบบจำลองการคำนวณที่ประกอบด้วย โปรเซสเซอร์และ ลำดับชั้นหน่วยความจำสองระดับลำดับชั้นหน่วยความจำนี้ประกอบด้วยหน่วยความจำภายนอก ขนาดใหญ่ (หน่วยความจำหลัก) ที่มีขนาดและ หน่วยความจำภายใน ขนาดเล็ก(แคช)โปรเซสเซอร์ใช้หน่วยความจำหลักร่วมกัน แคชแต่ละอันเป็นของโปรเซสเซอร์ตัวเดียวเท่านั้น โปรเซสเซอร์ไม่สามารถเข้าถึงแคชของโปรเซสเซอร์อื่นได้ แคชมีขนาดซึ่งถูกแบ่งออกเป็นบล็อกที่มีขนาดโปรเซสเซอร์สามารถดำเนินการกับข้อมูลที่อยู่ในแคชของตนเท่านั้น ข้อมูลสามารถถ่ายโอนระหว่างหน่วยความจำหลักและแคชได้ในบล็อกที่มีขนาด

ความซับซ้อนของอินพุต/เอาต์พุต

การวัดความซับซ้อนของโมเดล PEM คือความซับซ้อนของ I/O [ 1 ]ซึ่งกำหนดจำนวนการถ่ายโอนบล็อกแบบขนานระหว่างหน่วยความจำหลักและแคช ในระหว่างการถ่ายโอนบล็อกแบบขนาน โปรเซสเซอร์แต่ละตัวสามารถถ่ายโอนบล็อกได้ ดังนั้น หากโปรเซสเซอร์โหลดบล็อกข้อมูลขนาดจากหน่วยความจำหลักไปยังแคชแบบขนานจะถือว่ามีความซับซ้อนของ I/O เท่ากับโปรแกรมในโมเดล PEM ควรลดการถ่ายโอนข้อมูลระหว่างหน่วยความจำหลักและแคชให้น้อยที่สุด และดำเนินการกับข้อมูลในแคชให้มากที่สุดเท่าที่จะเป็นไปได้

ความขัดแย้งในการอ่าน/เขียน

ในโมเดล PEM ไม่มีเครือข่ายการสื่อสารโดยตรงระหว่างโปรเซสเซอร์ P โปรเซสเซอร์ต้องสื่อสารกันทางอ้อมผ่านหน่วยความจำหลัก หากโปรเซสเซอร์หลายตัวพยายามเข้าถึงบล็อกเดียวกันในหน่วยความจำหลักพร้อมกัน จะเกิดความขัดแย้งในการอ่าน/เขียน[ 1 ]เช่นเดียวกับในโมเดล PRAM มีการพิจารณาปัญหาที่แตกต่างกันสามแบบดังนี้:

  • การอ่านและการเขียนพร้อมกัน (CRCW): บล็อกเดียวกันในหน่วยความจำหลักสามารถอ่านและเขียนได้โดยโปรเซสเซอร์หลายตัวพร้อมกัน
  • การอ่านพร้อมกันและการเขียนแบบพิเศษ (CREW): โปรเซสเซอร์หลายตัวสามารถอ่านบล็อกเดียวกันในหน่วยความจำหลักได้พร้อมกัน มีเพียงโปรเซสเซอร์เดียวเท่านั้นที่สามารถเขียนลงในบล็อกได้ในแต่ละครั้ง
  • การอ่านและการเขียนแบบผูกขาด (EREW): บล็อกเดียวกันในหน่วยความจำหลักไม่สามารถถูกอ่านหรือเขียนโดยโปรเซสเซอร์หลายตัวพร้อมกันได้ มีเพียงโปรเซสเซอร์เดียวเท่านั้นที่สามารถเข้าถึงบล็อกได้ในแต่ละครั้ง

อัลกอริทึมสองแบบต่อไปนี้[ 1 ]แก้ปัญหา CREW และ EREW ได้หากโปรเซสเซอร์เขียนไปยังบล็อกเดียวกันพร้อมกัน วิธีแรกคือการเรียงลำดับการดำเนินการเขียน โปรเซสเซอร์จะเขียนไปยังบล็อกทีละตัวเท่านั้น ซึ่งส่งผลให้มีการถ่ายโอนบล็อกแบบขนานทั้งหมด วิธีที่สองต้องการการถ่ายโอนบล็อกแบบขนานและบล็อกเพิ่มเติมสำหรับแต่ละโปรเซสเซอร์ แนวคิดหลักคือการกำหนดตารางการดำเนินการเขียนในลักษณะต้นไม้ไบนารี และค่อยๆ รวมข้อมูลเข้าเป็นบล็อกเดียว ในรอบแรก โปรเซสเซอร์จะรวมบล็อกของตนเข้าเป็นบล็อก จากนั้นโปรเซสเซอร์จะรวมบล็อกเข้าเป็น ขั้นตอนนี้จะดำเนินต่อไปจนกว่าข้อมูลทั้งหมดจะถูกรวมเข้าเป็นบล็อกเดียว

เมื่อเปรียบเทียบกับรุ่นอื่นๆ

แบบอย่าง มัลติคอร์ รับรู้แคช
หน่วยความจำเข้าถึงแบบสุ่ม (RAM) เลขที่ เลขที่
หน่วยความจำเข้าถึงแบบสุ่มขนาน (PRAM) ใช่ เลขที่
หน่วยความจำภายนอก (EM) เลขที่ ใช่
หน่วยความจำภายนอกแบบขนาน (PEM)ใช่ ใช่

ตัวอย่าง

การแบ่งพาร์ติชั่นแบบหลายวิธี

ให้เป็นเวกเตอร์ของตัวหมุน d-1 ที่เรียงลำดับจากน้อยไปมาก ให้Aเป็นเซตที่ไม่มีลำดับขององค์ประกอบ N ตัว การแบ่งพาร์ติชัน d ทาง[ 1 ]ของAคือเซตโดยที่และสำหรับ เรียกว่าบัคเก็ต ที่i จำนวนองค์ประกอบในมากกว่าและน้อยกว่าในอัลกอริทึมต่อไปนี้[ 1 ]อินพุตจะถูกแบ่งพาร์ติชันออกเป็นส่วนย่อยต่อเนื่องขนาด N/P ในหน่วยความจำหลัก โปรเซสเซอร์ i ทำงานหลักๆ กับส่วนย่อยอัลกอริทึมการแบ่งพาร์ติชันแบบหลายทาง ( [ 1 ] ) ใช้อัลกอริทึมผลรวมคำนำหน้า PEM [ 1 ]เพื่อคำนวณผลรวมคำนำหน้าด้วยความซับซ้อน I/O ที่เหมาะสมที่สุด อัลกอริทึมนี้จำลองอัลกอริทึมผลรวมคำนำหน้า PRAM ที่เหมาะสมที่สุด PEM_DIST_SORT

// คำนวณพาร์ติชั่นแบบ d ทางบนเซ็กเมนต์ข้อมูลสำหรับแต่ละโปรเซสเซอร์ i แบบขนาน อ่านเวกเตอร์ของตัวแบ่งMลงในแคช แบ่งข้อมูลออกเป็น d กลุ่ม และให้เวกเตอร์แทนจำนวนรายการในแต่ละกลุ่ม จบสำหรับ เรียกใช้ฟังก์ชัน PEM prefix sum กับชุดเวกเตอร์พร้อมกัน // ใช้เวกเตอร์ผลรวมคำนำหน้าเพื่อคำนวณพาร์ติชันสุดท้าย สำหรับโปรเซสเซอร์ i แต่ละ ตัวแบบขนาน ให้ เขียนองค์ประกอบลงในตำแหน่งหน่วยความจำโดยมีการชดเชยอย่างเหมาะสมด้วยและ. จบสำหรับ โดยใช้ผลรวมนำหน้าที่จัดเก็บไว้ในตัวประมวลผลสุดท้าย P จะคำนวณเวกเตอร์Bของขนาดบัคเก็ตและส่งคืนค่าดังกล่าว 

ถ้าเวกเตอร์ของจุดหมุน M และชุดข้อมูลนำเข้า A อยู่ในหน่วยความจำที่ต่อเนื่องกัน ปัญหาการแบ่งพาร์ติชันแบบ d ทางสามารถแก้ไขได้ในแบบจำลอง PEM ด้วยความซับซ้อนของ I/O โดยที่เนื้อหาของบัคเก็ตสุดท้ายจะต้องอยู่ในหน่วยความจำที่ต่อเนื่องกันด้วย

การคัดเลือก

ปัญหาการเลือกคือการค้นหารายการที่เล็กที่สุดลำดับที่ k ในรายการที่ไม่มีลำดับAที่มีขนาดNรหัสต่อไปนี้[ 1 ]ใช้ประโยชน์จากPRAMSORTอัลกอริทึมการเรียงลำดับที่เหมาะสมที่สุดของ PRAM ซึ่งทำงานในและซึ่งเป็นอัลกอริทึมการเลือกแบบโปรเซสเซอร์เดี่ยวที่เหมาะสมที่สุดของแคช SELECT

ถ้าเช่นนั้นให้ส่งคืนค่าสิ้นสุดของเงื่อนไข //หาค่ามัธยฐานของแต่ละโปรเซสเซอร์i ในแบบขนาน ทำซ้ำจนครบ // เรียงลำดับค่ามัธยฐาน  // การแบ่งกลุ่มตามค่ามัธยฐานของค่ามัธยฐาน ถ้าเป็นเช่นนั้นให้ส่งคืนมิฉะนั้นให้ส่งคืนสิ้นสุดเงื่อนไข

ภายใต้สมมติฐานว่าข้อมูลนำเข้าถูกจัดเก็บไว้ในหน่วยความจำแบบต่อเนื่องPEMSELECTจะมีความซับซ้อนในการรับส่งข้อมูล (I/O complexity) ดังนี้:

การเรียงลำดับการกระจาย

การเรียงลำดับ แบบกระจาย (Distribution sort)แบ่งรายการข้อมูลนำเข้าAที่มีขนาดNออกเป็นdกลุ่มย่อยที่ไม่ซ้ำกัน โดยแต่ละกลุ่มย่อยจะมีขนาดใกล้เคียงกัน จากนั้นแต่ละกลุ่มย่อยจะถูกเรียงลำดับแบบเรียกซ้ำ และผลลัพธ์จะถูกรวมเข้าด้วยกันเป็นรายการที่เรียงลำดับอย่างสมบูรณ์

หากมอบหมายงานให้กับอัลกอริทึมการเรียงลำดับแบบโปรเซสเซอร์เดี่ยวที่เหมาะสมกับแคช

มิเช่นนั้น จะใช้ อัลกอริทึมต่อไปนี้[ 1 ] :

// สุ่มตัวอย่างองค์ประกอบจากA สำหรับแต่ละโปรเซสเซอร์i ในแบบขนาน ทำซ้ำถ้าเป็นเช่นนั้น ให้โหลดลงในหน้าขนาด M และเรียงลำดับแต่ละหน้า มิฉะนั้น ให้โหลดและเรียงลำดับเป็นหน้าเดียว จบเงื่อนไข เลือกองค์ประกอบที่ 'th จากแต่ละหน้าหน่วยความจำที่เรียงลำดับแล้วลงในเวกเตอร์ตัวอย่าง ที่ต่อเนื่องกัน จบเงื่อนไขทำแบบขนาน รวมเวกเตอร์เข้าเป็นเวกเตอร์เดียวที่ต่อเนื่องกัน สร้างสำเนาของ: จบการ ทำ // ค้นหาจุดหมุนสำหรับ to ใน parallel do end for จุดหมุนของแพ็คในอาร์เรย์ต่อเนื่อง // แบ่งพาร์ติชันAรอบจุดหมุนออกเป็นกลุ่มๆ // เรียงลำดับบัคเก็ตแบบเรียกซ้ำ เพื่อ ดำเนินการแบบขนาน โดยเรียกซ้ำบนบัคเก็ตjที่มีขนาด โดยใช้โปรเซสเซอร์ที่รับผิดชอบองค์ประกอบในบัคเก็ตj สิ้นสุดสำหรับ

ความซับซ้อนของการรับส่งข้อมูล (I/O complexity) PEMDISTSORTคือ:

ที่ไหน

ถ้าเลือกจำนวนโปรเซสเซอร์แล้วและความซับซ้อนของการรับส่งข้อมูล (I/O complexity) เป็นดังนี้:

อัลกอริทึม PEM อื่นๆ

อัลกอริทึม PEM ความซับซ้อนของอินพุต/เอาต์พุต ข้อจำกัด
เมอร์จซอร์ต[ 1 ]
การจัดอันดับรายการ[ 2 ]
ทัวร์ออยเลอร์[ 2 ]
การประเมินแผนผังการแสดงออก[ 2 ]
การค้นหาMST [ 2 ]

ในแบบจำลอง PEM การจัดเรียงสิ่งของ Nชิ้นด้วย โปรเซสเซอร์ P ตัวใช้เวลานานเท่าใด

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Parallel_external_memory&oldid=1180384636 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ หน่วยความจำภายนอกแบบขนาน

ในวิทยาการคอมพิวเตอร์ โมเดลหน่วยความจำภายนอกแบบขนาน (PEM) เป็น เครื่องจักรนามธรรมหน่วย ความจำภายนอก ที่รับรู้แคช [ 1 ] เป็นการเปรียบเทียบการประมวลผลแบบขนานกับ โมเดล...

คำนิยาม

แบบจำลอง PEM [ 1 ] เป็นการผสมผสานระหว่างแบบจำลอง EM และแบบจำลอง PRAM แบบจำลอง PEM เป็นแบบจำลองการคำนวณที่ประกอบด้วย โปรเซสเซอร์และ ลำดับชั้นหน่วยความจำ สองระดับลำดับชั้นหน่วยความจำนี้ประกอบด้วย หน่วยความจำภายนอก ขนาดใหญ่ (หน่วยความจำหลัก) ที่มีขนาดและ...

ความซับซ้อนของอินพุต/เอาต์พุต

การ วัดความซับซ้อน ของโมเดล PEM คือความซับซ้อนของ I/O [ 1 ] ซึ่งกำหนดจำนวนการถ่ายโอนบล็อกแบบขนานระหว่างหน่วยความจำหลักและแคช ในระหว่างการถ่ายโอนบล็อกแบบขนาน โปรเซสเซอร์แต่ละตัวสามารถถ่ายโอนบล็อกได้ ดังนั้น...

ความขัดแย้งในการอ่าน/เขียน

ในโมเดล PEM ไม่มี เครือข่ายการสื่อสารโดยตรง ระหว่างโปรเซสเซอร์ P โปรเซสเซอร์ต้องสื่อสารกันทางอ้อมผ่านหน่วยความจำหลัก หากโปรเซสเซอร์หลายตัวพยายามเข้าถึงบล็อกเดียวกันในหน่วยความจำหลักพร้อมกัน จะเกิดความขัดแย้งในการอ่าน/เขียน [ 1 ] เช่นเดียวกับในโมเดล PRAM...