ทำไมเราถึงไม่สามารถพัฒนาทฤษฎีความซับซ้อนแบบรวมศูนย์ของการคำนวณแบบกระจายได้?


41

สาขาการคำนวณแบบกระจายได้ลดลงอย่างน่าเสียดายในการพัฒนาทฤษฎีทางคณิตศาสตร์เดี่ยวเพื่ออธิบายอัลกอริทึมแบบกระจาย มี 'โมเดล' และกรอบของการคำนวณแบบกระจายที่ไม่เข้ากันได้ การระเบิดที่แท้จริงของคุณสมบัติทางโลกที่แตกต่างกัน (แบบอะซิงโครนัสซิงโครนัสซิงโครนัสบางส่วน) การสื่อสารพื้นฐานต่างๆ (ข้อความผ่านเมื่อเทียบกับหน่วยความจำที่ใช้ร่วมกัน on) ทำให้เรามีโมเดลระบบกรอบงานและวิธีการจำนวนมากที่ไม่สามารถเปรียบเทียบได้ว่าการเปรียบเทียบผลการแก้ปัญหาญาติและขอบเขตที่ต่ำกว่าในโมเดลและกรอบเหล่านี้ได้กลายเป็นยากลำบากยากลำบากและในบางครั้งเป็นไปไม่ได้

คำถามของฉันง่ายมากทำไมถึงเป็นเช่นนั้น อะไรคือพื้นฐานที่แตกต่างกันของการคำนวณแบบกระจาย (จากลำดับคู่กัน) ที่เราไม่สามารถเปรียบเทียบการวิจัยในทฤษฎีแบบรวมศูนย์ของการคำนวณแบบกระจายได้? ด้วยการคำนวณแบบต่อเนื่องเครื่องทัวริงฟังก์ชันแบบเรียกซ้ำและแคลคูลัสแลมบ์ดาทั้งหมดล้วนถูกทำให้เท่าเทียมกัน นี่เป็นเพียงแค่จังหวะแห่งโชคหรือเราทำงานได้ดีในการห่อหุ้มการคำนวณตามลำดับในลักษณะที่ยังไม่สามารถใช้งานได้กับการคำนวณแบบกระจาย

กล่าวอีกนัยหนึ่งคือการคำนวณแบบกระจายโดยไม่ยอมให้ทฤษฎีที่สง่างาม (และถ้าเป็นเช่นนั้นอย่างไรและทำไม?) หรือว่าเราไม่ฉลาดพอที่จะค้นพบทฤษฎีดังกล่าวได้หรือไม่?

การอ้างอิงเดียวที่ฉันสามารถพบได้ว่าปัญหานี้คือ: " ประเมินสองทศวรรษของการวิจัยทฤษฎีการคำนวณแบบกระจาย " โดย Fischer และ Merritt DOI: 10.1007 / s00446-003-0096-6

การอ้างอิงหรืองานแสดงสินค้าใด ๆ จะเป็นประโยชน์จริงๆ

คำตอบ:


26

สิ่งที่ฉันใช้คือโมเดลทัวริงของเครื่องคำนวณที่มีแรงบันดาลใจเป็นนามธรรมนั้นเป็นการประมาณของเทคโนโลยีที่ดีจนกระทั่งเมื่อเร็ว ๆ นี้ในขณะที่แบบจำลองของการคำนวณแบบกระจายจาก get-go ได้รับแรงบันดาลใจจากโลกแห่งความเป็นจริง

