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


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];
			}
		}
	}
}
le calcul fortran est 5 fois plus rapide que le calcul C (les résultats étant rigoureusement identiques)
Je ne comprends pas cette différence aussi flagrande ...

Une idée ?

Merci !