มันถูกต้องหรือไม่ที่จะเรียกเฟรมเวิร์กmapReduceชนิดของเฟรมเวิร์กการเขียนโปรแกรมแบบซิงโครนัสแบบขนานจำนวนมากที่ไม่มีหน่วยความจำโลคัลภายในตัวประมวลผลระหว่างการซิงโครไนซ์? ถ้าไม่ใช่รูปแบบการเขียนโปรแกรมแบบขนานใดที่ห่อหุ้มกรอบ mapReduce อย่างแม่นยำที่สุด?
มันถูกต้องหรือไม่ที่จะเรียกเฟรมเวิร์กmapReduceชนิดของเฟรมเวิร์กการเขียนโปรแกรมแบบซิงโครนัสแบบขนานจำนวนมากที่ไม่มีหน่วยความจำโลคัลภายในตัวประมวลผลระหว่างการซิงโครไนซ์? ถ้าไม่ใช่รูปแบบการเขียนโปรแกรมแบบขนานใดที่ห่อหุ้มกรอบ mapReduce อย่างแม่นยำที่สุด?
คำตอบ:
ในส่วนที่ 2 ของhttp://arxiv.org/abs/1101.1902ผู้เขียนกำหนดรูปแบบของ MapReduce ที่มีโครงสร้างแบบจงใจเหมือน BSP พวกเขาพิสูจน์ทฤษฎีการจำลองด้วยเช่นกัน อาจเป็นจุดเริ่มต้นที่ดี
ใช่ความเห็นของฉันคือ MapReduce แบบคลาสสิกเป็นแบบจำลอง BSP (และมีข้อ จำกัด โดยธรรมชาติในการทำงานแบบขนานที่เป็นไปได้สูงสุดที่สามารถทำได้) อย่างไรก็ตามงานใหม่ใน MapReduce ดูเหมือนจะมุ่งเน้นไปที่ความคิดที่หลวมของการประสานซึ่งจะใช้ "MapReduce ทั่วไป" นี้ออกจากกรอบ BSP ที่เข้มงวด โดยเฉพาะอย่างยิ่งถ้าใครทำซ้ำข้อมูลบางส่วนแล้วโครงสร้างการซิงโครไนซ์สามารถผ่อนคลายทำให้ได้ประสิทธิภาพเพิ่มขึ้น
ดูตัวอย่างการทำงานของ Foto Afrati และ Jeff Ullman: การเพิ่มประสิทธิภาพการรวมในสภาพแวดล้อมที่ลดแผนที่ , EDBT 2010 ( preprint )
เนื่องจากใน MapReduce มีกราฟที่เรียบง่ายและมีโครงสร้างเป็นพื้นฐานในการคำนวณสิ่งนี้สามารถจัดเป็น IMHO เป็นแบบจำลองการไหลของข้อมูล