จากการพูด, 1940-1995, ขนาดของอินสแตนซ์ของปัญหา, ความสัมพันธ์ "ไม่สำคัญ" ของการขนานและการทำงานพร้อมกัน, และขนาดมหภาคของอุปกรณ์การคำนวณ, "สมคบ" ทั้งหมดเพื่อให้ทัวริงเครื่องจักรเป็นคอมพิวเตอร์ในโลกแห่งความเป็นจริง อย่างไรก็ตามเมื่อคุณเริ่มจัดการกับชุดข้อมูลขนาดใหญ่ความต้องการที่แพร่หลายสำหรับการใช้งานพร้อมกันชีววิทยาผ่านเลนส์อัลกอริธึมเป็นต้นมันมีความชัดเจนน้อยกว่ามากหากมีการคำนวณแบบ "สัญชาตญาณ" บางทีปัญหาที่ยากในแบบจำลองหนึ่งอาจไม่ยาก - ซับซ้อนน้อยกว่าการคำนวณอย่างอื่น - ในอีกแบบหนึ่ง ดังนั้นฉันจึงเชื่อว่าในที่สุดความซับซ้อนของการคำนวณก็จะตามมาทัน (!) กับการคำนวณแบบกระจายโดยเริ่มพิจารณารูปแบบการคำนวณและโครงสร้างข้อมูลหลายรูปแบบซึ่งได้รับแรงบันดาลใจจากการพิจารณาในโลกแห่งความเป็นจริง


7
พิจารณาคำถามที่กำหนดของสาขาที่เกี่ยวข้อง "สมมติว่าคุณสามารถคำนวณได้อย่างสมบูรณ์แบบขีด จำกัด ของสิ่งที่คุณทำได้และไม่สามารถทำได้คืออะไร" vs. "สมมติว่าคุณมีช่องสัญญาณที่ผิดพลาดตัวประมวลผลหรือสมมติว่าคุณมีคู่ต่อสู้คุณจะคำนวณได้อย่างไรเมื่อประสบกับอุปสรรคเหล่านั้น" คำถามแรกมีแนวโน้มที่จะทำให้เกิดคำตอบที่ "สะอาด" ที่สองคือการร้องขอให้เป็นระเบียบทางวิทยาศาสตร์
แอรอนสเตอร์ลิง

21

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

ผมลำเอียงอย่างแน่นอน แต่ผมคิดว่าในการตั้งค่านี้มีเป็นที่เรียบง่ายและรูปแบบเป็นธรรมที่ใช้ทั่วไปของการกระจายการคำนวณ: ขั้นตอนวิธีการกระจายซิงโครกับคำจำกัดความที่เวลาทำงาน = จำนวนรอบซิงโคร ในคำศัพท์ของ Peleg นี่คือโมเดลLOCAL

รุ่นนี้ดีเพราะมี "ชิ้นส่วนที่เคลื่อนไหว" น้อยมากไม่มีพารามิเตอร์ ฯลฯ อย่างไรก็ตามมันเป็นรูปธรรมมาก: มันสมเหตุสมผลที่จะบอกว่าเวลาในการทำงานของอัลกอริทึมนั้นเท่ากับ 15 ในรุ่นนี้ และคุณสามารถพิสูจน์ขอบเขตที่ไม่มีเงื่อนไขข้อมูล - เชิงทฤษฎี: จากมุมมองนี้ความซับซ้อนแบบกระจายของปัญหากราฟมากมาย (เช่นการระบายสีด้วยกราฟ) นั้นเป็นที่เข้าใจกันดี

รุ่นนี้ยังให้วิธีการแบบครบวงจรในหลาย ๆ ด้านของการคำนวณแบบกระจาย:

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

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


แล้วแน่นอนเรามีปัญหาที่ชุมชนการคำนวณแบบกระจายเป็นจริงทั้งสองชุมชนที่แตกต่างกันกับบางสิ่งที่น่าแปลกใจในการร่วมกัน หากคุณรวมโมเดลทั้งหมดจากสองชุมชนเข้าด้วยกันมันจะดูสับสนเล็กน้อย ... คำตอบของฉันเกี่ยวข้องกับชุมชนเพียงครึ่งเดียว ฉันเชื่อว่าคนอื่นจะกรอกเกี่ยวกับอีกครึ่ง


ถ้าฉันเข้าใจสิ่งนี้อย่างถูกต้องประเด็นก็คือว่ามีทฤษฎีที่สง่างามสำหรับระบบซิงโครนัสเท่านั้นและไม่มากนัก ด้วยความเคารพต่อระบบอื่นที่ไม่ใช่แบบซิงโครนัสเรากำลังพูดถึงปัญหา / จุดโฟกัสจากชุมชนสองแห่งที่แตกต่างกันและสิ่งนี้นำเสนอปัญหาด้านระเบียบวิธีด้วยการพัฒนาทฤษฎีเดียว ฉันเข้าใจข้อโต้แย้งของคุณถูกต้องหรือไม่?
Srikanth Sastry

