Articulo de referencia

Procesamiento en memoria

El término procesamiento en memoria se utiliza para dos cosas diferentes: En informática , el procesamiento en memoria , también llamado computación en memoria (CIM) o procesami...

El término procesamiento en memoria se utiliza para dos cosas diferentes:

  1. En informática , el procesamiento en memoria , también llamado computación en memoria (CIM) o procesamiento en memoria (PIM), es una arquitectura informática en la que las operaciones de datos están disponibles directamente en la memoria de datos, en lugar de tener que transferirse primero a los registros de la CPU . [ 1 ] Esto puede mejorar el consumo de energía y el rendimiento de la transferencia de datos entre el procesador y la memoria principal.
  2. En ingeniería de software , el procesamiento en memoria es una arquitectura de software donde una base de datos se mantiene completamente en memoria de acceso aleatorio (RAM) o memoria flash, de modo que los accesos habituales, en particular las operaciones de lectura o consulta, no requieren acceso al almacenamiento en disco . [ 2 ] Esto puede permitir operaciones de datos más rápidas, como uniones , y una generación de informes y toma de decisiones más rápidas en el ámbito empresarial. [ 3 ]

Los conjuntos de datos extremadamente grandes pueden dividirse entre sistemas que cooperan entre sí, en forma de cuadrículas de datos en memoria .

Hardware (PIM)

PIM podría implementarse mediante: [ 4 ]

  • Procesamiento mediante memoria (PuM)
    • Agregar capacidad de procesamiento limitada (por ejemplo, unidades de multiplicación de punto flotante , operaciones de fila de 4K como copia o cero, operaciones bit a bit en dos filas) a módulos de memoria convencionales (por ejemplo, módulos DIMM ); o
    • Se añade capacidad de procesamiento a los controladores de memoria para que los datos a los que se accede no necesiten ser enviados a la CPU ni afecten a la caché de la CPU, sino que se procesen de inmediato.
  • Procesamiento de memoria cercana (PnM)
    • Estructuras tridimensionales de silicio con capas de memoria y capas de procesamiento.

Aplicación de la tecnología de memoria en la vida cotidiana

Los smartphones y las tabletas modernas suelen utilizar técnicas de procesamiento en memoria para mejorar el rendimiento de las aplicaciones. Esto se traduce en tiempos de carga más rápidos y una experiencia de usuario más agradable.

  • El procesamiento en memoria puede ser utilizado por consolas de videojuegos como PlayStation y Xbox para mejorar la velocidad del juego. [ 5 ] El acceso rápido a los datos es fundamental para brindar una experiencia de juego fluida.
  • Algunos dispositivos portátiles, como los relojes inteligentes y los monitores de actividad física , pueden incorporar procesamiento en memoria para procesar rápidamente los datos de los sensores y proporcionar información en tiempo real a los usuarios. Varios dispositivos comunes utilizan el procesamiento en memoria para mejorar el rendimiento y la capacidad de respuesta. [ 6 ]
  • El procesamiento en memoria se utiliza en los televisores inteligentes para mejorar la navegación de la interfaz y la entrega de contenido. Se utiliza en cámaras digitales para el procesamiento, filtrado y efectos de imágenes en tiempo real. [ 7 ] Los asistentes activados por voz y otros sistemas de automatización del hogar pueden beneficiarse de una comprensión y respuesta más rápidas a las órdenes del usuario.
  • El procesamiento en memoria también se utiliza en sistemas embebidos de electrodomésticos y cámaras digitales de alta gama para una gestión eficiente de los datos. Mediante técnicas de procesamiento en memoria, ciertos dispositivos IoT priorizan el procesamiento rápido de datos y los tiempos de respuesta. [ 8 ]

Software

Acceso a datos basado en disco

Estructuras de datos

