Bonjour,
Comme j'en ai déjà parlé, j'ai un code qui s'exécute pratiquement 100 fois plus vite en Fortran qu'en Python ...
Cet écart important me surprend car j'utilise numpy qui, je crois, accélère les calculs ...
J'ai fait un essai sur un bout de code très simple que j'exécute un million de fois et dont je mesure le temps d'exécution ...
verdict : 0,48 secondes en Fortran pour 9,23 secondes en Python/Numpy; soit pratiquement un facteur 40
Et sans Numpy, le code Python met 325 secondes soit un facteur 700 !!!
voici le bout de code en Python :
Et pour ceux qui lisent le Fortran, le même en Fortran, les opérations Numpy sont remplacées par des boucles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# -*- coding: cp1252 -*- import numpy as np from time import * # creation de 5 arrays Numpy dimension = 40 f = np.ndarray(shape =(dimension),dtype=np.float) h = np.ndarray(shape =(dimension),dtype=np.float) w = np.ndarray(shape =(dimension),dtype=np.float) e = np.ndarray(shape =(dimension),dtype=np.float) t = np.ndarray(shape =(dimension),dtype=np.float) # remplissage des arrays Numpy h.fill (10.) w.fill (1000.) e.fill (290.) t.fill (300.) t1 = time() # recuperation du temps système i = 0 while (i < 1000000): # execution de un million de calcul f = h * w * ( e - t ) # calcul i = i +1 print 'temps pour un million de passages:', (time() - t1)
N'y a t-il pas moyen de faire plus rapide avec Python?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
En utilisant Numpy, je m'attendais à avoir quelque chose 2 à 3 fois plus lent que Fortran mais j'étais loin de penser à un facteur 40 à 100
Est ce normal?
Est ce que je fais quelque chose de mal?
Bon dimanche

 

 
		
		 
         
  
			
			

 
   


 temps d'execution : Python vs Fortran
 temps d'execution : Python vs Fortran
				

 Répondre avec citation
  Répondre avec citation


 
			 
 
 Envoyé par PauseKawa
 Envoyé par PauseKawa
					


 
  
Partager