Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
Garabujo7
Alteryx
Alteryx

 

 

Automate 1.gif 

 

 

AMP, Alteryx Multi-Threaded Processing engine

 

 

El engine, es el motor que procesa los datos en Alteryx.

 

Normalmente no nos preguntamos cómo es que Alteryx procesa los datos o qué hay por debajo, más allá de la memoria RAM, el hardware, el software funciona mediante un motor de procesamiento.

 

Está nueva versión del motor incluye procesamiento paralelo…

 

 

 

Chavo del 8 2.gif

 

 

 

 
 

¿Procesamiento paralelo?

 

Aquí una breve explicación.

 

 

 

 

AMP Animation 2.gif

 

 

 

 

 

 

Para hacerlo más sencillo pensemos en una oficina de servicios que sólo tiene una ventanilla. El número de personas que puede atender simultáneamente es una.

 

Es un modelo de procesamiento secuencial, para que el siguiente sea atendido tiene que esperar a que el primero termine.

 

En este ejemplo, si cada persona tarda 5 minutos en su trámite, en atender 4, tardaría 20 minutos.

 

 

 

AMP 1.png

 

 

 

Mientras que en el procesamiento paralelo, es como si tuviéramos cuatro ventanillas de atención, estas pueden atender a cuatro personas al mismo tiempo, por lo que en los mismos veinte minutos podría atender 20 personas, 4 veces más.

 

 

 

AMP 2.png

 

 

 

 

Lo que el motor AMP hace es dividir los datos en paquetes que se procesan en paralelo, para conseguir una ejecución más rápida. En otras palabras el flujo utilizará todos los núcleos de procesamiento y la memoria RAM cuando ejecute el flujo.

 

 

¿Cómo utilizo AMP en mis flujos?

 

 

Primero que nada tienes que tener la versión de Alteryx Desinger 2020.2

 

Para verificar la versión de Alteryx que tienes instalada, ve a Ayuda -> Acerca de.

 

 

 

 

AMP 3.png

AMP 4.png

 

 

 

 

Si no la tienes, puedes actualizarla en cualquier momento para comenzar a utilizar AMP.

 

Ve a ayuda -> Descargas de Alteryx.

 

 

 

 

AMP 5.png

 

 

  

Eliges la versión 2020.2

 

 

 

 

AMP 6.png

 

 

 

 

Si tienes dudas de qué versión descargar o el proceso de instalación, puedes consultar este artículo https://community.alteryx.com/t5/Blog-Espanol/Instalar-y-configurar-Alteryx-Designer/ba-p/599149

 

AMP está disponible para todos los flujos pero en esta versión se tiene que especificar que se quiere usar el motor AMP para cada flujo de forma individual.

 

Para hacerlo, hay que hacer clic izquierdo en cualquier parte blanca del lienzo.

 

 

 

 

AMP 7.png

 

 

Luego en la parte izquierda de la pantalla seleccionas Tiempo de ejecución y hasta abajo, la última opción dice Usar AMP Engine.

 

 

 

AMP 8.png

 

 

 

Aplicar AMP para todos los flujos de trabajo

 

A partir de la versión 2021.1.4 es posible activar AMP para que se aplique a todos los flujos de trabajo.

 

 

 

Garabujo7_0-1630099683720.png

 

 

Garabujo7_1-1630093451401.png

 

 

 

Con ese parámetro global ya no se tendrá que especificar para cada flujo que se quiere usar AMP.

 

Perfilado de desempeño con AMP

 

A partir de la versión 2021.3 se agrego la capacidad para analizar el desempeño de bloques analíticos específicos mientras se usa AMP.

Para activarlo hay que seleccionarlo en la configuración del flujo de trabajo, habilitar perfilado del rendimiento.

 

 

Garabujo7_2-1630093512470.png

 

 

 

Aquí un extracto de la explicación del perfilado de rendimiento con AMP de acuerdo con este artículo de la ayuda de Alteryx:

 

“El motor original proporciona el tiempo que cada herramienta tardó en ejecutar en milisegundos, medido con una precisión de 0,01 ms. AMP también puede tener varios Workers para cada herramienta, pero la herramienta combina el tiempo total.

 

Aspectos destacados del perfilado con AMP

 

Los resultados del perfilado del rendimiento entre el motor original y AMP no se deben comparar, ya que son diferentes. AMP utiliza muchos subprocesos para ejecutar tareas, pero el tiempo total se resume en un conteo de cada subproceso utilizado por la herramienta.

 

El tiempo total por herramienta puede ser superior al tiempo total del flujo de trabajo debido a la naturaleza multiproceso de AMP.

 

Cuando no hay suficiente memoria para ejecutar un flujo de trabajo, AMP realiza una gestión de memoria adicional que se informará con un mensaje independiente que indica que “Pasaron N ms en la gestión de memoria. M % del tiempo total de ejecución del flujo de trabajo.”.”

 

 

¿Cómo verificar si estoy usando AMP?

 

Para verificar que estás usando AMP, puedes ver en la ventana de resultados si aparece el siguiente mensaje: Esto es AMP Engine.

 

 

 

Ahora puedes ejecutar tu flujo y sentir el poder del motor de procesamiento paralelo de Alteryx, AMP.

 

 

 

¿Cómo verificar si estoy usando AMP?

 

 

 

Para verificar que estás usando AMP, puedes ver en la ventana de resultados si aparece el siguiente mensaje: Esto es AMP Engine.

 

 

 

AMP 9.png

 

 

Ejemplo de ejecución

 

 

Yo corrí el siguiente ejemplo en mi computadora local donde me conecto a una base de datos SQL Server que lee 10.4 millones de registros y se mezcla con 2 archivos de Excel uno con 99,000, el 21,000 y 1 CSV con 2,400 registros respectivamente.

 

 

 

AMP 10.png

 

 

Se hace la unión de los 3 con un bloque analítico de buscar y reemplazar, que es también más eficiente en términos de cómputo que la unión tradicional.

 

El proceso toma un minuto con doce segundos.

 

 

 

AMP 11.png

 

Es una gran diferencia para un volumen relativamente grande de datos aunque la mejor prueba es la que tu realices en tu equipo y con tus propios datos para validarlo.

 

 

 

Credit to Giphy.comCredit to Giphy.com

 

 

 

 

¿Ya lo probaste?, ¡comparte tu experiencia en los comentarios!

 

 

 

Come 2.gif

 

 

 

Consideraciones

 

 

Como todo en la vida, los resultados pueden variar y dependen de gran cantidad de factores como la complejidad del flujo de trabajo, qué bloques analíticos emplea, el tamaño de los datos y el hardware que tiene disponible.

 

 

Requerimientos para AMP

 

 

El motor AMP debe tener al menos 400 MB para procesar un subproceso de un flujo de trabajo.

Por ejemplo, con 8 subprocesos, debe haber al menos 3,2 GB de memoria disponible para AMP en tiempo de ejecución.

 

Etiquetas