แพคเกจเมทริกซ์กระจัดกระจายแบบสี่แกนเลขคณิตใด ๆ ?


10

ฉันกำลังทำงานกับระบบสมการเชิงเส้นหร็อมแหร็มขนาดใหญ่ ฉันต้องการใช้เลขคณิตคู่สองครั้งหรือเลขคณิตคู่เลขคณิตเพื่อแก้ปัญหาเหล่านั้น ฉันรู้ว่ามีแพ็คเกจชื่อ MPACK ที่พัฒนาโดย Nakata, Maho ซึ่งสามารถทำการคำนวณเชิงพีชคณิตเชิงเส้นเชิงตัวเลขภายใต้การคำนวณทางคณิตศาสตร์แบบสี่คู่ อย่างไรก็ตามมันถูกออกแบบมาสำหรับเมทริกซ์หนาแน่นไม่ใช่เมทริกซ์เบาบาง คุณรู้หรือไม่ว่ามีแพคเกจเมทริกซ์กระจัดกระจายแบบ quad-double ใด ๆ ?


คุณทำงานกับเมทริกซ์แบบไหน? มันเป็นสมมาตร, Hermitian, เป็นบวกแน่นอน? คุณต้องการทำ LU หร็อมแหร็มหรือใช้วิธีการวนซ้ำหรือไม่?
Victor Liu

คำตอบ:


3

ในเวอร์ชัน3.2 PETSc รองรับการคำนวณความแม่นยำแบบ quad-core บน gcc / gfortran 4.6 และใหม่กว่า

คุณจะต้องมี BLAS และ LAPACK ที่มีความแม่นยำสูงซึ่ง PETSc สามารถจัดหาให้คุณ (พร้อมด้วยการสนับสนุนรูปสี่เหลี่ยม) ด้วยคำสั่งกำหนดค่า (บางส่วน) ต่อไปนี้:

./configure --with-precision=__float128 --download-f2cblaslapack

ดูคำถามที่พบบ่อยสำหรับข้อมูลเพิ่มเติมเล็กน้อย

นอกจากนี้ฉันเห็นด้วยกับnOObถ้าเป็นไปได้พยายามทำให้ระบบเป็นปกติก่อนที่จะเปลี่ยนเป็นความแม่นยำแบบ quad


1
นี่คือความแม่นยำแบบ quad (reals 128 บิต) ไม่ใช่ quad-double (256-bit reals) ที่กล่าวมานั้นความแม่นยำสี่เท่ามักจะเข้าใจปัญหาความมั่นคงที่เกิดจากความแม่นยำสองเท่าและโดยปกติแล้วคุณต้องการปรับขนาดระบบและแยกส่วนเพื่อให้ความแม่นยำสองเท่าเพียงพอสำหรับการผลิต
Jed Brown

2

ระบบที่ไม่ดีจะถูกแก้ไขได้ดีกว่าด้วยการทำให้เป็นมาตรฐานมากกว่าการเพิ่มความแม่นยำเชิงตัวเลข ค้นหา "normalization ill-posed" เพื่อดูรายละเอียดเต็มไปด้วยเลือด


2

ฉันอาจลองใช้ห้องสมุด Trilinos พวกเขามีห้องสมุดเมทริกซ์ sparse templated ภายใต้ Tpetra (ซึ่งควรจะแทนที่ Epetra, ห้องสมุดเมทริกซ์กระจัดกระจายเดิมของพวกเขา) คุณสามารถเทมเพลตสองครั้งที่ซับซ้อนสี่และอื่น ๆ และพวกเขาอาจมีตัวเลือกที่ใหญ่ที่สุดของการแก้ปัญหา (ทั้งโดยตรงและซ้ำ) ถัดจาก PETSc

แก้ไข: หลังจากอ่านความคิดเห็นความมีประโยชน์ทันทีของ Tpetra ดูเหมือนจะเป็นความแม่นยำของรูปสี่เหลี่ยมจัตุรัส wrt ที่น่าสงสัยเล็กน้อย ...


นักแก้ปัญหาส่วนใหญ่ยังไม่ได้ทำงานกับ Tpetra แต่น่าเสียดายที่ :-(
Wolfgang Bangerth

นั่นเป็นโชคร้าย ฉันมีความหวัง แต่ไม่แน่ใจว่าการพัฒนา Tpetra ไปไกลแค่ไหน (ดังนั้น "ควรจะแทนที่ Epetra": P) ฉันคิดว่าอย่างน้อยห้องสมุด Belos (เช่นนักแก้ปัญหา Trilinos ที่ไม่ได้ใช้ตัวห่อหุ้มรหัสบุคคลที่สาม) สนับสนุน Tpetra ใช่ไหม?
เจสซีชาน

ฉันคิดว่ามี Belos2 แน่นอนว่าโครงการ Trilinos กำลังวางทรัพยากรของพวกเขาไว้เบื้องหลัง Tpetra และมันจะเป็นแพ็คเกจมาตรฐานในอนาคต ฉันคิดว่าพวกเขายังไม่ค่อยอยู่ที่นั่น
Wolfgang Bangerth

ฉันไม่ได้ตระหนักถึงการได้__float128รับการสนับสนุนจาก Tpetra นับประสา quad-double Tpetra ไม่ได้เป็นแบบสแตนด์อะโลนและไม่ใช่ส่วนหัวทั้งหมดและแม้ว่ามันจะเป็นสิ่งที่std::complexทำงานกับfloatและdoubleเท่านั้น
Jed Brown

1

กล่องเครื่องมือคำนวณแบบ Multiprecision สำหรับ MATLABมีการรองรับเมทริกซ์แบบกระจัดกระจายและปรับให้เหมาะสมที่สุดสำหรับการคำนวณด้วยความแม่นยำสี่เท่า

นี่คือรายละเอียดเวลาสำหรับตัวแก้ปัญหาแบบเบาบางที่มีความแม่นยำสูง: ตัวแก้ แบบตรงสำหรับตัวกระจายแบบเบาบาง

(ฉันเป็นผู้เขียนกล่องเครื่องมือ)

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