Ho un programma Mathematica che esegue alcuni integrali in 3 o 4 dimensioni usando il QuasiMonteCarlometodo. Il problema è che richiede un tempo fastidiosamente lungo per essere eseguito, al punto che alcuni di questi calcoli non possono essere completati nel tempo di lavoro massimo disponibile sul nostro cluster HPC. Quindi sto pensando di riscrivere il programma in C ++, che sospetto possa accelerarlo di molto.
Ho esaminato i documenti GSL e mentre ci sono sezioni sulle sequenze quasirandom e la normale integrazione MC , non vedo nulla che li unisca . Anche una o due ricerche su Google non hanno mostrato nulla che sembrasse un'implementazione ampiamente affidabile. Quali sono le mie opzioni per un'implementazione ben collaudata dell'integrazione QMC in C ++?
Nell'interesse della coerenza, preferirei usare qualcosa di simile al metodo Halton-Hammersley-Wozniakowski che Mathematica implementa , se questa è un'opzione.
Compilel'integrale (al codice C) prima di passarlo a NIntegrate, cioè è NIntegratelento o sta calcolando la funzione? L'uso delle funzioni compilate in C potrebbe tuttavia richiedere un po 'di lavoro in più su un cluster.