Aprovechando el 100% de CPU durante la exportación en Lightroom

Y aquí la primera entrada. Algo ligerito :)

Para quien no lo conozca, 'Adobe Photoshop Lightroom' es un software de 'revelado digital' con el que podemos tratar (no sólo) las fotos en formato RAW de nuestras cámaras digitales. 

Ofrece un montón de ajustes que pueden aplicarse sobre la totalidad del encuadre o sólo sobre algunas zonas, y las diferentes operaciones 'apiladas' no son destructivas (puedes subir la exposición, bajar el contraste, ajustar el balance de blancos, volver a bajar la exposición, levantar las sombras, ajustar tonos medios, etc. en cualquier orden sin miedo a perder información).



Una vez alcanzado el resultado deseado en previsualización se debe realizar la 'exportación' de la imagen a un formato de archivo más compatible y manejable (p. ej. JPEG)

A la hora de exportar fotos de forma masiva (decenas de ellas) el proceso puede alargarse más de lo necesario, y sin embargo se observa que Lightroom no está aprovechando el 100% de la capacidad de la CPU de la máquina, pese a que ésta cuente con suficientes recursos disponibles (RAM suficiente para evitar el uso de swap, unidad de disco duro rápida, etc.). Este comportamiento se observa en la versión 4.4 para Windows de 64 bits, desconozco si en otras versiones o plataformas es diferente.

Podemos plantearnos si no podrían haber programado 'mejor' el algoritmo que procesa las imágenes y de algún modo 'paralelizarlo', ya que disponemos de PCs asequibles con CPU multi-core desde hace más de una década, y no parece muy problemático dividir una imagen en varias regiones para procesarlas por separado.

En cualquier caso hay una forma muy sencilla de aprovechar al máximo la CPU durante una exportación masiva, que consiste simplemente en lanzar diferentes tareas de exportación sobre diferentes grupos de fotos.

¿Cuántas tareas se deben lanzar? ¿Dos, tres, catorce? Dependerá de cada ordenador, pero podemos echar un vistazo al administrador de tareas o al monitor de recursos para vigilar el uso de CPU o si hay algún cuello de botella como los mencionados antes (RAM, I/O...)

Os dejo un vídeo para ilustrarlo, con un temazo de 'Clutch' sonando de fondo:
https://www.youtube.com/watch?v=x4SENuW4qr0

Comentarios

Entradas populares de este blog

Librerías comunes en Tomcat 8. Caso real: SoapUI mocks

Desacoplamiento mediante colas de mensajes

Arquitectura híbrida cloud / on-premise