ตัวแบบขนานปัจจุบันสำหรับการคำนวณ


30

ปี 1980 ก่อให้เกิดทั้งรถเข็นและBSPรูปแบบของการคำนวณแบบขนาน ดูเหมือนว่าความมั่งคั่งของทั้งสองรุ่นอยู่ในช่วงปลายยุค 80 และต้นยุค 90

พื้นที่เหล่านี้ยังคงทำงานอยู่ในแง่ของการวิจัยสำหรับอัลกอริทึมแบบขนานหรือไม่ มีรุ่นที่ใหม่กว่าที่ซับซ้อนกว่าสำหรับการคำนวณแบบขนานหรือไม่? รุ่นทั่วไปยังอยู่ในสมัยหรือนักวิจัยพยายามที่จะเชี่ยวชาญกับ GPGPU หรือการคำนวณตาม Cloud มาในแฟชั่น?

คำตอบ:


19

มีหลายรุ่นที่ลอยอยู่รอบ ๆ แต่ที่เด่นที่สุดคือ:

  1. โคลนและMapReduceรุ่นที่มีหลักเกี่ยวกับการจับกรอบ MapReduce แต่มากขึ้นโดยทั่วไปสามารถดูเป็นรูปแบบขนานกระจายของการคำนวณ
  2. รูปแบบมัลติคอร์ที่หลากหลายที่ได้รับการเสนอ (แต่ยังไม่เป็นมาตรฐาน)

เมื่อเดือนที่แล้วมีการประชุมเชิงปฏิบัติการที่ DIMACSในหัวข้อนี้การอ่านบทคัดย่อจะช่วยให้คุณได้รับคำแนะนำมากขึ้น


การประชุมเชิงปฏิบัติการ DIMACs ยอดเยี่ยม! ขอขอบคุณ.
Nicholas Mancuso

3
มีการประชุมเชิงปฏิบัติการก่อนหน้านี้ในปี 2009 umiacs.umd.edu/conferences/tmc2009ซึ่งดูเหมือนว่าฉันจะรู้สึกเฉียบคมยิ่งขึ้นกว่า DIMACs ล่าสุด Leslie Valiant แนะนำรุ่น Multi-BSP ที่นั่น (อธิบายรายละเอียดเพิ่มเติมในการประชุมเชิงปฏิบัติการในปีนี้) และ Phil Gibbons จาก Intel นำเสนอทฤษฎีการพูดคุยที่เร้าใจ: หลับสลับกับหลายคอร์ที่น่าดู สำหรับฉันเวิร์กช็อป DIMACs นั้นให้ความสำคัญกับ MapReduce มากเกินไปซึ่ง Google ไม่ได้ใช้สำหรับการสร้างดัชนีเว็บของพวกเขาอีกต่อไป
András Salamon

นั่นเป็นเรื่องจริง ฉันลืมเรื่องก่อนหน้านี้ไปแล้ว
Suresh Venkat

22

ฉันต้องขออภัยล่วงหน้าสำหรับรูปแบบการโพสต์บล็อกของคำตอบของฉัน ฉันอดไม่ได้ที่จะสร้างภาพรวมขนาดเล็กของโลกแห่งการคำนวณแบบขนาน

คุณสามารถจัดหมวดหมู่โมเดลการโปรแกรมมิงแบบขนานได้ในสองประเภทโดยประมาณ: โมเดลโฟลว์ควบคุมและข้อมูลไหล

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

การทำซ้ำเลขคณิตเพียงอย่างเดียวจะให้คำสั่ง SIMD ให้คุณ ALU ทั้งหมดแบ่งปัน Program Counter (PC) เดียวกันและทำให้การดำเนินการเดียวกันเสมอในแบบคู่ขนานแม้ว่าจะมีข้อมูลต่างกัน

การทำสำเนา ALU และพีซี แต่การรักษาซีเควนเซอร์คำสั่งภายในหน่วยควบคุมจะทำให้การดำเนินการตามคำสั่งซื้อ (OoO) ของคุณเป็นไปอย่างราบรื่น ในหมวดหมู่นี้คุณยังมีเทคนิคการเรียนการสอนคำศัพท์ที่ยาวมาก (VLWI) และการคาดคะเนสาขา คุณไม่ค่อยเห็นหมวดหมู่นี้ในระดับซอฟต์แวร์

