การเร่งความเร็วแบบเอ็กซ์โปเนนเชียลในหน่วยความจำภายนอก


15

พื้นหลัง

หน่วยความจำภายนอกหรือโมเดล DAM กำหนดต้นทุนของอัลกอริทึมด้วยจำนวนของ I / O ที่ดำเนินการ (โดยหลักแล้วจำนวนแคชที่หายไป) โดยทั่วไปเวลาทำงานเหล่านี้จะได้รับในแง่ของขนาดของหน่วยความจำและจำนวนคำที่สามารถถ่ายโอนไปยังหน่วยความจำในครั้งเดียว บางครั้งและถูกใช้สำหรับและตามลำดับ MBLZBM

ยกตัวอย่างเช่นการเรียงลำดับต้องใช้ค่าใช้จ่ายของและการคูณเมทริกซ์ไร้เดียงสาต้อง{M}) Θ(N/BlogM/BN/B)Θ(n3/BM)

แบบจำลองนี้จะใช้ในการวิเคราะห์ "อัลกอริทึมแคชลบเลือน" ซึ่งไม่ได้มีความรู้เกี่ยวกับหรือMโดยทั่วไปแล้วเป้าหมายสำหรับอัลกอริธึมการลืมเลือนเพื่อให้เกิดประสิทธิภาพสูงสุดในโมเดลหน่วยความจำภายนอก สิ่งนี้ไม่สามารถทำได้ตลอดเวลาเช่นในปัญหาการเปลี่ยนแปลงเช่น (แสดงในBrodal, Faderberg 2003 ) ดูการเขียนนี้โดย Erik Demaineสำหรับคำอธิบายเพิ่มเติมเกี่ยวกับอัลกอริธึมแคชที่ลืมเลือนรวมถึงการอภิปรายของการเรียงลำดับและการคูณเมทริกซ์BM

เราสามารถเห็นได้ว่าการเปลี่ยนทำให้การเร่งแบบลอการิทึมสำหรับการเรียงลำดับและการเร่งความเร็วแบบโพลิโนเมียลสำหรับการคูณเมทริกซ์ (ผลลัพธ์นี้มาจากHong, Kung 1981และก่อนหน้านี้จริง ๆ แล้วทั้งความหลงลืมแคชและการทำให้เป็นระเบียบของโมเดลหน่วยความจำภายนอก)M

คำถามของฉันคือ:

มีกรณีใดที่ speedup คือชี้แจงใน ? เวลาทำงานจะคล้าย(M)} ฉันสนใจอัลกอริทึมหรือโครงสร้างข้อมูลที่ไม่เหมาะสมกับแคชที่เหมาะกับคำอธิบายนี้ แต่จะมีความสุขกับอัลกอริทึม / โครงสร้างข้อมูลที่รับรู้ถึงแคชหรือแม้แต่ขอบเขตล่างที่รู้จักกันดีที่สุดMf(N,B)/2O(M)

โดยทั่วไปแล้วมันจะสันนิษฐานในรุ่นที่ขนาดคำว่าถ้าเป็นขนาดอินพุตและชัดเจน จากนั้นเพิ่มความเร็วของให้ speedup พหุนามในNนี่ทำให้ฉันเชื่อว่าหากปัญหาที่ฉันค้นหามีอยู่มันก็ไม่ใช่พหุนาม (มิฉะนั้นเราสามารถเปลี่ยนขนาดแคชโดยค่าคงที่เพื่อให้ได้จำนวนคงที่ของ I / Os ซึ่งไม่น่าจะเกิดขึ้น)N M > w 2 M Nw=Ω(logN)NM>w2MN


สามารถเดาได้ แต่ ? พบกรณีรับเป็น speedup B P o L Y L o กรัม ( B ) , เพียงพอ? N=Bpolylog(B)
vzn

มันต้องอยู่ในรูปของเพื่อจุดประสงค์ของฉันโชคไม่ดี ฉันจะสนใจในการอ้างอิงว่า M
SamM

