Procesamiento de la imagen hiperespectral

Anuncio
UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica
Ingeniería Informática
Proyecto Final de Carrera
Aplicación de la Tecnología Grid al Tratamiento de
Imágenes Hiperespectrales
Fermín Ayuso Márquez
Víctor Manuel Ochoa Sánchez
Julio, 2008
UNIVERSIDAD DE EXTREMADURA
Escuela Politécnica
Ingeniería Informática
Proyecto Final de Carrera
Aplicación de la Tecnología Grid al Tratamiento de
Imágenes Hiperespectrales
Autores:
Fermín Ayuso Márquez
Víctor Manuel Ochoa Sánchez
Fdo.:
Director: Antonio Plaza Miguel
Fdo.:
Tribunal Calificador
Presidente: <Nombre y Apellidos>
Fdo:
Secretario: : <Nombre y Apellidos>
Fdo.:
Vocal: : <Nombre y Apellidos>
Fdo.:
CALIFICACIÓN:
FECHA:
Índice de contenido
Motivaciones y objetivos......................................................................................................8
Motivaciones......................................................................................................................8
Objetivos..........................................................................................................................10
Antecedentes.......................................................................................................................13
Concepto de imagen hiperespectral.................................................................................13
Sensores hiperespectrales...............................................................................................18
Algunos ejemplos de sensores hiperespectrales.............................................................23
Sensor AVIRIS.............................................................................................................23
Técnicas de particionamiento de datos para imágenes hiperespectrales.....................24
Procesamiento de la imagen hiperespectral.....................................................................30
Algoritmo paralelo para el reparto de carga.....................................................................31
Algoritmo de reparto de carga entre procesadores heterogéneos...................................32
Resultados experimentales................................................................................................34
Arquitectura empleada.....................................................................................................34
Análisis del rendimiento....................................................................................................35
Descripción de la imagen utilizada en las pruebas......................................................35
Análisis del rendimiento en un cluster heterogéneo....................................................38
Conclusiones y lineas de trabajo futuro...........................................................................89
Manual de Usuario...............................................................................................................91
Requisitos.........................................................................................................................91
Requisitos Hardware...................................................................................................91
Requisitos Software....................................................................................................91
Instalación........................................................................................................................92
Librerías......................................................................................................................92
Instalación de binarios.................................................................................................93
Ejecución..........................................................................................................................93
Versión secuencial.....................................................................................................93
Versión paralela...........................................................................................................94
Mensajes de error.............................................................................................................94
Manual del Programador....................................................................................................96
Entorno de desarrollo.......................................................................................................96
Estructuras de datos.........................................................................................................96
Unsigned char *...........................................................................................................96
BsqHeader..................................................................................................................97
sequential.c......................................................................................................................97
parallel.c.........................................................................................................................101
Referencias bibliográficas................................................................................................104
Artículos y Obras.......................................................................................................104
Webs Relacionadas...................................................................................................107
Apéndice............................................................................................................................108
Índice de ilustraciones
Ilustración 1: Concepto de imagen hiperespectral.................................................................14
Ilustración 2: Adquisición de una imagen hiperespectral por el sensor AVIRIS.....................16
Ilustración 3: Tipos de píxels en imágenes hiperespectrales.................................................17
Ilustración 4: Tipos de sensores: (a) Sensor matricial. (b) sensor lineal o de empuje. (c)
sensor de barrido...................................................................................................................21
Ilustración 5: Esquema del sensor hiperespectral AVIRIS.....................................................24
Ilustración 6: Diagrama representativo del procedimiento para obtener espectros puros.....27
Ilustración 7: Representación de la dilatación y erosión morfológica usada por el algoritmo
AMEE....................................................................................................................................28
Ilustración 8: Partición dominio espectral y espacial.............................................................29
Ilustración 9: Imagen del sensor AVIRIS sobre la Jasper Ridge Biological Preserve (JRBP)
de California..........................................................................................................................37
Ilustración 10: Firma espectral seleccionada de la imagen AVJRBP_RAD...........................38
Ilustración 11: Banda 224 de la imagen original..................................................................108
Ilustración 12: Banda 224 de la imagen procesada con una ventana 3x3...........................109
Ilustración 13: Banda 224 de la imagen procesada con una ventana 9x9...........................110
Índice de tablas
Tabla 1: Características de la arquitectura heterogénea del Instituto de Astrofísica de
Andalucía..............................................................................................................................35
Tabla 2: Tiempos de ejecución en serie para cada nodo de la arquitectura heterogénea.....38
Tabla 3: Resultados para una estimación de 2 líneas y 2 procesadores...............................40
Tabla 4: Resultados para una estimación de 2 líneas y 4 procesadores...............................40
Tabla 5: Resultados para una estimación de 2 líneas y 8 procesadores...............................41
Tabla 6: Resultados para una estimación de 2 líneas y 16 procesadores.............................42
Tabla 7: Resultados para una estimación de 2 líneas y 26 procesadores.............................43
Tabla 8: Resultados para una estimación de 5 líneas y 2 procesadores...............................45
Tabla 9: Resultados para una estimación de 5 líneas y 4 procesadores...............................46
Tabla 10: Resultados para una estimación de 5 líneas y 8 procesadores.............................46
Tabla 11: Resultados para una estimación de 5 líneas y 16 procesadores...........................47
Tabla 12: Resultados para una estimación de 5 líneas y 26 procesadores...........................49
Tabla 13: Resultados para una estimación de 10 líneas y 2 procesadores...........................51
Tabla 14: Resultados para una estimación de 10 líneas y 4 procesadores...........................51
Tabla 15: Resultados para una estimación de 10 líneas y 8 procesadores...........................52
Tabla 16: Resultados para una estimación de 10 líneas y 16 procesadores.........................53
Tabla 17: Resultados para una estimación de 10 líneas y 26 procesadores.........................54
Tabla 18: Resultados para una estimación de 20 líneas y 2 procesadores...........................56
Tabla 19: Resultados para una estimación de 20 líneas y 4 procesadores...........................56
Tabla 20: Resultados para una estimación de 20 líneas y 8 procesadores...........................57
Tabla 21: Resultados para una estimación de 20 líneas y 16 procesadores.........................58
Tabla 22: Resultados para una estimación de 20 líneas y 26 procesadores.........................59
Tabla 23: Resultados para una estimación de 30 líneas y 2 procesadores...........................62
Tabla 24: Resultados para una estimación de 30 líneas y 4 procesadores...........................62
Tabla 25: Resultados para una estimación de 30 líneas y 8 procesadores...........................63
Tabla 26: Resultados para una estimación de 30 líneas y 16 procesadores.........................64
Tabla 27: Resultados para una estimación de 30 líneas y 26 procesadores.........................66
Tabla 28: Resultados para una estimación de 60 líneas y 2 procesadores...........................67
Tabla 29: Resultados para una estimación de 60 líneas y 4 procesadores...........................67
Tabla 30: Resultados para una estimación de 60 líneas y 8 procesadores...........................68
Tabla 31: Resultados para una estimación de 60 líneas y 16 procesadores.........................69
Tabla 32: Resultados para una estimación de 60 líneas y 26 procesadores.........................71
Tabla 33: Resultados para una estimación de 120 líneas y 2 procesadores.........................72
Tabla 34: Resultados para una estimación de 120 líneas y 4 procesadores.........................72
Tabla 35: Resultados para una estimación de 120 líneas y 8 procesadores.........................73
Tabla 36: Resultados para una estimación de 120 líneas y 16 procesadores.......................74
Tabla 37: Resultados para una estimación de 120 líneas y 26 procesadores.......................76
Tabla 38: Resultados para una estimación de 240 líneas y 2 procesadores.........................77
Tabla 39: Resultados para una estimación de 240 líneas y 4 procesadores.........................78
Tabla 40: Resultados para una estimación de 240 líneas y 8 procesadores.........................79
Tabla 41: Resultados para una estimación de 240 líneas y 16 procesadores.......................80
Tabla 42: Resultados para una estimación de 240 líneas y 26 procesadores.......................81
Tabla 43: Requisitos hardware..............................................................................................91
Tabla 44: Requisitos software................................................................................................92
Fermín Ayuso y Víctor Manuel Ochoa
Motivaciones y objetivos
Motivaciones
La realización de este Proyecto Fin de Carrera se encuentra enmarcado en las
líneas de investigación actuales del Grupo de Redes Neuronales y Procesamiento de
Señales (GRNPS) del Departamento de Tecnología de los Computadores y de las
Comunicaciones de la Universidad de Extremadura.
El GRNPS empezó su trabajo de investigación desarrollando algoritmos de
computación neuronal para la posible cuantificación de espectros. Continuando con
esta línea, sus investigaciones se han extendido al análisis de imágenes
hiperespectrales de la superficie terrestre, obtenidas de forma remota, a partir de
sensores de tipo satélite o aerotransportados.
Uno de los problemas que se encuentran asociados a los sistemas automáticos de
detección de objetivos es la elevada dimensión de las imágenes a procesar.
Generalmente el tiempo de respuesta para estas aplicaciones ha de ser casi real y los
resultados deben obtenerse en un corto periodo de tiempo, para, por ejemplo, en
casos excepcionales, actuar con la mayor rapidez. Otro de los problemas, asociado a
este anterior, es que, además, la elevada complejidad computacional de su
tratamiento limita su explotación en situaciones en las que los requerimientos
espaciales y temporales son altos.
Existen muchos métodos para realizar el proceso de análisis de imágenes
multiespectrales e hiperespectrales, muchos de ellos ya implementados en paralelo,
para funcionar en arquitecturas de tipo Cluster, en las que todos lo nodos
(ordenadores) conectados tienen características idénticas.
Con la intención de crear sistemas informáticos paralelos efectivos específicos para
las ciencias de la tierra y el espacio, el Center of Excellence in Space and Data
Information Sciencies (CESDIS), locacalizado en el Goddard Space Flight Center en
Maryland, desarrolló el concepto de cluster Beowulf. El poder de procesamiento
ofrecido por dichos sistemas se ha empleado tradicionalmente en aplicaciones de
7
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
minería. Aunque la mayoría de las técnicas paralelas y sistemas para el
procesamiento de información de imágenes y minería empleados por la NASA y
otras instituciones durante la última década han sido principalmente homogéneos,
aparece un tendencia actual en el diseño de sistemas para el análisis e interpretación
de volúmenes masivos de datos, como consecuencia de la ciencia de la tierra y de
misiones de exploración planetarias, depende de la utilización plataformas
informáticas altamente heterogéneas.
Por ello, este PFC intenta, con un algoritmo genérico, innovar en el área de la
computación en sistemas heterogéneos, introduciendo técnicas para el correcto
reparto de carga entre nodos de distintas características, haciendo, de esta forma,
posible el análisis de imágenes hiperespectrales aprovechando las ventajas que
aportan las arquitecturas de tipo heterogéneo. Para ello, el lenguaje de programación
utilizado ha sido C, y para paralelizar, el código MPI.
La realización de las pruebas y la comprobación del correcto funcionamiento del
código desarrollado ha sido posible gracias al Instituto de Astrofísica de Andalucía
(IAA) de Granada, donde se encuentra una arquitectura de tipo GRID y a la cual nos
han dado acceso para realizar dichas pruebas. En el apartado Arquitectura empleada
describiremos las características de dicha arquitectura. Además, se ha utilizado para
la obtención de resultados la imagen AVJRPB_RAD descrita en una de las siguientes
secciones (Descripción de la imagen).
Objetivos
El principal objetivo de este PFC es desarrollar un algoritmo que permita la
correcta distribución de carga (cantidad de procesamiento) entre los distintos nodos
de una red de ordenadores con arquitectura en GRID que permita que los algoritmos
existentes para procesar imágenes hiperespectrales puedan ejecutarse en este tipo de
arquitecturas
Para poder alcanzar este objetivo, marcado anteriormente como principal, se han
planteado y perseguido objetivos más específicos que se detallan a continuación:
1. Proceso de revisión de la bibliografía existente y exhaustivo estudio de las
características principales de las imágenes hiperespectrales, así como de
8
Fermín Ayuso y Víctor Manuel Ochoa
algunos algoritmos de procesamiento de dichas imágenes.
2. Implementación de un algoritmo genérico para el procesamiento de imágenes
mediante un método de ventanas en su versión secuencial usando el lenguaje
de programación C.
3. Desarrollo de dicho algoritmo en su versión paralela, haciendo uso de la
librería MPI (Message Passing Interface) para facilitar el paso de mensajes
entre los distintos nodos que existan en la arquitectura y comprobación de su
correcto funcionamiento en una arquitectura de tipo Cluster, con los nodos
homogéneos.
4. Comprobar la viabilidad de aplicar la metodología diseñada en aplicaciones
reales, utilizando para ello imágenes obtenidas por una variedad de sensores
hiperespectrales.
5. Implementación y desarrollo de código para estimar el correcto reparto de
carga entre nodos heterogéneos. Para realizar esta tarea, las pruebas se han
desarrollado en el cluster heterogéneo del IAA.
6. Realización de múltiples pruebas para comprobar distintos tamaños para la
función de estimación de carga.
7. Desarrollo de un estudio detallado de los resultados obtenidos en las
diferentes ejecuciones del código implementado. Este estudio exhaustivo
supone una contribución novedosa con respecto a la literatura existente en el
área de estudio considerada.
Para una mayor comprensión de esta memoria, procedemos a describir los puntos
que se tratarán, estructurando esta en una serie de secciones que se describen a
continuación:
1)
Antecedentes. En este capítulo introductorio se describen los
conceptos fundamentales relacionados con análisis hiperespectral y
procesamiento de datos.
2)
Técnica
de
particionamiento
de
datos
en
imágenes
hiperespectrales. En este capítulo se describe la técnica llevada a cabo
para particionar la imagen hiperespectral en fragmentos que serán
asignados a cada procesador.
9
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
3)
Algoritmo paralelo para reparto de carga. En este capítulo vamos a
describir los pasos dados que se han realizado para estimar el reparto
de carga entre diferentes procesadores.
4)
Resultados experimentales. En este apartado presentamos la
arquitectura y la descripción de la imagen utilizada para el estudio y
exponemos los resultados obtenidos.
5)
Manuales de usuario y programador: Se incluyen manuales tanto
para los usuarios técnicos como para los usuarios finales de la
aplicación desarrollada.
6)
Conclusiones y lineas de trabajo futuro. Este capítulo resume las
principales aportaciones realizadas por la presente memoria y muestra
las conclusiones derivadas. A parte, sugiere un conjunto de lineas de
trabajo que pueden ser abordadas en futuros trabajos.
7)
Apéndice. En el apéndice se detallan la implementación del algoritmo
de reparto de carga entre procesadores heterogéneos desarrollado en
este PFC. La implementación ha sido desarrollada en el lenguaje de
programación C incorporando las llamadas al interfaz estándar de paso
de mensajes Message Passing Interface (MPI).
10
Fermín Ayuso y Víctor Manuel Ochoa
Antecedentes
En el presente capítulo trataremos de situar al lector en el marco en el que se
desarrolla nuestro proyecto, explicando y resumiendo los principales términos que se
usarán en el resto del documento. En primer lugar, describimos el concepto de
imagen hiperespectral, detallando las particularidades y características propias de
este tipo de imágenes. A continuación, describimos las principales características de
la imagen utilizada en las pruebas realizadas. Por último discutiremos sobre las
características del entorno donde realizamos las pruebas (Grid y Cluster) y haremos
una descripción del entorno concreto donde hemos realizado las pruebas (IAA de
Granada).
Concepto de imagen hiperespectral
Una imagen hiperespectral es una imagen en la que cada punto no viene
descrito por un sólo valor de intensidad (como en una imagen "en blanco y negro") o
por tres componentes de color (como en una imagen RGB de la pantalla del
ordenador), sino por un vector de valores espectrales que se corresponden con la
contribución de la luz detectada en ese punto a estrechas bandas del espectro,
típicamente de entre 1 y 5 nm de ancho (el espectro visible abarca unos 300 nm), un
número de bandas de entre las decenas hasta los varios centenares, en muchas
ocasiones no limitado estrictamente al visible sino también en el infrarrojo y el
ultravioleta (no son raros los sensores que cubren desde los 300 nm hasta los 2500
nm). Por eso se emplean el término "imagin spectroscopy" para referirse a los
sensores de imagen hiperespectrales, porque en cierto modo es como si estuviéramos
midiendo simultáneamente con multitud de espectrómetros (que sólo miden la luz
incidente en un punto) toda una rejilla de puntos en una gran zona geográfica.
El concepto de imagen hiperespectral se ha relacionado históricamente con uno de
los primeros instrumentos de la NASA para la exploración de la tierra, el sistema Jet
Propulsion Laboratory's Airbone Visible-Infrared Imaging Spectrometer (AVIRIS).
El asentamiento de la tecnología hiperespectral en aplicaciones de observación
remota de la tierra ha dado como resultado el desarrollo de instrumentos de medida
de muy elevada resolución en los dominios espacial y espectral. Los sensores
11
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
hiperespectrales adquieren imágenes digitales en una gran cantidad de canales
espectrales muy cercanos entre sí, obteniendo, para cada porción de la escena o píxel,
una firma espectral característica de cada material.
El resultado de la toma de datos por parte de un sensor hiperespectral sobre una
Ba
nd
1
as
-4
ND en banda 4
Muestras
ND en banda 3
ND en banda 2
ND en banda 1
Pixel en
posición (x,y)
Líneas
Ilustración 1: Concepto de imagen hiperespectral.
determinada escena puede ser representado en forma de cubo de datos, con dos
dimensiones para representar la ubicación espacial de un píxel, y una tercera
dimensión que representa la singularidad espectral de cada píxel en diferentes
longitudes de onda. La ilustración 1 muestra la estructura de una imagen
hiperespectral donde el eje X es el indicador de las líneas, el eje Y es el indicador de
las muestras y el eje Z es el número de bandas, es decir, la longitud de onda de esa
banda (canal).
12
Fermín Ayuso y Víctor Manuel Ochoa
Como puede apreciarse en la ilustración 1, el resultado de la toma de datos por parte
de un sensor hiperespectral sobre una determinada escena puede ser representado en
forma de cubo de datos, con dos dimensiones para representar la ubicación espacial
de un píxel, y una tercera dimensión que representa la singularidad espectral de cada
píxel en diferentes longitudes de onda. En concreto, la capacidad de observación de
los sensores denominados hiperespectrales permite la obtención de una firma
espectral detallada para cada píxel de la imagen, dada por los valores de reflectancia
Ilustración 2: Adquisición de una imagen hiperespectral por el sensor AVIRIS
adquiridos por el sensor en diferentes longitudes de onda, lo cual permite una
caracterización muy precisa de la superficie de nuestro planeta. Como ejemplo
ilustrativo, la ilustración 2 muestra el procedimiento de análisis hiperespectral
mediante un sencillo diagrama, en el que se ha considerado como ejemplo el sensor
AVIRIS, el cual cubre el rango de longitudes de onda entre 0.4 y 2.5 µm utilizando
13
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
224 canales y resolución espectral de aproximadamente 10 nm. Como puede
apreciarse en la ilustración 2, la capacidad de observación de este sensor permite la
obtención de una firma espectral detallada para cada píxel de la imagen, dada por los
valores de reflectancia adquiridos por el sensor en diferentes longitudes de onda, lo
cual permite una caracterización muy precisa de la superficie de nuestro planeta.
Conviene destacar que, en este tipo de imágenes, es habitual la existencia de mezclas
a nivel de subpíxel, por lo que a grandes rasgos podemos encontrar dos tipos de
píxeles en estas imágenes: píxel puros y píxel mezcla.
Se puede definir un píxel mezcla como aquel en el que cohabitan diferentes
materiales. Este tipo de píxel son los que constituyen la mayor parte de la imagen
hiperespectral, en parte, debido a que este fenómeno es independiente de la escala
considerada ya que tiene lugar incluso a niveles microscópicos. La ilustración 3
muestra un ejemplo del proceso de adquisición de píxeles puros (a nivel
macroscópico) y mezcla en imágenes hiperespectrales.
Ilustración 3: Tipos de píxels en imágenes hiperespectrales
El
desarrollo
tecnológico
introducido
por
la
incorporación
de
sensores
hiperespectrales en plataformas de observación remota de la tierra de última
generación ha sido particularmente notable durante los últimos años. En este sentido,
conviene destacar que dos de las principales plataformas de tipo satélite que se
14
Fermín Ayuso y Víctor Manuel Ochoa
encuentran en funcionamiento en la actualidad: Earth Observing-1 de NASA
(http://eo1.gsfc.nasa.gov)
y
ENVISAT
de
la
Agencia
Espacial
Europea
(http://envisat.esa.int), llevan incorporados sensores de este tipo, permitiendo así la
posibilidad de obtener imágenes hiperespectrales de la práctica totalidad del planeta
de manera casi continua.
A pesar de la gran evolución en los instrumentos de observación remota de la tierra,
la evolución en las técnicas de análisis de los datos proporcionados por dichos
sensores no ha sido tan notoria. En particular, la obtención de técnicas de análisis
hiperespectral avanzadas, capaces de aprovechar totalmente la gran cantidad de
información espacial y espectral presente en imágenes hiperespectrales, constituye
un objetivo de gran interés para la comunidad científica. A continuación, describimos
en detalle las características de los sensores hiperespectrales utilizados en el presente
estudio.
Sensores hiperespectrales
En este apartado trataremos de describir algunos aspectos de los sensores
hiperespectrales más actuales, por ejemplo, el tipo de sensor dependiendo de la
adquisición de datos, la relación señal/ruido y la resolución del sensor. Además,
estudiaremos de forma detallada los sensores hiperespectrales a partir de los cuales
se han obtenido las imágenes utilizadas en el PFC.
Un sensor hiperespectral es un dispositivo capaz de medir la radiación en gran
cantidad de bandas muy estrechas, de forma que hace mucho más difícil que distintas
combinaciones espectrales se confundan, aunque estas sean muy parecidas.
Los sensores hiperespectrales son capaces de distinguir objetos, sustancias y
materiales, que otro tipo de sensores, como los multiespectrales, no son capaces de
reconocer.
La capacidad de observación de los sensores hiperespectrales permite la obtención de
una firma espectral detallada para cada píxel de la imagen, dada por los valores de
reflectancia adquiridos por el sensor en diferentes longitudes de onda. Este hecho
permite una caracterización muy precisa de la superficie del planeta.
15
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Con respecto a los tipos de sensores, existen dos grandes tipos:

Sensores activos: poseen fuentes internas que generan artificialmente la
radiación (radares).

Sensores pasivos, que detectan la radiación electromagnética emitida o
reflejada de fuentes naturales.
Para nuestro estudio nos vamos a centrar en estos últimos, los sensores pasivos.
Existe un amplia gama de ellos: sistemas fotográficos, radiómetros hiperespectrales y
multiespectrales, espectrómetros de imagen. Un radiómetro, es un sistema ópticoelectrónico, que descompone la radiación recibida en varias longitudes de onda
(bandas). Cada una de estas bandas se envía a un conjunto de detectores sensibles a
esa región del espectro que la amplifican y la convierten en señal eléctrica y, por un
proceso de conversión analógico-digital, en un valor numérico conocido como nivel
digital (ND). Muchos sensores pasivos tienen lo que se conoce como sensibilidad
hiperespectral, lo cual significa que recogen simultáneamente datos de entre decenas
y centenas de bandas espectrales. Las mediciones sobre diferentes zonas del espectro
electromagnético, aportan una amplia información a cerca de distintos aspectos del
medio ambiente. Por ejemplo, la radiación ultravioleta se utiliza para monitorizar los
niveles de ozono en las capas altas de la atmósfera. Las bandas visible e infrarrojas
permiten determinar la salud de la cubierta vegetal (cultivos, bosques). Los
captadores sensibles a la radiación infrarroja térmica sirven para determinar la
temperatura del suelo, de las nubes, y de la superficie de los mares.
Según el procedimiento utilizado por los sensores para recibir la radiación de los
objetos, se pueden distinguir distintos tipos básicos de sensores:
a) Sensores matriciales (‘frame cameras’): estos sensores electrónicos
utilizan sensores de estado sólido tipo CCD o CMOS. Todos los
elementos sensoriales están dispuestos en el plano focal y presentan la
particularidad de que adquieren la imagen digital en un solo instante. La
geometría de dichas imágenes corresponde al caso de la proyección
central. Además, suelen aceptar la corrección del movimiento hacia
delante (FMC) vía TDI (‘Time Delayed Integration’). Las resoluciones
medias de 3K x 2K y 4K x 4K son las más extendidas y están disponibles
16
Fermín Ayuso y Víctor Manuel Ochoa
en modo pancromático, color o falso color. Para obtener resoluciones
equiparables con su homólogo analógico, se adoptan diseños modulares
(de no menos de 2 x 2 sensores).
b) Sensores lineales o de empuje (‘pushbroom scanners’): la captura de la
imagen es un proceso continuo y totalmente electrónico, que se realiza
mediante una serie de sensores lineales de estado sólido alineados entre
ellos en posición perpendicular al avance del sensor. La geometría de la
imagen es cilindro-cónica, también conocida con el nombre de
perspectiva lineal, y se caracteriza porque cada línea de la imagen
resultante precisa sus propios parámetros de orientación externa (POE),
ajustándose a una proyección central. La sensibilidad espectral de estos
sensores oscila entre 0.4 µm y 1 µm, por tanto abarcan el espectro
electromagnético visible e infrarrojo cercano.
c) Sensores de barrido o de rotación (‘whiskbroom scanners’): los sensores
de rotación son de tipo electromecánico. La imagen se obtiene gracias a la
rotación de un prisma o espejo que mueve instantáneamente el punto de
vista (IFOV -‘Instantaneous Field of View’-) perpendicularmente a la
dirección del sensor. De este modo, la formación de la imagen sigue un
proceso continuo. La geometría resultante es cilíndrica, con las
particularidades que ello implica. Por lo general, la sensibilidad espectral
de estos sensores es mayor que los de empuje, ya que oscila entre 0.4 µm
(visible) y 13 µm (infrarrojo lejano).
Ilustración 4: Tipos de sensores: (a) Sensor
matricial. (b) sensor lineal o de empuje. (c)
sensor de barrido
2) La relación señal-ruido (signal-to-noise ratio -SNR-), es un parámetro
17
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
fundamental para definir la calidad de un sensor hiperespectral. Se puede
definir como la cantidad de señal adquirida por unidad de ruido, es decir, la
relación entre la amplitud de la señal obtenida y la amplitud del ruido. Esta
relación depende de la anchura espectral, de la cantidad de radiación reflejada
por el medio y de la sensibilidad del sensor. Dicha relación aumenta a medida
que estos parámetros también lo hacen.
3) La resolución de un sensor es la capacidad para obtener información acerca
de los detalles de la imagen. Dependiendo del tipo de información que nos
aporten, podemos hablar de resolución espacial, espectral o radiométrica.
○
La resolución espacial proporciona el tamaño del menor objeto
discriminable por el sensor. En este caso, define el tamaño y la forma de
cada uno de los píxels. Se mide por el Instantaneous Field Of View
(IFOV), que es la sección angular medida en radianes, observada en un
instante determinado por el sensor. Se suele utilizar la distancia sobre el
terreno que corresponde a ese ángulo y depende del ángulo de visión. Es
diferente del pixel (Picture element): espaciado provocado por la
frecuencia de muestreo. La mejor cobertura del terreno ocurre cuando
ambas medidas coinciden. Influye en la información (valor digital) que
ofrece el pixel.
○
La resolución espectral es el número y el ancho de las bandas espectrales
que puede discriminar el sensores. También se puede definir como la
capacidad del sensor para discriminar la radiancia detectada en distintas
longitudes de onda del espectro. Viene determinada por el número de
bandas que el sensor puede captar y por la anchura espectral de éstas. Es
conveniente un número alto de bandas y bandas estrechas, ya que permite
una discriminación más fina. En un sensor determinado, el número de
bandas que posee y su anchura, dependen de la aplicación que se le haya
querido dar al mismo.
○
La resolución radiométrica es la sensibilidad del sensor, es decir, la
capacidad para detectar variaciones en la radiancia espectral que recibe.
18
Fermín Ayuso y Víctor Manuel Ochoa
Determina el número de niveles de gris recogidos en la imagen, se
expresa en niveles por pixel (64-128-256-1024). A mayor resolución
radiométrica, mejor interpretación de la imagen. El pixel mixto es
definido por una señal intermedia a las cubiertas que lo componen
(Chuvieco, 1996). En dispositivos opto-electrónicos1 la radiancia
incidente se registra matricialmente de forma digital. Cada pixel tiene
asignado un número digital proporcional a la radiancia recibida. El
almacenamiento digital es más inmune al ruido en la transmisión de
información. La resolución radiométrica de un sensor viene dada por el
número de niveles digitales que es capaz de codificar. Una mejor
resolución radiométrica conduce a una mejor interpretación pero depende
del método de interpretación.
○
Resolución temporal: frecuencia de cobertura que proporciona el sensor.
La cadencia temporal de los sistemas espaciales varía de acuerdo a los
objetivos fijados.
Los diferentes tipos de resolución están muy relacionados. El mayor problema deriva
de la transmisión de las imágenes a la superficie terrestre. Cada sistema ofrece unas
características diferentes, según para los fines que se diseña. Un solo sistema no
puede cubrir todas las expectativas. Por ejemplo, una alta resolución radiométrica
implica un alto volumen de almacenamiento, lo que obliga a bajar la resolución
espectral o para estudios de vegetación convienen resoluciones espaciales y
espectrales altas.
Algunos ejemplos de sensores hiperespectrales
En el siguiente apartado describimos con más detalle el sensor hiperespectral
del que se han escogido imágenes para realizar este trabajo.
Sensor AVIRIS
AVIRIS (Airborne Visible/InfraRed Imaging Spectrometer) es un sensor
hiperespectral aerotransportado con capacidades analíticas en las zonas visible e
infrarroja del espectro que lleva en funcionamiento desde 1987. Fue el primer
1. Dispositivos que están relacionados con la luz.
19
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
sistema de adquisición de imágenes capaz de obtener información en una gran
cantidad de bandas espectrales estrechas y casi contiguas. En 1989, se convirtió en
un instrumento aerotransportado y desde ese momento, se están realizando varias
campañas de vuelo cada año para la toma de nuevos datos.
Algunas de las características más relevantes del sensor AVIRIS son las siguientes:
• Permite obtener información en 224 canales espectrales contiguos, con
longitudes de onda entre 0.4 y 2.5 µm y con un ancho entre bandas de
aproximadamente 0.01 metros.
• Resolución espectral de 10 nm, resolución espacial de entre 5 y 20 metros
y un campo de visión de unos 30º aproximadamente.
• El sensor utiliza un explorador de barrido que permite obtener un total de
614 píxels por cada oscilación.
• La cobertura de la parte visible del espectro es realizada por un
espectrómetro EFOS- A, compuesto por un array de 32 detectores
lineales.
• La cobertura en el infrarrojo es realizada por los espectrómetros EFOS-B,
EFOS-C y EFOS-D, compuestos todos ellos por arrays de 64 detectores
lineales.
Ilustración 5: Esquema del sensor hiperespectral AVIRIS
Técnicas de particionamiento
imágenes hiperespectrales
de
datos
para
Las técnicas que gobiernan el análisis de datos hiperespectrales tratan de
20
Fermín Ayuso y Víctor Manuel Ochoa
medir la respuesta de cada firma espectral para múltiples materiales subyacentes para
cada sitio. Por ejemplo, el vector del píxel etiquetado como “vegetation + soil” de la
ilustración 3 es un píxel mixto que comprende una mezcla de vegetación y tierra o de
diferentes tipos de cubiertas de tierra y vegetación. Esta situación, a menudo
denominada como “problema mixto” en terminología de análisis hiperespectrales, es
una de las más cruciales y con propiedades de distinguir análisis de imágenes
hiperespectrales. Los píxeles mixtos existen por varias razones. Primero, si la
resolución espacial del sensor no es suficientemente alta para separar diferentes
materiales, este puede ocupar conjuntamente un píxel sencillo, y la medida espectral
resultante será un compuesto de los espectros individuales. Segundo, los píxeles
mixtos pueden ser consecuencia también de la combinación de dos materiales
distintos en una mezcla heterogénea. Esta circunstancia ocurre independientemente
de la resolución espacial del sensor. Una imagen hiperespectral a menudo es una
combinación de las dos situaciones anteriormente descritas, donde unos pocos
emplazamientos en una imagen son materiales puros, pero algunos otros son mezclas
de materiales.
Para tratar con el problema mixto en una imagen hiperespectral, se ha propuesto un
procedimiento de análisis consolidado en el cual el espectro medido de un píxel
mixto es descompuesto en una recopilación de cada endmember presente en el píxel
mixto. La ilustración 6 muestra el procedimiento para obtener un espectro puro, en la
cual, en primer lugar la imagen hiperespectral de entrada es reducida (este paso es
opcional) y luego se extraen los endmembers puros de la imagen. El último paso es
la descomposición de los píxeles mixtos en mapas fraccionados a través de un
proceso de inversión lineal.
Durante la última década, se han propuesto algunos algoritmos con el propósito de
extraer de forma automática los endmembers espectrales desde datos de imágenes
hiperespectrales. La extracción automática y morfológica de endmembers
(automated morphological endmember extraction - AMEE) resulta ser la única
técnica disponible que integra la información espacial y espectral en la investigación
de endmembers hiperespectrales.
El método se basa en la utilización de un núcleo o elemento estructural, que se
21
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
desplaza a través de todos los píxeles de la imagen, definiendo un área de búsqueda
espacial alrededor de cada vector del píxel.
Ilustración 6: Diagrama representativo del procedimiento para obtener espectros
puros
El valor del espectro más puro y el valor del espectro con más mezcla se obtienen
respectivamente de la vecindad de cada píxel, mediante el cálculo del ángulo
espectral entre el más puro y el que contiene más mezcla. La ilustración 7 muestra un
ejemplo de la ejecución de las dos operaciones morfológicas para la selección de
píxeles mixtos/puros. Como muestra dicha figura, la dilatación morfológica expande
las áreas más puras en la escena, al seleccionar los píxeles de mayor pureza
(representados como píxeles blancos y oscuros) en los elementos estructurales
vecinos. Casi de forma opuesta, el desgaste o erosión morfológica expande las áreas
de más alta pureza de la imagen hiperespectral, seleccionando los píxeles con mayor
grado de mezcla (representados como grises) en la misma vecindad. Estas
operaciones se repiten para todos los píxeles de la escena, hasta que se genera un
MEI (Morphological Eccentricity Index) para cada vector de píxeles. Los píxeles con
mayores valores MEI se asumen que son los endmembers finales.
22
Fermín Ayuso y Víctor Manuel Ochoa
Ilustración 7: Representación de la dilatación y erosión morfológica
usada por el algoritmo AMEE
Debe resaltarse que tanto la identificación de endmembers en las imágenes como el
subsiguiente proceso de pureza son problemas computacionalmente demandados. Sin
embargo, se han realizado pocos esfuerzos en la investigación de diseños de
implementaciones paralelas. En particular, algunas técnicas están sujetas a
restricciones no reveladas debido principalmente a su uso en el campo militar y en
aplicaciones de defensa. No obstante, con la reciente explosión de la cantidad y
dimensionalidad de las imágenes hiperespectrales, se espera que el procesamiento
paralelo se convierta en un requerimiento para cada aplicación de sensores remotos.
Es importante recalcar que las técnicas de análisis espectrales se centran sobre el
análisis de datos basados en las propiedades de las firmas espectrales, es decir,
utilizan la información dada por cada píxel vector como un “todo”. Esta
consideración tiene un impacto significativo sobre el diseño de las estrategias de
partición de datos para la paralelización. En particular, se ha mostrado en la literatura
que el ámbito de las técnicas de descomposición aporta flexibilidad y escalabilidad
en el procesamiento paralelo de imágenes. En una imagen hiperespectral, se pueden
hacer dos tipos de particiones: partición del dominio espectral y partición del
dominio espacial. La primera subdivide el volumen en sub-volúmenes hechos de
bandas espectrales continuas y asigna uno o más sub-volúmenes a cada procesador
(ver ilustración 8a). Con este modelo, cada píxel vector es dividido entre varios
procesadores incrementando así el coste de comunicación asociado a la computación
23
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
basada en firmas espectrales. Con el fin de aprovechar lo máximo posible el
paralelismo, adoptamos la partición del dominio espacial (ver ilustración 8b), en a
que el dato es partido en bloques que retienen la información espectral completa.
Existen varias razones que justifican esta elección de incorporar dicha técnica de
partición en la aplicación:
Ilustración 8: Partición dominio espectral y espacial
1. En primer lugar, la partición por el dominio espacial es una aproximación
natural para el procesamiento de imágenes de bajo nivel aunque muchas
operaciones de procesamiento de imagen requieren que se aplique la misma
función a pequeños grupos de elementos alrededor de cada píxel vector
completo en el volumen de la imagen.
2. En segundo lugar, en la partición por el dominio espectral, los cálculos
realizados para cada píxel vector necesitan originarse desde algunos
procesadores y por tanto requieren comunicación entre procesadores muy
masiva. Esto generalmente se percibe como un defecto para los diseños
paralelos, ya que el tiempo de comunicación entre procesadores
incrementaría de forma lineal con el incremento del número de procesadores,
complicando así el diseño de algoritmos paralelos (particularmente en
entornos heterogéneos).
3. Por último, la reutilización del código. Para disminuir la redundancia del
código e incrementar la portabilidad, es deseable reutilizar muchas partes del
código para los algoritmos secuenciales en el diseño de su correspondiente
24
Fermín Ayuso y Víctor Manuel Ochoa
versión paralela y una aproximación del dominio espacial aumenta de forma
importante esta posible reutilización.
En la siguiente sección, mostraremos como el algoritmo paralelo desarrollado en este
trabajo esta diseñado bajo la suposición de que cada píxel vector es únicamente
representado por su firma espectral. Por lo tanto, la introducción de la
descomposición basada en una aproximación en el dominio espectral requeriría
estrategias para combinar los resultados parciales de algunos elementos procesados.
Es por ello por lo que se ha escogido una partición del dominio espacial, para
mantener la información espectral completa de cada píxel.
Procesamiento de la imagen hiperespectral
Antes de explicar la forma en que se procesa la imagen hiperespectral en
nuestro caso, desarrollaremos algunos conceptos para familiarizar al lector con el
procesamiento de imágenes.
La ventana de procesamiento es el grupo de píxeles contiguos al punto en estudio y
que forman una matriz de nxn. Esta matriz, conocida como ventana, se tomará como
referencia a la hora de generar el nuevo valor del punto. La técnica de ventana de
procesamiento se aplica en el tratamiento de imágenes de muchas formas diferentes,
por ejemplo a la hora de aplicar filtros. En nuestro caso se ha optado por “aplanar” la
imagen, calculando la media de la ventana y guardando el resultado en el píxel en
estudio.
Como se ha visto en anteriores secciones, una imagen hiperespectral está formada
por una serie de bandas que forman cada una de las capas de la imagen. Observando
la imagen desde el punto de vista de los píxeles, tendremos una serie de vectores que
representan cada uno de los puntos de la imagen. En el procesamiento de imágenes
hiperespectrales se trata cada píxel como si de un vector se tratase. De esta forma,
nuestro algoritmo de procesado toma para cada píxel de la imagen los nxn vectores
adyacentes al píxel en estudio. El algoritmo recorre todos los puntos de la imagen y
para cada vector calcula la media.
Uno de los puntos interesantes de este trabajo es que el nodo master es el único que
necesita tener físicamente los ficheros de la imagen (archivos .bsq y .hdr). El master
25
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
lee la información necesaria y se la comunica al resto de nodos. De esta forma, se
establece un paso previo para la implementación en una arquitectura GRID.
Algoritmo paralelo para el reparto de carga
Esta sección describe el algoritmo paralelo que ha sido implementado y
utilizado para este estudio. Antes de introducir la descripción del algoritmo, vamos a
formular un problema general de optimización en el contexto de los sistemas
completamente heterogéneos. Asumimos que el procesamiento de elementos en el
sistema pueden ser modelados por un conjunto de recursos informáticos P={pi} |P| i=1,
donde |P| es el número total de procesadores en el sistema, y cada procesador se mide
por su velocidad relativa wi. Con el fin de estimar velocidades relativas para los
procesadores, utilizamos una función benchmark representativa que hace uso de una
computación directamente relacionada con el dominio de la aplicación considerada.
También denominamos W a la cantidad de trabajo total que debe realizar un
algoritmo para imágenes hiperespetrales. Esta cantidad de trabajo depende del
algoritmo que consideremos. Puesto que la mayoría de los algoritmos de procesado
en las aplicaciones de imágenes hiperespectrales engloban repetidas operaciones de
productos vectoriales, podemos medir la cantidad de trabajo implicada en cada
algoritmo en términos de operaciones elementales de multiplicación/acumulación
(MAC). Con la anterior fórmula presente, el procesador pi consigue una parte de αi x
W del trabajo total ejecutado por un determinado algoritmo, donde αi ≥ 0 para 1 ≤ i ≤
P y Σ|p| i=1 αi = 1. Una visión abstracta del problema puede ser simplemente exponer
una arquitectura cliente-servidor, en la que el nodo servidor es responsable de la
distribución de trabajo entre los nodos |P|, y el nodo cliente opera con las firmas
espectrales contenidas en la partición local. Las particiones locales se actualizan
localmente y, dependiendo de los algoritmos, los cálculos resultantes pueden también
intercambiarse entre los procesadores cliente, o entre los servidores y los clientes.
La secuencia general de operaciones ejecutadas se resume como sigue:
26
Fermín Ayuso y Víctor Manuel Ochoa
Algoritmo de reparto de carga entre procesadores
heterogéneos.
1. Generamos la información necesaria, incluyendo el número de procesadores
disponibles en el sistema, |P|, y el número identificativo para cada procesador,
{p i }∣P∣
i =1
2. El procesador master obtiene las N primeras lineas de la imagen
hiperespectral contenida en el fichero bsq, siendo N el número de lineas que
vamos a utilizar para la estimación de carga por parte de cada procesador.
3. Comunicamos a cada procesador, mediante una función de broadcast, estas N
lineas leídas por el master.
4. Cada procesador calcula el tiempo que tarda en procesar estas N lineas y se lo
comunica al master. Para ello, procesa X veces las N lineas y calcula el
tiempo empleado en cada una de las veces. El tiempo que comunica cada
procesador
al
master
se
calcula
de
la
siguiente
forma
X
∑ TimeProccess N 
i =0
, donde TimeProcess (N) es el tiempo empleado en
X
procesar N lineas. El proceso a las que son sometidas las N primeras lineas
de la imagen es el que se detalla en el apartado Procesamiento de la imagen
hiperespectral, y se realiza con un tamaño de ventana fijo e igual a 3x3.
5. El tiempo estimado para cada procesador, una vez que el master lo ha
recibido, es almacenado por el master en una estructura tipo vector, donde el
índice de ese vector indica el identificador del procesador.
6. Una vez que se obtienen los tiempos para todos los procesadores, nos
disponemos a estimar el número de lineas que le corresponden a cada
procesador, dependiendo de los tiempos calculados en el paso anterior. Para
ello, realizamos un reparto inversamente proporcional, consiguiendo así que a
los procesadores que han tardado más tiempo en procesar las N lineas se les
asigne menos lineas de la imagen hiperespectral a procesar. El reparto se
puede resumir en las siguientes fórmulas:
27
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
NumProcessors
NumLines=
∑
i=0