การทำต่อไปอีกเล็กน้อยเป็นการทำซ้ำ 'คอร์' ทั้งหมด แต่ทำให้การแชร์หน่วยความจำร่วมกันเป็นตัวประมวลผลแบบมัลติคอร์ปัจจุบันที่ให้งานของคุณ (หรือเธรด) แบบขนาน หน่วยความจำที่ใช้ร่วมกันในบริบทนี้จะช่วยให้คุณมากยากมากและปัญหาที่ลึกซึ้งเห็นพ้องด้วย การคำนวณแบบขนานบนมัลติคอร์ปัจจุบันจึงหมุนรอบปัญหาการซิงโครไนซ์ / การเกิดพร้อมกันอย่างสมบูรณ์สมดุลของประสิทธิภาพ (ไม่ซิงค์) และซีแมนทิคส์ที่ต้องการ (ซิงโครไนซ์ทั้งหมด ตัวอย่างของสิ่งนี้คือเรือท้องแบนหรือที่นิยมมากขึ้นในทุกวันนี้ที่Cilk ofshoots เช่น fork / join ( IntelTBB , Java.Utils.Concurrency) โมเดล CSP และ Actor เป็นโมเดลที่ทำงานพร้อมกัน แต่ดังที่ได้กล่าวมาแล้วข้างต้นการทำงานพร้อมกันและการขนานจะเบลอในสภาพแวดล้อมของหน่วยความจำที่ใช้ร่วมกัน nbismism สำหรับประสิทธิภาพการทำงานพร้อมกันเพื่อรักษาความหมายที่ถูกต้อง

หน่วยความจำที่ซ้ำซ้อนก็ให้ทั้งคอมพิวเตอร์ในเครือข่ายที่ตั้งโปรแกรมด้วย MPI และตระกูลหรือสถาปัตยกรรมแปลก ๆ ที่ไม่ใช่ของ Von Neumann เช่นโปรเซสเซอร์บนเครือข่ายบนชิป (คลาวด์โปรเซสเซอร์ Transputer, Tilera) รุ่นหน่วยความจำเช่นUMAหรือNUMAพยายามรักษาภาพลวงตาของหน่วยความจำที่ใช้ร่วมกันและสามารถมีอยู่ในซอฟต์แวร์หรือระดับฮาร์ดแวร์ MPI รักษาความขนานของระดับโปรแกรมและสื่อสารผ่านการส่งผ่านข้อความเท่านั้น การส่งข้อความยังใช้กับระดับฮาร์ดแวร์สำหรับการสื่อสารและการทำงานพร้อมกัน (Transputer)

ประเภทที่สองเป็นรูปแบบข้อมูลไหล สิ่งเหล่านี้ได้รับการออกแบบในตอนเช้าของยุคคอมพิวเตอร์เพื่อเขียนและดำเนินการคำนวณแบบขนานโดยหลีกเลี่ยงการออกแบบของฟอนนอยมันน์ สิ่งเหล่านี้หลุดพ้นจากความนิยม (สำหรับการประมวลผลแบบขนาน) ในยุค 80 หลังจากประสิทธิภาพตามลำดับเพิ่มขึ้นแบบทวีคูณ อย่างไรก็ตามระบบการเขียนโปรแกรมแบบขนานจำนวนมากเช่น Google MapReduce, Dryad ของ Microsoft หรือ Concurrent Collections ของ Intel นั้นอยู่ในรูปแบบการคำนวณดาต้าโฟลว์ ณ จุดหนึ่งพวกเขาแสดงการคำนวณเป็นกราฟและใช้เพื่อเป็นแนวทางในการปฏิบัติ

โดยการระบุบางส่วนของโมเดลคุณจะได้รับหมวดหมู่และซีแมนทิกส์ที่แตกต่างกันสำหรับโมเดลดาต้าโฟลว์ คุณ จำกัด รูปร่างของกราฟไว้ที่: DAG (CnC, Dryad), tree (mapreduce), digraph? มีความหมายการประสานที่เข้มงวด ( ความมันวาวการเขียนโปรแกรมแบบตอบโต้]? คุณไม่อนุญาตให้เรียกซ้ำเพื่อให้สามารถกำหนดตารางเวลาแบบสแตติก (StreaMIT) หรือคุณให้พลังการแสดงออกที่มากกว่าโดยมีตัวกำหนดตารางเวลาแบบไดนามิก (Intel CnC) หรือไม่ มีการ จำกัด จำนวนขอบขาเข้าหรือขาออกหรือไม่? ซีแมนทิกส์ firing อนุญาตให้ทำการโหนดได้หรือไม่เมื่อเซ็ตย่อยของข้อมูลที่เข้ามามีอยู่? ขอบกระแสข้อมูล (การประมวลผลสตรีม) หรือโทเค็นข้อมูลเดี่ยว (การกำหนดค่าคงที่ / ไดนามิกเดี่ยว) สำหรับงานที่เกี่ยวข้องคุณสามารถเริ่มต้นโดยดูที่งานวิจัยดาต้าโฟลว์ของผู้คนเช่น Arvind, K. Kavi, j. คมชัด, W. Ackerman, R. Jagannathan, เป็นต้น

แก้ไข: เพื่อความสมบูรณ์ ฉันควรชี้ให้เห็นว่ายังมีโมเดลที่ใช้ตัวลดแบบขนานและแบบตัวขับเคลื่อน สำหรับกลยุทธ์การลดลงคุณมีการลดกราฟและการลดสตริง โดยทั่วไป Haskell ใช้การลดกราฟซึ่งเป็นกลยุทธ์ที่มีประสิทธิภาพมากในระบบหน่วยความจำที่แชร์ต่อเนื่อง การลดสตริงซ้ำจะทำงานได้ แต่มีคุณสมบัติหน่วยความจำส่วนตัวที่ทำให้มันเหมาะกว่าที่จะขนานกันโดยปริยาย รูปแบบที่ขับเคลื่อนด้วยรูปแบบเป็นภาษาลอจิกแบบขนานเช่นการเปิดฉากพร้อมกัน โมเดลนักแสดงยังเป็นโมเดลที่ขับเคลื่อนด้วยรูปแบบ แต่มีคุณสมบัติหน่วยความจำส่วนตัว

PS ฉันใช้คำว่า 'model' แบบกว้าง ๆ ซึ่งครอบคลุมถึงเครื่องนามธรรมสำหรับวัตถุประสงค์ทั้งทางการและโปรแกรม


ฉันไม่เข้าใจว่า mapreduce ก่อตัวเป็นต้นไม้ได้อย่างไร คุณอธิบายได้ไหม
Riko Jacob

@Riko Jacob สมมติว่าคุณแมป '+' ถึง (1 2 3 4) โดยหลักการแล้วสิ่งนี้จะสร้างแผนผังแอปพลิเคชันด้วย '+' ที่แต่ละโหนดและแต่ละหมายเลขเป็นใบไม้ ลด (หรือหมอบหากคุณจาก Haskel) จะยุบแต่ละโหนดด้วยข้อมูลจากลูกของมัน
เนื้อ

ฮึ่ม ฉันเข้าใจว่าการไหลของข้อมูลสามารถเป็นต้นไม้ ทำไมถึงเป็นต้นไม้เสมอ? พูดอินพุต "a, b" ได้รับการแม็พ a ถึง (x, 1), (y, 2), b ถึง (x, 2), (y, 5) และลดลงด้วย '+' เช่นผลลัพธ์ คือ (x, 3) และ (y, 7) ในตัวอย่างนี้การเชื่อมต่อระหว่างอินพุตทั้งสองไปยังเอาต์พุตทั้งสองซึ่งเป็นซึ่งไม่ใช่แผนผัง K2,2
Riko Jacob

หากคุณไม่ได้คำนึงถึงการสร้างกราฟเอง (เช่นการแมป a, b กับคู่คีย์ / vale) คุณจะได้รับต้นไม้สองต้นที่ทำการลดพร้อมค่าความนิยมเล็กน้อย :) บางทีมันอาจจะเป็นกราฟที่เชื่อมต่อ k หรือขัดแตะ อย่างที่คุณพูด คุณพูดถูกว่าเป็นต้นไม้ที่ค่อนข้างเรียบง่ายกว่าต้นไม้ทั่วไป ฉันพยายามสร้างความแตกต่างด้วยโครงสร้าง DAF dataflow ทั่วไป
เนื้อ