วิกิพีเดียแคชลบเลือนอัลกอริทึม fyi มีความละเอียดอ่อนในสัญกรณ์สาขานี้ p7 เชิงอรรถของ Demaine กล่าวว่าในพื้นที่นี้คือขนาดของปัญหา & บางครั้งn = N / Bโดยที่nคือจำนวนบล็อก "แต่สัญกรณ์ตัวพิมพ์เล็กดูเหมือนจะหลุดพ้นไปจากความโปรดปราน" คุณใช้nด้านบนและอีกทางเลือกหนึ่งว่าNทั้งขนาดอินพุต คิดว่าอย่างน้อยคุณควรสร้างมาตรฐานให้กับคำถามของคุณ Nn=N/BnnN
vzn

ฉันแก้ไขมันเพื่อความสอดคล้อง คือขนาดของการป้อนข้อมูลและnจะใช้สำหรับการคูณเมทริกซ์เพราะเวลาทำงานสำหรับปัญหาที่ถูกกำหนดโดยทั่วไปในแง่ของn × nเมทริกซ์ (คือN = n 2 )Nnn×nN=n2
SAMM

ไม่เห็นกรณีนี้หลังจากสแกนวรรณกรรม อาจจะไม่มีการอ้างอิงดังกล่าว? อาจมีบางกรณีที่จะทำให้อัลกอริทึมดังกล่าวอาจมีความซับซ้อนและยากที่จะวิเคราะห์ตามหลักวิชาการเพื่อให้ได้ความเร็วดังกล่าว ... ? หรืออาจจะต้องมีการวางแผน ... หรืออาจเป็นไปไม่ได้ มีความคิดว่าการเข้าถึงหน่วยความจำแบบสุ่มเป็นกรณีที่แย่ที่สุดหรือไม่? ดูเหมือนว่าการเพิ่มขึ้นของความเร็วเป็นเชิงเส้นในสำหรับกรณีนั้น ... หรือรูปแบบเศษส่วนของการเข้าถึงหน่วยความจำอาจเป็นกรณีที่เลวร้ายที่สุด? สายการศึกษานี้มีอายุเพียงสิบปีกว่าเล็กน้อย ....M
vzn

คำตอบ:


3

ฉันไม่แน่ใจว่าฉันเข้าใจคำถามนี้หรือไม่ แต่สำหรับฉันแล้วดูเหมือนว่าภายใต้สมมติฐานที่ว่ามีปัญหาที่ต้องใช้เวลาชี้แจงปัญหาดังกล่าวจะตอบสนองความต้องการของคุณเนื่องจากถ้าMเป็นO ( log N )คุณจะต้องมีจำนวนชี้แจงของการดำเนินงาน I / O ( เนื่องจากคุณไม่สามารถ "อยู่" ในบล็อกหน่วยความจำขนาดเดียวกันO ( บันทึกN )มากกว่าจำนวนพหุนามของขั้นตอนโดยไม่ต้องเข้าสู่รอบ) และถ้าM = NPSPACEMO(logN)O(logN)M=Nคุณจะต้องการจำนวนการดำเนินการเชิงเส้นของ I / O เท่านั้น นอกจากนี้เกี่ยวกับการสังเกตของคุณว่าปัญหาดังกล่าวไม่สามารถเป็นของได้มันถูกต้องถ้าการเร่งความเร็วต้องถือเป็นค่าของMที่Ω ( N ) (เนื่องจากจะหมายความว่าเรามีจำนวนการดำเนินการแบบเอ็กซ์โปเนนเชียล) แต่ถ้าเพิ่มความเร็วเพียงนำไปใช้กับค่าขนาดเล็กของM , สังหรณ์ใจผมเชื่อว่านี้ไม่เป็นความจริงเพราะผมรู้สึกว่ามันควรจะเป็นไปได้ที่จะออกแบบปัญหาที่ในความเป็นจริงการเรียงต่อกันของปัญหาที่มีขนาดเล็กกว่าขนาดที่O ( log N )แต่ละชี้แจงที่กำหนด เวลาในขนาดของตัวเองและเลขชี้กำลังของการดำเนินการ I / O (นั่นคือp oPMΩ(N)MO(logN)เนื่องจาก p o l y ( N )เป็นเลขชี้กำลังใน O ( log N ) ) ในทางปฏิบัติฉันเชื่อว่า P S P A Cปัญหาที่สมบูรณ์ Eเช่น T Q B F เป็นไปตามเงื่อนไขของคุณpoly(N)poly(N)O(logN)PSPACETQBF


