วิธีลดขนาดความซับซ้อนแบบขนานส่งผลให้มีหลายคอร์อย่างต่อเนื่อง


20

ฉันมีปัญหาในการยอมรับมุมมองเชิงทฤษฎีที่ซับซ้อนของ "การแก้ไขอย่างมีประสิทธิภาพโดยอัลกอริทึมแบบขนาน" ซึ่งให้โดยNCระดับ:

NC เป็นชั้นของปัญหาที่สามารถแก้ไขได้โดยขั้นตอนวิธีการแบบคู่ขนานในเวลาบนประมวลผลด้วย{N}p ( n ) O ( n k ) c , k NO(logcn)p(n)O(nk)c,kN

เราสามารถสมมติรถเข็น

ปัญหาของฉันคือสิ่งนี้ดูเหมือนจะไม่ค่อยพูดเกี่ยวกับเครื่องจักร "ของจริง" นั่นคือเครื่องจักรที่มีตัวประมวลผลจำนวน จำกัด ตอนนี้ฉันได้รับการบอกแล้วว่า "เป็นที่รู้กันดีว่า" เราสามารถ "มีประสิทธิภาพ" จำลองอัลกอริทึมของตัวประมวลผลบนตัวประมวลผลp NO(nk)pN

"ประสิทธิภาพ" หมายถึงอะไรที่นี่ ชาวบ้านนี้หรือมีทฤษฎีบทที่เข้มงวดซึ่งคำนวณปริมาณค่าใช้จ่ายที่เกิดจากการจำลอง?

สิ่งที่ฉันกลัวที่เกิดขึ้นคือว่าผมมีปัญหาซึ่งมีลำดับขั้นตอนวิธีการและยังมี "ประสิทธิภาพ" อัลกอริทึมแบบขนานซึ่งเมื่อจำลองบนโปรเซสเซอร์ยังใช้เวลาเวลา (ซึ่ง เป็นสิ่งที่สามารถคาดหวังได้ในระดับการวิเคราะห์ที่ละเอียดหากขั้นตอนวิธีการเรียงลำดับนั้นเหมาะสมที่สุด ในกรณีนี้ไม่มีการเร่งความเร็วเท่าที่เราเห็น ในความเป็นจริงอัลกอริธึมแบบขนานที่จำลองขึ้นอาจช้ากว่าอัลกอริธึมเรียงลำดับ นั่นคือฉันกำลังมองหาคำสั่งที่แม่นยำกว่า -bounds (หรือการประกาศว่าไม่มีผลลัพธ์ดังกล่าว)p O ( n k ) OO(nk)pO(nk)O


ทฤษฎีบทของเบรนต์?
cic

คุณหมายถึง? ถ้าเป็นเช่นนั้นนี่คือ (afaik) ใช้ได้เฉพาะในบางสถานการณ์และไม่อนุญาตให้แปล runtimes ในทันที หรือถ้ามีโปรดอธิบายอย่างละเอียดในคำตอบ Tp<Wp+D
Raphael

NC ตอบคำถาม "เป็นไปได้ไหมที่จะแลกเปลี่ยนฮาร์ดแวร์เพิ่มเติมเพื่อให้ใช้เวลาทำงานน้อยลง" คุณอาจต้องการ จำกัด ตัวเองกับฮาร์ดแวร์คงที่และนี่ก็คล้ายกับการ จำกัด ตัวเองกับหน่วยความจำคงที่ซึ่งเป็นแบบจำลองที่ดีกว่าของปัญหาบางอย่าง สำหรับการใช้งานจริงเห็นงูพก lookhead ฮาร์ดแวร์มากขึ้นดังนั้นนอกเหนือจากที่บิตจะทำในO ( N ) NO(N)
AProgrammer

คำตอบ:


13

หากคุณคิดว่าจำนวนตัวประมวลผลถูกล้อมรอบด้วยค่าคงที่แสดงว่าคุณมีสิทธิ์ที่ปัญหาใน NC ไม่ได้มีความหมายในทางปฏิบัติมากนัก ตั้งแต่ขั้นตอนวิธีการใด ๆ เกี่ยวกับรถเข็นกับkโปรเซสเซอร์และเสื้อเวลาขนานสามารถจำลองเดียวกับโปรเซสเซอร์ RAM ใน O ( KT ) เวลาเวลาขนานและเวลาตามลำดับสามารถแตกต่างกันโดยปัจจัยคงเฉพาะในกรณีที่kเป็นค่าคงที่

อย่างไรก็ตามหากคุณสมมติว่าคุณสามารถเตรียมคอมพิวเตอร์ที่มีตัวประมวลผลได้มากขึ้นเมื่อขนาดอินพุตเพิ่มขึ้นปัญหาที่เกิดขึ้นใน NC หมายความว่าตราบใดที่คุณสามารถเตรียมตัวประมวลผลได้มากขึ้นเวลารันจะสั้นมากหรือแม่นยำยิ่งขึ้น polylogarithmic ในขนาดอินพุต หากคุณคิดว่าข้อสันนิษฐานนี้ไม่สมจริงให้เปรียบเทียบกับข้อสันนิษฐานของหน่วยความจำที่ไม่ได้ จำกัด : คอมพิวเตอร์ที่เกิดขึ้นจริงมีพื้นที่ จำกัด เท่านั้น แต่ในการศึกษาอัลกอริธึมและความซับซ้อนเรามักจะคิดว่าอุปกรณ์การคำนวณไม่มีค่าคงที่ ผูกพันกับพื้นที่ ในทางปฏิบัติหมายความว่าเราสามารถเตรียมคอมพิวเตอร์ที่มีหน่วยความจำมากขึ้นเมื่อขนาดอินพุตเพิ่มขึ้นซึ่งเป็นวิธีที่เราใช้คอมพิวเตอร์ในโลกแห่งความเป็นจริง NC จำลองสถานการณ์ที่คล้ายคลึงกันในการคำนวณแบบขนาน


1
1) ใช่การขนานบนหลายคอร์อย่างต่อเนื่องสามารถให้ผลการเร่งอย่างต่อเนื่อง นั่นคือธรรมชาติและซ่อนเศร้าใน -terms (ที่ IMHO) คำถามที่น่าสนใจคือฉันจะได้รับ (ดีที่สุด) speedup kหรือเฉพาะk / 2หรือk - 1 ? 2) ในขณะที่สมมติฐานของหน่วยความจำที่ไม่มีที่สิ้นสุดสามารถพิสูจน์ได้จากความพร้อมใช้งานของRAM จำนวนมาก (และในทางเทคนิคคุณสามารถเพิ่มฮาร์ดดิสก์) ได้ซึ่งโดยทั่วไปจะไม่เป็นความจริงสำหรับโปรเซสเซอร์ เครื่องทั่วไป (ส่วนตัว) มี 16 แกนหรือน้อยกว่าในปัจจุบัน ในคำอื่น ๆ ที่คุณสามารถใช้ผล "ปกติ" ขึ้นอยู่กับขนาดของปัญหาที่เกี่ยวข้องผลหลายขนานเท่านั้นถึงn 20Okk/2k1n20
Raphael

