Quel est le meilleur logiciel de simulation Monte Carlo ?


Je ne sais pas ce qu'est le "meilleur" mais je vais lancer ceci. J'ai travaillé sur la simulation en langage mixte pendant des années. La plupart d'entre eux étaient des anciens Fortran, C, C++ et du code généré (Simulink). En termes de performances, le Fortran tient toujours la route, mais plus personne ne l'utilise vraiment, sauf pour les bases de code héritées. Au moment où j'ai changé de poste, nous étions en train de passer au C++ pour plusieurs raisons. Tout d'abord, il était plus largement utilisé à l'époque et le support était donc meilleur. Deuxièmement, cela signifiait que plus de personnes connaissaient bien le langage. Troisièmement, le simple fait de mentionner "Fortran" évoque des images du Jurassique, bien qu'injustement car c'est encore un bon langage.


J'envisagerais Julia, mais je me rabattrais probablement sur C ou C++. Les revendications avec Julia est qu'il se rapproche de l'efficacité d'un langage compilé, mais la diligence raisonnable exigerait que vous testiez cela pour vous-même, dans votre application sur votre matériel. Lorsque vous avez affaire à des milliers et des milliers d'instances de simulation distribuées sur des centaines ou des milliers de files d'attente, brassant beaucoup de données, je peux vous dire que la performance est cruciale, à moins que vous ne vouliez gaspiller beaucoup d'argent sur du matériel de plus en plus important pour rattraper un mauvais choix de langage. N'oubliez pas qu'il n'y a pas de repas gratuit. Les langages informatiques ont tous un but précis, et c'est après tout la raison de cette question, n'est-ce pas ? Rien de mal à réutiliser des méthodes, des bibliothèques et autres, assurez-vous simplement qu'ils sont bien testés avant de passer le temps à construire votre simulation autour d'eux.


J'écrirais quelques algorithmes de test qui seront du type le plus probable qui sera utilisé et du type le plus intensif. Écrivez-les avec les meilleures pratiques pour le langage et visant une exécution optimale. Ensuite, testez-les. Une comparaison complète, un benchmarking entre toutes les méthodes que vous avez l'intention d'utiliser. En d'autres termes, si vous soumettez des files d'attente par lots, faites exactement ce test et enregistrez tout. Faites-le avec un ensemble d'échantillons suffisant pour le problème, analysez les résultats et vous aurez alors votre réponse. Vous allez passer beaucoup de temps à développer ce code et il est dans votre grand avantage de passer le temps en amont avec l'évaluation.


>