ขอบคุณสำหรับคำตอบที่ให้ข้อมูลมาก ฉันจะยอมรับสิ่งนี้เป็นคำตอบ
Mohammad Al-Turkistany

5

แนวคิดหนึ่งที่โรแมนติกในการจับภาพการคำนวณแบบกระจายที่หลากหลายได้ผ่านการทอพอโลยีเชิงพีชคณิต แนวคิดหลักคือการสร้างคอมเพล็กซ์ simplicial โดยให้จุดเป็นสถานะกระบวนการแต่ละป้ายที่มี ID กระบวนการ นี่คือไพรเมอร์ในหัวข้อ คำตอบที่ใกล้เคียงที่สุดสำหรับคำถามของคุณอาจได้รับการสัมผัสโดย Eli gafni ในการคำนวณของเขากระดาษกระจาย - ริบหรี่ของทฤษฎี ในบทความของเขาเขาแสดงให้เห็นถึงการจำลองว่าเริ่มต้นอย่างไรกับหน่วยความจำที่แชร์ของ async สำหรับโปรเซสเซอร์สองสามตัว (สำหรับการหยุดที่ล้มเหลวและไบแซนไทน์) - เขาแสดงให้เห็นว่า สิ่งสำคัญในการทำความเข้าใจกับสถานการณ์จำลองของเขาคือแนวคิดในการรับชมการคำนวณแบบกระจายทอพอโลยี


4

ฉันคิดว่าสถานการณ์ดูเหมือนจะแตกต่างกันมากหากดูในบริบท: เริ่มต้นจากผลงานก่อนหน้าและผลลัพธ์ที่เป็นไปไม่ได้ในข้อตกลงไบเซนไทน์ ( PSL80 LSP82 FLP85) เป็นที่ชัดเจนในไม่ช้าว่าปัญหาพื้นฐานในการคำนวณแบบกระจายสามารถแก้ไขได้ด้วยสมมติฐานซิงโครนัสที่เข้มงวดและความซ้ำซ้อนระดับสูงเท่านั้น เนื่องจากทรัพยากรทางทฤษฎีที่ไม่มีเงื่อนไขเหล่านี้ถูกพิจารณาว่าเป็นไปไม่ได้สำหรับวัตถุประสงค์ในทางปฏิบัติใด ๆ การวิจัยจึงมุ่งเน้นที่การพัฒนาแบบจำลองที่ละเอียดอ่อนกว่าเดิมซึ่งอนุญาตให้มีการแลกเปลี่ยนข้อตกลงที่ละเอียดยิ่งขึ้นไปอีก ข้อบกพร่องที่เกิดขึ้นพร้อมกันของชนิดของส่วนประกอบที่ยอมรับเช่นตัวประมวลผลลิงก์) เพื่อให้เครื่องมือออกแบบระบบเพื่อค้นหาการแลกเปลี่ยนที่เหมาะสมสำหรับระบบในมือ


ฉันเข้าใจว่าแบบจำลองการกลั่นได้รับการแนะนำให้เข้าใจการแก้ปัญหา 'เชิงปฏิบัติ' ของปัญหาในพื้นที่กระจาย ใครจะคาดหวังว่าแบบจำลองที่ละเอียดเหล่านี้จะจัดเรียงตัวเองอย่างเรียบร้อยเป็นลำดับชั้นด้วยความเคารพในการแก้ไขความซับซ้อนของเวลาและความซับซ้อนของข้อความ น่าเสียดายที่นี่ไม่ใช่กรณี คำถามของฉันที่นี่อะไรคือเหตุผลสำหรับการเพิ่มความบอลข่านนี้? ถ้าเป็นคุณลักษณะบางอย่างที่มีอยู่ในตัวของการคำนวณแบบกระจายแล้วพวกมันคืออะไร?
Srikanth Sastry
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.