ฉันเกรงว่าฉันจะไม่ทำตามข้อโต้แย้งของคุณ ถ้าปัญหาใด ๆ ในหน่วยความจำภายนอกเป็นเรื่องเล็กน้อย ดังที่ฉันได้กล่าวไว้M = O ( log N )ค่อนข้างงี่เง่าเพราะนั่นหมายความว่าหน่วยความจำมีจำนวนคำที่คงที่ (เป็นไปได้ แต่ไม่ใช่วิธีการตรวจสอบหน่วยความจำภายนอกโดยทั่วไป) ฉันเห็นสิ่งที่คุณกำลังบอกว่ามีกำไรเพิ่มขึ้น แต่นั่นไม่ได้พูดอะไรเกี่ยวกับค่ากลาง ตัวอย่างเช่นพาร์ติชันที่เหมาะสมที่สุดในหน่วยความจำภายนอกคือข้อตกลงสองข้อ (โดยพื้นฐานแล้วหากทุกอย่างเหมาะสมในหน่วยความจำเราทำบางสิ่งที่แตกต่างอย่างสิ้นเชิงถ้าไม่ใช่) คุณสามารถออกกฎที่ M=Ω(N)M=O(logN)
SamM

1
ผมไม่เข้าใจว่าทำไมปัญหาใด ๆ ในหน่วยความจำภายนอกเป็นเล็กน้อยถ้า ) หากM = N / 2และอัลกอริทึมใช้เวลาเป็นเลขชี้กำลังคุณอาจถูกบังคับให้สลับไปมาระหว่าง (ดังนั้นพูด) ทั้งสองครึ่งของหน่วยความจำด้วยจำนวนครั้งที่อธิบาย M=Ω(N)M=N/2
user8477

แน่นอนว่าคุณพูดถูกเกี่ยวกับปัจจัยคงที่ที่สำคัญ นั่นทำให้รู้สึกมาก นี่เป็นจุดเริ่มต้นที่ดีอย่างแน่นอน
SamM

ฉันไม่มีข้อโต้แย้งสำหรับค่ากลาง ในระดับผิวเผินฉันเดาว่าอัลกอริทึมการย้อนรอยบางอย่างอาจมีการพึ่งพาอาศัยขนาดหน่วยความจำอย่างมากเนื่องจากการดำเนินการ I / O จะต้องดำเนินการที่โหนดที่มีความลึกต่ำกว่าในแผนผังการค้นหา การพึ่งพานี้จะใช้กับค่ากลาง สิ่งนี้ไม่ได้กล่าวถึงความซับซ้อนของปัญหาแน่นอน นอกจากนี้หากคุณมีอาร์กิวเมนต์ pigeonhole (การขี่จักรยาน) ที่ระบุข้างต้นจะยังคงได้รับผลประโยชน์ของT ( N ) / 2 Mโดยที่T ( N )เป็นความซับซ้อนของเวลาของปัญหาM=ω(logN)T(N)/2MT(N)
user8477

-4

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

สิ่งที่คุณอ้างถึงเขียนว่า "แนวคิดหลัก [ของอัลกอริธึมการลืมเลือน] นั้นง่าย: ออกแบบอัลกอริธึมหน่วยความจำภายนอกโดยไม่ทราบว่าและMแต่ความคิดง่ายๆนี้มีผลที่ทรงพลังมากมายอย่างน่าประหลาดใจ"BM