Con la tecnología basada en disco, los datos se cargan en el disco duro del ordenador en forma de múltiples tablas y estructuras multidimensionales sobre las que se ejecutan las consultas. Las tecnologías basadas en disco suelen ser sistemas de gestión de bases de datos relacionales (RDBMS), a menudo basados ​​en el lenguaje de consulta estructurado ( SQL ), como SQL Server , MySQL , Oracle y muchos otros. Los RDBMS están diseñados para los requisitos del procesamiento transaccional . Al utilizar una base de datos que admite inserciones y actualizaciones, así como agregaciones, las uniones (típicas en soluciones de BI ) suelen ser muy lentas. Otra desventaja es que SQL está diseñado para recuperar filas de datos de forma eficiente, mientras que las consultas de BI suelen implicar la recuperación de filas parciales de datos con cálculos complejos.

Para mejorar el rendimiento de las consultas, se pueden construir bases de datos multidimensionales o cubos OLAP , también llamados procesamiento analítico en línea multidimensional (MOLAP) . Diseñar un cubo puede ser un proceso complejo y prolongado, y modificar su estructura para adaptarla a las necesidades cambiantes del negocio puede resultar engorroso. Los cubos se precargan con datos para responder a consultas específicas y, si bien mejoran el rendimiento, aún no son óptimos para responder a todas las consultas ad hoc. [ 9 ]  

El personal de tecnología de la información (TI) puede dedicar una cantidad considerable de tiempo de desarrollo a la optimización de bases de datos, la construcción de índices y agregados , el diseño de cubos y esquemas en estrella , el modelado de datos y el análisis de consultas. [ 10 ]

Velocidad de procesamiento

La lectura de datos desde el disco duro es mucho más lenta (posiblemente cientos de veces más lenta) que la lectura de los mismos datos desde la RAM. Especialmente al analizar grandes volúmenes de datos, el rendimiento se degrada considerablemente. Si bien SQL es una herramienta muy potente, las consultas complejas arbitrarias con una implementación basada en disco tardan bastante en ejecutarse y, a menudo, reducen el rendimiento del procesamiento transaccional. Para obtener resultados en un tiempo de respuesta aceptable, muchos almacenes de datos se han diseñado para precalcular resúmenes y responder solo a consultas específicas. Se necesitan algoritmos de agregación optimizados para aumentar el rendimiento.

Acceso a datos en memoria

Tanto en las bases de datos en memoria como en las cuadrículas de datos , toda la información se carga inicialmente en la memoria RAM o en la memoria flash en lugar de en los discos duros . En una cuadrícula de datos , el procesamiento se realiza tres órdenes de magnitud más rápido que en las bases de datos relacionales con funcionalidades avanzadas como ACID , que degradan el rendimiento para compensar la funcionalidad adicional. La llegada de las bases de datos centradas en columnas , que almacenan información similar de forma conjunta, permite almacenar los datos de manera más eficiente y con mayores índices de compresión . Esto permite almacenar grandes cantidades de datos en el mismo espacio físico, reduciendo la cantidad de memoria necesaria para realizar una consulta y aumentando la velocidad de procesamiento. Muchos usuarios y proveedores de software han integrado memoria flash en sus sistemas para permitir que estos escalen a conjuntos de datos más grandes de forma más económica.

Los usuarios consultan los datos cargados en la memoria del sistema, evitando así el acceso lento a la base de datos y los cuellos de botella de rendimiento . Esto difiere del almacenamiento en caché , un método muy utilizado para acelerar el rendimiento de las consultas, ya que las cachés son subconjuntos de datos organizados predefinidos muy específicos. Con las herramientas en memoria, los datos disponibles para el análisis pueden ser tan grandes como un data mart o un pequeño data warehouse, que se encuentra completamente en memoria. Esto permite que múltiples usuarios o aplicaciones concurrentes accedan rápidamente a estos datos con un nivel de detalle alto y ofrece el potencial para mejorar el análisis, así como para escalar y aumentar la velocidad de una aplicación. Teóricamente, la mejora en la velocidad de acceso a los datos es de 10 000 a 1 000 000 de veces en comparación con el disco. Además, minimiza la necesidad de optimización del rendimiento por parte del personal de TI y proporciona un servicio más rápido para los usuarios finales.

