แอปพลิเคชันกรณีใดบ้างที่มีเงื่อนไขการเสริมล่วงหน้าที่ดีกว่าตัวคูณ


12

ทั้งในการสลายตัวของโดเมน (DD) และ multigrid (MG) วิธีหนึ่งอาจเขียนแอพลิเคชันของการปรับปรุงบล็อกหรือแก้ไขหยาบเป็นทั้งสารเติมแต่งหรือคูณ สำหรับนักแก้จุดบกพร่องนี่คือความแตกต่างระหว่างการทำซ้ำ Jacobi และ Gauss-Seidel เรียบคูณสำหรับx = Bทำหน้าที่เป็นS ( x o L d , B ) = x n E Wจะถูกใช้เป็นAx=bS(xold,b)=xnew

xi+1=Sn(Sn1(...,S1(xi,b)...,b),b)

และสารเติมแต่งเรียบเนียนถูกนำไปใช้เป็น

xi+1=xi+=0nλ(S(xi,b)xi)

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

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

คำตอบ:


6

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

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


นี่คือคำตอบที่ฉันคิดว่าฉันจะได้รับดังนั้นฉันเดาว่าฉันจะไปไกลกว่านี้กับคำถาม มีสถานการณ์ที่ใช้วิธีการเพิ่มเติมรวมถึง DD และ MG แต่ยังรวมถึงการแบ่งฟิลด์ (ซึ่งอาจพิจารณาว่าคล้าย DD แต่อาจมีลักษณะที่แตกต่างกันในทางปฏิบัติ) หรือการแยก PDE นั้นดีกว่าในแง่ของประสิทธิภาพความทนทานหรือความมั่นคง
Peter Brune

1
อัลกอริทึมหลายรุ่นหลายรุ่นต้องมีการจัดเก็บข้อมูลเพิ่มเติม แต่บางครั้งก็มาบรรจบกันอย่างรวดเร็ว บางครั้งสารเติมแต่งอาจเป็นแบบสมมาตร แต่มันอาจจะทำงานได้มากขึ้นในการสร้างสมมาตรแบบหลายค่า ด้วย fieldplit ตัวสร้างเงื่อนไขล่วงหน้าสามารถเป็นค่าประมาณได้มากกว่าเมื่อคุณเพิ่มตัวแก้พิเศษเหล่านั้น เราสามารถสาธิตสิ่งนี้ด้วยตัวอย่าง PETSc Stokes หากคุณต้องการ สารเติมแต่งจะง่ายต่อการทำให้เป็นเวกเตอร์ / พร้อมกันมากขึ้น แต่ประสิทธิภาพการทำงานใด ๆ ที่ชนะจากที่เป็นปัญหาและสถาปัตยกรรมเฉพาะ
Jed Brown

5

สำหรับวิธีการแก้ปัญหา SPD นั้นดีกว่าสำหรับการทำให้เรียบ MG ด้วยเหตุผลหลายประการดังที่กล่าวมาแล้วและอีกไม่กี่:

@Article{Adams-02, 
author = {Adams, M.~F. and Brezina, M. and Hu, J. J. and Tuminaro, R. S.}, 
title = {Parallel multigrid smoothing: polynomial versus {G}auss-{S}eidel}, 
journal = {J. Comp. Phys.}, 
year = {2003}, 
volume = {188}, 
number = {2}, 
pages = {593-610} }

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


0

ฉันจะพูดซ้ำในสิ่งที่ @Jed พูดว่า: วิธีการ Multiplicative จะรวมกันอย่างน้อยรวมถึงวิธีการเติม (asymptotically) ดังนั้นคุณจะชนะโดยขึ้นอยู่กับการทำงานพร้อมกัน แต่ขึ้นอยู่กับสถาปัตยกรรม


ไม่ถูกต้องทางเทคนิคสเปกตรัมของการทำซ้ำเพื่อบอกว่า Gauss-Seidel นั้นไม่ได้ยอดเยี่ยมกว่า Jacobi (เช่น eigenvalue เดียวถูกฆ่าโดยการทำซ้ำ Jacobi หนึ่งครั้ง) ทำเครื่องหมาย (ฉันจะออกจากระบบในฐานะ Jed ... ) ได้อย่างไร
Jed Brown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.