เลขทศนิยมที่มีความแม่นยำสูงขึ้นใน PDE ที่เป็นตัวเลข


9

ฉันมีความประทับใจจากแหล่งข้อมูลที่แตกต่างกันมากและพูดคุยกับงานวิจัยว่ามีความต้องการเพิ่มขึ้นสำหรับการคำนวณที่มีความแม่นยำสูงในสมการเชิงอนุพันธ์ย่อยเชิงตัวเลข ที่นี่ความแม่นยำสูงหมายถึงความแม่นยำมากกว่าความแม่นยำมาตรฐาน 64 บิตสองเท่า

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

คำตอบ:


16

การแยกส่วนของ PDEs ต่อเนื่องมักจะทำผิดพลาดมากกว่าความแม่นยำแน่นอน ฉันพบว่าประมาณ 90% ของผู้ที่ต้องการความแม่นยำสูงนั้นขี้เกียจกับการกำหนดปัญหาและกำลังพยายามแก้ปัญหาโดยใช้การปรับขนาดไม่ดี discretizations ที่ไม่ดี ส่วนที่เหลืออีก 10% อาจมีระบบปรับอากาศที่ไม่เหมาะสมซึ่งเพิ่มความแม่นยำอย่างแท้จริง แม้ในกรณีเหล่านั้นเราส่วนใหญ่ใช้ความแม่นยำสี่เท่าเป็นเครื่องมือดีบั๊ก (โดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับวิธีการที่ใช้อนุพันธ์ Frechet ที่แตกต่างกัน จำกัด และเพื่อตรวจสอบสาเหตุของช่องว่างตัวเลข "ปลอม") หรือในท้องถิ่นสำหรับการดำเนินการที่ละเอียดอ่อนมาก ขนาดใหญ่สำหรับการผลิต

GCC ได้ให้บริการ__float128ตั้งแต่รุ่น 4.6 ดังนั้นจึงเป็นเรื่องง่ายที่จะลอง (โดยทั่วไปการใช้งานก่อนหน้านี้มักจะล่วงล้ำและพกพาได้น้อยกว่า) PETSc รองรับ--with-precision=__float128ตั้งแต่รุ่น 3.2 ดังนั้นจึงเป็นเรื่องของการคอมไพล์ซ้ำ


ขวา. และ Fortran มีของจริง (dp) ที่หนึ่งสามารถตั้งค่า dp = 16 (สำหรับ gfortran) เพื่อให้ได้ความแม่นยำในรูปสี่เหลี่ยมดังนั้นจึงเป็นเรื่องง่ายที่จะลอง
OndřejČertík

9

ในช่วง 15 ปีที่เราจัดหาซอฟต์แวร์ FEM ในรูปแบบของโครงการ deal.II (http://www.dealii.org/) ฉันไม่คิดว่าเราเคยได้รับการร้องขออย่างแท้จริงในการแก้ปัญหา PDE ความแม่นยำสูงกว่าความแม่นยำสองเท่า เหตุผลก็คือ Jed แนะนำในคำตอบอื่น ๆ : ข้อผิดพลาดอย่างใดอย่างหนึ่งทำให้ discretizing PDE มีขนาดใหญ่กว่า 16 หลักของความถูกต้องที่ได้รับจากเลขคณิตทศนิยมความแม่นยำสองเท่า ดังนั้นคุณต้องมีตาข่ายที่ดีอย่างไม่น่าเชื่อเพื่อไปยังจุดที่คุณต้องการความแม่นยำมากขึ้นในการคำนวณเพื่อส่งผลต่อข้อผิดพลาดโดยรวม

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

ดังนั้นความรู้สึกของฉันคือความแม่นยำของรูปสี่เหลี่ยม (หรือสูงกว่า) เป็นสิ่งที่อาจเกี่ยวข้องกับชุมชนผู้แก้ปัญหา ODE แต่ไม่ใช่สำหรับชุมชน PDE

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