1
×K
Timei
donde K es la constante de proporcionalidad, Timei es el tiempo estimado
para el procesador i, siendo i el identificador de cada procesador y NumLines
el número total de las lineas de la imagen hiperespectral a procesar. Si de esta
última fórmula despejamos el valor de K, obtendremos el valor de la
constante de proporcionalidad
NumLines
K=
NumProcessors

∑
i=0

1
que nos servirá a la

Timei
hora de asignar lineas a cada procesador.
7. Una vez obtenido el valor de la constante de proporcionalidad K, nos
disponemos a repartir el número de lineas que le corresponden a cada uno de
los procesadores que participan de la siguiente forma:
Pi =
K
siendo 0 ≤ i ≤ P
Timei
8. Por último, al tratar con números no enteros, es posible que no se asignen el
total de las lineas de la imagen a procesar. Para solucionar este problema, se
ordena el vector de tiempos estimados para cada procesador y se van
asignando una a una las lineas sobrantes a los procesadores que menos
tiempo han tardado en estimar.
Siguiendo estos pasos, se ha conseguido un reparto de carga equitativo entre los
distintos procesadores que participan en el procesado de la imagen hiperespectral. En
las siguiente sección veremos los resultados obtenidos al aplicar esta metodología,
eligiendo para cada una de las pruebas un tamaño de N (recuérdese que N es el
número de lineas utilizadas para estimar el balanceo) diferente.
Resultados experimentales
Esta sección proporciona una evaluación de la eficiencia del algoritmo
descrito en el apartado anterior. Antes de comenzar con el desarrollo del estudio,
empezaremos describiendo la arquitectura y la imagen empleadas para la evaluación.
28
Fermín Ayuso y Víctor Manuel Ochoa
Arquitectura empleada
Para el desarrollo de este trabajo, se ha utilizado una plataforma de
computación paralela con arquitectura heterogénea. La tabla 1 muestra las
especificaciones de los nodos de esta arquitectura heterogénea, disponible en el
departamento de Astrofísica Extragaláctica, del Instituto de Astrofísica de Andalucía
(CSIC). La arquitectura heterogénea está compuesta por 13 nodos con dos
procesadores cada uno y con una velocidad entre 2,73 y 2,92 Ghz por procesador. El
sistema operativo utilizado por cada uno de los nodos es Linux 2.6.17-5mdv(x86).
La memoria RAM es idéntica para todos los nodos (1,98 GB) y la memoria de
intercambio está entre 977 MB y 2047.3 MB.
NOMBRE
CPU
DISCO
LOCAL
MEMORIA
RAM
SWAP
hyper03
2 x 2.73 Ghz
1559.475 GB
1.98 GB
1953.9 MB
hyper04
2 x 2.73 Ghz
1581.202 GB
1.98 GB
1023.7 MB
hyper05
2 x 2.73 Ghz
1581.206 GB
1.98 GB
1019.7 MB
hyper06
2 x 2.92 Ghz
1621.105 GB
1.98 GB
2047.3 MB
hyper07
2 x 2.92 Ghz
1621.098 GB
1.98 GB
2047.3 MB
hyper09
2 x 2.92 Ghz
1621.098 GB
1.98 GB
2047.3 MB
hyper10
2 x 2.92 Ghz
1621.098 GB
1.98 GB
2047.3 MB
hyper11
2 x 2.73 Ghz
1581.252 GB
1.98 GB
977.0 MB
hyper12
2 x 2.73 Ghz
1581.251 GB
1.98 GB
977.0 MB
hyper13
2 x 2.73 Ghz
1581.251 GB
1.98 GB
977.0 MB
hyper14
2 x 2.73 Ghz 1581.251 GB
1.98 GB
977.0 MB
hyper15
2 x 2.73 Ghz
1581.198 GB
1.98 GB
1019.7 MB
hyper16
2 x 2.73 Ghz
1581.198 GB
1.98 GB
1019.7 MB
SISTEMA
OPERATIVO
Linux
2.6.17-5mdv
(x86)
Tabla 1: Características de la arquitectura heterogénea del Instituto de Astrofísica
de Andalucía
Análisis del rendimiento
Descripción de la imagen utilizada en las pruebas
Una vez que conocemos de forma genérica el concepto de imagen
hiperespectral y la arquitectura en la que se ha realizado el estudio, vamos a intentar
29
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
presentar las características de la imagen utilizada para realizar las pruebas de
estimación de carga entre los distintos procesadores, del tiempo de ejecución, del
procesamiento de la imagen, etc.
Imagen AVJRBP_RAD
El algoritmo paralelo desarrollado ha sido aplicado a la imagen obtenida por
el sensor AVIRIS, operado por el Jet Propulsion Laboratory de la NASA, sobre la
Jasper Ridge Biological Preserve (JRBP) de California. Estos datos están
disponibles en unidades de radiancia (obtenidos de http://aviris.jpl.nasa.gov ). El
conjunto de datos, adquiridos en abril de 1998 consiste en 512 x 614 píxeles y 224
bandas espectrales con una resolución del terreno de 20 metros, una resolución
espectral de 10nm, y 16-bits de resolución radiométrica (tamaño de la imagen: 134
MB). La ilustración 5 muestra una banda espectral de la imagen.
Ilustración 9: Imagen del sensor AVIRIS sobre la Jasper Ridge Biological Preserve
(JRBP) de California
En la ilustración 10 se muestran firmas espectrales en unidades de radiancia
asociadas con los principales componentes que constituyen la JRBP. Las firmas,
denotadas como г1 (suelo), г2 (bosques), г3 (hierba seca), г4 (vegetación “chaparral”)
y г5 (sombra), fueron obtenidas de la escena de la imagen usando un método híbrido,
30
Fermín Ayuso y Víctor Manuel Ochoa
combinando inspecciones visuales e información a cerca de la escena. De forma
específica el conocimiento del terreno se usó para identificar zonas de vegetación
homogénea y áreas de sombra y suelo en la imagen.
Ilustración 10: Firma espectral seleccionada de la imagen
AVJRBP_RAD
Análisis del rendimiento en un cluster heterogéneo
Las primeras pruebas desarrolladas sobre esta imagen han sido las de
procesado, siguiendo el método descrito en el apartado Procesamiento de la imagen
hiperespectral, para el caso de una ejecución secuencial y con distintos tamaños de
ventana. En la tabla 2 se muestran los tiempos de ejecución, expresados en segundos,
para cada nodo de la arquitectura, para los diferentes tamaños de ventana escogidos.
Nodo
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
hyper03
29,66
95,33
237,33
424
hyper04
27,66
90,33
227,5
413
hyper05
30,66
100
245
436
hyper06
18,33
55
118
204
hyper07
18,66
55
118
206
hyper09
18,66
55
117
205
hyper10
18,66
55
118
206
hyper11
34,66
104
264
454
hyper12
30
96
236
427
hyper13
28,66
92
233
419
hyper14
29,66
96
242
432
hyper15
29,33
96
235
418
31
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
hyper16
28,66
93
233
425
Tabla 2: Tiempos de ejecución en serie para cada nodo de la arquitectura
heterogénea
Estudio del rendimiento de la versión paralela diseñada
Los resultados que se muestran a continuación son los de un estudio detallado
del comportamiento de la versión paralela desarrollada para una multitud de pruebas
detalladas en los siguientes puntos. Hay que tener en cuenta que los tiempos que se
muestran son el resultado de haber ejecutado 10 veces cada prueba, mostrando los
tiempos medios resultantes. Lo que presentamos como balanceo medio es la media
de los balanceos obtenidos en cada una de estas 10 ejecuciones, y la varianza y
desviación típica mostradas para cada caso han sido calculadas en referencia a este
valor del balanceo. El balanceo global es obtenido de la siguiente forma:
Tiempo mayor
. Siendo Tiempomayor el mayor valor de los tiempos medios de
Tiempo menor
procesamiento de los distintos procesadores y Tiempomenor el menor de ellos. También
cabe resaltar que el Tiempo de proceso-Total es el tiempo de procesamiento medio.
El tiempo que se muestra está medido en segundos.
Para todas las pruebas realizadas, se ha tomado el procesador master como uno de
los dos procesadores del nodo hyper03.
Todas las pruebas realizadas han sido llevadas a cabo variando el número de
procesadores entre 2 y 26, que es el máximo que nos permitía la arquitectura.
Resultados del estudio con un tamaño de la función benchmark de 2
lineas
Las siguientes tablas muestran el comportamiento de la versión paralela cuando
estimamos la carga de los procesadores con 2 lineas para la función benchmark.
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
9,03837
33,615
68,692
125,005
T. en calcular Workload - Master
0,037222
0,0371
0,0372
0,037
Tiempo procesar Slave
8,77903
30,893
77,74
126,167
T. en calcular Workload - Slave
0,0371025
0,0373
0,0371
0,0373
Tiempo de proceso - Total
9,342234
33,9884
78,221
128,702
1,0312
1,0943
1,138
1,044
Balanceo Medio
32
Fermín Ayuso y Víctor Manuel Ochoa
Varianza
0,0004141
0,04023
0,0367
0,0008
Desviación típica
0,02035
0,2001
0,192
0,028
Balanceo Global
1,0295
1,088
1,132
1,009
Tabla 3: Resultados para una estimación de 2 líneas y 2 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
4,496112
15,392
34,578
60,51
T. en calcular Workload - Master
0,0372042
0,0371
0,03716
0,0371
Tiempo procesar Slave 1
4,439994
15,449
34,527
61,894
T. en calcular Workload - Slave 1
0,03705
0,0371
0,0374
0,0372
Tiempo procesar Slave 2
4,390693
15,386
33,56
61,776
T. en calcular Workload - Slave 2
0,037253
0,0372
0,0385
0,0373
Tiempo procesar Slave 3
4,279434
15,132
32,847
59,874
T. en calcular Workload - Slave 3
0,0375
0,0382
0,0382
0,0371
Tiempo de proceso - Total
5,09158
16,197
35,714
63,332
Balanceo Medio
1,06113
1,0713
1,11
1,062
Varianza
0,00099
0,0083
0,0144
0,00059
Desviación típica
0,031555
0,0913
0,12
0,0244
Balanceo Global
1,0506
1,021
1,053
1,034
Tiempo de proceso - Master
Tabla 4: Resultados para una estimación de 2 líneas y 4 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
2,09415
7,163
15,839
27,772
T. en calcular Workload - Master
0,03705
0,0371
0,0372
0,0382
Tiempo procesar Slave 1
2,05879
7,418
16,37
30,322
T. en calcular Workload - Slave 1
0,03826
0,371
0,0371
0,0371
Tiempo procesar Slave 2
2,05661
7,385
16,39
30,391
T. en calcular Workload - Slave 2
0,03712
0,0371
0,0373
0,0372
Tiempo procesar Slave 3
2,071311
7,29
16,124
30,998
T. en calcular Workload - Slave 3
0,03713
0,037
0,0375
0,0373
Tiempo procesar Slave 4
2,0652
7,278
16,123
29,908
T. en calcular Workload - Slave 4
0,03714
0,0371
0,037
0,0372
2,0011
7,196
16,144
29,058
T. en calcular Workload - Slave 5
0,03823
0,0371
0,0371
0,0384
Tiempo procesar Slave 6
2,3083
7,947
17,933
32,139
T. en calcular Workload - Slave 6
0,02986
0,030
0,0297
0,0297
Tiempo procesar Slave 7
2,3016
7,715
17,144
30,336
Tiempo procesar Slave 5
33
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
T. en calcular Workload - Slave 7
0,02987
0,03
0,0298
0,0297
Tiempo de proceso - Total
3,0082
8,243
18,167
32,905
Balanceo Medio
1,1806
1,123
1,142
1,211
Varianza
0,00821
0,00047
0,0006
0,163
Desviación típica
0,091
0,0216
0,0246
0,128
Balanceo Global
1,1535
1,109
1,132
1,157
Tabla 5: Resultados para una estimación de 2 líneas y 8 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
1,0408
3,503
7,914
13,83
T. en calcular Workload - Master
0,03711
0,0371
0,0371
0,0372
Tiempo de proceso - Slave 1
1,03534
3,712
8,473
15,874
T. en calcular Workload - Slave 1
0,03827
0,0384
0,0382
0,0371
Tiempo de proceso - Slave 2
1,0426
3,689
8,682
15,907
T. en calcular Workload - Slave 2
0,03711
0,0383
0,0371
0,0371
Tiempo de proceso - Slave 3
1,0272
3,724
8,601
15,748
T. en calcular Workload - Slave 3
0,03715
0,037
0,0372
0,0371
Tiempo de proceso - Slave 4
1,0275
3,782
8,625
15,755
T. en calcular Workload - Slave 4
0,0384
0,0372
0,37
0,0371
Tiempo de proceso - Slave 5
1,0339
3,691
8,641
15,924
T. en calcular Workload - Slave 5
0,0371
0,037
0,037
0,0371
Tiempo de proceso - Slave 6
1,086
3,848
8,805
16,02
T. en calcular Workload - Slave 6
0,0299
0,0302
0,0298
0,03
Tiempo de proceso - Slave 7
1,072
3,914
8,551
16,014
T. en calcular Workload - Slave 7
0,0309
0,0297
0,031
0,0298
Tiempo de proceso - Slave 8
1,0837
3,782
8,662
15,802
T. en calcular Workload - Slave 8
0,0299
0,0298
0,0298
0,0298
Tiempo de proceso - Slave 9
1,0787
3,725
8,587
15,659
0,03
0,0298
0,0299
0,0298
Tiempo de proceso - Slave 10
1,0359
3,736
8,337
15,692
T. en calcular Workload - Slave 10
0,0308
0,0298
0,0308
0,0297
Tiempo de proceso - Slave 11
1,0573
3,704
8,567
15,63
T. en calcular Workload - Slave 11
0,0297
0,0297
0,0298
0,0297
Tiempo de proceso - Slave 12
1,0659
3,724
8,525
15,533
T. en calcular Workload - Slave 12
0,0297
0,0299
0,0301
0,0298
Tiempo de proceso - Slave 13
1,0687
3,681
8,471
15,562
T. en calcular Workload - Slave 13
0,0297
0,0297
0,03
0,0299
Tiempo de proceso - Slave 14
0,998
3,65
8,323
15,232
T. en calcular Workload - Slave 14
0,0372
0,0373
0,0372
0,0376
T. en calcular Workload - Slave 9
34
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 15
0,976
3,439
7,588
13,628
T. en calcular Workload - Slave 15
0,0371
0,0371
0,0372
0,0372
Tiempo de proceso - Total
2,1495
4,705
9,188
16,397
Balanceo Medio
1,2352
1,192
1,219
1,194
Varianza
0,0121
0,0039
0,0084
0,0005
Desviación típica
0,11
0,0628
0,0914
0,0232
Balanceo Global
1,113
1,138
1,113
1,176
Tabla 6: Resultados para una estimación de 2 líneas y 16 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
0,6793
2,302
5,185
9,508
T. en calcular Workload - Master
0,037
0,0371
0,0371
0,037
Tiempo procesar Slave 1
0,6985
2,538
5,973
11,451
T. en calcular Workload - Slave 1
0,0372
0,0383
0,0382
0,0374
0,68
2,578
6,131
11,562
T. en calcular Workload - Slave 2
0,0371
0,0371
0,0371
0,0371
Tiempo procesar Slave 3
0,683
2,505
6,038
11,374
T. en calcular Workload - Slave 3
0,0371
0,038
0,0371
0,037
Tiempo procesar Slave 4
0,6777
2,53
6,043
11,25
T. en calcular Workload - Slave 4
0,0372
0,0378
0,0372
0,0382
Tiempo procesar Slave 5
0,681
2,551
6,079
11,392
T. en calcular Workload - Slave 5
0,0371
0,0371
0,0371
0,0371
Tiempo procesar Slave 6
0,7052
2,518
5,768
10,715
T. en calcular Workload - Slave 6
0,0298
0,0299
0,0298
0,298
Tiempo procesar Slave 7
0,686
2,54
5,784
10,65
T. en calcular Workload - Slave 7
0,0299
0,0297
0,0297
0,0297
Tiempo procesar Slave 8
0,687
2,513
5,754
10,609
T. en calcular Workload - Slave 8
0,297
0,0297
0,0299
0,0299
Tiempo procesar Slave 9
0,688
2,505
5,751
10,671
T. en calcular Workload - Slave 9
0,0297
0,0297
0,0297
0,297
Tiempo procesar Slave 10
0,691
2,487
5,760
10,656
T. en calcular Workload - Slave 10
0,0299
0,0299
0,0299
0,297
0,68
2,497
5,678
10,598
T. en calcular Workload - Slave 11
0,0299
0,0298
0,298
0,0298
Tiempo procesar Slave 12
0,691
2,446
5,673
10,492
T. en calcular Workload - Slave 12
0,0298
0,0298
0,0298
0,0298
Tiempo procesar Slave 13
0,666
2,405
5,537
10,383
T. en calcular Workload - Slave 13
0,0298
0,0297
0,0297
0,0298
Tiempo procesar Slave 14
0,6495
2,413
5,699
10,91
Tiempo procesar Slave 2
Tiempo procesar Slave 11
35
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
T. en calcular Workload - Slave 14
0,0371
0,0372
0,0373
0,0383
Tiempo procesar Slave 15
0,646
2,418
5,655
11,181
T. en calcular Workload - Slave 15
0,0371
0,037
0,0377
0,0371
Tiempo procesar Slave 16
0,643
2,441
5,743
11,127
T. en calcular Workload - Slave 16
0,0375
0,0373
0,0373
0,037
Tiempo procesar Slave 17
0,649
2,405
5,715
11,019
T. en calcular Workload - Slave 17
0,0371
0,0372
0,0372
0,0371
Tiempo procesar Slave 18
0,648
2,433
5,71
11,122
T. en calcular Workload - Slave 18
0,0371
0,0371
0,037
0,0371
Tiempo procesar Slave 19
0,652
2,423
5,745
11,025
T. en calcular Workload - Slave 19
0,0371
0,0372
0,0371
0,0372
Tiempo procesar Slave 20
0,665
2,439
5,773
11,137
T. en calcular Workload - Slave 20
0,037
0,0372
0,0371
0,0373
Tiempo procesar Slave 21
0,65
2,415
5,71
11,005
T. en calcular Workload - Slave 21
0,037
0,0372
0,0372
0,0371
Tiempo procesar Slave 22
0,653
2,411
5,755
11,137
T. en calcular Workload - Slave 22
0,0372
0,0372
0,0372
0,0373
Tiempo procesar Slave 23
0,636
2,369
5,699
11,09
T. en calcular Workload - Slave 23
0,0381
0,0384
0,0372
0,037
Tiempo procesar Slave 24
0,655
2,431
5,768
11,127
T. en calcular Workload - Slave 24
0,0377
0,0371
0,0373
0,0372
0,611
2,203
4,884
8,782
T. en calcular Workload - Slave 25
0,0371
0,0371
0,0371
0,0371
Tiempo de proceso - Total
1,766
3,505
6,461
11,723
Balanceo Medio
1,2413
1,254
1,271
1,33
Varianza
0,0061
0,006
0,0006
0,0015
Desviación típica
0,0783
0,0774
0,0235
0,0386
Balanceo Global
1,154
1,17
1,255
1,317
Tiempo procesar Slave 25
Tabla 7: Resultados para una estimación de 2 líneas y 26 procesadores
Para una comprensión más sencilla de estas tablas, mostramos las siguientes gráficas,
que resumen todo lo expuesto en las tablas:
36
Fermín Ayuso y Víctor Manuel Ochoa
Balanceo
para función benchmark con 2 líneas
1,4
1,3
balanceo
5x5
9x9
1,2
7x7
9x9
1,1
1
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 1: Balanceo para una función de estimación con 2 lineas
Efecto número de procesadores (tiempo)
para función benchmark con 2 líneas
130
120
110
100
tiempo
90
80
5x5
70
9x9
60
7x7
50
9x9
40
30
20
10
0
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 2: Efecto del número de procesadores para función de estimación de carga
con 2 lineas
Como puede observarse en las tablas y gráficas, el balanceo conseguido con una
función benchmark utilizando 2 lineas (véase Gráfica 1) varía entre 1 y 1,2,
exceptuando el caso de 26 procesadores y una ventana de 9x9, que aumenta el
37
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
balanceo hasta 1,3. Con respecto al efecto del número de procesadores con respecto
al tiempo total de ejecución, podemos observar, en la Gráfica 2, como conforme
aumentamos el número de procesadores, el tiempo de ejecución va disminuyendo.
Resultados del estudio con un tamaño de la función benchmark de 5
líneas
Los siguientes datos mostrados son resultado de haber realizado las pruebas con 5
lineas para la estimación de carga.
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
9.56163
31.60625
70.9862
125.35388
Tiempo en WORKLOAD MASTER
0.14811
0.14792
0.14750
0.14788
Tiempo de proceso - Slave
8.75267
31.6841
69.20472
123.19242
T. en calcular Workload - Slave
0.15110
0.14722
0.14712
0.14742
Tiempo de proceso - Total
9.88902
32.2525
71.78222
126.22289
Balanceo Medio
1.10081
1.01968
1.04116
1.02682
Varianza
0.03090
0.00011
0.00112
0.00061
Desviación típica
0.17579
0.01079
0.03356
0.02483
Balanceo Global
1.09242
1.00246
1.02574
1.01754
Tabla 8: Resultados para una estimación de 5 líneas y 2 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
4.50564
15.47644
33.90883
61.06516
Tiempo en WORKLOAD MASTER
0.14520
0.14647
0.14584
0.14615
Tiempo de proceso - Slave 1
4.44562
15.44712
33.8602
62.85202
T. en calcular Workload - Slave 1
0.14826
0.14506
0.14655
0.14614
Tiempo de proceso - Slave 2
4.38932
15.55636
34.91404
62.98738
T. en calcular Workload - Slave 2
0.14729
0.14538
0.14621
0.14533
Tiempo de proceso - Slave 3
4.36154
15.13916
33.65559
59.47012
T. en calcular Workload - Slave 3
0.14635
0.14637
0.14760
0.14650
Tiempo de proceso - Total
5.10455
16.20939
35.40721
64.30177
Balanceo Medio
1.06108
1.05335
1.06107
1.08420
Varianza
0.00041
0.00030
0.00062
0.00183
Desviación típica
0.02033
0.01743
0.02490
0.04281
Balanceo Global
1.03303
1.02755
1.03739
1.05914
Tabla 9: Resultados para una estimación de 5 líneas y 4 procesadores
Procesadores
38
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo procesar Master
2.03693
6.91480
15.09613
28.33531
Tiempo en WORKLOAD MASTER
0.14623
0.14791
0.14967
0.14566
Tiempo de proceso - Slave 1
2.06263
7.25373
16.10629
29.27916
T. en calcular Workload - Slave 1
0.14620
0.14542
0.14611
0.14649
Tiempo de proceso - Slave 2
2.02496
7.24304
16.14069
29.30087
T. en calcular Workload - Slave 2
0.14786
0.14663
0.14923
0.14801
Tiempo de proceso - Slave 3
2.02443
7.13329
16.10551
29.55757
T. en calcular Workload - Slave 3
0.14695
0.14730
0.14635
0.14607
Tiempo de proceso - Slave 4
2.04442
7.16982
16.10703
29.38170
T. en calcular Workload - Slave 4
0.14600
0.14707
0.14691
0.14745
Tiempo de proceso - Slave 5
2.00991
7.14290
16.11520
29.32384
T. en calcular Workload - Slave 5
0.14634
0.14769
0.14686
0.14650
Tiempo de proceso - Slave 6
2.42339
8.38925
18.51247
33.16543
T. en calcular Workload - Slave 6
0.11048
0.11038
0.11093
0.11077
Tiempo de proceso - Slave 7
2.36586
8.11396
17.95497
31.29082
T. en calcular Workload - Slave 7
0.11002
0.11113
0.10995
0.11109
Tiempo de proceso - Total
2.94118
8.62237
18.75452
33.41188
Balanceo Medio
1.23115
1.22670
1.23174
1.18839
Varianza
0.00202
0.00271
0.001672
0.00061
Desviación típica
0.04497
0.052112
0.04089
0.02487
Balanceo Global
1.20572
1.21323
1.22630
1.17046
Tabla 10: Resultados para una estimación de 5 líneas y 8 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
0.99141
3.40248
7.49344
13.63973
Tiempo en WORKLOAD MASTER
0.14703
0.14593
0.14788
0.14573
Tiempo de proceso - Slave 1
1.00712
3.60796
8.25618
15.4663
T. en calcular Workload - Slave 1
0.147992
0.14957
0.14636
0.14677
Tiempo de proceso - Slave 2
0.986457
3.65392
8.20466
15.38166
T. en calcular Workload - Slave 2
0.149131
0.14558
0.14557
0.14565
Tiempo de proceso - Slave 3
0.98648
3.63811
8.18537
15.25295
T. en calcular Workload - Slave 3
0.14849
0.14705
0.14830
0.146860
Tiempo de proceso - Slave 4
.99531
3.62897
8.25190
15.43083
T. en calcular Workload - Slave 4
0.14674
0.14571
0.14549
0.14603
Tiempo de proceso - Slave 5
0.98803
3.61305
8.09046
15.16007
T. en calcular Workload - Slave 5
0.14697
0.14599
0.14632
0.14723
Tiempo de proceso - Slave 6
1.10892
3.91310
8.64446
16.01636
T. en calcular Workload - Slave 6
0.11108
0.11031
0.11103
0.11188
Tiempo de proceso - Slave 7
1.08637
3.90995
8.81045
16.22883
39
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
T. en calcular Workload - Slave 7
0.11023
0.10999
0.11073
0.11016
Tiempo de proceso - Slave 8
1.07958
3.86887
8.77280
15.89047
T. en calcular Workload - Slave 8
0.11069
0.11174
0.11094
0.11271
Tiempo de proceso - Slave 9
1.08037
3.91587
8.79493
16.04452
T. en calcular Workload - Slave 9
0.11165
0.11015
0.11037
0.10967
Tiempo de proceso - Slave 10
1.09456
3.85673
8.79787
16.12496
T. en calcular Workload - Slave 10
0.11025
0.11130
0.11112
0.11129
Tiempo de proceso - Slave 11
1.08507
3.82890
8.78660
16.03650
T. en calcular Workload - Slave 11
0.11026
0.11170
0.11011
0.11067
Tiempo de proceso - Slave 12
1.08246
3.90804
8.90657
16.07497
T. en calcular Workload - Slave 12
0.11232
0.11079
0.11015
0.11236
Tiempo de proceso - Slave 13
1.08632
3.89748
8.76288
16.04362
T. en calcular Workload - Slave 13
0.11024
0.11013
0.11066
0.11013
Tiempo de proceso - Slave 14
1.00969
3.58366
8.14148
15.63254
T. en calcular Workload - Slave 14
0.14734
0.14609
0.14728
0.14640
Tiempo de proceso - Slave 15
0.96251
3.40794
7.45222
13.58077
T. en calcular Workload - Slave 15
0.14659
0.14648
0.14759
0.14734
Tiempo de proceso - Total
2.21031
4.57775
9.15289
16.60529
Balanceo Medio
1.18681
1.18351
1.22327
1.22064
Varianza
.002403
0.00013
0.00057
0.00063
Desviación típica
0.04902
0.01183
0.02392
0.02521
Balanceo Global
1.15211
1.15088
1.19515
1.19498
Tabla 11: Resultados para una estimación de 5 líneas y 16 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
0.64094
2.29181
4.9163
8.89102
Tiempo en WORKLOAD MASTER
0.14700
0.14778
0.14893
0.14689
Tiempo de proceso - Slave 1
0.67007
2.48433
5.77578
11.10864
T. en calcular Workload - Slave 1
0.14805
0.14721
0.14662
0.14870
Tiempo de proceso - Slave 2
0.64608
2.40350
5.83067
11.19150
T. en calcular Workload - Slave 2
0.14921
0.14940
0.14987
0.14884
Tiempo de proceso - Slave 3
0.65265
2.42748
5.78386
11.16298
T. en calcular Workload - Slave 3
0.14877
0.14758
0.14926
0.14769
Tiempo de proceso - Slave 4
0.67098
2.48375
5.87789
11.31753
T. en calcular Workload - Slave 4
0.14868
0.14816
0.14832
0.14877
Tiempo de proceso - Slave 5
0.65367
2.40653
5.73163
11.11755
T. en calcular Workload - Slave 5
0.14754
2.51039
0.14683
0.14802
Tiempo de proceso - Slave 6
0.70073
0.11119
5.8638
10.54654
T. en calcular Workload - Slave 6
0.11071
0.11112
0.11062
0.11327
40
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 7
0.70512
2.5373
5.77266
10.66129
T. en calcular Workload - Slave 7
0.11029
0.11015
0.11178
0.11078
Tiempo de proceso - Slave 8
0.69353
2.5393
5.69871
10.65942
T. en calcular Workload - Slave 8
0.11178
0.11052
0.11265
0.11101
Tiempo de proceso - Slave 9
0.70505
2.52076
5.79749
10.59165
T. en calcular Workload - Slave 9
0.11124
0.11025
0.11156
0.11176
Tiempo de proceso - Slave 10
0.70406
2.5760
5.78772
10.65373
T. en calcular Workload - Slave 10
0.11163
0.11037
0.11149
0.11106
Tiempo de proceso - Slave 11
0.70517
2.5064
5.82943
10.67997
T. en calcular Workload - Slave 11
0.11090
0.11199
0.11032
0.11078
Tiempo de proceso - Slave 12
0.69150
2.48359
5.79224
10.66911
T. en calcular Workload - Slave 12
0.11256
0.113053
0.11120
0.10982
Tiempo de proceso - Slave 13
0.69519
2.5667
5.81688
10.66743
T. en calcular Workload - Slave 13
0.11076
0.110356
0.11135
0.11080
Tiempo de proceso - Slave 14
0.66660
2.43999
5.88116
11.22284
T. en calcular Workload - Slave 14
0.14735
0.148937
0.14842
0.14948
Tiempo de proceso - Slave 15
0.65043
2.45425
5.78055
11.04998
T. en calcular Workload - Slave 15
0.14809
0.14789
0.14648
0.14941
Tiempo de proceso - Slave 16
0.64905
2.433114
5.71459
11.27652
T. en calcular Workload - Slave 16
.147645
0.149397
0.14797
0.14796
Tiempo de proceso - Slave 17
0.64889
2.37281
5.77251
11.10459
T. en calcular Workload - Slave 17
0.14768
0.152024
0.14823
.014713
Tiempo de proceso - Slave 18
0.66209
2.42967
5.90841
11.14797
T. en calcular Workload - Slave 18
0.14812
0.15030
0.14792
0.14674
Tiempo de proceso - Slave 19
0.64555
2.38215
5.78856
11.21363
T. en calcular Workload - Slave 19
0.14879
0.148166
0.14748
0.14861
Tiempo de proceso - Slave 20
0.65680
2.47135
5.76808
11.08189
T. en calcular Workload - Slave 20
0.14984
0.14951
0.14926
0.14941
Tiempo de proceso - Slave 21
0.64936
2.44927
5.75567
11.07066
T. en calcular Workload - Slave 21
0.14893
0.14807
0.14895
0.14877
Tiempo de proceso - Slave 22
0.65314
2.505284
5.73977
11.21290
T. en calcular Workload - Slave 22
0.14836
0.14899
0.14695
0.15040
Tiempo de proceso - Slave 23
0.64498
2.42961
5.77876
11.18399
T. en calcular Workload - Slave 23
0.14949
0.14881
0.14872
0.14801
Tiempo de proceso - Slave 24
0.65375
2.43157
5.74954
11.22162
T. en calcular Workload - Slave 24
0.14839
0.150864
0.14863
0.14775
Tiempo de proceso - Slave 25
0.62231
2.18372
4.95372
8.97336
T. en calcular Workload - Slave 25
0.14825
0.147772
0.14776
0.14844
Tiempo de proceso - Total
1.73041
3.42097
6.48652
11.55899
Balanceo Medio
1.23501
1.21459
1.2566
1.30161
41
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Varianza
0.00409
0.00039
0.00065
0.00027
Desviación típica
0.06400
0.01979
0.02558
0.01649
Balanceo Global
1.13316
1.17964
1.19434
1.27291
Tabla 12: Resultados para una estimación de 5 líneas y 26 procesadores
Balanceo
para función benchmark con 5 líneas
1,3
1,2
balanceo
1,1
1
9x9
0,9
9x9
7x7
9x9
0,8
0,7
0,6
0,5
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 3: Balanceo para una función de estimación de carga con 5 lineas
Tras estos resultados, podemos observar que conforme aumenta el número de
procesadores, el tiempo total de ejecución disminuye. En la Gráfica 3 podemos
observar el efecto del balanceo para distintos números de procesadores y tamaños de
ventana utilizando una función de estimación de carga con 5 lineas. Como se puede
observar, el balanceo oscila entre 1 y 1.2, no llegando nunca a superar el 1.3
Resultados del estudio con un tamaño de la función benchmark de 10
líneas
En este apartado mostramos los datos obtenidos al realizar las pruebas con 10 lineas
para estimación de carga.
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
9,015
30,661
69,44
140,041
T. en calcular Workload - Master
0,323
0,323
0,318
0,321
Tiempo procesar Slave
9,233
32,778
69,725
126,719
42
Fermín Ayuso y Víctor Manuel Ochoa
T. en calcular Workload - Slave
0,32
0,32
0,322
0,322
Tiempo de proceso - Total
9,76
33,453
71,321
143,628
Balanceo Medio
1,075
1,0942
1,041
1,163
Varianza
0,0191
0,427
0,00119
0,0679
Desviación típica
0,138
0,206
0,0345
0,260
Balanceo Global
1,024
1,0911
1,004
1,11
Tabla 13: Resultados para una estimación de 10 líneas y 2 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
4,456
15,247
33,339
60,165
T. en calcular Workload - Master
0,321
0,0321
0,32
0,318
Tiempo procesar Slave 1
4,45
15,91
34,116
62,084
T. en calcular Workload - Slave 1
0,319
0,32
0,317
0,321
Tiempo procesar Slave 2
4,372
15,480
34,576
62,569
T. en calcular Workload - Slave 2
0,32
0,32
0,32
0,322
Tiempo procesar Slave 3
4,326
15,234
33,853
61,923
T. en calcular Workload - Slave 3
0,321
0,32
0,321
0,32
Tiempo de proceso - Total
5,073
16,382
35,309
64,265
Balanceo Medio
1,059
1,08
1,0616
1,074
Varianza
0,00086
0,004
0,000948
0,000984
Desviación típica
0,0293
0,0642
0,0308
0,0314
Balanceo Global
1,03
1,0435
1,0371
1,04
Tabla 14: Resultados para una estimación de 10 líneas y 4 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
2,0824
7,078
15,371
27,617
0,32
0,32
0,322
0,325
Tiempo procesar Slave 1
2,1004
7,257
16,219
29,565
T. en calcular Workload - Slave 1
0,322
,032
0,321
0,321
Tiempo procesar Slave 2
2,0559
7,363
16,188
29,784
T. en calcular Workload - Slave 2
0,3208
0,317
0,323
0,321
Tiempo procesar Slave 3
2,0962
7,198
16,219
29,913
T. en calcular Workload - Slave 3
0,3173
0,318
0,324
0,319
Tiempo procesar Slave 4
2,0077
7,15
16,15
29,73
T. en calcular Workload - Slave 4
0,3224
0,318
0,321
0,323
Tiempo procesar Slave 5
2,0305
7,16
17,026
29,679
T. en calcular Workload - Slave 5
0,3184
0,317
0,316
0,3178
Tiempo de proceso - Master
T. en calcular Workload - Master
43
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo procesar Slave 6
2,3284
8,2
18,196
32,547
T. en calcular Workload - Slave 6
0,2507
0,249
0,25
0,249
Tiempo procesar Slave 7
2,3104
7,918
17,52
30,685
T. en calcular Workload - Slave 7
0,2502
0,249
0,249
0,251
Tiempo de proceso - Total
2,989
8,434
19,043
32,189
Balanceo Medio
1,185
1,179
1,224
1,179
Varianza
0,00053
0,0004
0,0149
0,00064
Desviación típica
0,0232
0,021
0,122
0,0253
Balanceo Global
1,1597
1,1585
1,184
1,083
Tabla 15: Resultados para una estimación de 10 líneas y 8 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
1,0132
3,502
7,735
13,749
T. en calcular Workload - Master
0,3212
0,319
0,32
0,317
Tiempo de proceso - Slave 1
1,0483
3,711
8,485
15,757
T. en calcular Workload - Slave 1
0,31829
0,321
0,32
0,325
Tiempo de proceso - Slave 2
1,034
3,688
8,61
15,739
T. en calcular Workload - Slave 2
0,3184
0,319
0,318
0,318
Tiempo de proceso - Slave 3
1,0064
3,696
8,456
15,684
T. en calcular Workload - Slave 3
0,3216
0,319
0,321
0,323
Tiempo de proceso - Slave 4
1,029
3,676
8,514
15,484
T. en calcular Workload - Slave 4
0,3189
0,32
0,318
0,324
Tiempo de proceso - Slave 5
1,0241
3,664
8,438
15,465
T. en calcular Workload - Slave 5
0,3179
0,319
0,322
0,321
1,12
3,867
8,687
15,883
T. en calcular Workload - Slave 6
0,2484
0,252
0,25
0,25
Tiempo de proceso - Slave 7
1,0878
3,818
8,709
15,893
T. en calcular Workload - Slave 7
0,2499
0,25
0,248
0,25
Tiempo de proceso - Slave 8
1,0645
3,709
8,472
15,92
T. en calcular Workload - Slave 8
0,2497
0,251
0,251
0,25
Tiempo de proceso - Slave 9
1,0594
3,749
8,581
15,641
T. en calcular Workload - Slave 9
0,2495
0,251
0,251
0,252
Tiempo de proceso - Slave 10
1,0646
3,761
8,585
15,909
T. en calcular Workload - Slave 10
0,2517
0,251
0,2518
0,248
Tiempo de proceso - Slave 11
1,0564
3,776
8,596
15,894
T. en calcular Workload - Slave 11
0,2511
0,248
0,251
0,25
Tiempo de proceso - Slave 12
1,0938
3,779
8,674
15,751
T. en calcular Workload - Slave 12
0,2495
0,249
0,2496
0,25
Tiempo de proceso - Slave 13
1,0845
3,781
8,641
15,886
Tiempo de proceso - Slave 6
44
Fermín Ayuso y Víctor Manuel Ochoa
T. en calcular Workload - Slave 13
0,2497
0,249
0,249
0,248
Tiempo de proceso - Slave 14
0,984
3,577
8,417
15,655
T. en calcular Workload - Slave 14
0,3216
0,318
0,322
0,320
Tiempo de proceso - Slave 15
0,957
3,348
7,681
13,956
T. en calcular Workload - Slave 15
0,3161
0,319
0,317
0,317
Tiempo de proceso - Total
2,249
4,715
9,145
16,331
Balanceo Medio
1,1978
1,182
1,165
1,182
Varianza
0,00274
0,000254
0,000396
0,000507
Desviación típica
0,0524
0,159
0,0199
0,0225
Balanceo Global
1,17
1,155
1,134
1,16
Tabla 16: Resultados para una estimación de 10 líneas y 16 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
0,651
2,302
5,001
9,177
T. en calcular Workload - Master
0,322
0,32
0,318
0,319
Tiempo procesar Slave 1
0,689
2,537
5,893
11,294
T. en calcular Workload - Slave 1
0,322
0,322
0,319
0,319
Tiempo procesar Slave 2
0,668
2,554
5,912
11,316
T. en calcular Workload - Slave 2
0,321
0,317
0,319
0,317
Tiempo procesar Slave 3
0,668
2,546
5,909
11,335
T. en calcular Workload - Slave 3
0,32
0,317
0,319
0,320
Tiempo procesar Slave 4
0,678
2,515
5,814
11,196
T. en calcular Workload - Slave 4
0,3199
0,319
0,319
0,321
Tiempo procesar Slave 5
0,668
2,515
5,771
11,128
T. en calcular Workload - Slave 5
0,318
0,323
0,318
0,318
Tiempo procesar Slave 6
0,713
2,574
5,677
10,714
T. en calcular Workload - Slave 6
0,25
0,25
0,252
0,248
Tiempo procesar Slave 7
0,709
2,55
5,646
10,626
T. en calcular Workload - Slave 7
0,251
0,25
0,251
0,251
Tiempo procesar Slave 8
0,716
2,539
5,672
10,634
T. en calcular Workload - Slave 8
0,249
0,25
0,25
0,25
Tiempo procesar Slave 9
0,712
2,55
5,644
10,575
T. en calcular Workload - Slave 9
0,248
0,25
0,2495
0,248
Tiempo procesar Slave 10
0,71
2,535
5,705
10,507
T. en calcular Workload - Slave 10
0,25
0,252
0,25
0,251
Tiempo procesar Slave 11
0,692
2,483
5,66
10,428
T. en calcular Workload - Slave 11
0,249
0,25
0,25
0,253
Tiempo procesar Slave 12
0,689
2,514
5,705
10,675
T. en calcular Workload - Slave 12
0,25
0,249
0,249
0,248
45
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo procesar Slave 13
0,682
2,494
5,71
10,606
T. en calcular Workload - Slave 13
0,249
0,248
0,249
0,249
Tiempo procesar Slave 14
0,638
2,371
5,982
11,306
T. en calcular Workload - Slave 14
0,322
0,319
0,31
0,321
Tiempo procesar Slave 15
0,64
2,397
5,783
11,297
T. en calcular Workload - Slave 15
0,319
0,319
0,318
,0319
Tiempo procesar Slave 16
0,643
2,366
5,878
11,339
T. en calcular Workload - Slave 16
0,316
0,322
0,323
0,32
Tiempo procesar Slave 17
0,634
2,364
5,79
11,158
T. en calcular Workload - Slave 17
0,319
0,324
0,319
0,317
Tiempo procesar Slave 18
0,666
2,347
5,857
11,264
T. en calcular Workload - Slave 18
0,324
0,323
0,318
0,32
Tiempo procesar Slave 19
0,633
2,371
5,791
11,15
T. en calcular Workload - Slave 19
0,32
0,318
0,322
0,319
Tiempo procesar Slave 20
0,637
2,372
5,927
11,381
T. en calcular Workload - Slave 20
0,32
0,321
0,318
0,324
Tiempo procesar Slave 21
0,629
2,385
5,838
11,152
T. en calcular Workload - Slave 21
0,321
0,317
0,321
0,319
Tiempo procesar Slave 22
0,625
2,404
5,807
11,266
T. en calcular Workload - Slave 22
0,323
0,316
0,321
0,317
Tiempo procesar Slave 23
0,642
2,376
5,864
11,183
T. en calcular Workload - Slave 23
0,317
0,319
0,319
0,32
Tiempo procesar Slave 24
0,637
2,398
5,81
11,195
T. en calcular Workload - Slave 24
0,317
0,316
0,318
0,321
Tiempo procesar Slave 25
0,596
2,12
4,987
9,054
T. en calcular Workload - Slave 25
0,324
0,319
0,32
0,323
Tiempo de proceso - Total
1,755
3,5
6,321
11,618
Balanceo Medio
1,232
1,259
1,253
1,293
Varianza
0,0032
0,00113
0,00162
0,00153
Desviación típica
0,0565
0,337
0,0402
0,0391
Balanceo Global
1,196
1,212
1,199
1,257
46
Fermín Ayuso y Víctor Manuel Ochoa
Tabla 17: Resultados para una estimación de 10 líneas y 26 procesadores
Balanceo
para función benchm ark con 10 líneas
1,3
1,25
1,2
balanceo
1,15
9x9
1,1
9x9
1,05
9x9
7x7
1
0,95
0,9
2
4
6
8
10
12
14
16
18
20
22
24
26
núm ero de procesadores
Gráfica 4: Balanceo para una función de estimación con 10 lineas
Al igual que en los casos anteriormente estudiados, el efecto de estimar la carga para
cada procesador con 10 lineas parece que no afecta al balanceo, ya que como
podemos observar en la Gráfica 4, estos oscilan entre 1 y 1.2, no llegando nunca a
1.3
Resultados del estudio con un tamaño de la función benchmark de 20
líneas
Ahora vamos a estimar la carga de cada procesador utilizando las 20 primeras lineas
de la imagen hiperespectral. Los resultados son los siguientes:
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
8.98987
32.3979
69.5724
126.01296
T. en calcular Workload - Master
0.65077
0.64412
0.64857
0.65074
Tiempo de proceso - Slave
8.78709
32.2423
70.8109
122.76596
T. en calcular Workload - Slave
0.65185
0.64801
0.65090
0.64810
Tiempo de proceso - Total
9.29064
32.91644
72.7550
126.68787
Balanceo Medio
1.0245
1.01908
1.06703
1.03216
Varianza
0.00027
0.00020
0.00111
0.00126
Desviación típica
0.01656
0.01426
0.03341
0.03557
47
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Balanceo Global
1.02307
1.00482
1.01780
1.02644
Tabla 18: Resultados para una estimación de 20 líneas y 2 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
4.50505
15.37790
33.29350
59.65250
T. en calcular Workload - Master
0.64964
0.65316
0.65245
0.65145
Tiempo de proceso - Slave 1
4.45289
15.44188
34.5355
63.5587
T. en calcular Workload - Slave 1
0.64972
0.65088
0.64830
0.64887
Tiempo de proceso - Slave 2
4.40259
15.37468
34.2140
62.02669
T. en calcular Workload - Slave 2
0.65573
0.65323
0.653173
0.653425
Tiempo de proceso - Slave 3
4.42955
15.30162
34.05257
60.0710
T. en calcular Workload - Slave 3
0.65277
0.647803
0.650706
0.65310
Tiempo de proceso - Total
5.11030
16.07869
35.20469
63.76242
Balanceo Medio
1.04859
1.04195
1.05575
1.07831
Varianza
0.00035
0.00028
0.000521
0.00108
Desviación típica
0.01872
0.01679
0.022835
0.03300
Balanceo Global
1.02327
1.0091
1.03730
1.0654
Tabla 19: Resultados para una estimación de 20 líneas y 4 procesadores
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
Procesadores Ventana 3x3
2.09575
7.14294
15.81331
28.29286
T. en calcular Workload - Master
0.65349
0.65251
0.65004
0.65126
Tiempo de proceso - Slave 1
2.1069
7.4467
16.43684
30.17661
T. en calcular Workload - Slave 1
0.65070
0.65006
0.65341
0.654776
Tiempo de proceso - Slave 2
2.09322
7.39505
16.54342
30.31545
T. en calcular Workload - Slave 2
0.65019
0.651566
0.65144
0.65188
Tiempo de proceso - Slave 3
2.08115
7.38936
16.31278
29.99825
T. en calcular Workload - Slave 3
0.65127
0.646704
0.650135
0.64867
Tiempo de proceso - Slave 4
2.10144
7.34491
16.43431
30.17845
T. en calcular Workload - Slave 4
0.64900
0.651765
0.646950
0.64980
Tiempo de proceso - Slave 5
2.07269
7.371471
16.42561
30.03699
T. en calcular Workload - Slave 5
0.65232
0.65161
0.64974
0.65229
Tiempo de proceso - Slave 6
2.24196
7.81722
17.40420
31.44959
T. en calcular Workload - Slave 6
0.53629
0.53847
0.53745
0.53444
Tiempo de proceso - Slave 7
2.20844
7.60189
16.77862
29.61117
T. en calcular Workload - Slave 7
0.53685
0.53591
0.53540
0.53556
Tiempo de proceso - Total
2.9949
8.145334
17.62735
31.69460
Balanceo Medio
1.10347
1.09856
1.10159
1.11286
48
Fermín Ayuso y Víctor Manuel Ochoa
Varianza
0.00019
0.00043
0.000517
0.00012
Desviación típica
0.01381
0.02080
0.02274
0.01118
Balanceo Global
1.08166
1.09439
1.1006
1.11157
Tabla 20: Resultados para una estimación de 20 líneas y 8 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
1.02543
3.57324
7.83705
14.01906
T. en calcular Workload - Master
0.65135
0.64673
0.65073
0.647799
Tiempo de proceso - Slave 1
1.06793
3.77187
8.70780
16.00216
T. en calcular Workload - Slave 1
0.65322
0.65024
0.64739
0.65369
Tiempo de proceso - Slave 2
1.04522
3.75170
8.76706
15.9170
T. en calcular Workload - Slave 2
0.64917
0.654434
0.65485
0.648808
Tiempo de proceso - Slave 3
1.04258
3.78626
8.66262
15.98872
T. en calcular Workload - Slave 3
0.65347
0.65142
0.64717
0.64933
Tiempo de proceso - Slave 4
1.05484
3.70116
8.68468
15.92064
T. en calcular Workload - Slave 4
0.65129
0.64872
0.65166
0.64502
Tiempo de proceso - Slave 5
1.04237
3.72669
8.67039
15.88139
T. en calcular Workload - Slave 5
0.64753
0.64372
0.64808
0.65003
Tiempo de proceso - Slave 6
1.04532
3.66178
8.50833
15.42779
T. en calcular Workload - Slave 6
0.53717
0.53500
0.53383
0.53929
Tiempo de proceso - Slave 7
1.03979
3.63204
8.50240
15.37199
T. en calcular Workload - Slave 7
0.53743
0.53487
0.53400
0.535654
Tiempo de proceso - Slave 8
1.05843
3.62116
8.44539
15.41863
T. en calcular Workload - Slave 8
0.53566
0.53513
0.53847
0.53653
Tiempo de proceso - Slave 9
1.04826
3.671863
8.45562
15.50456
T. en calcular Workload - Slave 9
0.53473
0.53142
0.53397
0.53486
Tiempo de proceso - Slave 10
1.04298
3.64148
8.47163
15.49643
T. en calcular Workload - Slave 10
0.53687
0.53677
0.53286
0.53596
Tiempo de proceso - Slave 11
1.04805
3.64795
8.45515
15.57558
T. en calcular Workload - Slave 11
0.53477
0.53405
0.53314
0.53228
Tiempo de proceso - Slave 12
1.05031
3.67280
8.45219
15.5367
T. en calcular Workload - Slave 12
0.53296
0.53221
0.53382
0.53483
Tiempo de proceso - Slave 13
1.06586
3.62881
8.44278
15.47735
T. en calcular Workload - Slave 13
0.53230
0.53356
0.53397
0.53186
Tiempo de proceso - Slave 14
1.03118
3.75165
8.55228
15.96269
T. en calcular Workload - Slave 14
0.65903
0.65062
0.65691
0.65300
Tiempo de proceso - Slave 15
0.99788
3.59035
7.88515
14.3157
T. en calcular Workload - Slave 15
0.65367
0.65048
0.65114
0.65080
Tiempo de proceso - Total
2.14708
4.76804
9.12700
16.40380
49
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Balanceo Medio
1.11329
1.08508
1.14443
1.16368
Varianza
0.00451
0.00063
0.00044
0.00020
Desviación típica
0.06719
0.02524
0.02109
0.01424
Balanceo Global
1.0701
1.05961
1.11866
1.14145
Tabla 21: Resultados para una estimación de 20 líneas y 16 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
0.64594
2.31407
5.10654
9.31046
T. en calcular Workload - Master
0.65351
0.64855
0.648505
0.64795
Tiempo de proceso - Slave 1
0.68701
2.56299
6.05677
11.48692
T. en calcular Workload - Slave 1
0.65222
0.64684
0.65112
0.65394
Tiempo de proceso - Slave 2
0.67049
2.48132
6.04357
11.39099
T. en calcular Workload - Slave 2
0.65291
0.65260
0.65198
0.64968
Tiempo de proceso - Slave 3
0.67097
2.49223
5.91694
11.44909
T. en calcular Workload - Slave 3
0.64952
0.64939
0.64954
0.65796
Tiempo de proceso - Slave 4
0.67651
2.52663
5.92055
11.38895
T. en calcular Workload - Slave 4
0.64787
0.64930
0.65250
0.65179
Tiempo de proceso - Slave 5
0.67959
2.53044
6.01901
11.22729
T. en calcular Workload - Slave 5
0.64642
0.64803
0.65293
0.64706
Tiempo de proceso - Slave 6
0.65708
2.39019
5.5348
10.26250
T. en calcular Workload - Slave 6
0.53867
0.53340
0.53582
0.53629
Tiempo de proceso - Slave 7
0.66571
2.37400
5.5526
10.25324
T. en calcular Workload - Slave 7
0.53580
0.53295
0.53292
0.53302
Tiempo de proceso - Slave 8
0.66768
2.35933
5.49998
10.17630
T. en calcular Workload - Slave 8
0.53464
0.53680
0.53673
0.53659
Tiempo de proceso - Slave 9
0.65824
2.3596
5.49243
10.23552
T. en calcular Workload - Slave 9
0.53255
0.53381
0.53625
0.53472
Tiempo de proceso - Slave 10
0.66306
2.3680
5.52254
10.25305
T. en calcular Workload - Slave 10
0.53544
0.53610
0.53607
0.53509
Tiempo de proceso - Slave 11
0.65821
2.38792
5.5229
10.23768
T. en calcular Workload - Slave 11
0.53256
0.53150
0.53105
0.53231
Tiempo de proceso - Slave 12
0.66115
2.3588
5.51349
10.22904
T. en calcular Workload - Slave 12
0.53543
0.53424
0.53599
0.53531
Tiempo de proceso - Slave 13
0.66101
2.39659
5.49919
10.19568
T. en calcular Workload - Slave 13
0.53427
0.53182
0.53307
0.53673
Tiempo de proceso - Slave 14
0.67915
2.53162
5.98760
11.45960
T. en calcular Workload - Slave 14
0.65034
0.65003
0.64850
0.65068
Tiempo de proceso - Slave 15
0.66965
2.5211
5.93889
11.46498
T. en calcular Workload - Slave 15
0.64938
0.64869
0.67062
0.64878
50
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 16
0.67684
2.4910
5.94530
11.46616
T. en calcular Workload - Slave 16
0.65309
0.64797
0.65060
0.65274
Tiempo de proceso - Slave 17
0.65710
2.50345
5.99197
11.13095
T. en calcular Workload - Slave 17
0.64363
0.64928
0.64819
0.64455
Tiempo de proceso - Slave 18
0.66742
2.5467
6.05784
11.39389
T. en calcular Workload - Slave 18
0.64976
0.6488
0.64991
0.64975
Tiempo de proceso - Slave 19
0.66874
2.56601
5.94043
11.26296
T. en calcular Workload - Slave 19
0.65065
0.65141
0.64889
0.64653
Tiempo de proceso - Slave 20
0.69640
2.491932
5.99362
11.31470
T. en calcular Workload - Slave 20
0.64698
0.65152
0.66372
0.64858
Tiempo de proceso - Slave 21
0.67453
2.47276
5.89551
11.30824
T. en calcular Workload - Slave 21
0.65179
0.64733
0.65365
0.64809
Tiempo de proceso - Slave 22
0.67257
2.5525
5.89224
11.35023
T. en calcular Workload - Slave 22
0.65477
0.65192
0.67732
0.65311
Tiempo de proceso - Slave 23
0.66582
2.48206
5.85816
11.35377
T. en calcular Workload - Slave 23
0.65158
0.65154
0.64948
0.65121
Tiempo de proceso - Slave 24
0.67769
2.54559
6.04282
11.75977
T. en calcular Workload - Slave 24
0.65021
0.65473
0.65198
0.64951
Tiempo de proceso - Slave 25
0.65955
2.22197
5.10931
9.10194
T. en calcular Workload - Slave 25
0.65309
0.65446
0.65223
0.64560
Tiempo de proceso - Total
1.73803
3.49478
6.4183
12.10466
Balanceo Medio
1.16417
1.19394
1.25281
1.3396
Varianza
0.00354
0.00138
0.00120
0.02205
Desviación típica
0.05951
0.03724
0.03468
0.14852
Balanceo Global
1.0781
1.15483
1.18628
1.2920
Tabla 22: Resultados para una estimación de 20 líneas y 26 procesadores
51
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Balanceo
para función benchmark con 20 líneas
1,28
1,23
balanceo
1,18
5x5
9x9
7x7
9x9
1,13
1,08
1,03
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 5: Balanceo para una función de estimación de carga con 20 lineas
Efecto número de procesadores (tiempo)
para función benchmark con 20 líneas
140
130
120
110
100
90
5x5
tiempo
80
9x9
70
7x7
60
9x9
50
40
30
20
10
0
2
6
10
14
18
22
26
número de procesadores
Gráfica 6: Efecto del número de procesadores para una función de estimación con
20 lineas
Los resultados obtenidos en este apartado se asemejan bastante a los obtenidos en los
apartados anteriores. Como muestran las tablas y las gráficas 5 y 6, podemos
comprobar que el balanceo varía entre 1 y 1.2, sin llegar a 1.3 para las distintas
pruebas y que el efecto que supone aumentar el número de procesadores es el de
52
Fermín Ayuso y Víctor Manuel Ochoa
reducir el tiempo de ejecución.
Resultados del estudio con un tamaño de la función benchmark de 30
líneas
Vamos a mostrar los resultados obtenidos al utilizar 30 lineas para estimar la carga de
los distintos procesadores:
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
8,934
31,145
71,488
120,338
T. en calcular Workload - Master
0,995
0,997
0,995
0,991
Tiempo de proceso - Slave
8,759
31,401
70,166
124,671
T. en calcular Workload - Slave
0,995
0,991
0,999
0,999
Tiempo de proceso - Total
9,235
31,89
72,902
125,087
Balanceo Medio
1,021
1,02
1,052
1,038
0,000138
0,000161
0,0016
0,00222
Desviación típica
0,012
0,0127
0,04
0,0472
Balanceo Global
1,02
1,008
1,083
1,036
Varianza
Tabla 23: Resultados para una estimación de 30 líneas y 2 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
4,49
15,508
33,6
59,286
T. en calcular Workload - Master
0,998
0,999
0,991
0,992
Tiempo de proceso - Slave 1
4,43
15,465
34,483
62,902
T. en calcular Workload - Slave 1
0,998
0,992
0,997
0,998
Tiempo de proceso - Slave 2
4,428
15,375
34,25
62,249
T. en calcular Workload - Slave 2
1,002
1,004
0,998
0,998
Tiempo de proceso - Slave 3
4,378
15,257
33,711
60,645
T. en calcular Workload - Slave 3
1,001
0,997
0,998
0,996
Tiempo de proceso - Total
5,087
16,166
35,178
63,135
Balanceo Medio
1,042
1,041
1,052
1,069
0,000436
0,00042
0,000137
0,000292
Desviación típica
0,0209
0,02
0,012
0,017
Balanceo Global
1,026
1,016
1,026
1,061
Varianza
Tabla 24: Resultados para una estimación de 30 líneas y 4 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
2,111
7,147
15,967
28,294
T. en calcular Workload - Master
0,999
0,998
0,996
0,991
53
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo de proceso - Slave 1
2,161
7,418
16,617
30,655
T. en calcular Workload - Slave 1
0,997
0,994
0,996
0,998
Tiempo de proceso - Slave 2
2,147
7,431
16,865
30,372
T. en calcular Workload - Slave 2
1,002
1,002
1,005
1,002
Tiempo de proceso - Slave 3
2,082
7,429
16,49
30,447
T. en calcular Workload - Slave 3
0,997
1
0,999
0,997
Tiempo de proceso - Slave 4
2,109
7,404
16,598
30,298
T. en calcular Workload - Slave 4
0,997
1,004
0,995
1
Tiempo de proceso - Slave 5
2,084
7,383
16,478
30,376
T. en calcular Workload - Slave 5
0,995
0,996
0,995
0,996
Tiempo de proceso - Slave 6
2,204
7,677
17,158
30,798
T. en calcular Workload - Slave 6
0,841
0,845
0,842
0,842
Tiempo de proceso - Slave 7
2,176
7,528
16,432
29,142
T. en calcular Workload - Slave 7
0,84
0,835
0,838
0,839
Tiempo de proceso - Total
3,01
8,078
17,61
31,346
1,0799
1,075
1,09
1,102
0,000442
0,000157
0,0025
0,00012
Desviación típica
0,021
0,0125
0,05
0,0109
Balanceo Global
1,059
1,074
1,075
1,088
Balanceo Medio
Varianza
Tabla 25: Resultados para una estimación de 30 líneas y 8 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
1,05
3,592
7,997
14,223
T. en calcular Workload - Master
0,994
0,996
0,990
1
Tiempo de proceso - Slave 1
1,096
3,817
8,857
16,015
T. en calcular Workload - Slave 1
0,993
1,003
1
0,992
Tiempo de proceso - Slave 2
1,086
3,817
8,744
16,012
T. en calcular Workload - Slave 2
0,999
1
1,002
1,006
Tiempo de proceso - Slave 3
1,056
3,789
8,676
16,02
T. en calcular Workload - Slave 3
0,996
0,997
0,996
1,002
Tiempo de proceso - Slave 4
1,068
3,801
8,79
16,119
T. en calcular Workload - Slave 4
0,997
0,997
1,005
1,001
Tiempo de proceso - Slave 5
1,06
3,736
8,688
16,024
T. en calcular Workload - Slave 5
0,999
0,997
0,993
0,996
Tiempo de proceso - Slave 6
1,021
3,635
8,395
15,38
T. en calcular Workload - Slave 6
0,839
0,841
0,843
0,837
Tiempo de proceso - Slave 7
1,048
3,623
8,383
15,374
T. en calcular Workload - Slave 7
0,84
0,834
0,836
0,84
Tiempo de proceso - Slave 8
1,046
3,633
8,369
15,396
54
Fermín Ayuso y Víctor Manuel Ochoa
T. en calcular Workload - Slave 8
0,84
0,842
0,839
0,84
Tiempo de proceso - Slave 9
1,034
3,614
8,347
15,301
T. en calcular Workload - Slave 9
0,835
0,837
0,837
0,838
Tiempo de proceso - Slave 10
1,025
3,636
8,332
15,347
T. en calcular Workload - Slave 10
0,841
0,838
0,848
0,841
Tiempo de proceso - Slave 11
1,032
3,623
8,37
15,276
T. en calcular Workload - Slave 11
0,837
0,836
0,836
0,837
Tiempo de proceso - Slave 12
1,031
3,621
8,385
15,225
T. en calcular Workload - Slave 12
0,842
0,84
0,84
0,842
Tiempo de proceso - Slave 13
1,035
3,636
8,331
15,236
T. en calcular Workload - Slave 13
0,844
0,839
0,836
0,836
Tiempo de proceso - Slave 14
1,056
3,857
8,739
16,353
T. en calcular Workload - Slave 14
1,004
0,996
1,003
0,998
Tiempo de proceso - Slave 15
1,012
3,583
8,031
14,442
T. en calcular Workload - Slave 15
1,002
0,998
0,999
0,996
Tiempo de proceso - Total
2,202
4,799
9,226
16,568
Balanceo Medio
1,124
1,107
1,131
1,161
Varianza
0,00121
0,00777
0,000243
0,000614
Desviación típica
0,0345
0,0279
0,0156
0,0248
Balanceo Global
1,083
1,076
1,108
1,15
Tabla 26: Resultados para una estimación de 30 líneas y 16 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
0,659
2,291
5,085
9,427
T. en calcular Workload - Master
0,999
0,995
0,993
0,997
Tiempo de proceso - Slave 1
0,691
2,559
5,988
11,28
T. en calcular Workload - Slave 1
0,995
0,998
0,995
0,991
Tiempo de proceso - Slave 2
0,683
2,53
5,967
11,419
T. en calcular Workload - Slave 2
1,001
1
0,996
1,004
Tiempo de proceso - Slave 3
0,669
2,535
6,049
11,351
T. en calcular Workload - Slave 3
1,001
0,994
0,996
0,997
Tiempo de proceso - Slave 4
0,646
2,522
6,028
11,449
1
0,998
0,998
0,998
Tiempo de proceso - Slave 5
0,676
2,536
5,866
11,44
T. en calcular Workload - Slave 5
0,999
0,996
0,989
0,994
Tiempo de proceso - Slave 6
0,657
2,361
5,431
10,155
T. en calcular Workload - Slave 6
0,84
0,84
0,841
0,837
Tiempo de proceso - Slave 7
0,668
2,377
5,474
10,05
T. en calcular Workload - Slave 7
0,837
0,839
0,837
0,842
T. en calcular Workload - Slave 4
55
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo de proceso - Slave 8
0,657
2,364
5,448
10,182
T. en calcular Workload - Slave 8
0,837
,0838
0,841
0,837
Tiempo de proceso - Slave 9
0,66
2,377
5,39
10,036
T. en calcular Workload - Slave 9
0,837
0,838
0,838
0,84
Tiempo de proceso - Slave 10
0,672
2,353
5,379
10,189
T. en calcular Workload - Slave 10
0,837
0,838
0,841
0,838
Tiempo de proceso - Slave 11
0,652
2,325
5,433
10,23
T. en calcular Workload - Slave 11
0,837
0,841
0,839
0,835
Tiempo de proceso - Slave 12
0,652
2,353
5,46
10,118
T. en calcular Workload - Slave 12
0,843
0,838
0,839
0,84
Tiempo de proceso - Slave 13
0,677
2,337
5,44
10,136
T. en calcular Workload - Slave 13
0,845
0,838
0,838
0,837
Tiempo de proceso - Slave 14
0,675
2,572
6,087
11,624
1
1,004
1,001
1,005
Tiempo de proceso - Slave 15
0,681
2,513
6,076
11,525
T. en calcular Workload - Slave 15
1,003
0,996
0,999
0,997
Tiempo de proceso - Slave 16
0,675
2,546
6,075
11,491
T. en calcular Workload - Slave 16
1,001
1,001
0,998
0,998
Tiempo de proceso - Slave 17
0,664
2,529
6,097
11,295
T. en calcular Workload - Slave 17
0,99
1
1,002
0,994
Tiempo de proceso - Slave 18
0,67
2,54
6,057
11,35
T. en calcular Workload - Slave 18
0,994
0,997
1,002
0,999
Tiempo de proceso - Slave 19
0,677
2,512
5,93
11,398
T. en calcular Workload - Slave 19
0,999
0,992
0,996
0,995
T. en calcular Workload - Slave 14
Tiempo de proceso - Slave 20
0,691
2,493
5,998
11,302
T. en calcular Workload - Slave 20
0,997
0,993
0,997
0,994
Tiempo de proceso - Slave 21
0,672
2,539
5,982
11,244
T. en calcular Workload - Slave 21
0,996
0,992
0,997
0,991
Tiempo de proceso - Slave 22
0,671
2,554
6,018
11,428
T. en calcular Workload - Slave 22
0,999
1
0,997
1
Tiempo de proceso - Slave 23
0,663
2,526
6,102
11,345
T. en calcular Workload - Slave 23
0,995
1
1,004
0,996
Tiempo de proceso - Slave 24
0,695
2,524
6,065
11,401
T. en calcular Workload - Slave 24
1,001
0,996
1
1,002
Tiempo de proceso - Slave 25
0,638
2,293
5,163
9,262
T. en calcular Workload - Slave 25
0,995
1
0,998
0,994
Tiempo de proceso - Total
1,748
3,469
6,401
11,771
Balanceo Medio
1,171
1,192
1,244
1,284
0,00364
0,00049
0,00158
0,00187
0,603
0,0221
0,0398
0,043
Varianza
Desviación típica
56
Fermín Ayuso y Víctor Manuel Ochoa
Balanceo Global
1,089
1,123
1,2
1,255
Tabla 27: Resultados para una estimación de 30 líneas y 26 procesadores
Balanceo
para función benchm ark con 30 líneas
1,26
1,23
1,21
1,18
balanceo
1,16
9x9
9x9
7x7
9x9
1,13
1,11
1,08
1,06
1,03
1,01
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 7: Balanceo para una función de estimación con 30 lineas
Resultados del estudio con un tamaño de la función benchmark de 60
líneas
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
8.99392
31.8155
69.87337
121.48939
T. en calcular Workload - Master
1.98074
1.97631
1.97688
1.96660
Tiempo de proceso - Slave
8.70209
31.35107
70.8841
130.87774
T. en calcular Workload - Slave
1.98526
1.97179
1.99880
1.96742
Tiempo de proceso - Total
9.31336
32.45954
71.6599
132.5936
Balanceo Medio
1.03390
1.03796
1.02643
1.10104
Varianza
0.00042
0.00185
0.00074
0.04801
Desviación típica
0.02053
0.04311
0.02723
0.21912
Balanceo Global
1.03353
1.01481
1.01446
1.07727
Tabla 28: Resultados para una estimación de 60 líneas y 2 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
4.5165
15.56246
33.50402
60.35970
T. en calcular Workload - Master
1.9692
1.98233
1.97331
1.98401
57
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo de proceso - Slave 1
4.45082
15.48524
34.90106
63.59628
T. en calcular Workload - Slave 1
1.97833
1.99606
1.98109
1.981171
Tiempo de proceso - Slave 2
4.41641
15.5812
34.92878
63.34584
T. en calcular Workload - Slave 2
1.97289
1.98870
1.96740
1.99795
Tiempo de proceso - Slave 3
4.43462
15.51833
34.63576
61.017581
T. en calcular Workload - Slave 3
1.97631
1.97197
1.99180
1.984321
Tiempo de proceso - Total
5.14698
16.28334
35.70573
64.78502
Balanceo Medio
1.04465
1.04498
1.06224
1.07795
Varianza
0.00010
0.00015
0.00123
0.00090
Desviación típica
0.01037
0.01225
0.03516
0.03005
Balanceo Global
1.02267
1.00620
1.04252
1.05362
Tabla 29: Resultados para una estimación de 60 líneas y 4 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
2.19699
7.36881
16.09807
29.08121
T. en calcular Workload - Master
1.96560
1.96434
1.98096
1.98277
Tiempo de proceso - Slave 1
2.16138
7.52456
16.72613
31.12371
T. en calcular Workload - Slave 1
1.96309
1.98278
1.97210
1.98644
Tiempo de proceso - Slave 2
2.15994
7.51084
16.88210
31.14490
T. en calcular Workload - Slave 2
1.98310
1.98781
1.97450
1.98716
Tiempo de proceso - Slave 3
2.17201
7.48201
16.78889
30.96783
T. en calcular Workload - Slave 3
1.97281
1.98556
1.98810
1.99986
Tiempo de proceso - Slave 4
2.14143
7.53281
16.78486
31.22164
T. en calcular Workload - Slave 4
1.99034
1.98644
1.978506
1.97941
Tiempo de proceso - Slave 5
2.12370
7.47009
16.71036
31.08012
T. en calcular Workload - Slave 5
1.97151
1.96889
1.971937
1.96434
Tiempo de proceso - Slave 6
2.11747
7.32039
16.26067
29.13480
T. en calcular Workload - Slave 6
1.79983
1.80210
1.79907
1.80171
Tiempo de proceso - Slave 7
2.07571
7.170718
15.62961
27.5810
T. en calcular Workload - Slave 7
1.79205
1.79343
1.79153
1.80331
Tiempo de proceso - Total
3.15607
8.27770
17.24698
31.70469
Balanceo Medio
1.074756
1.06495
1.09308
1.14414
Varianza
0.00104
0.00041
0.00016
0.00014
Desviación típica
0.03225
0.02026
0.01277
0.01222
Balanceo Global
1.05842
1.05049
1.08013
1.13199
Tabla 30: Resultados para una estimación de 60 líneas y 8 procesadores
58
Fermín Ayuso y Víctor Manuel Ochoa
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
1.09761
3.74247
8.32764
15.77775
T. en calcular Workload - Master
1.98003
1.98992
1.97489
1.99569
Tiempo de proceso - Slave 1
1.11416
3.95848
8.90911
30.79600
T. en calcular Workload - Slave 1
1.97159
1.98453
1.98118
1.95781
Tiempo de proceso - Slave 2
1.11163
3.96473
8.89106
28.09449
T. en calcular Workload - Slave 2
1.98126
1.99322
1.99918
2.015951
Tiempo de proceso - Slave 3
1.07880
3.99016
8.87378
30.77042
T. en calcular Workload - Slave 3
1.98776
1.97588
1.98240
1.970647
Tiempo de proceso - Slave 4
1.10590
4.00769
8.85227
30.87134
T. en calcular Workload - Slave 4
1.96975
1.96351
1.98680
1.97851
Tiempo de proceso - Slave 5
1.08980
3.95307
8.91069
27.10131
T. en calcular Workload - Slave 5
1.97008
1.97677
1.97936
1.96885
Tiempo de proceso - Slave 6
1.00213
3.56553
7.95814
14.9482
T. en calcular Workload - Slave 6
1.79552
1.80513
1.80317
1.794458
Tiempo de proceso - Slave 7
1.00397
3.50621
7.7652932
14.84477
T. en calcular Workload - Slave 7
1.79405
1.78741
1.789230
1.79882
Tiempo de proceso - Slave 8
0.9959
3.53074
7.87921
14.88412
T. en calcular Workload - Slave 8
1.79900
1.79473
1.79688
1.79821
Tiempo de proceso - Slave 9
0.98654
3.53738
7.87401
14.78590
T. en calcular Workload - Slave 9
1.79151
1.78713
1.79326
1.79435
Tiempo de proceso - Slave 10
0.99694
3.53931
7.870857
14.80413
T. en calcular Workload - Slave 10
1.79458
1.794231
1.79524
1.79167
Tiempo de proceso - Slave 11
0.99041
3.51675
7.92599
14.87640
T. en calcular Workload - Slave 11
1.78822
1.790270
1.79214
1.79685
Tiempo de proceso - Slave 12
1.00866
3.51994
7.82970
14.93218
T. en calcular Workload - Slave 12
1.79162
1.79670
1.79093
1.794712
Tiempo de proceso - Slave 13
0.99200
3.52544
7.84954
14.78055
T. en calcular Workload - Slave 13
1.78672
1.78807
1.79230
1.786496
Tiempo de proceso - Slave 14
1.086319
3.96826
9.02961
17.45863
T. en calcular Workload - Slave 14
1.98667
1.97776
1.97418
1.98731
Tiempo de proceso - Slave 15
1.05704
3.74219
8.263950
14.44382
T. en calcular Workload - Slave 15
1.98306
1.98204
1.985561
2.07856
Tiempo de proceso - Total
2.19898
4.93391
9.61784
33.89448
Balanceo Medio
1.16542
1.17053
1.19024
2.42391
Varianza
0.00146
0.00038
0.000204
0.05310
Desviación típica
0.03826
0.01963
0.014289
0.23045
Balanceo Global
1.12935
1.14302
1.16281
2.13733
Tabla 31: Resultados para una estimación de 60 líneas y 16 procesadores
59
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master
0.67593
2.34805
5.35058
9.49485
T. en calcular Workload - Master
1.97576
1.9650
1.97456
1.96375
Tiempo de proceso - Slave 1
0.70672
2.61068
6.17655
11.49062
T. en calcular Workload - Slave 1
1.98349
1.97010
1.97813
1.97737
Tiempo de proceso - Slave 2
0.68303
2.54381
6.20077
11.68959
T. en calcular Workload - Slave 2
1.99287
1.99509
1.97498
1.973765
Tiempo de proceso - Slave 3
0.69314
2.62016
6.26550
11.46930
T. en calcular Workload - Slave 3
1.9769
1.98172
1.98206
1.96123
Tiempo de proceso - Slave 4
0.68532
2.60976
6.125282
11.53209
T. en calcular Workload - Slave 4
2.0376
1.987738
1.979641
1.98089
Tiempo de proceso - Slave 5
0.70016
2.59650
6.105300
11.56107
T. en calcular Workload - Slave 5
1.9763
1.96715
1.985102
1.96743
Tiempo de proceso - Slave 6
0.61675
2.23221
5.22423
9.73295
T. en calcular Workload - Slave 6
1.79786
1.797314
1.80412
1.79675
Tiempo de proceso - Slave 7
0.63215
2.23501
5.20877
9.68551
T. en calcular Workload - Slave 7
1.79498
1.79186
1.79414
1.80041
Tiempo de proceso - Slave 8
0.61429
2.20515
5.15263
9.71910
T. en calcular Workload - Slave 8
1.80303
1.79517
1.79471
1.79764
Tiempo de proceso - Slave 9
0.62000
2.22117
5.21463
9.78314
T. en calcular Workload - Slave 9
1.78686
1.79152
1.79034
1.79073
Tiempo de proceso - Slave 10
0.61437
2.21601
5.27775
9.76256
T. en calcular Workload - Slave 10
1.79262
1.79867
1.79458
1.79300
Tiempo de proceso - Slave 11
0.61727
2.24945
5.262144
9.76708
T. en calcular Workload - Slave 11
1.79329
1.78559
1.78589
1.79082
Tiempo de proceso - Slave 12
0.612021
2.22220
5.18304
9.74079
T. en calcular Workload - Slave 12
1.79764
1.79521
1.79775
1.79299
Tiempo de proceso - Slave 13
0.61958
2.25274
5.23988
9.71734
T. en calcular Workload - Slave 13
1.78797
1.79077
1.78706
1.79183
Tiempo de proceso - Slave 14
0.70129
2.63355
6.18051
11.69584
T. en calcular Workload - Slave 14
1.98599
1.98272
1.98687
1.97385
Tiempo de proceso - Slave 15
0.68602
2.57262
6.12415
11.62388
T. en calcular Workload - Slave 15
1.97821
2.00759
1.99443
1.98084
Tiempo de proceso - Slave 16
0.69502
2.60184
6.2475
11.56519
T. en calcular Workload - Slave 16
1.97349
1.97654
1.98550
1.97659
Tiempo de proceso - Slave 17
0.69993
2.55530
6.13850
11.58885
T. en calcular Workload - Slave 17
1.98114
2.00199
1.97293
1.96492
Tiempo de proceso - Slave 18
0.69132
2.59601
6.144929
11.58430
T. en calcular Workload - Slave 18
1.9806
1.96965
2.04019
1.98391
60
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 19
0.68648
2.56332
6.17383
11.38157
T. en calcular Workload - Slave 19
1.9942
1.97753
1.97666
1.99367
Tiempo de proceso - Slave 20
0.70423
2.58373
6.17691
11.69890
T. en calcular Workload - Slave 20
1.98046
1.98033
1.965403
1.98601
Tiempo de proceso - Slave 21
0.69205
2.60594
6.193715
11.61440
T. en calcular Workload - Slave 21
1.971651
1.98600
1.98322
1.97998
Tiempo de proceso - Slave 22
0.694107
2.62900
6.17478
11.60212
T. en calcular Workload - Slave 22
1.98216
1.97723
1.971821
1.97559
Tiempo de proceso - Slave 23
0.69933
2.57520
6.16222
11.51281
T. en calcular Workload - Slave 23
1.97048
1.954658
1.97241
1.98298
Tiempo de proceso - Slave 24
0.70493
2.605921
6.13239
11.56160
T. en calcular Workload - Slave 24
1.98087
1.97476
1.98995
1.97188
Tiempo de proceso - Slave 25
0.66527
2.32458
5.20369
9.67344
T. en calcular Workload - Slave 25
1.95774
1.98107
1.97412
1.97649
Tiempo de proceso - Total
1.77702
3.55908
6.68480
12.08119
Balanceo Medio
1.27228
1.26065
1.29904
1.28251
Varianza
0.00647
0.00011
0.00054
0.00022
Desviación típica
0.080455
0.01057
0.02337
0.01512
Balanceo Global
1.1547
1.19427
1.21598
1.23213
Tabla 32: Resultados para una estimación de 60 líneas y 26 procesadores
Balanceo
para la f unción benchmark con 60 líneas
1,23
1,18
5x5
9x9
7x7
9x9
balanceo
1,13
1,08
1,03
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 8: Balanceo para una función de estimación con 60 lineas
61
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Efecto del número de procesadores (tiempo)
para función benchmark con 60 líneas
140
120
tiempo
100
9x9
80
9x9
7x7
60
9x9
40
20
0
2
4
6
8
10
12 14
16 18
20 22
24 26
28 30
32 34
36
número de procesadores
Gráfica 9: Efecto del número de procesadores para una función de estimación
con 60 lineas
Resultados del estudio con un tamaño de la función benchmark de 120
líneas
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
8,95250520
32,34828780
69,09974462
123,4862056
T. en calcular Workload - Master
3,9787860
3,958491600
4,00570830
3,98201020
Tiempo de proceso - Slave
8,74532190
30,56392970
70,17842670
122,98637210
T. en calcular Workload - Slave
4,00434670
4,006972200
4,009271800
4,002897800
Tiempo de proceso - Total
9,2615195
32,6465878
72,35891060
126,7646060
Balanceo Medio
1,02657870
1,05946890
1,05823530
1,0536405
Varianza 0,0002111927
0,004130824
0,001260875
0,001042357
Desviación típica 0,1453247377
0,062714861
0,035508808
0,032285565
1,058381174
1,002585530
1,004064137
Balanceo Global
1,02369075
Tabla 33: Resultados para una estimación de 120 líneas y 2 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master 4.519357500
15.57424390
33.92375660
60.70229370
T. en calcular Workload - Master 3.992476600
4.002075800
3.981465100
3.966226100
Tiempo de proceso - Slave 1 4.442482700
15.68203440
34.04067920
62.37593400
T. en calcular Workload - Slave 1 4.019645300
4.005195700
3.994869400
4.008105200
Tiempo de proceso - Slave 2 4.524427000
15.481431600
34.44370660
62.89102790
T. en calcular Workload - Slave 2 4.009329000
4.006845200
4.022810500
4.006912200
62
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 3 4.382847200
15.32882200
33.786874100
60.49632760
T. en calcular Workload - Slave 3 4.012315000
4.037251900
3.9874180000
3.995664600
Tiempo de proceso - Total 5.186066500
16.39930530
35.10628370
63.67726320
Balanceo Medio 1.062841700
1.065887600
1.040186400
1.0620611000
Varianza 0.001616232
0.001917383
0.000217668
0.0002991103
Desviación típica 0.040202390
0.043787942
0.014753583
0.017294806
Balanceo Global 1.032303156
1.023042370
1.019440463
1.039584225
Tabla 34: Resultados para una estimación de 120 líneas y 4 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master 2.1851392000
7.364601800
16.20081820
29.016159100
T. en calcular Workload - Master 3.994452900
4.000452600
3.991986300
3.992410200
Tiempo de proceso - Slave 1 2.1812463000
7.565723300
16.76834390
31.20037550
T. en calcular Workload - Slave 1 4.005429100
4.02976340
4.018324700
4.024636600
Tiempo de proceso - Slave 2 2.140628200
7.5011699000
16.77983940
31.151911100
T. en calcular Workload - Slave 2 4.010623000
3.996622700
3.9891197000
4.017925600
Tiempo de proceso - Slave 3 2.145347900
7.868343900
16.86685690
30.95340690
T. en calcular Workload - Slave 3 3.995128400
4.017752300
3.980293500
4.013339200
Tiempo de proceso - Slave 4 2.146799800
7.4891781000
16.95099410
31.281770000
T. en calcular Workload - Slave 4 4.002650800
3.982461500
4.011385500
3.985365500
Tiempo de proceso - Slave 5 2.1556727000
7.564453800
16.730165100
31.26603720
T. en calcular Workload - Slave 5 4.005489100
3.982303100
4.0140412000 3.9821271000
Tiempo de proceso - Slave 6 2.1170841000 7.4319879000 16.291491400
29.12996040
T. en calcular Workload - Slave 6 3.628691200
3.613910200
3.636700600
3.637713400
Tiempo de proceso - Slave 7 2.070148700
7.1744305000
15.69913790
27.671051700
T. en calcular Workload - Slave 7 3.624579400
3.626052500
3.626685400
3.634331300
Tiempo de proceso - Total 3.0647741000
8.605854300
17.317682800
31.79070890
1.1210626000
1.089801700
1.1440307000
0.025701286
0.000326217
0.0001969418
0.1603162091 0.0180615019
0.014033597
1.096720345
1.1304872087
Balanceo Medio
1.0785590
Varianza 0.000865474
Desviación típica 0.029418948
Balanceo Global 1.055546975
1.079740442
Tabla 35: Resultados para una estimación de 120 líneas y 8 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x
Tiempo de proceso - Master 1.094861900
3.746491900
8.318037200
16.02845290
T. en calcular Workload - Master 3.974143500
3.990048200
3.966215900 3.9817961000
Tiempo de proceso - Slave 1 1.112133700
3.932574800
8.910593100
32.37348630
63
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
T. en calcular Workload - Slave 1 3.969526000 4.0851851000 4.007898300
Tiempo de proceso - Slave 2 1.090971700
T. en calcular Workload - Slave 2 4.003340600
3.971437500
8.826968100
3.981464500
31.55588540
4.007939800 4.0110670000 4.007085300
Tiempo de proceso - Slave 3 1.082196500
3.948169800
8.963089200 31.145464000
T. en calcular Workload - Slave 3 3.973361100
4.023508600
4.003208600
3.979268100
Tiempo de proceso - Slave 4 1.089289700
3.998723400
8.878467100
29.60252550
T. en calcular Workload - Slave 4 4.009659100
3.990675300
3.999391000
4.001048300
Tiempo de proceso - Slave 5 1.079339100
3.912834000
8.879282600
30.23158640
T. en calcular Workload - Slave 5 3.997503500
3.994864500
3.979734500
3.989986200
Tiempo de proceso - Slave 6 1.026554700
3.598472800 7.9262161000 14.874716800
T. en calcular Workload - Slave 6 3.638719800
3.622642800
3.628933100
3.629577800
Tiempo de proceso - Slave 7 0.991258500
3.592712500
7.899570400
14.88000910
T. en calcular Workload - Slave 7 3.621483400
3.624206300
3.627093100
3.627948400
Tiempo de proceso - Slave 8 0.988174500
3.540281800
7.877000500 14.800115400
T. en calcular Workload - Slave 8 3.637757000
3.623664300
3.618234400
3.627015500
Tiempo de proceso - Slave 9 0.991628500
3.534503700
7.894379400
14.79450050
T. en calcular Workload - Slave 9 3.629591800
3.627587300
3.636444600
3.621364800
Tiempo de proceso - Slave 10 0.987464100
3.574336800
7.892276000
14.77995650
T. en calcular Workload - Slave 10 3.630871100 3.6261651000 3.626629100 3.6186167000
Tiempo de proceso - Slave 11 1.006909100 3.5199146000 7.790537500
T. en calcular Workload - Slave 11 3.618314000
Tiempo de proceso - Slave 12 0.995746900
T. en calcular Workload - Slave 12 3.620123700
Tiempo de proceso - Slave 13 1.007352800
3.616434800
3.626306000
14.83373080
3.632126900
3.520461000 7.8770181000 14.75608480
3.619822000
3.624951400
3.623956100
3.568146900 7.8117720000 14.79528820
T. en calcular Workload - Slave 13 3.630365000
3.624675700
3.623373000
Tiempo de proceso - Slave 14 1.084763800
3.928524200
8.947235500 16.787140100
3.615475200
T. en calcular Workload - Slave 14 4.014095500
4.036007100
4.044649300
Tiempo de proceso - Slave 15 1.069692400
3.710465600
8.346889100 14.839717500
T. en calcular Workload - Slave 15 4.040551700
4.037600600
4.000928400
4.020912100
Tiempo de proceso - Total 2.183230700
4.920518200
9.535737900
34.04103080
4.032355800
Balanceo Medio 1.135698000 1.1754282000 1.1826192000 2.326298800
Varianza 0.000283078
0.000548240
0.000331585
0.008176569
Desviación típica 0.016824926
0.023414540
0.018209478
0.090424386
Balanceo Global 1.126252286 1.1360285275 1.150509730 2.1939075804
Tabla 36: Resultados para una estimación de 120 líneas y 16 procesadores
64
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo procesar Master 0.672918100
2.370476300
5.1579811000
9.615420000
T. en calcular Workload - Master 3.980705400
3.995539200
4.026545000
3.991333400
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 1 0.722256100
2.622019900
6.270494000
11.62305940
T. en calcular Workload - Slave 1 3.999758300
4.000293000
3.997620500
3.982120700
Tiempo de proceso - Slave 2 0.688393800
2.657660900
6.342531700
11.578170300
T. en calcular Workload - Slave 2 4.010658000
4.019526800
4.000727200
4.039346800
Tiempo de proceso - Slave 3 0.699529600
2.562227000
6.199767900
11.37030850
T. en calcular Workload - Slave 3 3.994248300
4.081224800
3.982220200
4.011982700
Tiempo de proceso - Slave 4 0.694113400
2.591623100
6.304306000
11.549537100
T. en calcular Workload - Slave 4 4.007357400
4.016621200
4.032346300
3.995802800
Tiempo de proceso - Slave 5 0.685373300
2.585226600
6.1127756000 11.431920600
T. en calcular Workload - Slave 5 4.013274400
3.973764600
3.966778600
3.992732900
Tiempo de proceso - Slave 6 0.610297700
2.251230000
5.256895300
9.713202900
T. en calcular Workload - Slave 6 3.637351800
3.631815500
3.632739500
3.631420500
Tiempo de proceso - Slave 7 0.623191600
2.199076000
5.263820100
9.723121600
T. en calcular Workload - Slave 7 3.613033900
3.639952100
3.611809000
3.633418300
Tiempo de proceso - Slave 8 0.617529100
2.231813300
5.275878800
9.827039000
T. en calcular Workload - Slave 8 3.628956000
3.634761400
3.622874200
3.617440200
Tiempo de proceso - Slave 9 0.616316200
2.249289300
5.179683500
9.696272400
T. en calcular Workload - Slave 9 3.623826100
3.612767600
3.626054100
3.626539100
Tiempo de proceso - Slave 10 0.614370400
2.218714500
5.179608100
9.749389600
T. en calcular Workload - Slave 10 3.629654700
3.637525500
3.632422900
3.624103200
Tiempo de proceso - Slave 11 0.625258300
2.237037200
5.244955100
9.737214200
T. en calcular Workload - Slave 11 3.610634800
3.613728900
3.615156900
3.615598300
Tiempo de proceso - Slave 12 0.634017500
2.265303000
5.209899700
9.750002100
T. en calcular Workload - Slave 12 3.629992800
3.628581600
3.624373800
3.625096700
Tiempo de proceso - Slave 13 0.6171076000
2.244208300
5.216930500
9.774217900
T. en calcular Workload - Slave 13 3.619810000
3.611535900
3.6186311000
3.614319300
Tiempo de proceso - Slave 14 0.686242900
2.630840300
6.343753600
11.618087900
T. en calcular Workload - Slave 14 4.032353300
4.023022900
4.012048000
3.991627900
Tiempo de proceso - Slave 15 0.698548600
2.607952100
6.202386100
11.57984650
T. en calcular Workload - Slave 15 3.988640400
4.005793000
3.967680800
4.016518400
Tiempo de proceso - Slave 16 0.701812000
2.574707600
6.097045200
11.601956600
T. en calcular Workload - Slave 16 4.012473200
4.003024900
4.016385000
4.009374200
Tiempo de proceso - Slave 17 0.687528600
2.558426500
6.1162270000 11.567167800
T. en calcular Workload - Slave 17 3.983632100
3.990993000
4.002821400
Tiempo de proceso - Slave 18 0.687250300
2.566418300
6.1161805000 11.622621200
T. en calcular Workload - Slave 18 3.982787300
4.012849700
3.986472200
3.984302200
Tiempo de proceso - Slave 19 0.686217800
2.582000900
6.150367200
11.438215500
T. en calcular Workload - Slave 19 3.986034100
3.985820600
3.985758300
4.018657900
Tiempo de proceso - Slave 20 0.693854200
2.606659400
6.241470400
11.659121900
T. en calcular Workload - Slave 20 3.986845400
4.007377400
4.013491400
4.011794000
4.001843200
65
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo de proceso - Slave 21 0.693562100
2.578331300
6.046199600
11.46775330
T. en calcular Workload - Slave 21 3.995943800
3.995758100
3.967716600
3.989511800
Tiempo de proceso - Slave 22 0.703945700
2.633503700
6.1851128000 11.571163200
T. en calcular Workload - Slave 22 3.993980600
4.013094800
3.988536600
4.015615200
Tiempo de proceso - Slave 23 0.680744500
2.553933400
6.216384000
11.516621800
T. en calcular Workload - Slave 23 3.987435600
3.968952300
4.007098100
3.978198400
Tiempo de proceso - Slave 24 0.690440700
2.632181900
6.301235100
11.654521800
T. en calcular Workload - Slave 24 3.990356500
4.014002900
3.997899600
4.005395900
Tiempo de proceso - Slave 25 0.663269800
2.357990500
5.275280800
9.369075100
T. en calcular Workload - Slave 25 4.025610500
3.975804400
4.001347500
4.000318500
Tiempo de proceso - Total 1.7437140000
3.524960600
6.700493000
12.14980580
Balanceo Medio 1.256128300
1.269593200
1.3171337000
1.296935500
Varianza 0.003830539
0.000539068
0.000344875
0.000418319
Desviación típica 0.061891349
0.023217848
0.018570817
0.020452858
Balanceo Global 1.1834488316
1.208535266
1.229890819
1.244426133
Tabla 37: Resultados para una estimación de 120 líneas y 26 procesadores
Balanceo
para función benchmark con 120 líneas
1,23
1,18
9x9
9x9
7x7
9x9
balanceo
1,13
1,08
1,03
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 10: Balanceo para una función de estimación con 120 lineas
66
Fermín Ayuso y Víctor Manuel Ochoa
Efecto número de procesadores (tiempo)
para función benchmark con 120 líneas
140
120
100
9x9
9x9
7x7
9x9
tiempo
80
60
40
20
0
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 11: Efecto del número de procesadores con una función de estimación de 120
lineas
Resultados del estudio con un tamaño de la función benchmark de 240
líneas
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
9.032491800
32.175622700
69.53260630
123.65810760
T. en calcular Workload - Master
8.206495500
8.1975459000
8.1917100000
8.206645600
Tiempo de proceso - Slave
8.742573900
32.23822600
70.99972910
123.23539160
T. en calcular Workload - Slave
8.165593800
8.232936700
8.237283500
8.20685510
Tiempo de proceso - Total
9.333309800
32.761212900
71.88347690
124.5522622
Balanceo Medio
1.033364800
1.0163072000
1.038969100
1.0129351000
Varianza
0.000549165
0.000249693
0.001590199
0.0001489743
Desviación típica
0.023434290
0.0158017004
0.039877304
0.012205506
Balanceo Global 1.0331616184
1.0019456748
1.0210997814
1.003430150
Tabla 38: Resultados para una estimación de 240 líneas y 2 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master 4.522829200
15.72660380
34.22969590
61.146605600
T. en calcular Workload - Master 8.194821900
8.1722933000
8.198381400
8.1768840000
Tiempo de proceso - Slave 1 4.407079600
15.351234200
33.90928200
61.474422800
T. en calcular Workload - Slave 1 8.1708921000
8.242098500
8.182349500
8.1583815000
67
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo de proceso - Slave 2 4.389823800
15.22667030
33.72447290
62.32816750
T. en calcular Workload - Slave 2 8.202607200
8.200457400
8.188160400
8.164670300
Tiempo de proceso - Slave 3 4.355779800
15.064541000
33.39152380
59.27277850
T. en calcular Workload - Slave 3 8.1745386000 8.1606136000
8.129356800
8.2191031000
Tiempo de proceso - Total 5.1218745000 16.356107600
34.94432560
63.016281600
Balanceo Medio 1.043315400
1.060129500
1.043189700
1.0603271000
Varianza 0.000123457
0.000738001
0.000943349
0.000506622
Desviación típica 0.0111111555 0.0271661829
0.030713989
0.022508286
1.025101343
1.0515479293
Balanceo Global 1.038351204
1.043948421
Tabla 39: Resultados para una estimación de 240 líneas y 4 procesadores
Procesadores
Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master
2.169396900
7.293045800
16.07256950
29.31688980
T. en calcular Workload - Master
8.188444600
8.1910902000 8.1911927000
8.220136000
Tiempo de proceso - Slave 1 2.1490421000 7.5619375000
16.73551890
31.24495730
8.201226600
8.206165600
8.224809000
2.134978000
7.470675600
16.610101700 31.241645600
T. en calcular Workload - Slave 2 8.1949418000
8.208059100
8.2505110000
8.250576100
Tiempo de proceso - Slave 3 2.1376376000
7.479345600
16.67609980
31.43589860
8.159790700
8.164004200
8.1919703000
8.205335100
Tiempo de proceso - Slave 4 2.1679491000
7.525367000
16.70678980
31.26849420
T. en calcular Workload - Slave 1 8.2113381000
Tiempo de proceso - Slave 2
T. en calcular Workload - Slave 3
T. en calcular Workload - Slave 4
8.178968400
8.205554100
8.199006300
8.243026300
Tiempo de proceso - Slave 5
2.134634500
7.4763621000
16.71224820
31.09655990
T. en calcular Workload - Slave 5
8.172983400
8.1152816000
8.209026300
8.240199900
Tiempo de proceso - Slave 6
2.159032300
7.408599100
16.55581320
29.94178020
T. en calcular Workload - Slave 6
7.279660500
7.2595139000
7.280796400
7.305428900
Tiempo de proceso - Slave 7 2.1146371000
7.288436800
15.90047890
28.45989600
T. en calcular Workload - Slave 7
7.229304300
7.262480400
7.238328400
7.252630100
Tiempo de proceso - Total
3.053521400
8.1818946000 17.126022500
31.94462020
Balanceo Medio
1.062255300
1.051988300
1.063715300
1.1179708000
Varianza
0.000485300
0.000075461
0.000175308
0.000295510
Desviación típica
0.022029544
0.008686865
0.013240400
0.0171904200
Balanceo Global
1.025895601
1.037525289
1.0525166572 1.1045682879
Tabla 40: Resultados para una estimación de 240 líneas y 8 procesadores
68
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
Tiempo de proceso - Master 1.085346200
3.722827900
8.149838900 15.156703100
Fermín Ayuso y Víctor Manuel Ochoa
T. en calcular Workload - Master 8.221055300
Tiempo de proceso - Slave 1
8.201629600 8.1925129000 8.187885500
1.111127500
3.945742700
8.841888300
23.60652650
T. en calcular Workload - Slave 1 8.284333700
8.200775700
8.213998200
8.195983800
Tiempo de proceso - Slave 2 1.086964700
3.913289300
8.898988900 24.519910400
T. en calcular Workload - Slave 2 8.265815800
8.262445000
8.177555300
Tiempo de proceso - Slave 3 1.087612900
8.239528300
3.892420800 8.9174148000 25.59132630
T. en calcular Workload - Slave 3 8.223833200
8.232093900
8.152720000 8.1713941000
Tiempo de proceso - Slave 4 1.081516800
3.910961700
8.794677800
26.24133230
T. en calcular Workload - Slave 4
8.3142846
8.227770000 8.1434191000 8.197258200
Tiempo de proceso - Slave 5
1.09586320
3.901097000
8.823032900 27.318807300
T. en calcular Workload - Slave 5
8.16563560
8.210466200
8.168309300
8.202606800
Tiempo de proceso - Slave 6
1.01242090
3.615529800
8.138783600
14.86090930
T. en calcular Workload - Slave 6
7.34274430
7.292905800
7.243556900 7.2815666000
Tiempo de proceso - Slave 7
1.02736430
3.608572100 8.0110417000
14.95392690
T. en calcular Workload - Slave 7
7.25853130
7.256327800
7.269386400
7.242603900
Tiempo de proceso - Slave 8
1.01112670
3.560416500
7.930690600 14.895131100
T. en calcular Workload - Slave 8
7.33688410
7.2851751000 7.285968200
Tiempo de proceso - Slave 9
1.0185536
3.563506300
7.906294800 14.988718200
T. en calcular Workload - Slave 9
7.336564
7.298686900
7.270526900
7.281688500
Tiempo de proceso - Slave 10
1.020174
3.591561300
8.052357100
14.94276000
T. en calcular Workload - Slave 10
7.3285948
7.259550400
7.254088100
7.260162200
Tiempo de proceso - Slave 11
1.014422
3.615334400
8.1845111000 15.016173900
T. en calcular Workload - Slave 11
7.259041
7.256144900
7.234808000
7.227266800
Tiempo de proceso - Slave 12
1.026116
3.581439100
8.084639900
14.89306750
7.269594400
T. en calcular Workload - Slave 12
7.3636109
7.261868800 7.2518792000 7.260273500
Tiempo de proceso - Slave 13
1.017671
3.6041410000 8.072178900
T. en calcular Workload - Slave 13
7.2688601
7.257293400 7.2370167000 7.216036300
Tiempo de proceso - Slave 14
1.0881400
3.8951919000 8.910269700
16.54882210
T. en calcular Workload - Slave 14
8.412669
8.343983500
8.288872500
8.276778400
Tiempo de proceso - Slave 15
1.0517533
3.657788600
8.021938700
14.67535940
T. en calcular Workload - Slave 15 8.287280200
Tiempo de proceso - Total 2.195780600
15.00470990
8.291321200 8.2478170000 8.202966400
4.878398200
9.381204200
31.93754680
Balanceo Medio 1.127231500 1.1532744000 1.1705526000 2.204660200
Varianza 0.000467195
0.000508995
0.000121855 0.1225397622
Desviación típica 0.021614697
0.022560938
0.011038809
Balanceo Global 1.098900365
0.350056798
1.108225034 1.1278879709 1.8615426413
Tabla 41: Resultados para una estimación de 240 líneas y 16 procesadores
Procesadores Ventana 3x3
Ventana 5x5
Ventana 7x7
Ventana 9x9
69
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Tiempo procesar Master 0.665494100
2.338099700
5.228564000
9.730822500
T. en calcular Workload - Master 8.172847500
8.192280000
8.204469100
8.185465400
Tiempo de proceso - Slave 1 0.715412800
2.587376400
6.1130924000
11.438541700
T. en calcular Workload - Slave 1 8.231698400
8.262199800
8.190806300
8.203955500
Tiempo de proceso - Slave 2 0.692251700
2.585761700
6.158389500
11.64098960
T. en calcular Workload - Slave 2 8.216497000
8.220132700
8.2117670000
8.201548600
Tiempo de proceso - Slave 3 0.690643400
2.606791800
6.265070500
11.543907100
T. en calcular Workload - Slave 3 8.211763500
8.210722200
8.229675400
8.244278700
Tiempo de proceso - Slave 4 0.696633900
2.580115200
6.087590600
11.58689890
T. en calcular Workload - Slave 4 8.242110400
8.216265300
8.155669700
8.188840000
Tiempo de proceso - Slave 5 0.691068200
2.561704400
6.204647400
11.56665730
T. en calcular Workload - Slave 5 8.156195400
8.182374900
8.230189700
8.197632800
Tiempo de proceso - Slave 6 0.625924400
2.266553300
5.299777900
9.908729900
T. en calcular Workload - Slave 6 7.257295400
7.253486900
7.289332800
7.272039100
Tiempo de proceso - Slave 7 0.626623700
2.257832300
5.297176700
9.873773800
T. en calcular Workload - Slave 7 7.268537300
7.263019400
7.2291131000
7.251088500
Tiempo de proceso - Slave 8 0.626821500
2.262553200
5.3175171000
9.886232000
T. en calcular Workload - Slave 8 7.234680700
7.253189600
7.255840600
7.267439200
Tiempo de proceso - Slave 9 0.625939800
2.264886600
5.273311800
9.838265400
T. en calcular Workload - Slave 9 7.258875200
7.239036800
7.238928800
7.222033200
Tiempo de proceso - Slave 10 0.626728500
2.276375000
5.287248600
9.858853900
T. en calcular Workload - Slave 10 7.261690500
7.239634200
7.237839600
7.264057100
Tiempo de proceso - Slave 11 0.638004700
2.256133500
5.302518500
9.843296500
T. en calcular Workload - Slave 11 7.230683800
7.250230500
7.261899600
7.229961800
Tiempo de proceso - Slave 12 0.626414900
2.250295100
5.289408000
9.886233100
T. en calcular Workload - Slave 12 7.228289200 7.2477182000
7.222329300
7.268563700
Tiempo de proceso - Slave 13 0.628445100
2.268971700
5.317537500
9.824043700
T. en calcular Workload - Slave 13 7.258137200
7.245527800
7.266210900
7.216392600
Tiempo de proceso - Slave 14 0.691503900
2.547281600
6.124057000
11.767636800
T. en calcular Workload - Slave 14 8.214832800
8.240313000
8.339295000
8.213888600
Tiempo de proceso - Slave 15 0.685773100
2.566808900
6.053106700
11.70754330
T. en calcular Workload - Slave 15 8.203953000
8.327388800
8.327044600
8.232042000
Tiempo de proceso - Slave 16 0.686640400
2.576914200
6.135863200
11.57083870
T. en calcular Workload - Slave 16 8.222703900
8.217020500
8.253012000
8.2318131000
Tiempo de proceso - Slave 17 0.686851300
2.568384300
6.1311230000
11.39907540
T. en calcular Workload - Slave 17 8.173222800 8.1751424000
8.199215600
8.146022800
Tiempo de proceso - Slave 18 0.682975900
2.562542800
6.134727300
11.45208370
T. en calcular Workload - Slave 18 8.193793400
8.250217500
8.263592300
8.207154000
Tiempo de proceso - Slave 19 0.691472600
2.578240600
6.0711711000
11.471216400
T. en calcular Workload - Slave 19 8.201556500 8.1762199000
8.245421200
8.204726300
70
Fermín Ayuso y Víctor Manuel Ochoa
Tiempo de proceso - Slave 20 0.707420400
2.583255600
6.185943400
11.40052470
T. en calcular Workload - Slave 20 8.183217700
8.205880600
8.143045000
8.261440900
Tiempo de proceso - Slave 21 0.684310700
2.574541700
6.139627500
11.581470600
T. en calcular Workload - Slave 21 8.192796900
8.209330100
8.1899412000
8.203617200
Tiempo de proceso - Slave 22 0.681685800
2.605800900
6.199772800
11.50354880
T. en calcular Workload - Slave 22 8.246670500
8.235519900
8.255768100
8.222719900
Tiempo de proceso - Slave 23 0.682726700
2.598347600
6.092885900
11.44075300
T. en calcular Workload - Slave 23 8.182911500
8.205854700
8.213233800
8.192866000
Tiempo de proceso - Slave 24 0.688664700
2.569832700
6.0711479000
11.430318500
T. en calcular Workload - Slave 24 8.204566400
8.207401800
8.245134300
8.1951949000
Tiempo de proceso - Slave 25 0.650367900
2.295370300
5.224191900
9.542497400
T. en calcular Workload - Slave 25 8.19687720
8.26686080
8.17124340
8.17503790
Tiempo de proceso - Total 1.76922910
3.57508550
6.61315800
12.0022447
Balanceo Medio 1.20653990
1.21641250
1.26887870
1.25991940
Varianza 0.00422314
0.00040717
0.00131352
0.00101323
Desviación típica 0.06498573
0.02017857
0.03624260
0.03183127
Balanceo Global 1.14296998
1.15842219
1.19924203
1.23318208
Tabla 42: Resultados para una estimación de 240 líneas y 26 procesadores
Balanceo
para f unción benchmark con 240 líneas
1,26
1,22
1,18
9x9
9x9
7x7
9x9
balanceo
1,14
1,1
1,06
1,02
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 12: Balanceo para una función de estimación de carga de 240 lineas
71
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Efecto número de procesadores (tiempo)
para función benchmark con 240 líneas
140
120
100
9x9
tiempo
80
9x9
7x7
60
9x9
40
20
0
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Gráfica 13: Efecto del número de procesadores con una función de estimación
con 240 lineas
A continuación, mostramos una serie de gráficas que indican el efecto del tamaño de
la función benchmark en diferentes casos en los que se han utilizado un número
distinto de procesadores:
Para 4 procesadores:
Efecto tamaño función benchmark
para 4 procesadores
70
60
50
9x9
9x9
7x7
9x9
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100110120130140150160170180190200210220230240
tamaño (líneas)
Gráfica 14: Efecto del tamaño de la función de estimación para 4 procesadores
72
Fermín Ayuso y Víctor Manuel Ochoa
Para 8 procesadores:
Efecto del tamaño de la función benchmark
8 procesadores
40
tiempo de ejecución
35
30
25
9x9
20
9x9
7x7
15
9x9
10
5
0
12
2
32
22
52
42
72
62
92
82
112 132 152 172 192 212 232
102 122 142 162 182 202 222
Tamaño (líneas)
Gráfica 15: Efecto del tamaño de la función de estimación para 8
procesadores
Para 26 procesadores:
Efecto tamaño función benchmark
para 26 procesadores
14
12
10
tiempo
8
9x9
9x9
7x7
9x9
6
4
2
0
10
0
30
20
50
40
70
60
90
80
110
130
150
170
190
210
230
100
120
140
160
180
200
220
240
tamaño (líneas)
Gráfica 16: Efecto del tamaño de la función de estimación para 26 procesadores
Observamos en las tres últimas gráficas (Gráficas 14, 15 y 16) como el cambio entre
el número de lineas utilizadas para la estimación de carga no afecta al tiempo de
ejecución del algoritmo, por lo que podemos deducir que el reparto de carga se
realiza de forma correcta independientemente del número de lineas utilizadas.
Para finalizar con el grupo de pruebas, a continuación mostramos el speedup
habiendo tomado como referencia los tiempos de ejecución secuencial para los
distintos procesadores y con los diferentes tamaños de ventana anteriormente
73
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
nombrados en este trabajo.
Speedup tomando el menor tiempo
para función benchmark con 2 líneas
27,98
24,98
21,98
18,98
9x9
9x9
7x7
9x9
Óptimo
speedup
15,98
12,98
9,98
6,98
3,98
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Speedup con el peor tiempo
para función benchmark con 2 líneas
45
40
35
speedup
30
9x9
9x9
7x7
9x9
Óptimo
25
20
15
10
5
0
2
4
6
8
10
12
14
16
número de procesadores
74
18
20
22
24
26
Fermín Ayuso y Víctor Manuel Ochoa
Speedup tomando el tiempo medio
para f unción benchmark con 2 líneas
35
30
speedup
25
20
9x9
9x9
15
7x7
9x9
Óptimo
10
5
0
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Speedup tomando el menor tiempo
para función benchmark con 20 líneas
27,98
24,98
21,98
speedup
18,98
9x9
9x9
7x7
9x9
Óptimo
15,98
12,98
9,98
6,98
3,98
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
75
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Speedup con el peor tiempo
para f unción benchmark con 20 líneas
45
40
35
30
9x9
9x9
7x7
9x9
Óptimo
speedup
25
20
15
10
5
0
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Speedup tomando el tiempo medio
para función benchmark con 20 líneas
35
30
25
9x9
9x9
7x7
9x9
Óptimo
speedup
20
15
10
5
0
2
4
6
8
10
12
14
número de procesadores
76
16
18
20
22
24
26
Fermín Ayuso y Víctor Manuel Ochoa
Speedup tomando el menor tiempo
para f unción benchmark con 60 líneas
27,98
24,98
21,98
18,98
9x9
9x9
7x7
9x9
Óptimo
speedup
15,98
12,98
9,98
6,98
3,98
0,98
2
4
6
8
10
12
14
16
18
20
22
24
26
número de procesadores
Speedup tomando el tiempo medio
Speedup con el peor tiem po
para función benchmark con 60 líneas
para función benchmark con 60 líneas
35
45
4030
speedup
speedup
35
25
30
9x99x9
9x9
9x97x7
7x79x9
9x9Óptimo
2520
20
15
15
1010
Óptimo
55
0
02
4
2
4
6
6
8
8
10
10
12
12
14
14
16
16
número de procesadores
18
18
20
20
22
22
24
24
26
26
número de procesadores
Como podemos observar en los datos presentados en este apartado, el aumento en el
número de procesadores provoca una mejora en el tiempo de ejecución y en el
speedup, pero empeora el balanceo, no llegando a alcanzar este el 1,3. Observamos
como el algoritmo consigue escalar mejor con un número menor de procesadores. De
los datos también podemos observar que el tiempo de procesamiento total empeora si
elegimos un tamaño de ventana mayor, ya que los cálculos a realizar son más
costosos.
Un hecho a destacar es cuando ejecutamos el algoritmo con 16 procesadores, una
77
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
ventana de 9x9 y una función de estimación relativamente grande. En este caso, el
balanceo se dispara, siendo posible que los resultados obtenidos para este caso no
sean representativos, ya que no hemos tenido acceso y explotación exclusiva de la
arquitectura en la que se han realizado las pruebas.
78
Fermín Ayuso y Víctor Manuel Ochoa
Conclusiones y lineas de trabajo futuro
A diferencia de los sistemas homogéneos tradicionales, las redes heterogéneas están
compuestas de procesadores funcionando a diferentes velocidades. Como resultado,
los algoritmos de imágenes hiperespectrales paralelos tradicionales, los cuales
distribuyen los cálculos incluso a través de varios procesadores, no pueden equilibrar
la carga de procesadores de diferentes velocidades en redes heterogéneas como los
procesadores rápidos que realizarán rápidamente sus porciones de cálculo y tendrán
que esperar en el punto de sincronización a aquellos más lentos. Por lo tanto, una
solución natural del problema del cálculo heterogéneo es distribuir datos de modo
dispar a lo largo de los procesadores, de tal forma que cada procesador ejecuta el
volumen de computación de forma proporcional a su velocidad. La investigación del
cálculo heterogéneo ha mostrado que, con una tarea cuidadosa del programa de
reparto de carga, clusters heterogéneos pueden realizar un alto nivel de ejecución
agregada. Consiguientemente, esperamos que este tipo de clusters representen una
herramienta de elección para la comunidad científica dedicada al análisis de datos de
grandes dimensiones en sensores remotos y otros campos. Debido a la reciente
incorporación del cálculo heterogéneo a la investigación basada en sensores remotos,
hay disponible grandes oportunidades para explotar esta técnica en el análisis de
datos hiperespectrales.
El objetivo principal de este trabajo ha sido examinar el efecto que tiene la selección
de una función de estimación con diferentes tamaños; hemos comprobado que el
reparto de carga entre los diferentes procesadores se hace de forma correcta. Con
ello, se intentan integrar las implementaciones paralelas de las diferentes estrategias
para el análisis hiperespectral que ya existen para que funcionen en sistemas
heterogéneos (frecuentemente son la herramienta de elección de muchos sensores
remotos), como paso previo a portar dichas implementaciones a arquitecturas GRID.
Uno de estos pasos ya ha sido tenido en cuenta en este trabajo, como por ejemplo,
que los ficheros de la imagen sólo los necesita el master.
Como trabajo futuro, proponemos la implementación de algoritmos paralelos en
otros sistemas de computación masivamente paralelos, con la finalidad de acortar el
79
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
tiempo necesario para procesar las imágenes.
80
Fermín Ayuso y Víctor Manuel Ochoa
Manual de Usuario
Esta sección tratará de solventar las dudas de los usuarios finales de la
aplicación desarrollada como PFC. En las siguientes secciones se indicará como
instalar el software, ejecutarlo, conocer los mensajes de error, etc.
Requisitos
El primer apartado está dedicado a los requisitos necesarios para ejecutar la
aplicación desarrollada, tanto a nivel de hardware como a nivel de software.
Requisitos Hardware
En la siguiente tabla se detallan los requisitos hardware2 necesarios para
poder ejecutar el programa.
Procesador
Memoria RAM
Disco Duro
Tarjeta gráfica
Versión Paralela
Pentium IV 2600
512 MB
3 MB3
Compatible vga
Acceso a Cluster/Grid
Tabla 43: Requisitos hardware
Requisitos Software
A la hora de ejecutar la aplicación será necesario cumplir los siguientes
requisitos de software.
Sistema Operativo
Librerías
Linux (kernel > 2.14)
Librería MPI4
Versión secuencial Binario de la versión secuencial
del algoritmo
Versión paralela Binario de la versión paralela
del algoritmo
Para compilar Si desea compilar alguna de las
versiones
necesitará
las
librerías de desarrollo de MPI5
Tabla 44: Requisitos software
2 Requisitos tomados de los ordenadores de desarrollo, pero podría funcionar sobre configuraciones
menores
3 Se necesitará almacenamiento extra para las imágenes hiperespectrales
4 Ver sección Instalación para mas información
5 Idem.
81
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Instalación
Esta sección abarca el proceso de instalación del programa desarrollado.
El programa viene distribuido como un tar.gz en el que se encuentran por un lado los
binarios de la aplicación y por otro el código fuente de la misma, permitiendo al
usuario compilar el código si desea personalizar el binario para una distribución
concreta.
Librerías
Para el correcto funcionamiento de la aplicación es necesario tener instaladas
la librería MPI. Esta librería implementa el middelware necesario para correr la
aplicación de forma paralela. La instalación puede variar de una distribución a otra,
así que daremos las instrucciones básicas para instalar la librería en las principales
distribuciones, así como a partir de su código fuente.
Además de esto, si desea compilar el código fuente proporcionado, tanto de la
versión paralela, como la secuencial, necesitará obtener las librerías de desarrollo de
MPI.
En la siguiente tabla se detalla la forma de instalar las librerías necesarias para correr
el programa y para compilarlo.
Distribuciones Debian apt-get install mpich-bin openmpi-bin mpi-doc
Distribuciones Red Hat yum install mpich-bin openmpi-bin mpi-doc
Compilar Librería6 1. Descargue el código fuente de la web de MPI7.
2. Descomprima el archivo descargado con:
mpich.tar.gz
3. Acceda a la carpeta y ejecute:
./configure
./make
./make install
Librerías de desarrollo apt-get libmpich1.0-dev (Debian)
yum install libmpich1.0-dev (Red Hat/Fedora)
6 Puede encontrar mas información sobre la compiladión de MPICH en :
http://www-unix.mcs.anl.gov/mpi/mpich1/compiler.html
7 http://www-unix.mcs.anl.gov/mpi/mpich1/download.html
82
tar
xvf
Fermín Ayuso y Víctor Manuel Ochoa
Instalación de binarios
Para instalar la versión de binarios solamente tendrá que descomprimir el
fichero proporcionado en la carpeta que desee, para ello, ejecute:
$> gunzip Fichero.tar.gz
Este comando le creará una carpeta donde se encuentran por un lado los binarios de
la aplicación (directorio bin) y por otro el código fuente de la misma (directorio src).
Si desea compilar el código fuente puede hacerlo ejecutando:
$> make
en el directorio src. Esto le creará los binarios en la ruta bin, antes citada.
Ejecución
A continuación mostramos la forma de ejecutar las dos versiones
desarrolladas: secuencial y paralela.
Versión secuencial
Para ejecutar la versión secuencial debe ejecutar el siguiente comando:
$> ./sequential [opciones] NombreFichero
A continuación enumeramos las posibles opciones de ejecución de la versión
secuencial:
●
-w: Establece el tamaño de la ventana de procesamiento. El valor de la ventana
debe ser menor de 9 y mayor o igual que 3 e impar.
●
-o: Configura el nombre del fichero de salida. Por defecto output.bsq
●
-no-save: No salvará el resultado.
●
--help: Muestra la ayuda.
Un ejemplo de uso sería:
$> ./sequential -no-save AVIRIS_RAD
Versión paralela
Para ejecutar la versión paralela debe ejecutar el siguiente comando:
$> mpirun parallel -np X [opciones] NombreFichero
La opción -np establece el número de procesadores que se usarán en la ejecución. A
continuación enumeramos las posibles opciones de ejecución de la versión paralela:
83
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
●
-w: Establece el tamaño de la ventana de procesamiento. El valor de la ventana
debe ser menor de 9 y mayor o igual que 3 e impar.
●
-o: Configura el nombre del fichero de salida. Por defecto output.bsq.
●
-no-save: No salvará el resultado.
●
-e: Número de líneas que se usan en la estimación del reparto de recursos.
●
--help: Muestra la ayuda.
Un ejemplo de uso sería:
$> mpirun parallel -np 16 -e 5 -w 5 AVIRIS_RAD
En el comando de ejemplo se ejecuta la simulación para 16 procesadores, usando 5
líneas para estimar la carga de los procesadores y una ventana de 5x5.
Mensajes de error
Por último se describen los posibles mensajes de error que pueden aparecer a
la hora de ejecutar cada uno de los programas. Generalmente los errores son
comunes a las dos aplicaciones, así que si alguno de los mensajes sólo pertenece a
una de las versiones se indica.
Invalid option
Uno de los parámetros no es válido. Compruebe la sintaxis del comando
ejecutado.
Unable to load bsq image
No se puede leer el archivo de imagen indicado. Compruebe que la imagen
está en la ruta especificada y el nombre de la misma.
Unable to create output file
No se ha podido crear el fichero de salida. Compruebe que existe la carpeta
destino, tiene suficiente espacio y tiene permisos de escritura sobre el destino.
Incorrect format
El formato de la imagen no es válido. Revise la imagen de entrada.
Unable to calculate workload (paralela)
No se ha podido calcular la carga de trabajo para los procesadores. Revise la
configuración de la imagen, y del cluster.
84
Fermín Ayuso y Víctor Manuel Ochoa
Manual del Programador
En esta sección trataremos de dar una visión mas técnica del trabajo llevado a
cabo, para futuras modificaciones o ampliaciones del mismo y facilitar la lectura del
código para el lector técnico.
En la presente sección se describe el código fuente, incluidas las funciones
implementadas tanto para la versión secuencial del algoritmo como la paralela, así
como el entorno de desarrollo de ambas versiones.
Entorno de desarrollo
Es importante reseñar el entorno utilizado a la hora de implementar el PFC.
Para las dos versiones se ha utilizado un entorno similar:
Sistema Operativo
Ubuntu 8.04
Lenguaje
Compilador
IDE
Librerías
C
Gcc 4.2.3 (versión secuencial)
mpicc 4.2.3 (versión paralela)
gedit, consola y make
MPICH (versión de desarrollo)
Estructuras de datos
A continuación hacemos una descripción de las estructuras de datos creadas y
utilizadas en el desarrollo. Son comunes a la versión paralela y la secuencial, por
tanto sólo las describimos una vez..
Unsigned char *
Los vectores de unsigned char no son una estructura creada ex profeso para
nuestro proyecto, pero dada la importancia de los mismos en el programa, daremos
una pequeña explicación de su uso.
Los vectores de char se utilizan para almacenar las imágenes bsq, así como las partes
en que se divide la misma para procesarlos. El motivo de utilizar vectores de
unsigned char es que tomamos las imágenes bsq como una simple colección de bytes
a procesar. Para hacer esto C no tiene un tipo definido (por ejemplo Byte), por lo que
utilizamos un tipo similar en este caso: unsigned char.
85
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Los datos almacenados en los vectores dependen de la imagen, ya que pueden estar
agrupados de 1 en 1, de 2 en 2, etc. Esta agrupación depende de la imagen en
concreto y se define en la cabecera de la imagen.
BsqHeader
La estructura BsqHeader ha sido creada en exclusiva para la aplicación y nos
permite almacenar los parámetros de la cabecera de las imágenes dentro de nuestro
programa. Gracias a esta estructura podremos pasar información básica sobre la
imagen entre las funciones de la aplicación. Esta estructura se rellena a partir del
fichero .hdr (cabecera) de las imágenes bsq. La estructura de la misma es:
typedef struct{
int iNumSamples;
int iNumLines;
int iNumBands;
int iDataType;
int iMult;
long int iFileSize;
}BsqHeader;
El significado de cada término es el siguiente:
●
iNumSamples: Número de samples, píxeles, por línea que tiene la imagen.
●
iNumLines: Número total de líneas que tiene la imagen bsq.
●
iNnumBands: Número de bandas de la imagen.
●
iDataType: Tipo de datos de la imagen. Este valor nos dice la forma en que se
agrupan los bytes de la imagen.
●
iMult: Una vez conocemos la agrupación de bytes, tenemos esta variable para
saber como recorrer la imagen, es decir, almacena el tamaño del “paso” en
bytes a la hora de recorrer la imagen.
●
iFileSize: Tamaño de la imagen, en bytes.
sequential.c
Este fichero implementa la versión secuencial del algoritmo. Debido a que
algunas funciones son comunes a los dos algoritmos, se omitirán en la descripción
del fichero parallel.c.
86
Fermín Ayuso y Víctor Manuel Ochoa
ReadHeader
Lee el fichero de cabecera de una imagen, en formato hdr, y almacena los
datos en una estructura de datos.
Parámetros:
filename_header: Cadena con el nombre de la cabecera
BsqHeader *BH: Estructura de datos donde se almacena la salida. Es un
parámetro de E/S.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
●
●
●
●
ReadPiece
Lee una porción de una imagen hiperespectral, devolviendo el resultado como
un array de unsigned char..
Parámetros:
fp: Fichero donde leeremos.
lines_offset: Dirección del fichero a partir de la cual se lee
lines: Número de líneas del fichero a leer.
trozo: Vector de unsigned char que retorna la porción leída.
BH: Cabecera de la imagen.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
●
●
●
●
●
●
●
char2*
Transforman una serie de valores de un vector (dependiendo del tamaño del
tipo destino) de unsigned char en un número con diferentes formatos: short, entero o
double.
●
●
●
●
Parámetros:
num: Vector de unsigned char que transformaremos.
inic: Offset desde el que calcular el resultado.
Retorna: Short, Entero o double. Valor transformado.
Process
Procesa la imagen hiperespectral, recorriendo los píxeles y calculando la
media, tomando una ventana definida por el usuario.
Parámetros:
● piece: Imagen a procesar.
● Lines: Número de líneas de la imagen.
● tam_ventana: Tamaño de la ventana
● bh: Cabecera de la imagen
El siguiente fragmento recoge el bucle que recorre la imagen y procesa cada uno de
●
los píxeles:
87
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
for(i=0;i<lines;i++)
{
for(j=0;j<bh.iNumSamples;j++)
{
for(k=0;k<bh.iNumBands;k++)
{
num_valores[k]=0;
csuma[k]=0;
ssuma[k]=0;
isuma[k]=0;
dsuma[k]=0;
}
for(in=(i-(tam_ventana/2));in<=i+((tam_ventana/2));in++)
{
for(jn=(j-(tam_ventana/2));jn<=(j+(tam_ventana/2));jn++)
{
if(in>=0 && jn>=0 && (in!=i && jn!=j) && (in<lines) &&
(jn<bh.iNumSamples))
{
for(k=0;k<bh.iNumBands;k++)
{
switch (bh.iMult)
{
case 1:
csuma[k]
+=piece[(k*piece_band_size)+((in*bh.iNumSamples)+jn)*bh.iMult];
break;
case 2:
ssuma[k]
+=char2short(piece,(k*piece_band_size)+(((in*bh.iNumSamples)+jn)*bh.iMult));
break;
case 4:
isuma[k]+=char2int(piece,
(k*piece_band_size)+(((in*bh.iNumSamples)+jn)*bh.iMult));
break;
case 8:
dsuma[k]
+=char2double(piece,(k*piece_band_size)+(((in*bh.iNumSamples)+jn)*bh.iMult));
break;
}
}
num_valores[k]++;
}
}
}
for(k=0;k<bh.iNumBands;k++)
{
switch (bh.iMult)
{
case 1:
cresult=(unsigned char)
(csuma[k]/num_valores[k]);
piece[(k*piece_band_size)+(i*bh.iNumSamples)
+j]=cresult;
break;
88
Fermín Ayuso y Víctor Manuel Ochoa
case 2:
sresult=(short)(ssuma[k]/num_valores[k]);
memcpy(&piece[(k*piece_band_size)+
(((i*bh.iNumSamples)+j)*bh.iMult)],&sresult,2);
break;
case 4:
iresult=(int)(isuma[k]/num_valores[k]);
memcpy(&piece[(k*piece_band_size)+
(((i*bh.iNumSamples)+j)*bh.iMult)],&iresult,4);
break;
case 8:
dresult=(double)(dsuma[k]/num_valores[k]);
memcpy(&piece[(k*piece_band_size)+
(((i*bh.iNumSamples)+j)*bh.iMult)],&dresult,8);
break;
}
}
}
}
ParameterProcess
Procesa los parámetros de entrada del programa.
●
●
●
●
Parámetros:
argc: Número de parámetros.
Argv: Valor de los parámetros.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
SecuencialProcess
Procesa de forma secuencial una imagen hiperespectral. Utiliza la función
process para realizar los cálculos.
●
●
●
●
Parámetros:
filename: Nombre de la imagen a procesar.
BH: Cabecera de la imagen.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
parallel.c
Fichero donde se implementa la versión paralela del algoritmo, usando la
librería MPI para ello.
ImagePartition
Particiona la imagen para poder enviar a los diferentes procesadores una pieza
que procesar.
●
Parámetros:
89
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
●
●
●
●
filename: Nombre de la imagen a procesar.
BH: Cabecera de la imagen.
num_nodes: Número de procesadores/ equipos.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
La forma en que se particiona la imagen, es:
for(n=0;n<num_nodes;n++)
{
if(n==0)
{
lines=LinesAssign[n]+(HalfWinSize);
offset_mod=0;
}
else if(n==num_nodes-1)
{
lines=LinesAssign[n]+(HalfWinSize);
offset_mod=-HalfWinSize;
}
else
{
lines=LinesAssign[n]+(HalfWinSize*2);
offset_mod=-HalfWinSize;
}
Pieces[n]=(unsigned char*)malloc(BH.iMult*lines*BH.iNumSamples*BH.iNumBands);
ReadPiece(fp,lines_offset+offset_mod,lines,Pieces[n],BH);
lines_offset+=LinesAssign[n];
}
SaveImage
Guarda los resultados del proceso en un archivo bsq válido, teniendo en
cuenta las piezas en que se divide la imagen.
●
●
●
●
Parámetros:
BH: Cabecera de la imagen.
num_nodes: Número de procesadores/ equipos.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
WorkloadCalculation
Calcula el tamaño de la carga de trabajo que se repartirá entre los
procesadores. Se hace una prueba de carga, enviando a los procesadores una parte de
la imagen. Con los tiempos de respuesta se calcula la carga asignada a cada
procesador.
●
●
●
90
Parámetros:
BH: Cabecera de la imagen.
Retorna: Entero. 1 si todo ha funcionado bien, 0 si no.
Fermín Ayuso y Víctor Manuel Ochoa
La parte central del algoritmo es la siguiente:
MedEstimatedTime=0;
for(i=0;i<MAX_PROBES;i++){
st_master=MPI_Wtime();
Process(P,EstimationLines,DEFAULT_WINSIZE,header);
end_master=MPI_Wtime();
MedEstimatedTime+=(end_master-st_master);
}
total=MedEstimatedTime/MAX_PROBES;
double NodeTime[MAX_NODES];
double Alpha=0;
double K=0;
int Total=0;
NodeTime[0]=total;
for(i=1;i<num_nodes;i++)
{
MPI_Recv(&time,sizeof(time),MPI_CHAR,i,TAG,MPI_COMM_WORLD,&status);
NodeTime[i]=time;
total+=time;
}
for(i=0;i<num_nodes;i++)
{
Alpha+=(1/NodeTime[i]);
}
K=header.iNumLines/Alpha;
for(i=0;i<num_nodes;i++)
{
LinesAssign[i]=K/NodeTime[i];
Total+=LinesAssign[i];
}
OrderIndex(NodeTime,Index,num_nodes);
i=0;
while(i<header.iNumLines-Total)
{
LinesAssign[Index[(num_nodes-(i+1))]]++;
i=(i+1)%num_nodes;
}
91
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Referencias bibliográficas
Artículos y Obras
1. D. Valencia, A. Lastovetsky, M. O'Flynn, A. Plaza and J. Plaza. Parallel
Processing of Remotely Sensed Hyperspectral Images on Heterogeneous
Networks of Workstations Using HeteroMPI. International Journal of High
Performance Computing Applications, accepted for publication.
2. Schowengerdt, R.A. Remote Sensing: Models and Methods for Image
Processing, 2nd ed., Academic Press, 1997.
3. J. Plaza, R. Perez, A. Plaza, P. Martinez and D. Valencia. Parallel
Morphological/Neural Processing of Hyperspectral Images Using
Heterogeneous and Homogeneous Platforms. Cluster Computing, vol. 11,
no. 1, pp. 17-32, March 2008.
4. Green, R.O. et al., Imaging spectroscopy and the airborne visible/infrared
imaging spectrometer (AVIRIS), Remote Sens. Environ., vol. 65,pp. 227–
248, 1998.
5. Chang, C.-I, Hyperspectral Imaging: Techniques for Spectral Detection and
Classification, Kluwer Academic/Plenum Publishers, 2003.
6. Landgrebe, D., “Hyperspectral Image Data Analysis”, IEEE Signal
Processing Magazine, vol. 19, no. 1, pp. 17-28, 2002.
7. A. Plaza, D. Valencia and J. Plaza. An Experimental Comparison of Parallel
Algorithms for Hyperspectral Analysis Using Homogeneous and
Heterogeneous Networks of Workstations. Parallel Computing, vol. 34, no.
2, pp. 92-114, February 2008.
8. A. Plaza. Parallel Techniques for Information Extraction from
Hyperspectral Imagery Using Heterogeneous Networks of Workstations.
Journal of Parallel and Distributed Computing, vol. 68, pp. 93-111, January
2008.
9. Landgrebe, D., Multispectral Data Analysis, A Signal Theory Perspective
http://dynamo.ecn.purdue.edu/~biehl/MultiSpec/documentation.html, 1998.
10. A. Plaza, J. Plaza and D. Valencia. Impact of Platform Heterogeneity on the
Design of Parallel Algorithms for Morphological Processing of HighDimensional Image Data. Journal of Supercomputing, vol. 40, no. 1, pp.
81-107, April 2007.
11. A. Plaza, J. Plaza and D. Valencia. AMEEPAR: Parallel Morphological
Algorithm for Hyperspectral Image Classification in Heterogeneous
Networks of Workstations. Lecture Notes in Computer Science, vol. 3391,
pp. 888-891, ICCS 2006.
12. Message Passing Interface Forum. MPI: A message-passing interface standard.
92
Fermín Ayuso y Víctor Manuel Ochoa
Computer Science Dept. Technical Report CS-94-230, University of Tennessee,
Knoxville,TN, 1994.
13. D. Valencia, P. Martínez, A. Plaza and J. Plaza. Parallel Wildland Fire
Monitoring and Tracking Using Heterogeneous Computing Resources, in:
High Performance Computing in Remote Sensing. Edited by A. Plaza and
C.-I Chang, Chapman & Hall/CRC Press, Computer & Information Science
Series, Boca Raton, Florida, October 2007, ISBN: 9781584886624, pp.
151-182, 2007.
14. Chan A., Gropp, W. y Lusk, E.. User’s guide for mpe extensions for MPI
programs. Technical Report ANL-98/xx, Argonne National Laboratory, 1998.
ftp://ftp.mcs.anl.gov/pub/mpi/mpeman.ps.
15. J. Plaza, A. Plaza, R. Perez and P. Martinez. Parallel Morphological Neural
Networks for Hyperspectral Image Classification on Fully Heterogeneous
and Homogeneous Networks of Workstations. Parallel Computing
(ParCo'2007), Forschungszentrum Jülich, Aachen, Germany, 2007.
16. Gropp, W., Lust, E., Skjellum, A., Using MPI: Portable parallel
programming with message passing interface, MIT Press, 1996.
17. A. Plaza, J. Plaza, A. Paz and S. Blazquez. Parallel CBIR System for
Efficient Hyperspectral Image Retrieval from Heterogeneous Networks of
Workstations. Workshop on Grid Computing Applications Development
(GridCAD), Timisoara, Romania, 2007
18. A. Plaza, D. Valencia, S. Blazquez and J. Plaza. Parallel Detection of Targets
in Hyperspectral Images Using Heterogeneous Networks of Workstations.
15th Euromicro Parallel and Distributed Processing Conference (PDP'2007),
Naples, Italy, 2007.
19. Neville, R.A., Staenz, K., Szeredi, T., Lefebvre, J. y Hauff, P., Automatic
endmember extraction from hyperspectral data for mineral exploration, 4th
International Airborne Remote Sensing Conf. and Exhibition/21st Canadian
Symposium on remote Sensing, Ottawa, Ontario, Canada, pp. 21-24, June
1999.
20. A. Plaza, J. Plaza and D. Valencia. Distributed Computing for Efficient
Hyperspectral Imaging Using Fully Heterogeneous Networks of
Workstations, IEEE International Conference on Distributed Computing
Systems (ICDCS), Lisbon, Portugal, 2006.
21. Chang, C.-I y Du, Q. Estimation of number of spectrally distinct signal
sources in hyperspectral imagery, IEEE Trans. on Geoscience and Remote
Sensing, vol. 42, no. 3, pp. 608-619, March 2004.
22. A. Plaza. Parallel Morphological Processing of Hyperspectral Image Data
on Heterogeneous Networks of Computers. 20th IEEE International Parallel
& Distributed Processing Symposium (IPDPS), Rhodes Island, Greece, 2006.
23. D. Valencia, A. Lastovetsky and A. Plaza. Design and Implementation of a
Parallel Heterogeneous Algorithm for Hyperspectral Image Analysis Using
93
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
HeteroMPI. 5th International Symposium on Parallel and Distributed
Computing (ISPDC), Timisoara, Romania, 2006.
24. Boardman, J.W. y Kruse, F.A., “Automated spectral analysis: A geological
example using AVIRIS data, Northern Grapevine Mountains, Nevada,” En:
Proc. 10th Thematic Conference, Geologic Remote Sensing, San Antonio,
TX, 1994.
25. J. Plaza, R. Perez, A. Plaza, P. Martinez and D. Valencia. Parallel
Morphological/Neural Classification of Remote Sensing Images Using
Fully Heterogeneous and Homogeneous Commodity Clusters. IEEE
International Conference on Cluster Computing (Cluster'2006), Barcelona,
Spain, 2006.
26. A. Plaza. Heterogeneous Computing in Remote Sensing Applications:
Current Trends and Future Perspectives. Fifth International Workshop on
Algorithms, Models and Tools for Parallel Computing on Heterogeneous
Networks (HeteroPar'06), Barcelona, Spain, 2006.
27. Madhok, V., Landgrebe, D., Spectral-Spatial Analysis of Remote Sensing
Data: An Image Model and A Procedural Design. Tesis Doctoral, School of
Electrical Engineering and Computer Science, Purdue University, 1998.
28. A. Plaza, J. Plaza, D. Valencia and P. Martinez, Efficient Information
Extraction from Hyperspectral Imagery Using Heterogeneous Networks of
Workstations. IEEE International Geoscience and Remote Sensing
Symposium 2005, Seoul, South Korea, 2005.
29. A. Plaza, J. Plaza, D. Valencia and P. Martinez, Efficient Information
Extraction from Hyperspectral Imagery Using Heterogeneous Networks of
Workstations. IEEE International Geoscience and Remote Sensing
Symposium 2005, Seoul, South Korea, 2005.
30. Chen, J.M., Spatial Scaling of a Remotely Sensed Surface Parameter by
Contexture. Remote Sensing of Environment, vol. 69, pp. 30-42, 1999.
31. D. Valencia and A. Plaza. Diseño e implementación de un algoritmo
heterogéneo paralelo para el análisis de imágenes hiperespectrales.
Jornadas de Paralelismo, Albacete, Spain, 2006
32. Lastovetsky, A., Reddy, R., HeteroMPI: Towards a Message-Passing
Library for Heterogeneous Networks of Computers, Journal of Parallel and
Distributed Computing, vol. 66, issue 2: Elsevier, pp. 197-220, 2006.
33. Lastovetsky, A., Reddy, R., Data Partitioning with a Realistic Performance
Model of Networks of Heterogeneous Computers, International Journal of
High Performance Computations and Applications (IJHPCA), 2005.
34. Reddy, R., HMPI: A Message-Passing Library for Heterogeneous Networks
of Computers, Computer Science Department, University College Dublin,
Dublin, 2005.
35. Lastovetsky, A., Reddy, R., HMPI: Towards a Message-Passing Library for
Heterogeneous Networks of Computers, Proceedings of the 17th
94
Fermín Ayuso y Víctor Manuel Ochoa
International Parallel and Distributed Processing Symposium (IPDPS 2003),
Nice, France, IEEE Computer Society, 22-26 April 2003
Webs Relacionadas
36. http://www.gts.tsc.uvigo.es/~julio/english/pubimhai/presentation.htm
37. http://concurso.cnice.mec.es/cnice2006/material121/unidad3/sensores.htm
38. http://www.oss.goodrich.com/HyperspectralDigitalImageryCollectionExperi
ment.shtml
39. http://fullspectralimaging.net/MHIL.aspx
40. http://aviris.jpl.nasa.gov/
41. http://www-unix.mcs.anl.gov/mpi/
42. http://www3.niu.edu/mpi/
43. http://www.open-mpi.org/
44. http://www.gridmpi.org/index.jsp
45. http://hcl.ucd.ie/project/HeteroMPI
46. www.microimages.com/i18n/_es_spanish/es_hyprspec.pdf
Apéndice
En este apéndice mostramos una versión resumida del código desarrollado para la
realización de este PFC. A continuación mostramos el código de la versión
secuencial y el de la versión paralela.
95
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Ilustración 11: Banda 224 de la imagen original
96
Fermín Ayuso y Víctor Manuel Ochoa
Ilustración 12: Banda 224 de la imagen procesada con una ventana 3x3
97
Aplicación de la tecnología Grid al tratamiento de imágenes hiperespectrales
Ilustración 13: Banda 224 de la imagen procesada con una ventana 9x9
98
Descargar