8

สำหรับสถาปัตยกรรมที่ส่งข้อความรูปแบบที่ค่อนข้างคล้ายกับ BSP แต่ง่ายต่อการจัดการและด้วยการวิเคราะห์ประสิทธิภาพใกล้เคียงกับสิ่งที่คุณได้รับบนเครื่องจริงอย่างแท้จริง CGM หรือ Coarse Grained Multicomputer มันถูกเสนอโดย Frank Dehne และคุณจะพบกับเอกสารที่น่าสนใจมากมายที่นำเสนออัลกอริทึมที่พัฒนาขึ้นในบริบทนี้

CGM เหมาะกับสถาปัตยกรรมที่มีลักษณะหยาบโดยสมมติว่าตัวประมวลผล p แต่ละตัวมีหน่วยความจำภายใน O (n / p) และขนาดของอินพุต n มีขนาดใหญ่กว่ามาก (คำสั่งของการแยกขนาด) กว่า p เช่น p≪n ดังนั้นโมเดลนี้แมปได้ดีกว่าสถาปัตยกรรมอื่นในปัจจุบันมาก มันได้รับการศึกษาอย่างกว้างขวาง แบบจำลองตั้งอยู่บนสมมติฐานต่อไปนี้: (i) อัลกอริธึมเรียกใช้ supersteps ที่ประกอบด้วยหนึ่งเฟสของการคำนวณโลคัลและหนึ่งเฟสของการสื่อสารระหว่างตัวประมวลผลที่มีการซิงโครไนซ์สิ่งกีดขวางขั้นกลาง (ii) โปรเซสเซอร์ p ทั้งหมด หน่วยความจำภายใน O (n / p) (iii) ในแต่ละ superstep โปรเซสเซอร์สามารถส่งและรับองค์ประกอบ O (n / p) ส่วนใหญ่และ (iv) เครือข่ายการสื่อสารระหว่างโปรเซสเซอร์สามารถกำหนดเองได้ ในโมเดลนี้อัลกอริทึมจะถูกประเมินค่า WRT เวลาคำนวณและจำนวนรอบการสื่อสาร แม้ว่าแบบจำลองนั้นจะง่าย แต่ก็มีการคาดการณ์ที่สมเหตุสมผลเกี่ยวกับประสิทธิภาพที่แท้จริงของอัลกอริทึมแบบขนาน จริงๆแล้วอัลกอริทึมแบบขนานสำหรับ CGM มักจะมีการวิเคราะห์ความซับซ้อนเชิงทฤษฎีใกล้เคียงกับเวลาจริงที่กำหนดโดยการทดลองเมื่อนำไปใช้และการเปรียบเทียบมัน


