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

ในวิทยาการคอมพิวเตอร์โมเดลหน่วยความจำภายนอกแบบขนาน (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 ตัวใช้เวลานานเท่าใด
ดูเพิ่มเติม
- หน่วยความจำเข้าถึงแบบสุ่มขนาน (PRAM)
- หน่วยความจำเข้าถึงแบบสุ่ม (RAM)
- หน่วยความจำภายนอก (EM)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ หน่วยความจำภายนอกแบบขนาน
ในวิทยาการคอมพิวเตอร์ โมเดลหน่วยความจำภายนอกแบบขนาน (PEM) เป็น เครื่องจักรนามธรรมหน่วย ความจำภายนอก ที่รับรู้แคช [ 1 ] เป็นการเปรียบเทียบการประมวลผลแบบขนานกับ โมเดล...
คำนิยาม
แบบจำลอง PEM [ 1 ] เป็นการผสมผสานระหว่างแบบจำลอง EM และแบบจำลอง PRAM แบบจำลอง PEM เป็นแบบจำลองการคำนวณที่ประกอบด้วย โปรเซสเซอร์และ ลำดับชั้นหน่วยความจำ สองระดับลำดับชั้นหน่วยความจำนี้ประกอบด้วย หน่วยความจำภายนอก ขนาดใหญ่ (หน่วยความจำหลัก) ที่มีขนาดและ...
ความซับซ้อนของอินพุต/เอาต์พุต
การ วัดความซับซ้อน ของโมเดล PEM คือความซับซ้อนของ I/O [ 1 ] ซึ่งกำหนดจำนวนการถ่ายโอนบล็อกแบบขนานระหว่างหน่วยความจำหลักและแคช ในระหว่างการถ่ายโอนบล็อกแบบขนาน โปรเซสเซอร์แต่ละตัวสามารถถ่ายโอนบล็อกได้ ดังนั้น...
ความขัดแย้งในการอ่าน/เขียน
ในโมเดล PEM ไม่มี เครือข่ายการสื่อสารโดยตรง ระหว่างโปรเซสเซอร์ P โปรเซสเซอร์ต้องสื่อสารกันทางอ้อมผ่านหน่วยความจำหลัก หากโปรเซสเซอร์หลายตัวพยายามเข้าถึงบล็อกเดียวกันในหน่วยความจำหลักพร้อมกัน จะเกิดความขัดแย้งในการอ่าน/เขียน [ 1 ] เช่นเดียวกับในโมเดล PRAM...