Ventajas de la tecnología de procesamiento en memoria

Ciertos avances en la tecnología informática y las necesidades empresariales han tendido a aumentar las ventajas relativas de la tecnología en memoria. [ 11 ]

  • Según la ley de Moore , el número de transistores por unidad cuadrada se duplica aproximadamente cada dos años. Esto se refleja en los cambios de precio, rendimiento, empaquetado y capacidades de los componentes. El precio de la memoria RAM y la potencia de cálculo de la CPU, en particular, han mejorado a lo largo de las décadas. El procesamiento de la CPU, la memoria y el almacenamiento en disco están sujetos a alguna variación de esta ley. Además, las innovaciones de hardware, como la arquitectura multinúcleo , la memoria flash NAND , los servidores paralelos y el aumento de la capacidad de procesamiento de memoria, han contribuido a la viabilidad técnica y económica de los enfoques de memoria integrada.
  • A su vez, las innovaciones de software, como las bases de datos centradas en columnas, las técnicas de compresión y el manejo de tablas agregadas, permiten productos eficientes en memoria. [ 12 ]
  • La llegada de los sistemas operativos de 64 bits permitió acceder a mucha más memoria RAM (hasta 100  GB o más) que los 2 o 4  GB disponibles en los sistemas de 32 bits . Al proporcionar terabytes (1  TB = 1024  GB) de espacio para almacenamiento y análisis, los sistemas operativos de 64 bits hicieron que el procesamiento en memoria fuera escalable. El uso de memoria flash permitió que los sistemas escalaran a muchos terabytes de forma más económica.
  • El creciente volumen de datos ha provocado que los almacenes de datos tradicionales tengan dificultades para procesarlos de forma oportuna y precisa. El proceso de extracción, transformación y carga (ETL), que actualiza periódicamente los almacenes de datos basados ​​en disco con datos operativos, puede generar retrasos y datos obsoletos. El procesamiento en memoria permite un acceso más rápido a terabytes de datos para una mejor generación de informes en tiempo real.
  • El procesamiento en memoria puede estar disponible a un costo menor en comparación con el procesamiento basado en disco, y puede implementarse y mantenerse más fácilmente. Según una encuesta de Gartner, [ 13 ] la implementación de herramientas de BI tradicionales puede tardar hasta 17  meses.
  • El procesamiento en memoria ofrece un menor consumo de energía y un mayor rendimiento debido a una menor latencia de acceso, un mayor ancho de banda de memoria y paralelismo de hardware. [ 14 ]

Aplicación en los negocios

Una gama de productos en memoria permite conectarse a fuentes de datos existentes y acceder a paneles interactivos con gran riqueza visual. Esto permite a los analistas de negocio y usuarios finales crear informes y consultas personalizados sin necesidad de mucha formación ni experiencia. La navegación sencilla y la posibilidad de modificar las consultas sobre la marcha resultan ventajosas para muchos usuarios. Dado que estos paneles se pueden actualizar con datos recientes, los usuarios tienen acceso a información en tiempo real y pueden crear informes en cuestión de minutos. El procesamiento en memoria puede ser especialmente beneficioso en centros de llamadas y gestión de almacenes.

Con el procesamiento en memoria, la base de datos de origen se consulta solo una vez, en lugar de acceder a ella cada vez que se ejecuta una consulta, lo que elimina el procesamiento repetitivo y reduce la carga en los servidores de bases de datos. Al programar la carga de la base de datos en memoria durante la noche, los servidores de bases de datos pueden utilizarse para tareas operativas durante las horas pico.

Adopción de la tecnología en memoria

