ขนานกันอย่างน่าอับอาย
ในการประมวลผลแบบขนานภาระงานหรือปัญหาแบบขนานที่น่าอึดอัด (เรียกอีกอย่างว่า สามารถขนานได้อย่างน่าอึดอัด ขนาน ได้อย่างสมบูรณ์แบบ ขนาน ได้อย่างน่ายินดีหรือขนานได้อย่างน่าพอใจ ) คือภาระงานที่แทบไม่ต้องใช้ความพยายามในการแบ่งปัญหาออกเป็นงานขนานจำนวนหนึ่ง[ 1 ]ทั้งนี้เนื่องมาจากการพึ่งพาการสื่อสารระหว่างงานขนานหรือผลลัพธ์ระหว่างงานขนานมีน้อยมากหรือไม่มีเลย[ 2 ]
ปัญหาเหล่านี้แตกต่างจาก ปัญหา การประมวลผลแบบกระจายซึ่งต้องการการสื่อสารระหว่างงาน โดยเฉพาะอย่างยิ่งการสื่อสารผลลัพธ์ระหว่างขั้นตอน ปัญหาเหล่านี้ทำได้ง่ายกว่าบนฟาร์มเซิร์ฟเวอร์ซึ่งไม่มีโครงสร้างพื้นฐานพิเศษที่ใช้ใน คลัสเตอร์ ซูเปอร์คอมพิวเตอร์ ที่แท้จริง ปัญหาเหล่านี้เหมาะสมกับ แพลตฟอร์ม การประมวลผลแบบอาสาสมัคร ขนาดใหญ่บนอินเทอร์เน็ต เช่นBOINCและประสบปัญหาความช้าลงจากการประมวลผลแบบขนาน น้อยกว่า ปัญหาที่ตรงกันข้ามกับปัญหาที่สามารถประมวลผลแบบขนานได้อย่างง่ายดาย คือปัญหาแบบอนุกรมโดยเนื้อแท้ซึ่งไม่สามารถประมวลผลแบบขนานได้เลย
ตัวอย่างทั่วไปของปัญหาแบบขนานที่น่าอับอายคือการเรนเดอร์วิดีโอ 3 มิติที่จัดการโดยหน่วยประมวลผลกราฟิกซึ่งแต่ละเฟรม (วิธีส่งต่อ) หรือพิกเซล ( วิธี เรย์เทรซซิ่ง ) สามารถจัดการได้โดยไม่ต้องพึ่งพาซึ่งกันและกัน[ 3 ]การถอดรหัสรหัสผ่านบางรูปแบบเป็นงานแบบขนานที่น่าอับอายอีกงานหนึ่งที่สามารถกระจายไปยังหน่วยประมวลผลกลางคอร์ CPUหรือคลัสเตอร์ ได้อย่างง่ายดาย
นิรุกติศาสตร์
คำว่า "น่าอาย" ในที่นี้ใช้เพื่ออ้างถึงปัญหาการประมวลผลแบบขนานซึ่ง "ง่ายจนน่าอาย" [ 4 ]คำนี้อาจสื่อถึงความอายของนักพัฒนาหรือคอมไพเลอร์: "เนื่องจากปัญหาสำคัญจำนวนมากยังคงไม่ได้รับการแก้ไข ส่วนใหญ่เป็นเพราะความซับซ้อนในการคำนวณโดยเนื้อแท้ การไม่พัฒนาการใช้งานแบบขนานของ วิธีการต่อเนื่อง โฮโมโท ปีพหุนามจึงเป็นเรื่องน่าอาย " [ 5 ]คำนี้พบครั้งแรกในเอกสารทางวิชาการในหนังสือเกี่ยวกับมัลติโปรเซสเซอร์ในปี 1986 โดยCleve Molerผู้สร้าง MATLAB [ 6 ] ซึ่งอ้างว่าเป็นผู้คิดค้นคำนี้[ 7 ]
คำศัพท์ทางเลือกอีกคำหนึ่งคือ " ขนานกันอย่างน่าพอใจ " ซึ่งได้รับความนิยมมากขึ้น อาจเพื่อหลีกเลี่ยงความหมายเชิงลบของความอับอาย และหันมาใช้การสะท้อนเชิงบวกเกี่ยวกับความสามารถในการขนานกันของปัญหาแทน: "แน่นอนว่าไม่มีอะไรน่าอับอายเกี่ยวกับโปรแกรมเหล่านี้เลย" [ 8 ]
ตัวอย่าง
ตัวอย่างง่ายๆ คือการให้บริการข้อมูลคงที่ การใช้หน่วยประมวลผลจำนวนมากเพื่อประมวลผลชุดข้อมูลเดียวกันนั้นใช้ความพยายามเพียงเล็กน้อย ที่จริงแล้ว ปัญหา "Hello World" ที่มีชื่อเสียงนั้น สามารถประมวลผลแบบขนานได้อย่างง่ายดาย โดยไม่ต้องคำนึงถึงการเขียนโปรแกรมหรือต้นทุนการคำนวณมากนัก
ตัวอย่างของปัญหาที่คล้ายคลึงกันจนน่าอับอาย ได้แก่:
- วิธีมอนเตคาร์โล[ 9 ]
- การสืบค้นฐานข้อมูลเชิงสัมพันธ์แบบกระจาย โดยใช้การประมวลผลชุดข้อมูลแบบกระจาย
- การบูรณาการเชิงตัวเลข[ 10 ]
- การประมวลผลไฟล์จำนวนมากที่ไม่เกี่ยวข้องกันแต่มีลักษณะคล้ายกันโดยทั่วไป เช่น การปรับขนาดและการแปลงรูปภาพในแกลเลอรี
- ชุดแมนเดลบร็อตสัญญาณรบกวนเพอร์ลินและภาพที่คล้ายกัน ซึ่งแต่ละจุดจะถูกคำนวณอย่างอิสระ
- การแสดงผลกราฟิกคอมพิวเตอร์ในแอนิเมชั่นคอมพิวเตอร์แต่ละเฟรมหรือแต่ละพิกเซลอาจถูกแสดงผลอย่างอิสระ
- การค้นหาแบบ brute-forceบางส่วนในด้านการเข้ารหัสลับ [ 11 ] ตัวอย่างที่โดดเด่นในโลกแห่งความเป็นจริง ได้แก่distributed.netและระบบproof-of-work ที่ใช้ใน สกุลเงินดิจิทัล
- การค้นหา BLASTในชีวสารสนเทศด้วยฐานข้อมูลแยกส่วน[ 12 ]
- ระบบจดจำใบหน้าขนาดใหญ่ที่เปรียบเทียบใบหน้าที่ได้มาแบบสุ่มหลายพันใบ (เช่น วิดีโอรักษาความปลอดภัยหรือการเฝ้าระวังผ่านโทรทัศน์วงจรปิด ) กับใบหน้าที่จัดเก็บไว้ก่อนหน้านี้จำนวนมากเช่นเดียวกัน (เช่นแกลเลอรีผู้ร้ายหรือรายชื่อเฝ้าระวัง ที่คล้ายกัน ) [ 13 ]
- การจำลองด้วยคอมพิวเตอร์โดยเปรียบเทียบสถานการณ์อิสระหลายๆ สถานการณ์
- อัลกอริ ทึมทางพันธุกรรม[ 14 ]
- การคำนวณแบบกลุ่มสำหรับการพยากรณ์อากาศเชิงตัวเลข
- การจำลองและการสร้างเหตุการณ์ขึ้นใหม่ในฟิสิกส์อนุภาค
- อัลกอริทึมการเดินแถวสี่เหลี่ยม
- ขั้นตอนการร่อนของตะแกรงกำลังสองและตะแกรงช่องตัวเลข
- ขั้นตอนการเติบโตของต้นไม้ในเทคนิคการเรียนรู้ของเครื่องแบบRandom Forest
- การแปลงฟูริเยร์แบบไม่ต่อเนื่องโดยที่แต่ละฮาร์มอนิกจะถูกคำนวณอย่างอิสระ
- โครงข่ายประสาทเทียมแบบคอนโวลูชันที่ทำงานบนGPU
- การค้นหาแบบขนานในการเขียนโปรแกรมข้อจำกัด[ 15 ]
การนำไปใช้
- ในR (ภาษาโปรแกรม) – แพ็กเกจ Simple Network of Workstations (SNOW) ใช้กลไกง่ายๆ ในการใช้ชุดเวิร์กสเตชันหรือคลัสเตอร์Beowulfสำหรับการคำนวณแบบขนานที่ง่ายดาย[ 16 ]แพ็กเกจ R ที่คล้ายกัน ได้แก่ "future", "parallel" และอื่นๆ
ดูเพิ่มเติม
- กฎของ Amdahlกำหนดค่าPซึ่งจะมีค่าเกือบเท่ากับ 1 หรือเท่ากับ 1 พอดีสำหรับปัญหาที่มีความขนานกันอย่างน่าอึดอัดใจ
- ออโตมาตาเซลลูลาร์
- เครื่องเชื่อมต่อ
- เฟรมเวิร์ก CUDA
- โปรเซสเซอร์หลายคอร์
- แผนที่ (รูปแบบขนาน)
- ขนานกันอย่างมหาศาล
- การประมวลผลแบบมัลติโปรเซสซิ่ง
- การประมวลผลแบบขนาน
- การเขียนโปรแกรมเชิงกระบวนการ
- สถาปัตยกรรมแบบไม่มีการแบ่งปันข้อมูล (SN)
- การประมวลผลแบบมัลติโปรเซสซิ่งแบบสมมาตร (SMP)
- ตัวประมวลผลเวกเตอร์
ลิงก์ภายนอก
- การคำนวณแบบขนานที่น่าอับอายการสร้างคลัสเตอร์คอมพิวเตอร์สไตล์เบโอวูล์ฟ
- " Star-P: การประมวลผลแบบขนานที่มีประสิทธิภาพสูง "