4

หน่วยความจำภายนอกแบบขนาน (PEM)เป็นการผสมผสานที่เป็นธรรมชาติของเครื่องหน่วยความจำที่ใช้ร่วมกันในรูปแบบของรถเข็นพร้อมรุ่นของหน่วยความจำภายนอก มันเน้นไปที่ความหมายของแคชส่วนตัว


4

จากสิ่งที่ฉันรู้รุ่น BSP และ LogP ถูกนำมาใช้ในวันนี้สำหรับอัลกอริทึมแบบกระจาย นอกจากนี้ตั้งแต่การคำนวณ GPU, PRAM ได้กลายเป็นที่นิยมอีกครั้ง แต่หนึ่งควรรวมลำดับชั้นของหน่วยความจำในการวิเคราะห์ คุณสามารถตรวจสอบรูปแบบ UPMH (ลำดับชั้นหน่วยความจำแบบขนาน) ซึ่งเข้ากันได้ดีกับ PRAM

B. Alpern, L. Carter, E. Feig และ T. Selker โมเดลลำดับชั้นของหน่วยความจำที่เหมือนกันของการคำนวณ อัลกอริทึม, 12: 72–109, 1994 10.1007 / BF01185206

Bowen Alpern, Larry Carter และ Jeanne Ferrante การสร้างแบบจำลองคอมพิวเตอร์แบบขนานเป็นลำดับชั้นของหน่วยความจำ ใน In Proc. แบบจำลองการเขียนโปรแกรมสำหรับคอมพิวเตอร์คู่ขนานขนาดใหญ่หน้า 116–123 สำนักพิมพ์ IEEE Computer Society, 1993