Con un gran número de usuarios, se requiere una gran cantidad de RAM para una configuración en memoria, lo que a su vez afecta los costos del hardware. La inversión es más probable que sea adecuada en situaciones donde la velocidad de respuesta a las consultas es una prioridad alta y donde existe un crecimiento significativo en el volumen de datos y un aumento en la demanda de funciones de generación de informes; sin embargo, puede que no sea rentable cuando la información no está sujeta a cambios rápidos. La seguridad es otro factor a considerar, ya que las herramientas en memoria exponen grandes cantidades de datos a los usuarios finales. Los fabricantes recomiendan garantizar que solo los usuarios autorizados tengan acceso a los datos.

Véase también

Referencias

  1. Ghose, S. (noviembre de 2019). "Procesamiento en memoria: una perspectiva basada en la carga de trabajo" (PDF) . IBM Journal of Research and Development . 63 (6): 3:1–19. doi : 10.1147/JRD.2019.2934048 . S2CID 202025511 . 
  2. Zhang, Hao; Gang Chen; Beng Chin Ooi; Kian-Lee Tan; Meihui Zhang (julio de 2015). "Gestión y procesamiento de macrodatos en memoria: una revisión" . IEEE Transactions on Knowledge and Data Engineering . 27 (7): 1920–1948 . Bibcode : 2015ITKDE..27.1920Z . doi : 10.1109/TKDE.2015.2427795 .
  3. Plattner, Hasso; Zeier, Alexander (2012). Gestión de datos en memoria: tecnología y aplicaciones . Springer Science & Business Media. ISBN 9783642295744.
  4. "Curso de Procesamiento en Memoria: Lección 1: Explorando el Paradigma PIM para Sistemas Futuros - Primavera de 2022" . YouTube . 10 de marzo de 2022.
  5. Park, Kate (27 de julio de 2023). "Samsung extiende el recorte en la producción de chips de memoria y se centrará en chips de IA de gama alta" . TechCrunch . Consultado el 5 de diciembre de 2023 .
  6. Tan, Kian-Lee; Cai, Qingchao; Ooi, Beng Chin; Wong, Weng-Fai; Yao, Chang; Zhang, Hao (2015-08-12). "Bases de datos en memoria: desafíos y oportunidades desde las perspectivas del software y el hardware" . ACM SIGMOD Record . 44 (2): 35– 40. doi : 10.1145/2814710.2814717 . ISSN 0163-5808 . S2CID 14238437 .  
  7. Fatemieh, Seyed Erfan; Reshadinezhad, Mohammad Reza; Taherinejad, Nima (2022). "Computación aproximada en memoria mediante lógica IMPLY memristiva y su aplicación al procesamiento de imágenes". Simposio Internacional IEEE de Circuitos y Sistemas (ISCAS) de 2022. pp. 3115–3119 . doi : 10.1109/ISCAS48785.2022.9937475 . ISBN  978-1-6654-8485-5. S2CID 253462291 . 
  8. "¿Qué es el procesamiento en memoria (PIM) y cómo funciona?" . Business Analytics . Consultado el 05-12-2023 .
  9. Gill, John (2007). "Cambio de paradigma en BI con tecnologías de bases de datos en memoria" . Business Intelligence Journal . 12 (2): 58– 62. Archivado del original el 24 de septiembre de 2015.
  10. Earls, A (2011). Consejos para evaluar, implementar y administrar herramientas de análisis en memoria (PDF) . Tableau. Archivado del original (PDF) el 25 de abril de 2012.
  11. "Análisis en memoria" . yellowfin. pág. 6. 
  12. Kote, Sparjan. "Computación en memoria en inteligencia empresarial" . Archivado del original el 24 de abril de 2011.
  13. "Análisis de encuestas: por qué la adopción de BI y análisis sigue siendo baja y cómo ampliar su alcance" . Gartner . Consultado el 5 de diciembre de 2023 .
  14. Upchurch, E.; Sterling, T.; Brockman, J. (2004). «Análisis y modelado de las compensaciones de diseño de la arquitectura PIM avanzada» . Actas de la conferencia ACM/IEEE SC2004 . Pittsburgh, PA, EE. UU.: IEEE. pág. 12. doi : 10.1109/SC.2004.11 . ISBN  978-0-7695-2153-4. S2CID 9089044 .