4
@ ราฟาเอล: คำถามว่าปัญหาบางอย่างเป็นของ NC หรือไม่ไม่สร้างแบบจำลองคำถามของคุณ ฉันไม่ได้พูดว่าคำถามของคุณไม่น่าสนใจ ฉันแค่บอกว่า NC ไม่ใช่คลาสที่ซับซ้อนที่ถูกต้องในการทำแบบนั้น
Tsuyoshi Ito

จริง ๆ แล้วฉันดีใจที่ได้ยินเช่นนั้น คนอ้างว่าเป็นอย่างอื่นแม้ว่า ไม่จำเป็นต้องมี NC แต่มีผลเชิงทฤษฎีที่ซับซ้อนโดยทั่วไป เป็นอย่างไรกับคลาสอื่น ๆ ?
Raphael

การแก้ไข: ปัญหาที่เกิดขึ้นใน NC หมายถึงเวลาที่ใช้ในการประมวลผลนั้นเป็นโพลีโวลูไมโครไทม์หากจำนวนตัวประมวลผลเป็นพหุนามขนาดใหญ่เพียงพอในขนาดอินพุต ในสถานการณ์ที่สมจริงยิ่งขึ้นซึ่งจำนวนโปรเซสเซอร์เป็นพหุนามคงที่เช่นหรือฟังก์ชั่นที่ไม่คงที่ช้ากว่าเช่นO(logn) การเป็นสมาชิกใน NC ไม่ได้มีความหมายอะไรเลย O(n)O(logn)
JeffE

@JeffE: นั่นไม่ใช่การแก้ไข ฉันแค่เขียน“ เตรียมโปรเซสเซอร์เพิ่มเติม” โดยไม่ให้ความหมายที่เข้มงวด (เพราะฉันคิดว่าการทำเช่นนั้นจะทำให้ประเด็นไม่ชัดเจน)
Tsuyoshi Ito

10

ฉันเห็นด้วยกับคุณว่าไม่ใช่วิธีที่ดีที่สุดในการจำแนกอัลกอริทึมแบบขนานที่มีประสิทธิภาพNC

p=1NC

แต่เดี๋ยวก่อนยังมีอีกมาก

NC

PO(nϵ),0<ϵ<1NCnnn<lg3nn0.5×109NC

หนึ่งในคำตอบนั้นถูกตั้งข้อสังเกตว่า "ในทางปฏิบัตินี่หมายความว่าเราสามารถเตรียมคอมพิวเตอร์ที่มีหน่วยความจำมากขึ้นเมื่อขนาดอินพุตเพิ่มขึ้นซึ่งเป็นวิธีที่เราใช้คอมพิวเตอร์ในโลกแห่งความเป็นจริง NC จำลองสถานการณ์ที่คล้ายคลึงกันใน การคำนวณแบบขนาน ".

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

pnp

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

n3n

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