Dise˜no e implementación de un algoritmo heterogéneo

Anuncio
VALENCIA Y PLAZA
1
Diseño e implementación de un algoritmo
heterogéneo paralelo para el tratamiento de
imágenes hiperespectrales
David Valencia† y Antonio Plaza†
Resumen— El desarrollo de técnicas eficientes para
la transformación de volúmenes masivos de datos
hiperespectrales, obtenidos de forma remota, es una
tarea crı́tica para la exploración terrestre y planetaria
basada en satélites. A pesar de que la mayorı́a de
las estrategias de procesamiento paralelo utilizadas
para el análisis de imágenes hiperespectrales asumen
homogeneidad en las plataformas de computación,
las redes de computadores heterogéneos suponen una
solución muy prometedora, que ha empezado a juegar un papel muy importante en misiones de teledetección. Para tratar la necesidad de algoritmos heterogéneos para el tratamiento de imágenes hiperespectrales, en el presente trabajo desarrollamos un
novedoso algoritmo paralelo para el análisis morfológico (espacial y espectral) de imágenes hiperespectrales. El algoritmo se ha desarrollado utilizando
heterogeneous MPI (HeteroMPI), una extensión de
MPI para programar cálculos de alto rendimiento en
redes heterogéneas de computadores. Los resultados experimentales son evaluados en el contexto de
una aplicación real, utilizando datos hiperespectrales
obtenidos por NASA Jet Propulsion Laboratory.
Palabras clave— Computación heterogénea, Plataformas distribuidas, Balance de carga, MPI, HeteroMPI,
Análisis hiperespectral.
I. Introducción
L
OS sensores hiperespectrales permiten identifican materiales y objetos en la superficie terrestre basándose en patrones únicos de reflectancia, resultantes de la interacción de la energı́a solar con la estructura molecular de los materiales [1].
La mayorı́a de las aplicaciones de ésta tecnologı́a
necesitan tiempos de respuesta muy rápidos para
poder tomar decisiones de una forma correcta, por
lo que necesitan algoritmos de alto rendimiento computacional. Algunos ejemplos de aplicaciones que
utilizan esta tecnologı́a son la detección de objetivos militares, planificación urbanı́stica, prevención
y respuesta ante desastres, detección de contaminantes biológicos, vertidos y otros tipos de sustancias quı́micas, etc. El concepto de imagen hiperespectral fue introducido a raı́z del desarrollo (por
parte de NASA Jet Propulsion Laboratory) del sensor Airborne Visible-InfraRed Imaging Spectrometer
(AVIRIS), el cual cubre la región de longitudes de
onda entre 0.4 y 2.5 µm utilizando 224 bandas espectrales. Dicho instrumento es capaz de obtener
”cubos” de datos de varias decenas de kilómetros de
largo y cientos de MB de tamaño. La cantidad y volumen de datos obtenidos por estos sensores ha intro†Área de Arquitectura y Tecnologı́a de Computadores, Departamento de Informática, Universidad de Extremadura,
Avda. de la Universidad s/n, CP 10071, Cáceres.
ducido nuevos desafı́os en cuanto a procesamiento [2].
La mayorı́a de arquitecturas paralelas especializadas
en el análisis de datos de teledetección en la última
década han sido de naturaleza homogégena [3]. No
obstante, la computación heterogénea se está convirtiendo en una alternativa viable a los (generalmente
caros) sistemas paralelos de altas prestaciones [4]. En
particular, las redes heterogéneas de computadores
permiten utilizar recursos ya existentes con escalabilidad incremental de componentes, y con posibilidad
de evaluar el rendimiento de forma aislada [5]. Al
mismo tiempo, estos sistemas pueden conseguir una
gran velocidad de cómputo a bajo coste [6].
A pesar del creciente interés en el desarrollo de
técnicas de análisis hiperespectral, solo existen unos
cuantos algoritmos paralelos consolidados en la literatura. Esto se debe, principalmente, a su uso
restringido en aplicaciones militares (muchas veces
clasificadas). Sin embargo, con el reciente desarrollo e interés en la tecnologá hiperespectral, es posible anticipar que el procesamiento paralelo se convertirá en un auténtico requerimiento en la mayorı́a
de las misiones. Con el principal objetivo de satisfacer esta necesidad, en el presente trabajo damos un
primer paso hacia el desarrollo de técnicas de análisis
hiperespectral optimizadas para arquitecturas heterogéneas. El trabajo se encuentra estructurado de la
siguiente forma: la sección II describe las principales
caracterı́sticas de HeteroMPI, la extensión de MPI
utilizada en el desarrollo de algoritmos heterogéneos.
La sección III desarrolla el algoritmo paralelo basado
en HeteroMPI. La sección IV evalúa el rendimiento
del algoritmo analizando su fiabilidad y escalabilidad
en un cluster heterogéneo de 15 máquinas en University College Dublin. Finalmente, la sección V ofrece
un resúmen de las principales aportaciones y futuras
lı́neas de trabajo.
II. Descripción de HeteroMPI
La especificación estándar de MPI ofrece una serie de constructores de comunicaciones y grupos que
permiten al programador crear un grupo de procesos elegidos explı́citamente de entre un conjunto
ordenado de procesos [7]. Ésta aproximación es
posible cuando la aplicación es ejecutada en un sistema homogéneo de memoria distribuida. En cambio, cuando se ejecuta en una red heterogénea, la
selección del grupo óptimo deberá tener en cuenta
no solo la potencia de cálculo de los procesadores
heterogéneos, sino también la velocidad y ancho de
banda de los enlaces de comunicación [8]. Ésta carac-
2
XVII JORNADAS DE PARALELISMO—ALBACETE, SEPTIEMBRE 2006
terı́stica es de gran importancia en aplicaciones dominadas por grandes volúmenes de datos, por ejemplo, en análisis hiperespectral, si bien es cierto que
se trata de una tarea bastante complicada de conseguir, en particular, desde el punto de vista del programador.
El principal objetivo de HeteroMPI es automatizar y optimizar la selección de un grupo de procesos, de forma que puedan ejecutar un algoritmo heterogéneo de la forma más eficiente posible.
Para conseguir este objetivo, HeteroMPI ofrece un
pequeño lenguaje para la especificación del modelo
de rendimiento. Éste lenguaje es un subconjunto de
mpC, definido en [9], el cual permite al programador
definir explı́citamente una red abstracta y distribuir
datos, cálculos y comunicaciones en dicha red. Partiendo de este modelo, HeteroMPI automáticamente
adapta (en tiempo de ejecución) la red abstracta a
una red real, ajustando dinámicamente el modelo de
rendimiento a parámetros especı́ficos de la red, tales
como la potencia de cálculo de los procesadores o
la capacidad de los enlaces de comunicación. Por
medio de un compilador, la descripción del modelo
de rendimiento se traduce en un conjunto de funciones especı́ficas. En secciones sucesivas incluimos
una breve descripción de las funciones más importantes de HeteroMPI, las cuales han sido utilizadas
para implementar el algoritmo paralelo propuesto.
Para obtener información más detallada sobre éstas
y otras funciones de HeteroMPI, consultar [8].
Una aplicación tı́pica de HeteroMPI comienza con la
inicialización del sistema, utilizando la función:
HeteroMPI_Init(int argc, char **argv)
Ésta rutina debe ser llamada una sola vez por todos
los procesos que están ejecutando la aplicación. Tras
la inicialización, los programadores pueden invocar
cualquiera de las otras rutinas de HeteroMPI. Por
ejemplo, la siguiente función se utiliza para crear un
grupo de ejecución:
HeteroMPI_Group_create(HeteroMPI_Group *gid,
const HeteroMPI_Model *perf_model,
const void *model_parameters,
int param_count)
Ésta función devuelve un manejador, gid, para el
grupo de procesos MPI. La constante perf model encapsula las caracterı́sticas especf́icas del modelo de
rendimiento; model parameters son los parámetros
actuales del modelo de rendimiento; y param count
es el número total de parámetros. Tras la ejecución
de la función, las caracterı́sticas de rendimiento de
los distintos procesadores heterogéneos, opt speeds,
pueden obtenerse utilizando la siguiente función:
HeteroMPI_Group_performances(&gid,
opt_speeds)
Es importante destacar que la exactitud del modelo de rendimiento depende en gran medida de la
exactitud de la estimación de las velocidades actuales de los procesadores. Para realizar dicha tarea,
HeteroMPI permite utilizar una función que estima
dinámicamente las velocidades de los procesadores
en tiempo de ejecución:
HeteroMPI_Recon(HeteroMPI_Benchfunction b,
const void *input_p,
int num_of_parameters,
void *output_p)
La anterior función permite que todos los procesadores ejecuten una función benchmark, denominada b, en paralelo. Esta es una operación colectiva, y debe ser ejecutada por todos los procesos del
grupo asociado con el ”universo de comunicación”
definido por la variable HMPI COMM WORLD de
HeteroMPI. Para liberar un grupo de computación,
se utiliza la función:
HeteroMPI_Group_free(HeteroMPI_Group *gid)
En esta función, gid es un manejador HeteroMPI
para gestionar un grupo de procesos MPI. De nuevo,
se trata de una operación colectiva que debe ser ejecutada por todos los miembros del grupo. Para finalizar la de ejecución, se utiliza la función:
HeteroMPI_Finalize(int exitcode)
III. Algoritmo heterogéneo
En esta sección describimos un algoritmo paralelo
heterogéneo para el análisis morfológico de imágenes
hiperespectrales. La morfologı́a matemática es una
técnica estándar de procesamiento de imágenes que
ofrece un marco de trabajo incomparable para conseguir la integración de la información espacial y
espectral [10]. En primer lugar, describimos el algoritmo morfológico estándar. A continuación, describimos algunos aspectos fundamentales acerca de
su implementación paralela, tales como el particionamiento de datos y la comunicación de los mismos. Finalmente, detallamos la implementación HeteroMPI para redes heterogéneas. En la siguiente
sección, evaluamos el rendimiento computacional del
algoritmo.
A. Algoritmo morfológico
El análisis morfológico se ha utilizado con éxito en
trabajos prévios para analizar imágenes hiperespectrales [10]. El algoritmo morfológico seleccionado en
el presente trabajo considera de forma simultánea
la información espacial y espectral. Dichas aproximaciones hı́bridas representan la generación más
avanzada de algoritmos de análisis hiperespectral.
Con vistas a describir matemáticamente la aproximación propuesta, denotamos como f un conjunto
de datos hiperespectrales definido en un espacio Ndimensional (N-D), donde N es el número de canales
o bandas espectrales. El algoritmo impone una
relación de orden en términos de pureza espectral
en el conjunto de pı́xels (vectores) incluidos en una
ventana de búsqueda espacial, llamada elemento
estructural. Este elemento se desplaza por todos
los pı́xels de la imagen [11]. Para conseguir la
relación de orden citada, debemos primero definir
una distancia acumulada entre un pixel particular
VALENCIA Y PLAZA
3
f(x, y), donde f(x, y) denota un vector N-D las
coordenadas espaciales discretas (x, y)²Z 2 , y todos
los vectores incluidos en la vecindad espacial dada
por un elemento estructural, que denotamos como
B (B-vecindad):
XX
DB [f(x, y)] =
SAM [f(x, y), f(i, j)],
(1)
donde (i, j) son las coordenadas espaciales en la
B -vecindad y SAM es la distancia angular (Spectral
Angle Mapper ):
SAM (f(x, y), f(i, j)) = cos−1
f(x, y) · f(i, j)
(2)
k f(x, y) · f(i, j) k
Basándonos en la anterior distancia, podemos calcular operaciones morfológicas de erosión y dilatación de la siguiente forma:
(f ª B)(x, y) = argmin(i,j) {DB (f(x + i, y + j))} (3)
(f ⊕ B)(x, y) = argmax(i,j) {DB (f(x + i, y + j))} (4)
Los operadores argmin y argmax seleccionan, respectivamente, el pixel menos puro y el más puro en la B vecindad. Utilizando estos operadores morfológicos
básicos, proponemos un nuevo algoritmo automático
para la clasificación de imágenes hiperespectrales,
que denotaremos como clasificador morfolófico automático (CMA) de aquı́ en adelante:
Entradas: Imagen hiperespectral f, elemento estructural B, número de clases c, número de iteraciones, IM AX .
Salidas: Clasificación para f(x, y)
1. Inicializar un ı́ndice de excentricidad morfológica M EI(x, y) = 0 para cada pı́xel.
2. Para cada iteración, mover B por todos los
pı́xels de f, definiendo un área de búsqueda local
alrededor de f(x, y) y calcular el pixel máximo
y mı́nimo de cada B -vecindad utilizando dilatación y erosión, respectivamente. Actualizar el
M EI en cada pixel utilizando el SAM entre el
máximo y el mı́nimo. Repetir este proceso hasta
llegar al número máximo de iteraciones.
3. Seleccionar el conjunto de c vectores con un
mayor ı́ndice asociado en la imagen M EI resultante y estimar la abundancia a nivel subpixel
αi (x, y) de dichos pı́xels utilizando el modelo de
mezcla lineal descrito en [1].
4. Obtener una etiqueta de clasificación para
cada pixel f(x, y).
La etiqueta se obtiene
identificando la clase con mayor abundancia
a nivel subpixel. Esto se realiza comparando todas las fracciones de abundancia estimadas {α1 (x, y), α2 (x, y), . . . , αc (x, y)} y localizando aquella con valor máximo, sea αi∗ (x, y),
con i∗ = arg{max1≤i≤c {αi (x, y)}}.
La complejidad computacional del algoritmo es
O(pf × pB × N ) [2], donde pf es el número de pı́xeles
en f y pB es el número de pı́xeles en B. En la siguiente subsección, proponemos una implementación
paralela para optimizar el algoritmo en sistemas heterogéneos.
B. Implementación paralela heterogénea
Dada la naturaleza de los datos hiperespectrales
y los algoritmos de análisis, pueden aplicarse dos
tipos de particionamiento de datos: espacial y espectral [2]. El particionamiento espacial subdivide
la imagen en múltiples bloques que contienen pı́xels
(vectores) completos, asignando uno o más bloques
de pı́xels a cada procesador. El paralelismo espectral
subdivide los datos en bloques de bandas espectrales
contiguas (sub-volúmenes), repartiendo dichos subvolúmenes entre los diferentes procesadores. En estudios previos, se han descrito ampliamente las ventajas e inconvenientes de cada una de ambas posibilidades, demostrando que el particionamiento espacial
resulta más adecuado [2].
Para implementar el algoritmo morfológico utilizando HeteroMPI, el primer paso consiste en definir
un modelo de rendimiento capaz de modelar la ejecución incluyendo el particionamiento de datos y el
esquema de comunicación adoptado. A continuación
se muestra el fragmento principal del código mpC [9]
que describe el modelo de rendimiento adoptado en
nuestra aplicación concreta. Los parámetros m y n
indican el número de pı́xels (columnas por filas) en
la imagen de entrada.
algorithm hcma_rend(int m, int n,
int se_size, int iter, int p, int
q, int part_size[p*q]){
coord I = p, J = q; node {
I>=0 && J>=0:
benchmark*((part_size[I*q+J]*iter); };
parent[0,0];
}
Los parámetros se size e iter especifican, respectivamente, el tamaño del elemento estructural y el
número de iteraciones ejecutas por el algoritmo. Los
parámetros p y q indican las dimensiones de la rejilla
de cómputo en columnas y filas, respectivamente,
utilizadas para mapear las coordenadas espaciales individuales de cada procesador. Finalmente, part size
es un vector que indica el tamaño de la partición
local (calculada automáticamente utilizando la potencia de cálculo de los procesadores heterogéneos).
Recalcamos que algunas de las definiciones se han
eliminado de la siguente descripciõn por simplicidad. Por último, mostramos el núcleo del programa
HeteroMPI que implementa el algoritmo de análisis
hiperespectral, el cual utiliza las funciones especificadas en la sección II.
main(int argc, char *argv[]){
HeteroMPI_Init(&argc,&argv);
if(HeteroMPI_Is_member
(HMPI_COMM_WORLD_GROUP)){
HeteroMPI_Recon(benchmark_function, dims,
15, &output_p);
}
HeteroMPI_Group_create(&gid,
&MPC_NetType_hpamc_rend,modelp, num_param);
if (HeteroMPI_Is_free()){
HeteroMPI_Group_create(&gid,
4
XVII JORNADAS DE PARALELISMO—ALBACETE, SEPTIEMBRE 2006
&MPC_NetType_hpamc_rend, NULL, 0);
}
if (HeteroMPI_Is_free()){
HeteroMPI_Finalize(0);
}
if (HeteroMPI_Is_member(&gid)){
HeteroMPI_Group_performances(&gid, speeds);
Read_image(name,image,lin,col,bands,
data_type,init);
for (i=imax; i>1; i=i--){
AMC_algorithm(image,lin,col,bands,
sizeofB,res);
}
if (HeteroMPI_Is_member(&gid)){
free(image);
}
HeteroMPI_Group_free(&gid);
HeteroMPI_Finalize(0);
}
}
IV. Experimentos
En esta sección evaluamos el algoritmo paralelo
propuesto. En primer lugar, describimos un cluster heterogéneo utilizado en las pruebas. A continuación, describimos brevemente una imagen hiperespectral real utilizada en nuestros experimentos,
obtenida por el sensor AVIRIS. La sección finaliza con una evaluación detallada de la fiabilidad y
rendimiento computacional del algortimo propuesto.
TABLA I
Descripción de los procesadores heterogéneos
#
0,1
2,3
4,5
6,7
8
9
10
11
12
13
14
Nombre (procesadores)
pg1cluster01(2)
pg1cluster02(2)
pg1cluster03(2)
pg1cluster04(2)
csultra01(1)
csultra02(1)
csultra03(1)
csultra05(1)
csultra06(1)
csultra07(1)
csultra08(1)
Arquitectura
Linux
2.4.18-10smp
Intel(R)
XEON(TM)
SunOS
5.8
sun4u
sparc
SUNW
Ultra-5.10
224 bandas espectrales, para un volumen de datos
superior a 140 MB. La escena mostrada en la
figura 1 representa un problema de clasificación
muy complejo. Afortunadamente, se disponse de
información verdad-terreno para comprobar la
bondad de los resultados. Dicha información viene
dada por 30 clases de referencia, las cuales serán
utilizadas para validar la precisión de la clasificación obtenida por nuestro algoritmo morfológico
paralelo.
La escena utilizada es ampliamente
reconocida como un benchmark de referencia para
la validación de algoritmos de análisis hiperespectral.
A. Cluster Heterogéneo
Se ha utilizado una red heterogénea de máquinas
Linux/SunOs (15 procesadores) localizada en University College Dublin (UCD). La Tabla I muestra las
caracterı́sticas de los procesadores heterogéneos. Los
sistemas pgcluster poseen dos procesadores, con
reloj de 1977 MHz, memoria principal de 1024 MB y
memoria caché de 512 KB. Por su parte, los sistemas
csultra son monoprocesador, con reloj de 440 MHz,
memoria principal del 512 MB y memoria caché de
2048 KB. Dichos procesadores están conectados por
medio de una red de comunicación Ethernet de 100
Mbits, con un switch que permite comunicar procesadores entre sı́. A pesar de tratarse de una configuración sencilla, es también bastante tı́pica y realista.
Nuestro primer experimento en este cluster consistió
en medir las velocidades relativas de los procesadores
en la Tabla I con el núcleo de computación del algoritmo (procesamiento de una vecindad de 3×3 pı́xels
utilizando operaciones morfológicas de erosión y dilatación). La velocidad relativa de los sistemas pgcluster fue de 70, mientras que la velocidad relativa
de los sistemas csultra fue de 30.
B. Datos hiperespectrales
La figura 1 muestra la banda espectral (correspondiente a la longitud de onda de 587 nm)
de una imagen obtenida por el sensor AVIRIS
sobre la región Indian Pines en Indiana, Estados
Unidos. La imagen contiene 614 × 512 pı́xels y
Fig. 1.
Banda espectral (587 nm) de una imagen
AVIRIS obtenida sobre la región Indian Pines, Indiana.
La imagen (junto con su correspondiente información verdad-terreno) puede descargarse online en:
http://dynamo.ecn.purdue.edu/ biehl/MultiSpec.
VALENCIA Y PLAZA
5
C. Evaluación del algoritmo paralelo
El algoritmo paralelo se aplicó a la imagen AVIRIS
con un elemento estructural fijo de 3 × 3 pı́xels y siete valores diferentes para el parámetro IM AX , que
define el número de iteraciones ejecutadas por el algoritmo (variando su valor desde 1 hasta 7 en los
experimentos). La Tabla II muestra la precisión de
la clasificación (en porcentaje de pı́xeles clasificados
de forma correcta) con diferentes valores de IM AX ,
junto con los correspondientes tiempos de ejecución
(en minutos), medidos en una estación de trabajo
Linux con procesador Intel XEON a 2 GHz, 1 GB de
memoria RAM y 512 KB de memoria caché.
TABLA II
Precisión y tiempo de ejecución del algoritmo
morfológico
IM AX
Precisión (%)
Tiempo (min)
1
75.23
9.54
3
81.94
27.82
5
87.95
46.91
7
90.02
64.79
Como muestra la Tabla II, el algoritmo morfológico es capáz de conseguir una precisión muy alta
en la clasificación, especialmente para IM AX = 7
(por encima de 90 %), pero los tiempos de procesamiento son muy altos y, en general, inaceptables
en aplicaciones de teledetección. Para optimizar los
tiempos de respuesta, el algoritmo paralelo implementó en el cluster heterogéneo de UCD (ver Tabla
I). Antes de mostrar los resultados, recordamos
que las velocidades relativas de los procesadores
heterogéneos se estimaron para diferentes tamaños
del problema (número de iteraciones variando desde
IM AX = 1 hasta IM AX = 7) incorporando el núcleo
de computación del algoritmo morfológico (erosión,
dilatación y cálculo del ı́ndice MEI) al modelo de
rendimiento definido en HeteroMPI. Para que dicha
estimación fuese lo más precisa posible, tuvimos en
cuenta consideraciones relacionadas con la gestión de
memoria en la función de benchmark para no obviar aspectos como la paginación de memoria virtual
y de la caché. En nuestra implementación particular, hemos utilizado una aproximación conservadora,
que asume que cada procesador heterogéneo tiene
memoria suficiente como para trabajar localmente
con el conjunto de datos hiperespectrales completo.
Basándonos en trabajos prévios [2], hemos comprobado que se trata de una suposición razonable en la
mayorı́a de casos. Además, este enfoque nos permite
modelar eficientemente parámetros relacionados con
la jerarquı́a de memoria, simulando un escenario desfavorable en el que cada procesador se ve forzado a
utilizar mecanismos de reubicación y paginación debidos a fallos de caché.
Teniendo en cuenta las anteriores consideraciones, la
Tabla III muestra los tiempos de ejecución (en segundos) del algoritmo morfológico paralelo basado en
HeteroMPI en cada uno de los procesadores del cluster heterogéneo. Cómo se puede ver en la Tabla III,
el algoritmo fue capáz de adaptarse eficientemente al
entorno de computación heterogéneo sobre el que se
ejecutó. En particular, se observaron speedups siempre superiores a 11 (en comparación con el algoritmo
secuencial equivalente, ejecutado en una estación
csultra. También hemos probado experimentalmente que los tiempos de procesamiento promedio
de los 8 procesadores pg1cluster son prácticamente
idénticos a los tiempos de procesamiento promedio
de los 7 nodos csultra, para todos los tamaños de
problema considerados. Este hecho revela que las
pequeñas diferencias detectadas en los tiempos de
ejecución de la Tabla III son debidas a las caracterı́sticas intrı́nsecas del problema paralelo, y no a las
heterogeneidad de la plataforma considerada, la cual
ha sido modelada correctamente usando HeteroMPI.
TABLA III
Tiempos de ejecución (en segundos) del algoritmo
basado en HeteroMPI en cada procesador
heterogéneo para diferentes valores de IM AX
IM AX
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
46.86
47.05
47.32
47.09
50.01
50.59
48.32
48.26
48.90
50.48
51.07
46.43
47.12
46.54
46.85
3
140.69
141.49
138.23
134.46
149.55
148.70
139.15
143.86
141.44
152.04
154.39
139.80
141.40
137.60
137.70
5
226.06
228.06
227.75
226.68
237.06
235.17
246.55
246.61
250.61
238.35
238.12
227.03
229.87
231.65
235.26
7
337.49
328.88
325.31
317.73
340.53
345.14
329.67
333.94
322.06
358.36
358.06
321.50
328.16
315.20
326.25
Para medir el balanceo de carga, la Tabla IV muestra el balanceo conseguido por el algoritmo en el
cluster heterogéneo considerado. El balanceo se define como D = Rmax /Rmin , donde Rmax y Rmin
son el tiempo máximo y mı́nimo de ejecución (considerando todos los procesadores). Por tanto, el balance perfecto se consigue cuando D = 1. Es importante destacar que los valores de balance de carga
mostrados en la Tabla IV son superiores a los conseguidos en [2] para algoritmos de análisis hiperespectral estándar ejecutados en sistemas paralelos
homogéneos, lo cual demuestra la capacidad del modelo utilizado para balancear la carga en el sistema
considerado.
Antes de concluir, es importante enfatizar la importancia de modelar las caracterı́sticas del sistema
de memoria de los diferentes nodos heterogéneos en
la función benchmark (utilizada en el modelo de
rendimiento). La Tabla V muestra los valores de
Rmax , Rmin y D obtenidos tras ejecutar el algoritmo
propuesto en el mismo cluster heterogéneo, pero esta
6
XVII JORNADAS DE PARALELISMO—ALBACETE, SEPTIEMBRE 2006
TABLA IV
Balance de carga para el algoritmo paralelo
(utilizando diferentes valores de IM AX )
IM AX
Rmin
Rmax
D
1
46.43
51.07
1.09
3
134.46
154.39
1.14
5
226.06
250.61
1.10
7
358.36
315.20
1.13
vez aplicando una función benchmark que no tiene en
cuenta el sistema de memoria y únicamente modela
la potencia de cálculo de los diferentes procesadores.
La Tabla V también muestra los valores obtenidos
para el balanceo, D. Como puede apreciarse, despreciar los efectos de la memoria en el modelo de
rendimiento de HeteroMPI tiene como resultado la
obtención de un balance de carga mucho menos eficiente.
TABLA V
Balance de carga para el algoritmo paralelo (sin
tener en cuenta las caracterı́sticas del sistema de
memoria)
IM AX
Rmin
Rmax
D
1
31.90
74.58
2.33
3
92.188
213.49
2.31
5
150.36
345.18
2.29
7
217.01
482.73
2.22
V. Conclusiones y lı́neas futuras
En el presente trabajo hemos descrito un algoritmo paralelo, basado en HeteroMPI, para la el
análisis de imágenes hiperespectrales (obtenidas de
forma remota) en sistemas paralelos heterogéneos.
En concreto, hemos utilizado como caso de estudio
un algoritmo morfológico que integra la información
espacial y espectral. Los resultados experimentales
obtenidos en este trabajo indican que el algoritmo
propuesto es altamente eficiente en términos de
clasificación, tiempo de respuesta y distribución de
carga. En particular, los resultados en cuanto a
balanceo de carga mejoran sensiblemente los valores
obtenidos en estudios previos utilizando sistemas
paralelos homogéneos.
Dentro de las lı́neas futuras de trabajo, destacamos la adaptación de este algoritmo a sistemas
masivamente paralelos y de tipo Grid, ası́ como
la implementación del algoritmo en arquitecturas
hardware especializadas, susceptibles de ser utilizadas en procesamiento a bordo. En este sentido,
actualmente experimentamos con hardware gráfico
programable y FPGAs. En el futuro, tenemos previsto integrar el algoritmo propuesto en sistemas de
monitorización de cambios temporales y seguimiento
de otros fenómenos, tales como incendios forestales
y agentes contaminantes en aguas y atmósfera.
VI. Agradecimientos
Los autores agradecen la financiación proporcionada por la Comisión Europea y el Ministerio de
Educación y Ciencia, ası́ como el soporte prestado
por la Consejerı́a de Infraestructuras y Desarrollo
Tecnológico de la Junta de Extremadura a través de
una beca de investigación FPI concedida al primer
autor. En especial, los autores agradecen la gran
colaboración prestada por el Dr. Alexey Lastovetsky (University College Dublin) en el manejo de
HeteroMPI y su aplicación a los casos de estudio
descritos en este trabajo.
Referencias
[1]
C.-I. Chang, Hyperspectral imaging: Techniques for spectral detection and classification, Kluwer, Academic Publishers, 2003.
[2] A. Plaza, D. Valencia, J. Plaza, and P. Martinez, “Commodity cluster-based parallel processing of hyperspectral
imagery,” Journal of Parallel and Distributed Computing, vol. 66, no. 3, pp. 345–358, March 2006.
[3] J. Dorband, J. Palencia, and U. Ranawake, “Commodity computing clusters at goddard space flight center,”
Journal of Space Communication, vol. 1, no. 3, 2003.
[4] A. Lastovetsky, Parallel computing on heterogeneous networks, Wiley-Interscience, Hoboken, NJ, 2003.
[5] 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,
2006.
[6] A. Plaza, “Parallel morphological processing of hyperspectral image data on heterogeneous networks of
computers,” in Proc. IEEE International Parallel and
Distributed Processing Symposium (IPDPS), 2006, pp.
1121–1131.
[7] J. Dongarra, S. Huss-Lederman, S. Otto, M. Snir, and
D. Walker, MPI: The complete reference, The MIT
Press, Cambridge, MA, 1996.
[8] A. Lastovetsky and R. Reddy, “Heterompi: Towards
a message-passing library for heterogeneous networks of
computers,” Journal of Parallel and Distributed Computing, vol. 66, pp. 197–220, 2006.
[9] A. Lastovetsky, “Adaptive parallel computing on heterogeneous networks with mpc,” Parallel Computing, vol.
28, pp. 1369–1407, 2002.
[10] A. Plaza, P. Martinez, J. Plaza, and R. Perez, “Dimensionality reduction and classification of hyperspectral
image data using sequences of extended morphological
transformations,” IEEE Trans. Geoscience and Remote
Sensing, vol. 43, no. 3, pp. 466–479, March 2005.
[11] P. Soille, Morphological Image Analysis: Principles and
Applications 2nd Ed., Springer, Berlin, 2003.
Descargar