ฉันมีโปรแกรม Mathematica ซึ่งทำหน้าที่อินทิกรัลบางตัวใน 3 หรือ 4 มิติโดยใช้QuasiMonteCarlo
วิธีการ ปัญหาคือใช้เวลานานในการรันจนถึงจุดที่การคำนวณบางอย่างไม่สามารถดำเนินการได้ในเวลางานสูงสุดที่มีอยู่ในคลัสเตอร์ HPC ของเรา ดังนั้นฉันกำลังพิจารณาที่จะเขียนโปรแกรมใหม่ใน C ++ ซึ่งฉันสงสัยว่าจะเร่งความเร็วขึ้นด้วยปัจจัยใหญ่
ฉันดูเอกสาร GSL และในขณะที่มีส่วนในลำดับ quasirandomและการรวม MC ปกติฉันไม่เห็นอะไรเลยที่นำมารวมกัน นอกจากนี้การค้นหาของ Google หรือสองรายการก็ไม่ทำให้เกิดสิ่งใด ๆ ที่ดูเหมือนจะเป็นการติดตั้งที่เชื่อถือได้ ตัวเลือกของฉันสำหรับการติดตั้ง QMC ใน C ++ มีการทดสอบอย่างดีมีอะไรบ้าง
เพื่อประโยชน์ของความมั่นคงฉันต้องการใช้บางสิ่งบางอย่างใกล้เคียงกับวิธี Halton-Hammersley-Wozniakowski ที่ Mathematica ดำเนินการหากเป็นตัวเลือก
Compile
อินทิกรัล (ไปยังรหัส C) ก่อนที่จะส่งไปให้NIntegrate
หรือไม่นั่นคือมันNIntegrate
ช้าหรือคำนวณฟังก์ชันหรือไม่ การใช้ฟังก์ชั่นที่คอมไพล์ด้วย C อาจต้องการการทำงานเพิ่มเล็กน้อยในคลัสเตอร์