นอกจากนี้สำหรับการคำนวณ GPU นั้นยังมีข้อเสนอสำหรับแบบจำลองทางทฤษฎี รุ่น K:

Gabriele Capannini, Fabrizio Silvestri และ Ranieri Baraglia K-model: โมเดลการคำนวณใหม่สำหรับสตรีมโปรเซสเซอร์ ในการประชุมนานาชาติ IEEE 12 ครั้งที่ 12 เรื่องการใช้คอมพิวเตอร์และการสื่อสารประสิทธิภาพสูง HPCC '10, หน้า 239–246, การซัก - ตัน, DC, USA, 2010 IEEE Computer Society

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


3

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


ไม่มีรูปแบบค่าใช้จ่ายที่เฉพาะเจาะจงกับการเขียนโปรแกรมใช้งานดังนั้นสิ่งนี้จึงไม่ตอบคำถาม ดูcstheory.stackexchange.com/questions/376/…
Charles Stewart

2
กลไกการประเมินสำหรับภาษาที่ใช้แลมบ์ดาแคลคูลัสคือการลดซึ่งไม่มีการทำแผนที่โดยตรงกับฮาร์ดแวร์จริง นี่คือเหตุผลที่ Haskell ยังคงแนะนำโครงสร้างแบบขนานที่ชัดเจนเช่น 'par' การอ้างอิง: csg.csail.mit.edu/projects/languages/ph.shtml
เนื้อ

3

ฉันชอบวิธีBader-Jaja (ดูหัวข้อ 2.1) คุณจำลองความซับซ้อนเป็นปัญหาการส่งข้อความ สำหรับแต่ละข้อความที่ส่งมีทั้งตัวแปรสำหรับเวลาแฝงในการเริ่มต้นการสื่อสารและตัวแปรสำหรับแบนด์วิดท์

เสื้อยูม.พีเสื้อยูม.พี


-3

คุณพูดถึง Cloud computing โดยเฉพาะ ได้มีการภายในเวลาเพียงไม่กี่ปีนวัตกรรมที่รุนแรงในพื้นที่นี้กับAmazon Elastic Compute เมฆ, ของ Google App Engineและเครื่องมือต่างๆและที่เกี่ยวข้องของพวกเขาในการประมวลผลแบบขนานแนวคิด "รุ่น"

เครื่องมือโอเพ่นซอร์สพิเศษรวมถึงฐานข้อมูลของMapreduce , Apache Hadoop,และNoSQLซึ่งเป็นมาตรฐานใหม่ที่แข็งแกร่งและปรับตัวได้อย่างกว้างขวางในอัลกอริทึมการขนาน "วิธีปฏิบัติที่ดีที่สุด" และ "รูปแบบการออกแบบ" ยังmemcacheDกำลังถูกใช้มากขึ้นเป็นฐานข้อมูลกระจายในหน่วยความจำ ตัวอย่างนี้ใช้ใน Facebook ที่อธิบายไว้ในรายงานล่าสุด [1]

[1] ที่เก็บคีย์ - ค่าแกนหลักจำนวนมากโดย Berezecki และคณะ


อีกครั้ง ฉันขอแบบจำลองหรือการคำนวณแบบขนาน ไม่ใช่เครื่องมือ MapReduce เป็นหนึ่งในรูปแบบดังกล่าว อย่างไรก็ตาม Hadoop และ NoSQL ไม่ใช่ Hadoop เป็นการนำ Java MapReduce มาใช้ใหม่ NoSQL เป็นแบบจำลองสำหรับร้านค้าคีย์ที่ผ่อนคลายจากสิ่งที่ฉันสามารถบอกได้
Nicholas Mancuso

