บันทึกเบื้องต้นเกี่ยวกับการขนานในรูปแบบเฉพาะของปัญหาและอัลกอริทึม


10

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

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

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

  1. การตั้งค่าอาร์เรย์ของจำนวนเต็มทั้งหมดเป็นศูนย์ (ปรับขนาดได้อย่างสมบูรณ์)
  2. รวมอาเรย์ของจำนวนเต็ม (ยิ่งใช้เธรดมากเท่าไหร่ก็จะยิ่งมีค่าใช้จ่ายมากขึ้นเท่านั้น)
  3. ให้อาร์เรย์รายการผลิตภัณฑ์ของแต่ละรายการกับแต่ละรายการอื่น ๆ (ถ้าเราขนานสองครั้งที่เป็นที่ยอมรับสำหรับ canonical, เวลาทำงานจะปรับขนาดเพื่อ sqrt ของโปรเซสเซอร์หมายเลข)

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


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

เสร็จสิ้น ฉันหวังว่านี่คือ acurate เพิ่มเติม
shuhalo

คำตอบ:


6

สำหรับหนังสือเบื้องต้นสำหรับการเขียนโปรแกรมแบบขนาน (ฉันไม่ทราบเกี่ยวกับเนื้อหาออนไลน์) ฉันได้เรียนรู้ด้วยอัลกอริทึมแบบขนานโดย Casanova, Legrand และ Robert ซึ่งเป็นประโยชน์อย่างมากสำหรับการเริ่มต้นในอัลกอริทึมแบบขนานเชิงทฤษฎี

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


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

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


+1 สำหรับ NSF / IEEE-TCPP Curriculum Initiative แต่ฉันขอแนะนำให้คุณลบ OpenMP & MPI เนื่องจากไม่เกี่ยวข้องจริงๆที่นี่
Jukka Suomela

แน่นอนฉันลืมที่จะลบออกหลังจากความคิดเห็นของ @Martin ขอบคุณ
Gopi

7

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

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

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


1

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

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