QuasiMonteCarlo
Yöntemi kullanarak 3 veya 4 boyutlu bazı integraller gerçekleştiren bir Mathematica program var . Sorun şu ki, bu hesaplamaların bazılarının HPC kümemizde bulunan maksimum iş süresinde tamamlanamayacağı noktaya kadar can sıkıcı bir şekilde uzun zaman alıyor. Bu yüzden programı büyük bir faktörle hızlandıracağından şüphelendiğim C ++ 'da yeniden yazmayı düşünüyorum.
GSL belgelerine baktım ve quasirandom dizileri ve düzenli MC entegrasyonu hakkında bölümler varken , onları bir araya getiren hiçbir şey görmüyorum. Ayrıca bir veya iki Google araması, yaygın olarak güvenilen bir uygulamaya benzeyen bir şey ortaya çıkarmadı. C ++ 'da QMC entegrasyonunun iyi test edilmiş bir uygulaması için seçeneklerim nelerdir?
Tutarlılık adına, Mathematica'nın uyguladığı Halton-Hammersley-Wozniakowski yöntemine yakın bir şey kullanmayı tercih ederim , eğer bir seçenekse .
Compile
geçmeden önce integral (C koduna) ing denediniz mi merak ediyordum NIntegrate
, yani bu NIntegrate
yavaş mı ya da fonksiyonu hesaplıyor musunuz? C-derlenmiş işlevleri kullanmak, bir kümede biraz daha fazla çalışma gerektirebilir.