Vectorización

Formas y gráficos de datos SaaS sobre la imagen de una mujer en la tecnología

La vectorización, tal y como la define la industria de los microprocesadores, es el proceso que transforma una operación escalar que actúa sobre elementos de datos individuales (Single Instruction Single Data-SISD) en una operación en la que una sola instrucción opera simultáneamente sobre múltiples elementos de datos (SIMD).

En términos más generales, la vectorización es el proceso mediante el cual un único hilo de ejecución de software puede convertirse en varios hilos de ejecución paralelos y concurrentes para acelerar el rendimiento en órdenes de magnitud.

¿Por qué es importante la vectorización?

En el sector de las bases de datos, la vectorización es la base para reducir el tiempo de respuesta de las consultas de gran tamaño mediante la ejecución paralela de múltiples hilos concurrentes. Los optimizadores de consultas de los sistemas de bases de datos eligen el método más eficiente para obtener los resultados de una consulta determinada. Los índices se utilizan para acceder rápidamente a filas individuales; los escaneos de rango para subconjuntos pequeños y los escaneos de tabla completa se reservan como último recurso cuando es necesario leer cada fila de la tabla. Los escaneos de tabla completa con un solo hilo pueden tardar una hora en una tabla con miles de millones de filas. La vectorización puede acortar el tiempo de respuesta de estas operaciones de horas a minutos, suponiendo que la tabla esté particionada y se disponga de suficientes núcleos processeur .

Vectorización a nivel de chip

Cuando la velocidad de los procesadores empezó a estabilizarse, los fabricantes empezaron a aumentar el número de núcleos de processeur que podían empaquetarse en un solo chip. En la actualidad, un chip de procesador Intel Xeon para servidores puede tener hasta 32 núcleos de procesamiento.

El sistema de base de données analytique Actian Vector explota una característica de los servidores Intel diseñada para soportar el procesamiento paralelo para la computación de haute performance (HPC) llamada Single Instruction, Multiple Data (SIMD). A diferencia de los procesadores tradicionales, que sólo permiten a los programas en ejecución acceder a una única caché de processeur , las instrucciones SMID pueden cargar datos en todas las cachés de processeur del servidor. Si el servidor tiene 32 núcleos processeur , Actian Vector cargará los datos de las columnas de la base de datos en todas sus cachés processeur . Esta única instrucción de máquina vectorizada puede procesar los datos que a una base de datos tradicional le habrían llevado 32 ciclos de instrucción, ya que sólo procesan un registro de base de datos por instrucción. Las consultas analíticas son muy intensivas en datos, por lo que procesar cientos de registros de datos en una sola instrucción es increíblemente beneficioso.

Aprovechamiento de la memoria caché

La avantage del procesamiento SMID va más allá del mero multihilo, ya que aprovecha el tipo de memoria más rápida del sistema, la caché de nivel 1 (L1), que funciona a velocidades 100 veces superiores a las de la memoria principal.

La memoria caché funciona en una jerarquía de niveles. Los cuatro niveles enumerados a continuación son más rápidos que la RAM:

  • La caché L1 es de hasta 112 KB por núcleo.
  • La caché L2 es de hasta 2 MB por núcleo.
  • La caché L3 es de hasta 408 MB.
  • La caché L4 es de hasta 64 GB.

Algunos analistas del sector podrían clasificar Actian Vector como una base de datos in-memory , pero su capacidad para explotar todas las cachés de processeur y pasar con elegancia a disco la convierte en algo más que una base de datos analítica in-memory .

Vectorización entre servidores en clúster

Hasta ahora hemos hablado de la vectorización en un único servidor. Cuando una carga de trabajo es mayor de lo que puede manejar un único servidor, las empresas recurren a los clústeres de servidores de Procesamiento Paralelo Masivo (MPP). Los clústeres MPP suelen instalarse cerca unos de otros en bastidores de servidores adyacentes en una única sala para minimizar la latencia de la red. Se comunican entre sí a través de una interconexión de alta velocidad que funciona a 10 o 30 Gigabits por segundo.

Los primeros sistemas MPP eran costosos y estaban limitados a la investigación y las grandes empresas. Con la llegada del software de código abierto en forma del proyecto Apache Hadoop, el coste del software desapareció y el hardware basado en servidores Intel generalizó los sistemas MPP.

Actian creó una variación de la base de datos analítica Vector que funcionaba con el software Hadoop para escalar el almacenamiento de la base de datos a través de un sistema de archivos en clúster escalable y distribuía de forma transparente las consultas vectorizadas a través de los nodos de un Cluster Hadoop para proporcionar lo último en rendimiento de consultas analíticas.

La plataforma de datos Actian

Actian Data Platform proporciona una experiencia unificada para la ingesta, transformación, análisis y almacenamiento de datos. Actian Vector es un componente integrado de la plataforma de datos que ofrece un rendimiento de consulta ultrarrápido, incluso para cargas de trabajo complejas, en las instalaciones y en las plataformas en la nube de Google, AWS y Azure.