J'ai besoin de référencer une partie d'un programme fortran pour comprendre et quantifier l'impact de changements spécifiques (afin de rendre le code plus maintenable, nous aimerions le rendre plus OO, en profitant des pointeurs de fonction pour Exemple).Benchmarking fortran loop
J'ai une boucle appelant plusieurs fois les mêmes sous-routines pour effectuer des calculs sur des éléments finis. Je veux voir l'impact de l'utilisation de pointeurs de fonction au lieu de simplement des fonctions codées en dur.
do i=1,n_of_finite_elements
! Need to benchmark execution time of this code
end do
Quel serait un moyen simple d'obtenir le temps d'exécution d'une telle boucle, et le formater d'une manière nic?
Vous cherchez quelque chose qui profils code ou juste le moment grossière de combien de temps il prend dans son ensemble? Quel système d'exploitation et compilateur utilisez-vous? Pour un moyen simple de vérifier les choses à la main, voir ['CPU_TIME'] (https://gcc.gnu.org/onlinedocs/gfortran/CPU_005fTIME.html). Aussi [cette question] (http://scicomp.stackexchange.com/questions/6812/fortran-best-way-to-time-sections-of-your-code) pourrait être utile. – Gabe
@Gabe Veuillez ne pas utiliser 'CPU_TIME'. Il n'est pas vraiment adapté à la mesure du temps, en particulier en [programmation parallèle] (https://stackoverflow.com/questions/25465101/fortran-parallel-programming). Au lieu de cela, utilisez 'SYSTEM_CLOCK'. –
Bien dans l'ensemble du calendrier, mais l'analyse comparative est (je l'espère) pas seulement de prendre note de l'heure du système. Par exemple, le [benchmark ruby] (http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html) fournit des métriques intéressantes telles que l'utilisateur, le système et le temps total. bon affichage, et explique même les précautions à prendre lors de l'analyse comparative. –