Optimiza tu código con Intel Integrated Performance Primitives

Desarrolla un código de compresión rápido para  diferentes aplicaciones

Cómo optimizar su código de compresión utilizando Intel Integrated Performance Primitives (Intel IPP)

Chao Yu, Software Technical Consulting Engineer, Intel Corporation, y Sergey Khlystov, Senior Software Engineer, Intel Corporation

Intel Integrated Performance Primitives (Intel IPP)

Buscar maneras eficientes de comprimir y descomprimir los datos es hoy más importante que nunca. Los datos comprimidos ocupan menos espacio y requieren menos tiempo y ancho de banda de red para su transmisión. En el código de servicios en la nube, la compresión recorta los costes de almacenamiento. En las aplicaciones móviles y aplicaciones clientes, la compresión de alto rendimiento puede mejorar la eficiencia de las comunicaciones, ofreciendo una mejor experiencia de usuario. Sin embargo, la compresión y descompresión consumen recursos de procesador. Especialmente en aplicaciones de tratamiento intensivo de datos, esto puede afectar negativamente el rendimiento general del sistema. Por esta razón, una implementación optimizada de los algoritmos de compresión juega un papel crucial en minimizar el impacto sobre el rendimiento del sistema. Intel Integrated Performance Primitives (Intel IPP) es una librería que contiene funciones altamente optimizadas para diversos dominios, incluyendo la compresión de datos sin pérdidas.

En este artículo hablaremos sobre estas funciones y sus más recientes mejoras. Examinaremos su rendimiento, y explicaremos cómo esas funciones han sido optimizadas para alcanzar el mejor rendimiento. También presentaremos cómo las aplicaciones pueden decidir qué algoritmo de compresión utilizar partiendo de las características de su carga de trabajo.

Funciones de compresión de datos de Intel IPP

El dominio de compresión de datos de Intel IPP ofrece implementaciones optimizadas de los algoritmos de compresión de datos más comunes, incluyendo BZIP2, ZLIB, LZO y una nueva función LZ4 que estará disponible en la primera actualización de Intel IPP 2018. Estas implementaciones ofrecen sustitutos “en el lugar” para el código de compresión original. Cambiar el código de compresión de datos original por una versión optimizada mediante Intel IPP es sencillo. Estos algoritmos de compresión de datos son funciones básicas de muchas aplicaciones, por lo que una amplia gama de aplicaciones puede beneficiarse de la utilización de Intel IPP. Un ejemplo es la compresión ZLIB de Intel IPP. ZLIB es el método fundamental de compresión para varios archivadores de ficheros (tales como gzip, WinZip y PKZIP), librerías de formato de gráficos portables (PNG), protocolos de red, y algunas clases de compresión de Java. La Figura 1 muestra cómo esas aplicaciones pueden adoptar la función ZLIB optimizada en Intel IPP. Intel IPP ofrece APIS totalmente compatibles. La aplicación simplemente necesita ser enlazada con la librería ZLIB de Intel IPP.

Si la aplicación utiliza ZLIB como una librería dinámica, puede ser fácilmente reconectada a una nueva librería ZLIB dinámica creada con Intel IPP. En este último caso, re-enlazar la aplicación no es necesario.

En ediciones recientes, el dominio de compresión de datos de Intel IPP se ha ampliado con diversas funcionalidades y un rendimiento aumentado de la compresión:

  • El soporte para la compresión de datos LZ4 será incluido en la primera actualización de Intel IPP 2018, que pronto estará disponible.

  • El rendimiento de la compresión LZO ha aumentado entre un 20 y 50 porciento. Se ha añadido soporte del nivel 999 en la descompresión LZO.

  • Se ha añadido un nuevo modo de compresión de datos ZLIB ultra-rápido, que puede mejorar el rendimiento hasta 2.3x en comparación con el rendimiento de ZLIB nivel 1.

  • Las tablas de Huffman entrenadas para compresión ZLIB permiten a los usuarios mejorar la razón de compresión en el modo más rápido.

Más Información

Desde Danysoft y si rellenas este formulario, te ayudaremos a facilitarte la información que necesitas.

3 + 3 = ?

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Utilizamos cookies propias y de terceros para mejorar nuestros servicios. Al utilizar el Sitio, usted acepta el uso de cookies. más información

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close