Bonjour à tous,
Je cherche à comparer les vitesses d'exécution de codes C et fortran identiques (pour faire de la prog scientifique) et j'obtiens des résultats curieux.
Sachant que :
- le programme utilisé est un simple produit de matrices 1000*1000, la subroutine qui prend du temps est donnée juste après
- le compilo C est mingw-gcc et le compilo F95 est Lahey Fortran
- options de compil optimales
le calcul fortran est 5 fois plus rapide que le calcul C (les résultats étant rigoureusement identiques)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void multiplie(double ***pointeur1, double ***pointeur2, double ***pointeur3, int taille) { int i, j, k; for (i=0;i<taille;i++) { for (j=0;j<taille;j++) { (*pointeur3)[i][j] = 0.0E0; for (k=0;k<taille;k++) { (*pointeur3)[i][j]+=(*pointeur1)[i][k]*(*pointeur2)[k][j]; } } } }
Je ne comprends pas cette différence aussi flagrande ...
Une idée ?
Merci !
Partager