มันก็ดูเหมือนจะมีนัยยะที่น่าประหลาดใจ มันยากที่จะวิเคราะห์โมเดลนี้สำหรับพฤติกรรมสุดขั้วและดูเหมือนว่าไม่มีใครทำสิ่งนี้มาก่อน มีการสำรวจบางส่วนและดูเหมือนว่าพวกเขาจะทำการสำรวจทั่วทั้งสนาม ไม่น่าแปลกใจเลยที่สนามนี้มีอายุเพียง 1 ทศวรรษ

  • แบบจำลองนี้ไม่ได้รับการแปลเป็นเครื่องทัวริง แต่อาจมีการวิเคราะห์ที่เข้มงวด / เป็นทางการ / เชิงทฤษฎี / ทั่วไป / มาตรฐานมากขึ้น แนวคิดทั้งหมดของสัญกรณ์ Big-Oh และความหมายและการหยั่งรู้เช่นความไม่สอดคล้องของค่าคงที่ไม่จำเป็นต้องดำเนินการโดยอัตโนมัติในพื้นที่ของอัลกอริทึมการลืมนี้ ตัวอย่างเช่นรุ่นดูเหมือนว่าจะทำงานกับค่าคงที่ซึ่งวัดขนาดหน่วยความจำที่แน่นอน ปรากฏว่าสนามไม่มีชุดสัจพจน์พื้นฐานของพลศาสตร์ของมันจนถึงขณะนี้B,M

  • TMs ถูกประดิษฐ์ขึ้นในปี 1936 โดย Turing และทฤษฎีลำดับชั้นของเวลา / พื้นที่ของ Hartmanis-Stearns (ซึ่งคุณค่อนข้างพูดถึงในคำถามนี้) ถูกค้นพบในปี 1965 นั่นคือช่วงเวลาที่น่าทึ่ง ~ 3 ทศวรรษแต่ตอนนี้ถือว่าเป็นทฤษฎีลำดับชั้น / เวลา ระดับประถมศึกษาและสอนในชั้นเรียนระดับปริญญาตรี ดูเหมือนจะไม่มีทฤษฎีบทลำดับชั้นที่สอดคล้องกันที่จัดตั้งขึ้นในรุ่นนี้และวิธีการทำเช่นนั้นไม่ใช่ปัญหาเล็กน้อย จริง ๆ แล้วรุ่นนี้ดูเหมือนจะมี "ชิ้นส่วนเคลื่อนไหว" มากกว่าเครื่องทัวริงมาตรฐาน (ซึ่งมีพลวัตที่ซับซ้อนค่อนข้างโหดร้าย) อยู่แล้วนั่นก็เหมือนกับเครื่องทัวริงที่เพิ่มเข้ามา

  • อีกแนวคิดหนึ่งคือการแปลงโมเดลหน่วยความจำภายนอกเป็น TM อย่างใดซึ่งไม่ปรากฏขึ้นอีกครั้งในวรรณกรรม / การสำรวจเกี่ยวกับอัลกอริทึมลบล้างแคชและอาจดูว่าทฤษฎีลำดับชั้นของ Hartmanis-Stearns สามารถแปลได้อย่างไร ดูเหมือนว่าเกี่ยวข้องกับสองเทป TM โดยที่หนึ่งเทปมีขนาด 'M' และอีกเทปหนึ่งไม่มีที่สิ้นสุดและบล็อกจะถูกถ่ายโอนไปยัง 'M' ในขนาดของ 'B' แต่ปัญหาก็คือมันเป็นรุ่น RAM มากกว่ารุ่นทัวริงซึ่งใช้การเข้าถึงลำดับเทป บนมืออื่น ๆ นี้อาจวิ่งเข้ามาในรายละเอียดปลีกย่อยที่เกี่ยวข้องกับการแปลงระหว่างหน่วยความจำเดียวและ multitape

  • แนะนำให้โจมตีปัญหานี้ด้วยการจำลองซึ่งเป็นที่ซึ่งวรรณกรรมมีแนวโน้มที่จะมุ่งเน้นไปที่เช่นในการสำรวจครั้งใหญ่นี้โดย Kumar เกี่ยวกับCache ลืมเลือนอัลกอริทึม (2003) มีหลายโปรแกรมและเอกสารออนไลน์สำหรับการจำลองแคชและหนึ่งอาจตอบคำถามของคุณได้โดยไม่ต้องใช้โค้ดจำนวนมากโดยใช้การทำให้เข้าใจง่าย แนวคิดพื้นฐานประการหนึ่งคือการสร้างอัลกอริธึมที่น่าจะเป็นซึ่งเข้าถึงพื้นที่ของ "หน่วยความจำ" ที่อยู่บนพื้นฐานของความน่าจะเป็น "ใกล้เคียง" ที่นี่ไม่จำเป็นต้องมีหน่วยความจำต่อเนื่อง แต่เป็นอัลกอริธึมที่เลือกหน้าหน่วยความจำแบบสุ่ม (บล็อก) ตามการติดตามหน้าเว็บที่เข้าถึงล่าสุดของตัวเอง แนะนำให้ใช้กฎหมายพลังงานเพื่อกำหนดความน่าจะเป็นในการเลือกหน้า "ใกล้" ในรายการ "เข้าถึงล่าสุด" สิ่งนี้ดูเหมือนจะเป็นกุญแจสำคัญที่เกี่ยวข้องกับการปรับปรุงประสิทธิภาพของแคช

  • นี่คือข้อโต้แย้งคร่าวๆตาม 'M' ซึ่งโดยทั่วไปแล้วเป็นการวัด "หน่วยความจำหลัก" กับหน่วยความจำดิสก์ สำหรับอัลกอริทึมเราคาดหวังว่าหน่วยความจำหลักจะเพิ่มขึ้นเพียงแค่เข้าใกล้ [asymptotically] เพื่อการปรับปรุงเชิงเส้นในความเร็วอัลกอริธึมและการเพิ่ม "หน่วยความจำหลัก" เพื่อเพิ่มความเร็วเชิงเส้นของอัลกอริธึมใด ๆ จำกัด และ "รับสิ่งที่ไม่มีอะไร" อย่างไรก็ตามอย่าเข้าใจโมเดลนี้ดีพอที่จะพิสูจน์เรื่องนี้ [แต่เห็นได้ชัดว่าไม่มีใครมีทั้งรวมถึงเจ้าหน้าที่ / ผู้ก่อตั้ง / ผู้เชี่ยวชาญ]

  • วรรณกรรมเกี่ยวกับอัลกอริทึมแคชที่ลืมเลือนนี้ได้มุ่งเน้นไปที่อัลกอริธึม P และไม่เห็นกรณีใด ๆ เลยในการวิเคราะห์อัลกอริทึมที่ไม่ใช่ P ทั้งหมดจนถึงขณะนี้และอาจไม่มีเลย อาจเป็นเพราะการวิเคราะห์นั้นยากเกินไป! ในกรณีนี้คำถามเกี่ยวกับพฤติกรรมสุดขั้วอาจไม่ได้รับคำตอบในด้านนี้ในระยะยาว

  • มันดูเหมือนจะไม่ชัดเจนนักหรืออาจเป็นไปได้ว่าการศึกษาขั้นตอนวิธีซับซ้อน "เล็ก" เช่นใน L หรืออัลกอริทึม "ใหญ่" เช่น non-P (เช่น Expspace ฯลฯ ) ทำงานในรุ่นนี้ โมเดลกำลังวัดตำแหน่งหน่วยความจำซึ่งดูเหมือนจะแตกต่างกันโดยพื้นฐาน แต่เกี่ยวพันกับลำดับชั้นเวลาและพื้นที่

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

  • คำถามและแบบจำลองนี้ทำให้ฉันนึกถึงกฎหมายของAmdahlsและสงสัยว่ากฎหมายที่คล้ายกันที่ยังไม่ได้ค้นพบบางส่วนที่เกี่ยวข้องกับการลดผลตอบแทนหรือดุล / การแลกเปลี่ยนอาจถือหรือบังคับใช้ในพื้นที่นี้ การใช้เหตุผลอย่างคร่าวๆ: ทฤษฎีอัลกอริทึมที่ลืมเลือนของแคชกำลังมองหาที่สมดุล / การแลกเปลี่ยนระหว่างหน่วยความจำ "โลคอล" ที่ จำกัด และดิสก์ "infinite" ที่ใช้ต้นทุนภายนอก นี่เป็นทรัพยากรสองอย่างที่ทำหน้าที่ "ขนาน" และมีแนวโน้มว่าเป็นการแลกเปลี่ยนที่ดีที่สุดระหว่างพวกเขา


2
k

TM model เป็นโมเดลพื้นฐานของ TCS และ "bridge thms" ระหว่างลำดับชั้นความซับซ้อนของมัน (เวลา / พื้นที่, คลาสความซับซ้อนพื้นฐานเช่น P / NP ฯลฯ ) ที่มีแคชอัลกอริทึมหลงลืมยังคงถูกแมปออกมา โมเดลหน่วยความจำภายนอกและโมเดลแคชที่เกี่ยวข้องนั้นมักจะพยายามสร้างแบบจำลองลักษณะการทำงานในโลกแห่งความเป็นจริงและวรรณกรรมไม่ได้สนใจในทฤษฎีทางทฤษฎีที่มากขึ้นเช่นคำถามที่ถาม
vzn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.