R y PC super-porerosos

R y python están muy de moda últimamente, pero te haz preguntado si le estás sacan totalmente el jugo a esos lenguajes, es más, seguramente para trabajar con ellos tienes un PC super-poderoso, bueno, la verdad es que si estás entrando al mundo del Analytics, posiblemente aun no lo estés haciendo. Hoy voy a poner como ejemplo el performance de las distintas libreras de álgebra lineal de R.

Las librerías de álgebra lineal no son paquetes que se instalan, corresponden a tuneos realizados directamente sobre los archivos de R, las cuales al estar bien seleccionadas, te permiten utilizar todos los procesadores de tu PC, de lo contrario, solo utilizarás uno.

En esta comparativa, vamos a ver las siguientes librerías para R:

  • blas: la que viene incluida y es mono procesador
  • openblas: la genérica para paralelizar.
  • openblas-lapack: openblas generalizado para mas lenguajes, como por ejemplo python.
  • intel-kml: lapack optimizado de intel para procesadores intel.
  • open-r: lapack incluido en microsoft r open.

El experimento:

Realizaremos 3 pruebas para matrices de distinto tamaño, cada prueba se realizará 100 veces para 10 tamaños de matrices cuadradas que van de 100 a 1000 columnas, luegos se graficará la mediana de cada uno de estos resultados.

La prueba se realizó en una instancia de AWS c5.4xlarge la cual tiene 16 procesadores de ultima generación.

Prueba numero 1: Invertir una matriz:

Claramente el lapack blas queda rezagado, esto es de esperarse, dado que utiliza solo una CPU de las 16, a continuación veremos el grafico sin blas.


Experimento Número 2: Elevar Matriz al Cuadrado.

Nuevamente blas quedo completamente atrás en tiempo, por lo que incluiremos el gráfico sin el nuevamente.

Experimento Número 3: Componentes Principales:

Esta era una prueba mas pesada que las anteriores, haciendo realmente relevante el performance para matrices grandes.

Y como de costumbre el grafico sin nuestro amigo blas.

Conclusiones:

La diferencia de cualquier lapack optimizado al compararse con el que viene por defecto en R es abismaste, pero cuando realmente se quiere el mejor performance la recomendación en general es ir por intel-kml o open-r

Una cosa interesante de intel-kml e que también se puede integrar en librerías de python como pandas, scikit y sklearn.

En el futuro espero poder hacer otras comparaciones para mostrar como sacarle todo el jugo al PC, pero con otras metodologías.

Saludos!


Print Friendly, PDF & Email