He estado comparando el Pi en algunos de mis códigos de simulación, en relación con un par de computadoras portátiles que tengo. Mis códigos tienden a ser intensivos en coma flotante, por lo que he estado usando Raspbian (que resulta ser mucho más rápido) debido a su soporte de flotación dura. Tengo el mismo código simple en varios idiomas diferentes. Obviamente, el código de Python es más lento que el código C, independientemente de la plataforma que use, pero en Pi parece ser relativamente más lento, por un factor de alrededor de 3. ¿Alguien sabe por qué el intérprete de Python es relativamente lento en Pi? ¿Es esto algo que es probable que se solucione?
Aquí está la prueba:
import random,math
def gibbs(N=50000,thin=1000):
x=0
y=0
print "Iter x y"
for i in range(N):
for j in range(thin):
x=random.gammavariate(3,1.0/(y*y+4))
y=random.gauss(1.0/(x+1),1.0/math.sqrt(2*x+2))
print i,x,y
gibbs()
De esta publicación de blog sobre el experimento.
performance
python
hard-float
raspbian
Darren Wilkinson
fuente
fuente
Respuestas:
Supongo que el intérprete de Python simplemente no está optimizado para ARM. Python podría haber sido optimizado para las otras plataformas. En mi experiencia, esto es cierto para software como OpenSSH, así que supongo que es similar para Python.
fuente
Python probablemente sufre de falta de caché de la CPU. Sin embargo, no estoy seguro de cómo puedes medir eso fácilmente
fuente