MapReduce เริ่มต้นเป็นเครื่องมือและจบการศึกษาในรูปแบบผ่านการใช้งาน / การนำไปใช้อย่างกว้างขวาง เหมือนกับคนอื่น ๆ Hadoop ไม่เหมือนกับ MapReduce แต่อาจคล้ายกัน ใช่ฉันเดาว่าฉันถูกทิ้งโดยคำตอบที่ได้รับคะแนนสูงสุดของ Suresh ซึ่งรวมถึง MapReduce ... ผู้คนดูเหมือนจะไม่สนใจอะไรมากหรือไม่ต้องการพูดคุย pkgs ซอฟต์แวร์จริงในเว็บไซต์นี้ ... ไม่ว่าจะใช้กันอย่างแพร่หลาย .. แม้จะระบุว่าพวกเขาสร้างแรงบันดาลใจ / crosspollinate / ขับทฤษฎีที่เป็นของแข็งในภายหลังในขณะที่ MapReduce ทำ ... my bad = (
vzn

2
ประเด็นคือคุณไม่ได้ตอบคำถาม นโยบายที่นี่คือข้อเสนอแนะที่เกี่ยวข้องกับคำถามเป็นคำตอบที่ไม่สามารถยอมรับได้ หากคุณไม่ชอบนโยบายนี้คุณสามารถเลือกที่จะไม่เข้าร่วมได้ หากคุณมีความคิดที่แท้จริงเกี่ยวกับวิธีการสร้างแบบจำลองระบบโลกคู่ขนานจริง ๆ นั่นจะเพิ่มเติมในหัวข้อ (แม้ว่ายังไม่ตอบคำถามที่ถาม)
Sasho Nikolov

-3

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

ดูตัวอย่าง การคำนวณความน่าจะเป็นแบบคู่ขนานบนคลัสเตอร์ของเวิร์กสเตชัน Radenski, Vann, Norris:

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

ในกรณีที่มันไม่ชัดเจน "โครงสร้างการควบคุมแบบขนานทั่วไปในฐานะอัลกอริธึมทั่วไป" ที่อ้างถึงพร้อมกับการคำนวณความน่าจะเป็นและการแปลงโดยรวมคือ "แบบจำลอง"

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

การให้เหตุผลเกี่ยวกับโปรแกรมคู่ขนานที่น่าจะเป็นโดย Rao:

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

แน่นอนว่าการคำนวณ QM นั้นคล้ายกับการคำนวณแบบน่าจะเป็น (การอ้างอิงที่ดีที่เน้นสิ่งนี้คือมุมมองหนึ่งของการคำนวณเชิงควอนตัมโดย Fortnow ของผู้ที่มีความซับซ้อน ) & มีแนวทางบางอย่างที่อาจขยายออกไปเช่นในการจำลอง QM แบบขนาน


-6

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

บางทีการเชื่อมต่อที่ดีที่สุดคือการใช้อัลกอริทึมการค้นหาของ Groversซึ่งเพิ่งได้รับการแสดงให้เห็นว่ามีความกว้างกว่าโดยทั่วไปในแง่ของการใช้ความเร็วในการแก้ปัญหา NP ที่สมบูรณ์โดยทั่วไป [5] ดูเหมือนว่าอัลกอริทึมของ Grovers จะมีการเปรียบเทียบ / การเชื่อมต่อที่ดีกับอัลกอริทึมการค้นหาฐานข้อมูลแบบขนาน อัลกอริธึมแบบดั้งเดิมที่ดีที่สุดคลาสสิกไม่สามารถตอบสนองประสิทธิภาพเดียวกัน แต่อย่างน้อยหนึ่งอำนาจเมื่อเร็ว ๆ นี้ระบุว่าวิธีการค้นหา QM สำหรับการค้นหาไม่ได้มีประสิทธิภาพดีกว่าอัลกอริธึมแบบขนานคลาสสิก [1]

หลักฐานเพิ่มเติมคือแผนการที่ดูความเท่าเทียมในการค้นหาควอนตัมอย่างชัดเจนเช่น [2] (s) ควอนตัมจำลองยังเสนอว่ามีพื้นฐานอยู่บนการประมวลผลแบบขนาน / กระจาย [3] [4] และเพราะรูปแบบที่เหมาะสม & นำไปสู่การมีประสิทธิภาพ แน่นอนว่าไม่ใช่เรื่องบังเอิญและบ่งบอกถึงสะพานที่ลึกกว่าระหว่างการคำนวณแบบขนานคลาสสิกและการคำนวณแบบ QM แต่อาจไม่เป็นเช่นนั้น

[1] การค้นหาควอนตัมนั้นใช้งานได้จริงหรือไม่? โดย Viamontes และคณะ

[2] การค้นหาควอนตัมที่แน่นอนโดยแผนการรวมการเลือกปฏิบัติแบบคู่ขนานโดย Wu / Dian

[3] เครื่องจำลองวัตถุประสงค์ทั่วไปสำหรับการคำนวณควอนตัมโดย Niwa, Matsumoto, Imai

[4] การคำนวณควอนตัมแบบกระจายที่มีประสิทธิภาพโดย Beals และคณะ 2555

[5] การแก้ปัญหา NP ที่สมบูรณ์ด้วยการค้นหาควอนตัมโดย Furer 2008


@vnz นี่น่าจะเป็น hodge-podge แบบสุ่มของแนวคิดควอนตัม Googling "quantum ควอนตัม" และรายการผลลัพธ์ที่นี่ไม่มีประโยชน์สำหรับฉันและกับคนอื่น ๆ ที่อ่านข้อความนี้ ฉันคิดว่ามันจะเป็นการดีกว่าสำหรับชุมชนที่จะตอบสนองต่อคำตอบที่คุณรู้สึกสบายใจและมีความรู้มากกว่าที่จะเป็นเพียงจุดบ้าคลั่งสำหรับชื่อเสียง มันเป็นสิ่งที่ไม่เป็นระบบและเป็นไปได้ยากที่จะคิดว่าการคำนวณควอนตัมเป็นการค้นหาแบบขนาน การคำนวณควอนตัมมีเพื่อใช้คำอธิบายของคุณ "การเชื่อมโยง / การเชื่อมต่อที่รัดกุม" กับการค้นหาความน่าจะเป็นไม่ใช่แบบขนาน
Nicholas Mancuso

ฉันไม่รู้ว่า dogma สอนอะไรในห้องเรียน แต่ถ้ามีใครบางคนที่นั่นมีการอ้างอิงจริงมากกว่าเพียงแค่การอ้างสิทธิ์แบบ Baseless ที่บ่งชี้ว่าทำไมไม่มีความถูกต้องในการโต้ตอบที่ยังไม่ได้เปิดของ QM ที่ทำให้การคำนวณแบบขนานขนาน ... มัน. การคำนวณ QM คืนคำตอบที่แม่นยำ ala / เช่น shor factoring ไม่อย่างนั้นมันไม่ใช่ระบบการคำนวณที่แท้จริง ..... นอกจากนี้ยังมีวิธีอื่นที่ฉันวาดเพื่อแสดงให้เห็นว่าการคำนวณ QM ต้องเทียบเท่ากับการคำนวณแบบขนานแบบดั้งเดิมในบางกรณี ... อาจ เนื่องจากมันไม่ได้อยู่ในตำราเรียนมันจะต้องผิด huh !!
vzn

มีหลักสูตรฟรีทั้งหมดเกี่ยวกับการคำนวณควอนตัมที่นี่: coursera.orgมันอาจชี้แจงสิ่งต่าง ๆ สำหรับคุณ
Nicholas Mancuso

ป.ล. สำหรับ "ประเดี๋ยวประด๋าว" ... ลองอ่าน REFS จริง ๆ หรืออาจจะแค่อ่านมันในกรณีของคุณขยิบตา =)
vzn

1
(6. ) การอ้างอิงของคุณ [5] อธิบายถึงวิธีที่อัลกอริทึมของ Grover อาจขยายออกไปอีกครั้งโดยไม่ต้องพูดถึงความขนานที่คุณต้องการในการคำนวณควอนตัม โดยสรุป:การตีความของคุณว่ามีการเชื่อมต่อระหว่างการคำนวณควอนตัมและการคำนวณแบบขนานดูเหมือนว่าจะได้มาจากการตีความ QM แบบหลายภพ ในขณะที่ไม่คลุมเครือมันก็ไม่ใช่ความไม่ต่อเนื่องและแน่นอนไม่อนุญาตให้เราอธิบายการคำนวณควอนตัมอย่างมีประสิทธิผลในฐานะ "การคำนวณแบบขนาน" ยกเว้นในขอบเขตที่เราไม่เห็นการคำนวณเหล่านั้น ... ซึ่งไม่ใช่ข้อโต้แย้งที่แข็งแกร่งสำหรับ การปรากฏตัวของพวกเขา
Niel de Beaudrap
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.