Tôi có một chương trình Mathicala thực hiện một số tích phân theo 3 hoặc 4 chiều bằng QuasiMonteCarlo
phương thức này. Vấn đề là, phải mất một thời gian dài khó chịu để chạy, đến mức một số tính toán này không thể hoàn thành trong thời gian công việc tối đa có sẵn trên cụm HPC của chúng tôi. Vì vậy, tôi đang xem xét viết lại chương trình trong C ++, điều mà tôi nghi ngờ sẽ tăng tốc nó lên bởi một yếu tố lớn.
Tôi đã xem các tài liệu của GSL và trong khi có các phần về trình tự gần đúng và tích hợp MC thường xuyên , tôi không thấy bất cứ điều gì mang chúng lại với nhau. Ngoài ra, một hoặc hai tìm kiếm Google không tìm thấy bất cứ thứ gì trông giống như một triển khai được tin cậy rộng rãi. Các tùy chọn của tôi để triển khai thử nghiệm tích hợp QMC trong C ++ là gì?
Vì lợi ích của tính nhất quán, tôi muốn sử dụng một cái gì đó gần với phương pháp Halton-Hammersley-Wozniakowski mà Mathicala thực hiện , nếu đó là một lựa chọn.
Compile
nhập tích phân (mã C) trước khi chuyển nó sang NIntegrate
, nghĩa là nó NIntegrate
chậm hay tính toán hàm? Tuy nhiên, sử dụng các hàm được biên dịch C có thể cần thêm một chút công việc trên một cụm.