Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementar ISA usando bucles y condicionales simples y numba #4

Open
1 task done
astrojuanlu opened this issue Dec 1, 2014 · 12 comments
Open
1 task done
Milestone

Comments

@astrojuanlu
Copy link
Member

@astrojuanlu astrojuanlu added this to the Sprint 1 milestone Dec 1, 2014
@astrojuanlu
Copy link
Member Author

@AunSiro veo que hay algunos problemas con tu implementación usando funciones ventana así que me asigno yo esta parte, a ver si me da tiempo a intentarlo mañana.

@astrojuanlu astrojuanlu assigned astrojuanlu and unassigned AunSiro Dec 14, 2014
@astrojuanlu
Copy link
Member Author

Tengo ya una versión preliminar (ver dd4f29a) pero que no hace nada con los offsets de temperatura porque aún no hemos acordado cómo validar esos resultados (ver #8). Todos los tests pasan y el rendimiento es decente, pero me gustaría probar cuánto acelera numba el código.

@astrojuanlu
Copy link
Member Author

Voy a dar por cerrada esta tarea porque, aunque escribí la implementación con numba en mente, la anotación está desactivada en versiones recientes (ver numba/numba#105) y no fui capaz de reducir el tiempo de ejecución. El código se queda en la rama juanlu-python para referencias futuras.

@astrojuanlu
Copy link
Member Author

Reabriendo esto porque he hecho experimentos con numba y ya sé cómo exprimirlo al máximo. Volveré a probar a ver si consigo mejorar el rendimiento y repetir los benchmarks.

@astrojuanlu
Copy link
Member Author

Parece que tenemos nuevo ganador 😉

aeronumba

Y en la segunda prueba:

$ python test/performance.py 
newlawrence running...
siro running...
juanlu running...
jnumba running...
alex running...
   size          juanlu            alex          jnumba            siro     newlawrence
      1        0.022 ms        0.273 ms        0.018 ms        1.976 ms        0.035 ms
     10        0.040 ms        0.346 ms        0.015 ms        4.659 ms        0.032 ms
    100        0.240 ms        0.384 ms        0.028 ms        5.033 ms        0.036 ms
   1000        2.288 ms        0.773 ms        0.213 ms        9.224 ms        0.080 ms
  10000       22.190 ms        4.798 ms        1.298 ms       43.707 ms        0.566 ms
 100000      230.619 ms       50.851 ms       13.048 ms      645.848 ms        5.034 ms

Código en la rama juanlu-numba.

@astrojuanlu
Copy link
Member Author

La prueba de concepto ya está hecha, cerrando :shipit:

@astrojuanlu
Copy link
Member Author

Como bien apunta @newlawrence, la versión de C++ está compilada con OpenMP y he corrido el test en un Intel i7. Desactivando esto, queda la versión de numba el doble de rápida que la de C++. ¡Impresionante!

aeronumba

@astrojuanlu astrojuanlu changed the title Implementar ISA usando bucles y condicionales simples Implementar ISA usando bucles y condicionales simples y numba Mar 3, 2015
This was referenced Mar 3, 2015
@astrojuanlu
Copy link
Member Author

Reabro esta incidencia para recordarme que este fin de semana voy a reemplazar la implementación de la atmósfera estándar.

@astrojuanlu astrojuanlu reopened this Mar 12, 2015
@astrojuanlu
Copy link
Member Author

"Este fin de semana" 😅

@AlexS12
Copy link
Member

AlexS12 commented Aug 16, 2017

@newlawrence hizo un gráfico de esto. Alguno lo tiene localizable? Puede pegarlo aquí por ejemplo?

He buscado en el twitter de aeropython y pybonacci, pero no aparece

@astrojuanlu
Copy link
Member Author

@AlexS12
Copy link
Member

AlexS12 commented Aug 16, 2017

Gracias! qué veloz!

@astrojuanlu astrojuanlu removed their assignment Feb 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants