4 votes

Quelle est la méthode la plus efficace pour exécuter de nombreuses répétitions d'une fonction Rcpp dans le cadre d'une étude de simulation ?

J'ai écrit une fonction Rcpp qui renvoie un échantillon d'une population, et pour tester la méthode d'estimation, j'aimerais l'exécuter des milliers ou des millions de fois. Il semble que l'invocation de Rcpp prenne un peu de temps, et quelque chose comme replicate(100,myFunction()) prend beaucoup plus de temps que prévu.

Quelle est la meilleure façon de procéder ? rep , *apply , replicate La boucle elle-même est-elle en C++ ?

0voto

Dirk Eddelbuettel Points 134700

Si vous êtes soucieux des performances, vous devez minimiser le nombre d'appels de R à C++ -- et ne pas le faire des milliers ou des millions de fois comme vous l'avez dit.

Baptiste a donc raison : faites le for() au niveau C++, si possible.

Notez également que la version la plus récente de RcppArmadillo dispose désormais d'une version C++ de sample() qui peut vous permettre de faire cette partie en C++ également. Cela dit, je ne sais rien de "UPtille" et de ce qu'il fait, donc vous êtes peut-être coincé avec l'implémentation R existante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X