Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Procesamiento de bloques paralelos en archivos de imagen grandes

Si tiene una licencia, la función puede beneficiarse de varios núcleos de procesador en su equipo para realizar el procesamiento de bloques paralelos.Parallel Computing Toolbox™blockproc

¿Qué es el procesamiento de bloques paralelos?

El procesamiento de bloques paralelos le permite procesar muchos bloques simultáneamente distribuyendo cálculos de tareas a una colección de sesiones, llamada.MATLAB®workers La sesión con la que interactúas se llama.MATLABclient El cliente Reserva una colección de trabajadores, llamados a.parallel pool A continuación, el cliente divide la imagen de entrada en bloques y envía bloques a las sesiones de trabajo.MATLAB Cada trabajador procesa un subconjunto de bloques y envía los resultados de vuelta al cliente. El cliente agrega los resultados en una variable de salida.

Cuándo utilizar el procesamiento de bloques paralelos

Al procesar imágenes pequeñas, se espera que el modo serie sea más rápido que el modo paralelo. Sin embargo, para imágenes más grandes, es posible que vea mejoras significativas en el rendimiento del procesamiento en paralelo. El rendimiento del procesamiento de bloques paralelos depende de tres factores:

  • Función utilizada para el procesamiento

  • Tamaño de la imagen

  • Tamaño de bloque

En general, el uso de bloques más grandes mientras el bloque procesa una imagen da como resultado un rendimiento más rápido que completar la misma tarea utilizando bloques más pequeños. Sin embargo, a veces la tarea o el algoritmo que está aplicando a la imagen requiere un determinado tamaño de bloque y debe usar bloques más pequeños. Cuando el procesamiento de bloques que se utiliza en bloque más pequeños, el procesamiento de bloques paralelos suele ser más rápido que el procesamiento de bloques normal (serie), a menudo por un margen grande. Sin embargo, si utiliza bloques más grandes, es posible que necesite experimentar para determinar si el procesamiento de bloques paralelos ahorra tiempo de computación.

Cómo utilizar el procesamiento de bloques paralelos

Debe cumplir dos condiciones para utilizar el procesamiento de bloques paralelos:

  • La imagen de origen no se especifica como una clase.ImageAdapter

  • Existe una licencia en la instalación.Parallel Computing ToolboxMATLAB

Si cumple estas condiciones, puede invocar el procesamiento en paralelo especificando el argumento como.blockproc'UseParallel'true Al hacerlo, se abre automáticamente un grupo paralelo de trabajadores en el equipo local y utiliza todos los trabajadores disponibles para procesar la imagen de entrada.MATLAB

En el ejemplo siguiente, calcule una transformación de coseno discreta para cada bloque 8 por 8 de una imagen en paralelo:

blockFun = @(block_struct) dct2(block_struct.data); result = blockproc(input_image,[8 8],blockFun, ...    'UseParallel',true);

Controle el comportamiento paralelo con las preferencias paralelas, incluida la ampliación a un clúster. Consulte para obtener información sobre la configuración de su entorno paralelo.parpool

Consulte también

Temas relacionados