Resumen La presente memoria resume el trabajo de investigación realizado por el doctorando Abel Francisco Paz Gallardo. En concreto, el presente

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Resumen La presente memoria resume el trabajo de investigación realizado por el doctorando Abel Francisco Paz Gallardo. En concreto, el presente"

Transcripción

1 2011

2

3 Agradecimientos La realización del presente trabajo no hubiese sido posible sin la colaboración de una serie de personas y organismos a los que el candidato quiere agradecer por sus aportaciones al presente trabajo de investigación: A Antonio J. Plaza, el director de las investigaciones realizadas, por confiar en mí, por transmitirme sus conocimientos y permitirme el honor de entrar a formar parte de este área, despertando mi motivación y espíritu investigador desde el primer instante. He de agradecer enormemente su excelente trato personal y el haberme guiado todo este tiempo en el camino a seguir en el ámbito del análisis y procesamiento de las imágenes hiperespectrales. Al grupo de investigación Computación Hiperespectral (HYPERCOMP), por acogerme y permitirme utilizar sus instalaciones en las que nacieron mis inquietudes en este área, donde pude aprender el funcionamiento básico de un cluster y donde empecé mis primeras investigaciones con GPUs. Al centro NASA s Goddard Space Flight Center en Maryland, Estados Unidos, por permitirnos utilizar el supercomputador Thunderhead, de gran utilidad en las investigaciones llevadas a cabo en clusters. A mi familia, amigos y en especial a Elena, por el tiempo que la pantalla del ordenador me ha privado de estar con ellos, por su ánimo, apoyo incondicional y comprensión.

4 Resumen La presente memoria resume el trabajo de investigación realizado por el doctorando Abel Francisco Paz Gallardo. En concreto, el presente trabajo describe una serie de nuevos algoritmos computacionalmente eficientes para tratamiento de imágenes hiperespectrales de la superficie terrestre, obtenidas mediante sensores aerotransportados para la observación remota de la Tierra. El documento sigue la estructura clásica de un trabajo de investigación en dicho campo, presentando en primer lugar las motivaciones y objetivos que han llevado al doctorando a desarrollar nuevas técnicas de análisis hiperespectral respondiendo a una necesidad claramente existente en este campo de estudio. A continuación se realiza un estudio en profundidad del estado del arte en dicho campo, desde el concepto de imagen hiperespectral hasta los algoritmos existentes que fundamentan la base de este estudio. Posteriormente se detallan las arquitecturas paralelas contempladas (clusters de computadores frente a tarjetas gráficas programables) a la hora de llevar a cabo las implementaciones eficientes de los algoritmos desarrollados, comentando en profundidad el funcionamiento, librerías y lenguajes usados para explotar cada una de ellas así como las ventajas e inconvenientes desde el punto de vista de su adaptación a problemas relacionados con el procesamiento eficiente de imágenes hiperespectrales de la superficie terrestre, analizando aspectos como el coste, consumo y adaptabilidad de dichas arquitecturas a problemas reales de observación remota de la Tierra. El núcleo del presente trabajo viene dado por la propuesta de nuevos algoritmos paralelos para detección de targets o anomalías en imágenes hiperespectrales. Dichos algoritmos se fundamentan en una serie de métricas de análisis hiperespectral que son descritas en detalle en la presente memoria. Una vez introducida la base teórica del estudio, se presentan los nuevos algoritmos paralelos desarrollados, comentando en detalle cada uno de los pasos que se han seguido en su desarrollo y comentando las decisiones de diseño adoptadas desde un punto de vista crítico. Tras presentar los nuevos algoritmos paralelos desarrollados con motivo del presente trabajo, realizamos un detallado estudio cuantitativo y comparativo de su rendimiento en dos tipos de arquitecturas paralelas específicas: el cluster Thunderhead del centro NASA Goddard Space Flight Center en Maryland, Estados Unidos, y dos tarjetas gráficas de NVidia (modelo 9800 GX2 y GTX275). Los resultados experimentales han sido obtenidos en el contexto de una aplicación real de gran relevancia social, consistente en la detección de los incendios que se propagaron en los días posteriores al atentado terrorista del World Trade Center en Nueva York. En dicho escenario, los equipos de NASA y el Instituto Geológico de Estados Unidos (USGS) que participaron en las tareas de extinción y emergencia reconocieron que la disponibilidad de técnicas de detección de targets y anomalías en tiempo real hubiese facilitado las labores de los equipos de emergencia en tierra que actuaron en la zona, por lo que las técnicas consideradas en el presente trabajo se han desarrollado con el objetivo de permitir la realización de dichas tareas en el futuro. La memoria de investigación presentada en este documento concluye con una discusión de las técnicas desarrolladas (incluyendo una serie de recomendaciones sobre su mejor uso en diferentes circunstancias), con la descripción de las principales conclusiones y líneas futuras derivadas del estudio, y con la

5 bibliografía relacionada, tanto en la literatura general como la generada por el candidato. Palabras clave: análisis hiperespectral, detección de targets y anomalías, computación de altas prestaciones, clústers de computadores, tarjetas gráficas programables (GPUs).

6 Abstract This report describes the research work conducted by the PhD candidate, Abel Francisco Paz Gallardo. Specifically, this work proposes several new computationally efficient algorithms for parallel processing of remotely sensed hyperspectral images, acquired from an airborne platform for Earth observation with high dimensionality in the spectral domain. The document follows the classical structure of a research report in the area of remotely sensed hyperspectral imaging, describing in first place the motivations and main objectives to be pursued and which have led the PhD candidate to develop several new techniques for hyperspectral imaging in response to a clear need still existing in this emerging and active research area: the development of computationally efficient algorithms for automatically detecting targets and anomalies in a remotely sensed hyperspectral scene. For this purpose, a detailed review of the state-of-the-art in this research area is first conducted, comprising topics which range from the definition of the concept of hyperspectral imaging and spectral signature to a comprehensive description of the processing algorithms that define the current standards for information extraction from hyperspectral scenes in current applications. Then, the document describes a set of parallel architectures (clusters of computers versus commodity graphics processing units or GPUs) which are considered in this work as potential candidates in order to carry out computationally efficient implementations of the new hyperspectral imaging algorithms proposed in this study, discussing in detail the programming mechanisms, libraries and languages available to exploit those systems and the advantages and disadvantages of such systems from the viewpoint of their adaptation to problems related with remotely sensed hyperspectral imaging, in terms of cost, power required, adaptability to onboard processing in real remote sensing applications, etc. The core of the present work is given by the proposal of several new parallel algorithms for target and anomaly detection in remotely sensed hyperspectral images. These algorithms are devised from a set of well-defined metrics for hyperspectral analysis which are presented and discussed in detail in the present document. Once the theoretical foundations of the proposed study are described, we proceed to describe in detail the new parallel algorithms developed as the main contribution of this research work, discussing the different steps followed in their development and describing, from a critical perspective, the decisions taken in their step by step design. After describing the new parallel algorithms introduced in this work, we develop a comprehensive quantitative and comparative analysis in terms of computational performance using two highly representative high performance computer architectures: a commodity Beowulf cluster (Thunderhead) available at NASA s Goddard Space Flight Center in Maryland, and two commodity GPUs (9800GX2 and GTX275 from Nvidia). The experimental results reported in this work are evaluated in the context of a real application with great societal impact: the possibility to automatically detect the thermal hot spots of the fires which spread in the World Trade Center area during the days after the terrorist attack of September 11 th, It is acknowledged by some of the organizations that participated in the emergency response teams (NASA and the U.S. Geological Survey) that, if high performance com-

7 puting infrastructure had been available at the time of the event, the hyperspectral data collected over the area would have been much more useful. In this regard, the design of new techniques for this purpose may help the development of such tasks in future events. Keywords: hyperspectral analysis, target and anomaly detection, high performance computing, cluster computing, commodity graphics processing units (GPUs).

8 vi

9 Índice general 1. Motivaciones y objetivos Motivaciones Objetivos Organización del documento Antecedentes Análisis hiperespectral Concepto de imagen hiperespectral Sensores hiperespectrales Técnicas de análisis hiperespectral Automated Target Generation Process (ATGP) Algoritmo de detección de anomalías RX Métricas empleadas en la evaluación de algoritmos de detección de targets Necesidad de paralelismo en análisis hiperespectral Computación clúster aplicada a análisis hiperespectral Computación heterogénea en análisis hiperespectral Hardware especializado para análisis hiperespectral Arquitecturas paralelas consideradas Procesamiento paralelo en clusters Procesamiento paralelo en GPUs NVidia TM CUDA Uso de GPUs frente a clusters en análisis de imágenes hiperespectrales Métodos Métricas de análisis hiperespectral consideradas Distancia ortogonal (implementación clásica de ATGP) Ángulo espectral o spectral angle distance (SAD) Divergencia espectral o spectral information divergence (SID) Otras medidas utilizadas Algoritmo morfológico para detección de anomalías (Morph) Operaciones morfológicas extendidas para análisis de imágenes hiperespectrales

10 viii ÍNDICE GENERAL Identificación morfológica de anomalías Implementaciones paralelas Implementaciones paralelas en clústers de computadores Estrategias de particionamiento de datos hiperespectrales Implementación clúster de ATGP Implementación clúster de RX Implementación clúster de Morph Implementaciones paralelas en GPUs Implementación GPU del algoritmo ATGP Implementación en GPU del algoritmo RX Implementación de Morph en GPU Resultados experimentales Imagen hiperespectral considerada Arquitecturas paralelas consideradas Clúster Thunderhead de NASA GSFC GPUs NVidia TM GeForce 9800GX2 y GTX Análisis de precisión Comparativa de ATGP, RX y Morph Número de iteraciones necesarias en cada algoritmo Estudio comparativo detallado de RX y Morph Análisis del rendimiento de ATGP, RX y Morph Medidas de rendimiento utilizadas Resultados en el clúster Thunderhead Resultados en GPUs de NVidia TM Discusión global de resultados Conclusiones y líneas futuras 117 Bibliografía 120 A. Publicaciones 129 A.1. Revistas internacionales de impacto A.2. Congresos internacionales revisados por pares A.3. Congresos nacionales

11 Índice de figuras 2.1. Concepto de imagen hiperespectral Resultado de la toma de datos por parte de un sensor hiperespectral Tipos de píxels en imágenes hiperespectrales Mezcla motivada por la superposición de varios materiales en un mismo píxel Mezcla íntima entre materiales Caracterización de un píxel mezcla a partir de una combinación lineal de espectros puros Relación señal-ruido (SNR) en los diferentes canales de AVIRIS a lo largo de los últimos años (reproducido con permiso de Robert O. Green, investigador principal del proyecto AVIRIS) Ejemplo de construcción de una curva ROC Supercomputador Columbia, en el centro NASA Ames Research Center Esquema hardware de una GPU Operaciones en coma flotante CPU frente a GPU Ancho de banda en GB/s de memoria CPU frente a GPU Arquitectura CPU frente GPU Estructura de paralelismo de CUDA Todos los hilos dentro de un bloque CUDA ejecutan el mismo código Ejemplo de grid bidimensional de bloques Jerarquía de memoria en la GPU según CUDA Distribución automática de bloques de hilos entre multiprocesadores Interpretación gráfica del operador de proyección ortogonal empleado por la versión clásica del algoritmo de detección de targets ATGP en un espacio de 2 dimensiones. (a) Selección del target inicial. (b) Selección del segundo target como el más ortogonal al primero. (c) Selección del tercer target como el más ortogonal a los dos primeros. (d) Finalización del proceso iterativo Representación gráfica del ángulo espectral (SAD) en un espacio tridimensional Ejemplo ilustrativo sobre los problemas introducidos al descartar la información espacial en el tratamiento de imágenes hiperespectrales

12 x ÍNDICE DE FIGURAS 4.4. Ordenación de vectores n-dimensionales utilizando una medida de distancia acumulada (en el ejemplo, el caso de estudio se ha reducido a un espacio de dos dimensiones para facilitar la representación) Diagrama de bloques que resume el funcionamiento del algoritmo morfológico para detección de anomalías (Morph) Ejemplo de recorrido de los datos de una imagen hiperespectral en formato band sequential (BSQ) y band interleaved by pixel (BIP) Estrategias de particionamiento de datos hiperespectrales.(a) Particionamiento espectral. (b) Particionamiento espacial. (c) Particionamiento híbrido Necesidad de comunicar información en particionamiento espacial para procesado morfológico utilizando un elemento estructural de 3 3 píxels Introducción de información redundante para evitar comunicación de información en particionamiento espacial para procesado morfológico utilizando un elemento estructural de 3 3 píxels Diagrama de bloques ilustrativo del algoritmo de particionamiento espacial empleado en las implementaciones paralelas de algoritmos de tratamiento de datos hiperespectrales Particionamiento espacial perfectamente balanceado de una imagen hiperespectral Particionamiento espacial no perfectamente balanceado de una imagen hiperespectral Proceso de envío del valor asociado al píxel más brillante (el que resulta en mayor valor al realizar el producto vectorial entre el vector asociado a dicho píxel y su transpuesto) desde los nodos esclavos al nodo maestro Proceso de envío del identificador del procesador que contiene el píxel más brillante de la imagen desde el nodo maestro a los nodos esclavo Proceso de envío del píxel más brillante por parte del nodo que contiene dicho píxel al resto de nodos Proceso de envío del identificador del procesador que contiene el siguiente target identificado en la imagen desde el nodo maestro a los nodos esclavo Imagen hiperespectral de ejemplo utilizada para ilustrar el procesamiento paralelo realizado en la GPU En la implementación GPU del algoritmo ATGP, cada píxel de la imagen puede ser procesado de forma independiente utilizando un hilo de procesamiento o thread El procesamiento en la GPU del algoritmo ATGP se realiza en forma de un grid de bloques con tantos bloques como líneas tiene la imagen, de forma que cada bloque tiene tantos threads como muestras tiene la imagen El procesamiento en la GPU del algoritmo RX se realiza en forma de un grid de bloques con tantos bloques como bandas tiene la imagen, de forma que cada bloque tiene tantos threads como bandas tiene la imagen

13 ÍNDICE DE FIGURAS xi El procesamiento en la GPU del algoritmo Morph (basado en la utilización de elementos estructurales que definen una ventana alreadedor de cada píxel de la imagen) se realiza definiendo un grid de bloques con tantos bloques como píxels tiene la imagen, y en el que cada bloque de procesamiento realiza todas las operaciones asociadas a la ventana Composición en falso color de la imagen hiperespectral AVIRIS obtenida sobre la ciudad de Nueva York, cinco días después del atentado terrorista del 11 de Septiembre de El recuadro en rojo marca la zona donde se sitúa el World Trade Center en la imagen Mapa térmico asociado a la zona del World Trade Center, obtenido cinco días después del atentado terrorista del 11 de Septiembre de Imagen verdad terreno asociada a la imagen AVIRIS obtenida sobre el World Trade Center (los píxels en blanco indican la presencia de fuegos) Clúster Thunderhead ubicado en el centro GSFC de NASA Topología de interconexión del cluster Thunderhead de NASA GSFC GPUs de NVidia TM utilizadas en el presente trabajo Fragmento de la imagen AVIRIS considerada en el presente estudio. Dicho fragmento se encuentra centrado en la región WTC, y será empleado para ilustrar de forma gráfica los resultados de precisión obtenidos por diferentes algoritmos Nomenclatura utilizada (basada en un sencillo código de colores) para denotar un target idéntico (derecha, en amarillo) o un target detectado (izquierda, en verde) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma 1 (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma 2 (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SAD (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SID (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: BSMSE (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: BSMME (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: NVD (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Entropía (p = 30)

14 xii ÍNDICE DE FIGURAS Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SAR SNC (p = 30) Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: ortogonal (p = 30) Resultados de detección de targets obtenidos por el algoritmo RX (p = 30) Resultados de detección de targets obtenidos por el algoritmo Morph (p = 30) Firma espectral del target etiquetado como C por USGS en la zona del World Trade Center Firma espectral del target etiquetado como D por USGS en la zona del World Trade Center Firma espectral del target etiquetado como H por USGS en la zona del World Trade Center Firma espectral de vegetación en la imagen AVIRIS World Trade Center Firma espectral de agua en la imagen AVIRIS World Trade Center Firma espectral de una zona urbana en la imagen AVIRIS World Trade Center Curva ROC obtenida al evaluar la salida del algoritmo RX en función de la verdad terreno disponible para la imagen AVIRIS World Trade Center Curva ROC obtenida al evaluar la salida del algoritmo Morph en función de la verdad terreno disponible para la imagen AVIRIS World Trade Center Representación gráfica de los speedups obtenidos por diferentes implementaciones de ATGP (distancias: Norma 1, Norma 2, Norma, SAD y SID) a la imagen AVIRIS WTC, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = Representación gráfica de los speedups obtenidos por diferentes implementaciones de ATGP (distancias: BSMSE, MSMME, NVD, Entropía y SAR SNC) a la imagen AVIRIS WTC, utilizando distintos números de procesadores y un número de targets de p = Representación gráfica de los speedups obtenidos por diferentes implementaciones de RX (comunicativo e independiente) a la imagen AVIRIS WTC, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = Representación gráfica de los speedups obtenidos por el algoritmo ATGP (implementado con la distancia SAD en las dos CPUs consideradas y en la GPU NVidia TM 9800GX2) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. En la gráfica, la CPU1 es un Intel Pentium IV y la CPU2 es un Intel Quad Core Q Representación gráfica de los speedups obtenidos por el algoritmo RX (implementado en las dos CPUs consideradas y en la GPU NVidia TM GTX275) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. En la gráfica, la CPU1 es un Intel Pentium IV y la CPU2 es un Intel Quad Core Q

15 ÍNDICE DE FIGURAS xiii Representación gráfica de los speedups obtenidos por el algoritmo Morph (implementado en las dos CPUs consideradas y en la GPU NVidia TM GTX275) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. En la gráfica, la CPU1 es un Intel Pentium IV y la CPU2 es un Intel Quad Core Q

16 xiv ÍNDICE DE FIGURAS

17 Índice de tablas 2.1. Características de algunos sensores hiperespectrales ya disponibles o cuya puesta en funcionamiento será realizada en breve Nomenclatura utilizada en análisis ROC orientado a detección de targets o anomalías. En la tabla, VP denota verdadero positivo, FP denota falso positivo, VN denota verdadero negativo y FN denota falso negativo Características de la imagen hiperespectral AVIRIS obtenida sobre la ciudad de Nueva York, cinco días después del atentado terrorista del 11 de Septiembre de Número de píxels que forman cada target en la imagen AVIRIS sobre el World Trade Center Especificaciones del clúster Thunderhead ubicado en el centro GSFC de NASA Comparativa de las características técnicas de las GPUs NVidia TM GeForce 9800GX2 y GTX275 utilizadas en el presente trabajo Valores angulares (radianes) obtenidos tras comparar las firmas espectrales asociadas a los targets de referencia (fuegos) identificados por USGS en la imagen AVIRIS WTC en comparación con las firmas espectrales identificadas por los diferentes algoritmos considerados(atgp implementado con diferentes distancias, RX y Morph). En todos los casos, el número de targets identificados es p = 30 y la tabla sólomuestra el valor de similaridad espectral más bajo obtenido al comparar todos los targets identificados por el algoritmo considerado con cada target de referencia Valores angulares(radianes) obtenidos tras comparar las firmas espectrales asociadas a los targets de referencia (fuegos) identificados por USGS en la imagen AVIRIS WTC en comparación con las firmas espectrales identificadas por el algoritmo ATGP (implementado con diferentes distancias y aplicando el método de relajación). En todos los casos, el número de targets identificados es p = 30 y la tabla sólo muestra el valor de similaridad espectral más bajo obtenido al comparar todos los targets identificados por el algoritmo considerado con cada target de referencia.. 87

18 xvi ÍNDICE DE TABLAS 6.7. Resumen de resultados obtenidos con los diferentes algoritmos de detección de targets (en su versión normal y relajada) y métricas de similaridad consideradas en la imagen AVIRIS WTC. En todos los casos, el número de targets identificados es p = 30. En la tabla, N/A indica que no se aplicó la versión con relajación Número de iteraciones necesarias para detectar los diferentes targets de referencia empleando los algoritmos ATGP, RX y Morph con un máximo de p = 500 iteraciones Resúmen de targets detectados (en las 20 primeras iteraciones) por parte de RX y Morh en la imagen AVIRIS World Trade Center Tiempos de procesamiento (segundos) obtenidos al aplicar los diferentes algoritmos (en sus versiones serie y paralela) a la imagen AVIRIS World Trade Center, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = Speedups obtenidos al aplicar los diferentes algoritmos (en sus versiones serie y paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores en Thunderhead y un número de targets de p = Tiempos de computación y comunicación (segundos) obtenidos en el nodo maestro de Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = Tiempos de computación y comunicación(segundos) obtenidos en un nodo esclavo de Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = Tiempos de computación máximos y mínimos (segundos) y balanceo de carga medido en Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = Tiempos de procesamiento (segundos) obtenidos al aplicar los diferentes algoritmos (en sus versiones CPU y GPU) a la imagen AVIRIS World Trade Center, utilizando un número de targets de p = Speedups obtenidos al comparar los diferentes algoritmos (en sus versiones CPU y GPU) aplicados a la imagen AVIRIS World Trade Center, utilizando un número de targets de p = Tiempos de procesamiento y speedups obtenidos por el algoritmo ATGP (implementado con la distancia SAD en las dos CPUs consideradas y en la GPU NVidia TM 9800GX2) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center

19 ÍNDICE DE TABLAS Tiempos de procesamiento y speedups obtenidos por el algoritmo RX (implementado en las dos CPUs consideradas y en la GPU NVidia TM GTX275) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center Tiempos de procesamiento y speedups obtenidos por el algoritmo Morph (implementado en las dos CPUs consideradas y en la GPU NVidia TM GTX275) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center

20 2 ÍNDICE DE TABLAS

21 Capítulo 1 Motivaciones y objetivos 1.1. Motivaciones La línea de trabajo en la que se engloba la presente memoria se enmarca en las líneas de investigación del grupo Computación Hiperespectral (HYPERCOMP) del Departamento de Tecnología de Computadores y Comunicaciones de la Universidad de Extremadura, relacionada con el procesamiento eficiente de imágenes hiperespectrales de la superficie terrestre, Dichas imágenes son habitualmente obtenidas de forma remota a partir de sensores aerotransportados o de tipo satélite. Las imágenes hiperespectrales suponen una extensión del concepto de imagen digital, en el sentido de que sus píxels no están formados por un único valor discreto sino por un conjunto amplio de valores, correspondientes a las diferentes mediciones espectrales realizadas por un sensor o instrumento de medida en diferentes longitudes de onda casi continuas. Podemos entender así una imagen hiperespectral como una colección de medidas espectroscópicas organizadas en forma de imagen, las cuales ofrecen una gran cantidad de información sobre las propiedades de los materiales que aparecen representados en la escena. Las técnicas de análisis hiperespectral han encontrado numerosas aplicaciones prácticas desde la aparición de este nuevo concepto en los campos de procesado de imagen y señal, entre las que podemos enumerar aplicaciones militares (detección de targets u objetivos); detección y monitorización de fuegos y agentes contaminantes en aguas y atmósfera (agentes químicos o vertidos en aguas); agricultura de precisión; identificación y cuantificación de especies geológicas; análisis y caracterización de la vegetación en ecosistemas terrestres para estudio de fenómenos como el cambio climático global, el impacto del crecimiento urbano y la contaminación en el medio ambiente, y un largo etcétera. Una de las principales aplicaciones relacionadas con el análisis eficiente de este tipo de imágenes de gran dimensionalidad en el dominio espectral se centra en la detección de anomalías en la escena, las cuales pueden entenderse como cambios abruptos en los dominios espacial y espectral de la misma. Este proceso es altamente complejo, ya que la distinción entre anomalías de interés (normalmente denominadas targets en la literatura) y los objetos no deseados, que constituyen el background (fondo) de la imagen,

22 4 Motivaciones y objetivos es dependiente tanto de la aplicación como de la complejidad de la escena. A pesar de su complejidad inherente, el proceso de detección de anomalías presenta gran cantidad de aplicaciones en contextos muy diversos, desde aplicaciones militares para la detección de material armamentístico camuflado, minas anti-persona, y otros tipos de objetivos militares hasta la identificación de agentes contaminantes en aguas y atmósfera, pasando por otro tipo de aplicaciones como detección de incendios, agricultura de precisión, detección de plagas y agentes nocivos en cultivos y pastos, y un largo etcétera. Uno de los problemas asociados a los sistemas para detección de anomalías en imágenes hiperespectrales de la superficie terrestre es la elevada dimensionalidad de dichas imágenes. Esta situación se ve agravada por el hecho de que el tiempo de respuesta en determinadas aplicaciones ha de ser muy reducido, ya que los resultados deben obtenerse en un corto periodo de tiempo, por ejemplo, para detectar un incendio y poder aplicar los mecanismos de respuesta pertinentes, o bien en la detección y seguimiento de objetivos militares. En este sentido, uno de los aspectos que han condicionado en mayor medida las nuevas metodologías propuestas en esta memoria es la posibilidad de obtener técnicas de análisis computacionalmente eficiente. Las imágenes hiperespectrales se caracterizan por requerimientos extremos en cuanto a espacio de almacenamiento, ancho de banda de transmisión y velocidad de procesamiento. Estos requerimientos deben traducirse en algoritmos de análisis susceptibles de ser ejecutados en paralelo. Afortunadamente, muchos algoritmos de análisis hiperespectral son altamente susceptibles de ser paralelizados, debido a sus escasas restricciones secuenciales. En este sentido, una de las posibilidades más interesantes que ofrece la regularidad de ciertos algoritmos de análisis de imágenes hiperespectrales es la posibilidad de obtener módulos hardware especializados para procesamiento a bordo, capaces de ofrecer una respuesta en tiempo casi real gracias al avance de dichos aceleradores, entre los que se incluyen dispositivos como tarjetas gráficas programables (GPUs) que constituyen la principal arquitectura de computación de altas prestaciones considerada en la presente memoria. Aparte de la gran complejidad computacional asociada a las técnicas clásicas de detección de anomalías en imágenes hiperespectrales, otra de las principales limitaciones de los métodos existentes en este campo consiste en que la mayor parte de las técnicas diseñadas hasta la fecha consideran únicamente la información espectral presente en los datos hiperespectrales. Sin embargo, la correlación espacial de los datos resulta de gran interés a la hora de detectar anomalías. En este sentido, resulta de gran interés desarrollar nuevas técnicas capaces de analizar de forma simultánea la información espacial y espectral presente en la escena a la hora de detectar dichas anomalías. En el presente trabajo se han desarrollado nuevas técnicas de detección de anomalías en imágenes hiperespectrales, susceptibles de ser ejecutadas en paralelo utilizando diferentes arquitecturas de computación de altas prestaciones, y se ha evaluado cuantitativamente la precisión en el análisis obtenido por dichas técnicas así como su rendimiento computacional utilizando para ello diferentes plataformas e incluyendo una comparativa entre dos tipos de sistemas paralelos que se han utilizado de forma extensa en aplicaciones de observación remota de la tierra: clusters de computadores y GPUs. Dichas arquitecturas están introduciendo nuevas tendencias en cuanto al procesamiento eficiente

23 1.2 Objetivos 5 de imágenes hiperespectrales en numerosas aplicaciones relacionadas con la observación remota de la tierra Objetivos Como se ha comentado anteriormente, el principal objetivo del presente trabajo consiste en desarrollar nuevas técnicas paralelas orientadas a la detección de anomalías en imágenes hiperespectrales. En particular, se pretende que las nuevas técnicas desarrolladas sean computacionalmente eficientes y precisas en cuanto a la detección de las anomalías más relevantes que se encuentran presentes en la escena. La consecución de este objetivo general se ha llevado a cabo abordando una serie de objetivos específicos, los cuales se enumeran a continuación: Estudio de las técnicas existentes para detección de anomalías actualmente utilizadas en el ámbito del análisis de imágenes hiperespectrales, evaluando sus ventajas e inconvenientes así como sus requerimientos computacionales, con vistas a conseguir un alto grado de precisión en su funcionamiento. Implementación de algoritmos clásicos para detección de anomalías, tales como los métodos Automated Target Generation Process (ATGP) y el método de detección de anomalías desarrollado por Reed y Xiaoli (denominado RX). Desarrollo de nuevas versiones paralelas del algoritmo ATGP, utilizando la librería MPI (Message Passing Interface) como herramienta para facilitar el paso de mensajes entre los distintos nodos que componen una arquitectura de tipo clúster o red de computadores. Para llevar a cabo esta tarea se han utilizado infraestructuras de gran relevancia en aplicaciones de observación remota de la Tierra, tales como el clúster Thunderhead ubicado en el centro NASA Goddard Space Flight Center en Maryland, Estados Unidos. Desarrollo de una nueva versión paralela (utilizando MPI en clústers) del algoritmo RX para detección automática de anomalías en imágenes hiperespectrales, con vistas a comparar la precisión de este algoritmo con las nuevas versiones desarrolladas del algoritmo ATGP en las arquitecturas de computación paralela anteriormente comentadas. Incorporación de un conjunto de nuevas métricas para análisis hiperespectral a las nuevas versiones desarrolladas para el algoritmo ATGP, evaluando en detalle las prestaciones del algoritmo paralelo en combinación con las nuevas métricas utilizadas. Conviene destacar que la incorporación de estas métricas supone una contribución altamente novedosa al estar el algoritmo original (serie) basado en la utilización de una única métrica (ortogonalidad de las firmas espectrales detectadas). Implementación del algoritmo ATGP en GPUs utilizando la arquitectura Compute Device Unified Architecture (CUDA) de NVidia TM, incluyendo todas las nuevas métricas implementadas para este algoritmo.

24 6 Motivaciones y objetivos Implementación paralela del algoritmo RX en la arquitectura CUDA de NVidia TM, explotando así el carácter matricial del algoritmo y aprovechando las facilidades que ofrecen las GPUs para procesar imágenes hiperespectrales mediante operaciones regulares. Desarrollo de un nuevo algoritmo para detección de anomalías basado en conceptos de morfología matemática, integrando la información espacial y espectral presente en la escena (al contrario que ATGP y RX, que únicamente utilizan la información espectral). El nuevo algoritmo desarrollado (denominado Morph) presenta excelentes características para su implementación en clusters de computadores y GPUs, las cuales han sido analizadas en detalle en el presente trabajo y comparadas con las ofrecidas por las respectivas versiones paralelas de ATGP y RX en términos de precisión en el proceso de detección de anomalías y rendimiento computacional en diferentes arquitecturas paralelas. Realización de un exhaustivo estudio comparativo (en términos de precisión y rendimiento computacional) de las nuevas técnicas de análisis hiperespectral propuestas, en el contexto de una aplicación real relacionada con la detección de incendios en una imagen obtenida por el sensor Airborne Visible Infra-Red Imaging Spectrometer (AVIRIS) de la NASA sobre la zona del World Trade Center (WTC) en la ciudad de Nueva York, días después del atentado terrorista del 11 de Septiembre de Para la realización de dicho estudio se ha empleado el clúster Thunderhead de NASA así como una variedad de tarjetas GPUs con diferentes características en cuanto a coste y rendimiento. La valoración de las diferentes arquitecturas consideradas en el contexto de análisis de imágenes hiperespectrales que nos ocupa constituye otra de las principales contribuciones innovadoras del presente trabajo Organización del documento El presente documento se estructura de la siguiente forma: 1. Motivaciones y objetivos. El presente capítulo describe las motivaciones y objetivos del presente estudio, así como la organización general del documento. 2. Antecedentes. En este capítulo se presentan los antecedentes relacionados con análisis de imágenes hiperespectrales, desde el concepto de imagen hiperespectral hasta los conceptos básicos relativos a detección de anomalías utilizando información espectral, pasando por las ventajas que pueden obtenerse al considerar de forma simultánea la información espacial y espectral presente en la escena a la hora de abordar este proceso. Además, el capítulo introduce los conceptos y antecedentes relacionados con la aplicación de técnicas de computación paralela a problemas de análisis hiperespectral, describiendo la necesidad de paralelismo y capacidad de procesamiento en tiempo real a la hora de aplicar dichas técnicas en determinados contextos.

25 1.3 Organización del documento 7 3. Arquitecturas paralelas consideradas. En este capítulo se describen las características de las arquitecturas paralelas consideradas (clusters de computadores frente a GPUs) a la hora de desarrollar nuevos algoritmos paralelos para el procesamiento de imágenes hiperespectrales, discutiendo las ventajas e inconvenientes de cada una de las arquitecturas consideradas y detallando las herramientas de programación y librerías utilizadas para desarrollar versiones paralelas en clusters (utilizando la librería de paso de mensajes Message Passing Interface ó MPI) y en GPUs (mediante la arquitectura CUDA de NVidia TM ). 4. Métodos. Este capítulo se divide en dos partes fundamentales. En la primera de ellas se describen las métricas de análisis hiperespectral consideradas a la hora de implementar algoritmos paralelos de detección de targets y anomalías en clusters y GPUs, destacando las propiedades de cada una de las métricas consideradas. En la segunda parte del capítulo se presenta un nuevo algoritmo morfológico (Morph) para detección de anomalías, basado en conceptos de matemática morfológica multidimensional, el cual permite considerar la información espacial y espectral presente en la escena de forma simultánea. 5. Implementaciones paralelas. Este capítulo describe las nuevas implementaciones paralelas desarrolladas para algoritmos clásicos (ATGP y RX, considerando nuevas métricas de análisis hiperespectral) y para el nuevo algoritmo morfológico (Morph) descrito en el capítulo anterior. Para ello, se consideran dos tipos de arquitecturas paralelas: clusters y GPUs, lo cual dará lugar a una comparativa de arquitecturas en el contexto de aplicación seleccionado, la cual será presentada de forma exhaustiva en el siguiente capítulo. 6. Resultados experimentales. En este capítulo se presenta un exhaustivo estudio cuantitativo y comparativo analizando las versiones serie y paralelas de los algoritmos desarrollados, las cuales han sido implementadas en CPUs de última generación, así como en clusters y GPUs, y analizadas en el contexto de una aplicación real, orientada a la identificación automática de fuegos (anomalías) en la zona del World Trade Center de Nueva York tras el atentado terrorista de Septiembre de 2001, utilizando datos hiperespectrales obtenidos en la zona por el sensor AVIRIS de NASA Jet Propulsion Laboratory. 7. Conclusiones y líneas futuras de trabajo. En este capítulo se presentan las principales conclusiones obtenidas tras la realización del trabajo de investigación descrito en el presente documento, así como las líneas futuras de trabajo que se han identificado como resultado delp resente estudio de cara a los próximos desarrollos relacionados con el trabajo realizado. 8. Bibliografía. En este apartado se incluyen las referencias bibliográficas consultadas durante la elaboración del presente trabajo así como las referencias que expanden y completan los conceptos fundamentales presentados a lo largo del presente trabajo de investigación.

26 8 Motivaciones y objetivos 9. Apéndice. En el apéndice se enumeran las publicaciones conseguidas por el doctorando, acompañándolas de una breve descripción en la que se destacan sus principales aportaciones y aspectos relevantes.

27 Capítulo 2 Antecedentes En este capítulo se presentan los antecedentes relacionados con análisis de imágenes hiperespectrales, desde el concepto de imagen hiperespectral hasta los conceptos básicos relativos a detección de anomalías utilizando información espectral y las métricas empleadas para validar este tipo de algoritmos. Además se introducen los conceptos y antecedentes relacionados con la aplicación de técnicas de computación paralela a problemas de análisis hiperespectral, describiendo la necesidad de paralelismo y capacidad de procesamiento en tiempo real a la hora de explotar dichas técnicas en determinadas aplicaciones Análisis hiperespectral En este apartado definimos algunos conceptos básicos relativos a análisis de imágenes hiperespectrales de la superficie terrestre. En primer lugar definiremos el concepto de imagen hiperespectral, destacando las características más importantes de este tipo de imágenes de gran dimensionalidad. Continuaremos con la descripción de uno de los sensores de adquisición de este tipo de de imágenes que se ha utilizado para capturar las imágenes utilizadas en el presente trabajo Concepto de imagen hiperespectral El análisis hiperespectral es una técnica avanzada de observación remota de la tierra caracterizada por la disponibilidad de información con gran resolución en el dominio espectral (cientos de bandas contiguas [17]). Las técnicas de análisis de imágenes hiperespectrales han seguido una notoria evolución, claramente marcada por los avances en el diseño de instrumentos avanzados para la observación remota de la tierra [63]. En sus comienzos, los sensores de observación remota de la tierra eran fundamentalmente de carácter espacial. Pronto aparecieron instrumentos capaces de medir singularidades en el espectro de la luz reflejada por los diferentes materiales presentes en el mundo real, utilizando varios canales espectrales, introduciendo la necesidad de desarrollar técnicas de análisis multiespectral [23]. La aparición del primer sensor hiperespectral, denominado Airborne Visible Infra-Red

28 10 Antecedentes Imaging Spectrometer (AVIRIS) [20] y desarrollado por el laboratorio Jet Propulsion Laboratory (JPL) de NASA, motivó importantes avances en el diseño de técnicas de tratamiento de datos hiperespectrales [8] como resultado del auge de las técnicas de reconocimiento de patrones y procesamiento de imágenes (íntimamente ligadas al gran aumento en la capacidad de cómputo de los computadores personales) y el constante desarrollo tecnológico en los instrumentos de medida y en las técnicas de aerotransporte y navegación espacial[28]. Dichos avances han propiciado la incorporación de la tecnología hiperespectral a muchas aplicaciones de gran relevancia social [29], y en las que las necesidades en cuanto a capacidad de cómputo y eficiencia computacional son muy elevadas, incluyendo aplicaciones militares (detección de targets u objetivos); detección y monitorización de fuegos y agentes contaminantes en aguas y atmósfera(agentes químicos o vertidos en aguas); agricultura de precisión; identificación y cuantificación de especies geológicas; análisis y caracterización de la vegetación en ecosistemas terrestres para estudio de fenómenos como el cambio climático global; estudio del impacto del crecimiento y contaminación urbana en determinadas zonas, etc. Los sensores hiperespectrales que se utilizan en la actualidad permiten adquirir imágenes digitales con 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 [20]. Si intentamos representar una imagen hiperespectral de forma gráfica obtendríamos un cubo cuyas dos primeras dimensiones representarían la ubicación en el espacio de un píxel determinado de la imagen y una tercera dimensión que representaría la singularidad espectral de cada píxel según diferentes longitudes de onda [8]. La Fig. 2.1 muestra una posible representación gráfica del concepto de imagen hiperespectral: Figura 2.1: Concepto de imagen hiperespectral Como podemos ver en la Fig. 2.1, las dimensiones espaciales de la imagen se representan mediante los conceptos de línea y muestra, donde las líneas horizontales corresponderían a las líneas de la imagen hiperespectral y las verticales a las muestras. Los sensores hiperespectrales utilizan diversas longitudes de onda en el proceso de adquisición de imágenes de la superficie terrestre, obteniendo diferentes resultados en función de la

29 2.1 Análisis hiperespectral 11 longitud de onda empleada en el proceso de medición. Cada uno de esos resultados recibe el nombre de banda ó canal, que representa la tercera dimensión de la imagen (espectral). Por tanto, un píxel situado en la coordenada (x,y) es un vector de valores discretos, en el que cada elemento del vector corresponde a una de las diferentes longitudes de onda empleadas en el proceso de adquisición de la imagen. El resultado de la toma de datos por parte de un sensor hiperespectral sobre una determinada escena puede ser por tanto 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. Si denotamos una imagen hiperespectral como un cubo de datos F, podemos representar el píxel en las coordenadas espaciales (x,y) como F(x,y) La Fig. 2.2 ilustra el procedimiento de adquisición de una imagen hiperespectral mediante un sencillo diagrama, en el que se ha considerado como ejemplo el sensor AVIRIS (longitudes de onda comprendidas entre 0.4 y 2.5 micras). Como puede apreciarse, la capacidad de observación de este sensor es mucho más avanzada que la de otros dispositivos como cámaras digitales, y permite la obtención de píxels formados por 224 valores espectrales, a partir de los cuales puede obtenerse una firma espectral característica que será utilizada en el proceso de análisis de la imagen [9]. Figura 2.2: Resultado de la toma de datos por parte de un sensor hiperespectral. Llegados a este punto, conviene destacar que en las imágenes hiperespectrales es frecuente encontrar mezclas a nivel sub-píxel [15]. Este fenómeno se debe a la insuficiente resolución espacial del sensor para separar materiales espectralmente puros, aunque el fenómeno de la mezcla se produce de forma frecuente en la naturaleza, en todas las escalas. En líneas generales, podemos clasificar los píxels de una imagen en dos categorías: píxels enlosquesólohayuntipodematerial(puros)obienpíxelsenlosquecohabitandiferentes materiales a nivel sub-píxel (mezclas). Por regla general, la mayoría de los píxels de una imagen hiperespectral son píxels mezcla, debido a que (independientemente de la escala

30 12 Antecedentes considerada) la mezcla se produce incluso a nivel microscópico[24, 46]. En la obtención de píxels mezcla intervienen también otros factores, tales como efectos atmosféricos, efectos de dispersión múltiple debidos a materiales que reflejan la luz de forma irregular (por ejemplo, diferentes tipos de vegetación, minerales, etc.) por lo que dicho fenómeno y su adecuada caracterización constituye un aspecto de gran interés en el desarrollo de técnicas de análisis de imágenes hiperespectrales. Figura 2.3: Tipos de píxels en imágenes hiperespectrales. La Fig. 2.3 ilustra gráficamente los conceptos de píxel puro y píxel mezcla. En ella podemos ver por ejemplo cómo un píxel correspondiente a una zona relativamente homogénea (agua) podría tratarse de un píxel puro, mientras que el resto de píxels (atmósfera, suelo y vegetación) podrían catalogarse como mezclas (de nubes con objetos terrestres, de diferentes tipos de minerales en el suelo, de diferentes especies en la vegetación, etc.) En la práctica, los píxels mezcla son los más abundantes en imágenes hiperespectral, y pueden clasificarse en una de las categorías que mencionamos a continuación: Mezclas macroscópicas: si el tamaño del píxel no es lo suficientemente grande para separar diferentes materiales, dichos elementos ocuparán el espacio asignado

31 2.1 Análisis hiperespectral 13 al píxel, con lo que el espectro resultante obtenido por el sensor será en realidad el espectro correspondiente a una mezcla de componentes. Esta situación aparece ilustrada mediante un ejemplo en las Figs. 2.4 y 2.6 Figura 2.4: Mezcla motivada por la superposición de varios materiales en un mismo píxel. Mezclas íntimas: este tipo de mezclas se obtienen cuando diferentes materiales se combinan, dando lugar a lo que se conoce como mezcla íntima (a nivel de partículas). Esta situación, ilustrada en la Fig. 2.5, ocurre independientemente de cuál sea la resolución espacial del sensor. Por tanto, aumentar la resolución espacial del sensor no siempre resuelve el problema de la mezcla. Figura 2.5: Mezcla íntima entre materiales. El fenómeno de la mezcla es característico del mundo real, y tiene la propiedad de ocurrir independientemente de la escala que sea considerada. Como hemos comentado anteriormente, en último extremo la mezcla de materiales tiene lugar a nivel microscópico. A pesar de que el objetivo principal del presente trabajo no se centra en el desarrollo de

32 14 Antecedentes Figura 2.6: Caracterización de un píxel mezcla a partir de una combinación lineal de espectros puros. nuevas técnicas de desmezclado [17], el fenómeno de la mezcla debe ser tenido en cuenta a la hora de desarrollar otras técnicas de análisis hiperespectral, incluyendo técnicas de clasificación [48] y desmezclado, así como (en el contexto que nos ocupa) a la hora de definir distancias robustas que puedan caracterizar de forma precisa la variabilidad espectral que tiene lugar en escenas naturales. Por tanto, una imagen hiperespectral es una imagen en la que cada píxel no viene descrito por un solo valor de intensidad o por tres componentes de color (como en una imagen en color), sino por un vector multidimensional. A veces se emplea el término imaging spectroscopy (espectroscopía de imágenes) [20] para referirse a los conceptos relativos a análisis hiperespectral, ya que en cierto modo dichos sensores obtienen medidas especroscópicas distribuidas en toda una rejilla de puntos (los píxels de la imagen) en una localización geográfica concreta Sensores hiperespectrales Un sensor hiperespectral es un dispositivo capaz de medir la radiación reflejada en gran cantidad de bandas muy estrechas, de forma que cada objeto tiene una firma espectral característica. Los sensores hiperespectrales son capaces distinguir materiales, sustancias y objetos (por ejemplo, distintas especies vegetales a simple vista todas del

33 2.1 Análisis hiperespectral 15 mismo color verde) que los sensores multiespectrales no son capaces de distinguir. En este sentido, 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 terrestre [24, 23]. A continuación comentaremos algunos detalles específicos del sensor AVIRIS, mediante el cual se obtuvieron las imágenes hiperespectrales utilizadas en la presente memoria: El sensor hiperespectral AVIRIS [1] es un sensor aerotransportado con capacidades analíticas en las zonas visible e infrarroja del espectro [20]. AVIRIS fue el primer sistema de adquisición de imágenes hiperespectrales capaz de obtener información en una gran cantidad de bandas espectrales estrechas y casi contiguas. Está en funcionamiento desde Las características de AVIRIS son especiales con respecto a las de otros sensores hiperespectrales, ya que permite obtener información espectral en 224 canales espectrales contiguos, cubriendo un rango de longitudes de onda entre 0.4 y 2.5 micrómetros, manteniendo un ancho entre las bandas muy pequeño (aproximadamente 1 nanómetro). En 1989 AVIRIS pasó a ser un instrumento aerotransportado. AVIRIS ha obtenido datos de todo Estados Unidos, Canadá y Europa y ha sido utilizado como soporte de vuelo de cuatro plataformas diferentes [19]. En cuanto a las características propias del sensor hiperespectral AVIRIS, podemos destacar las siguientes: Utiliza un exploradorde barridoque permite obtener un total de 614 píxels en cada oscilación. Posee diferentes espectrómetros que podemos clasificar en dos grupos: EFOS-A: realiza la cobertura de la parte visible del espectro. Está compuesto por 32 detectores lineales. EFOS-B, EFOS-C y EFOS-D: realizan la cobertura de infrarrojo. Están compuestos por vectores de 64 detectores lineales. Dispone de un sistema de calibración a bordo, que utiliza una lámpara halógena de cuarzo que proporciona la radiación de referencia necesaria para comprobar el estado de los diferentes espectrómetros. La señal medida por cada detector se amplifica y codifica utilizando 12 bits. Esta señal se almacena en una memoria intermedia donde es sometida a una etapa de preprocesado, siendo registrada a continuación en una cinta de alta densidad de 10.4 GBytes a una velocidad de 20.4 MBytes por segundo.

34 16 Antecedentes Hyperion * EnMAP HyspIRI País Estados Unidos Alemania Estados Unidos Resolución espacial 30 metros 30 metros 60 metros Resolución temporal 16 días 4 días 18 días Rango espectral nanómetros nanómetros nanómetros Resolución espectral 10 nanómetros.5-10 nanómetros 10 nanómetros Cobertura imágenes 7.7 kilómetros 30 kilómetros 120 kilómetros Cobertura terrestre Parcial Total Total Fecha lanzamiento Tiempo de vida previsto 10 años 6 años 6 años * Tabla 2.1: Características de algunos sensores hiperespectrales ya disponibles o cuya puesta en funcionamiento será realizada en breve. Alolargodelosúltimosaños,elsensorhaidomejorandosusprestacionesencuanto a la relación senal-ruido o signal to noise ratio (SNR). La Figura 2.7 muestra una descripción de las prestaciones del sensor en cuanto a la relación SNR (en cada una de las 224 bandas del sensor) a lo largo de los últimos años en los que el sensor ha estado en funcionamiento [63]. Figura 2.7: Relación señal-ruido (SNR) en los diferentes canales de AVIRIS a lo largo de los últimos años (reproducido con permiso de Robert O. Green, investigador principal del proyecto AVIRIS) A pesar de que AVIRIS puede considerarse como uno de los sensores hiperespectrales de referencia (que describimos en detalle en el presente documento dado que los datos empleados han sido obtenidos por este sensor), existen otros sensores hiperespectrales de gran relevancia en la comunidad científica. Por motivos ilustrativos, la Tabla 2.1 muestra las características de otros sensores hiperespectrales ya disponibles o cuya puesta en funcionamiento será realizada en breve:

35 2.2 Técnicas de análisis hiperespectral Técnicas de análisis hiperespectral Las técnicas que se han venido aplicando en la literatura para analizar e interpretar imágenes hiperespectrales son muy diversas. A pesar de no existir una catalogación estandarizada de dichas técnicas, a grandes rasgos podemos destacar las siguientes [42]: Corrección atmosférica y geométrica: consiste en acondicionar la imagen con carácter previo a su procesamiento, eliminando artefactos motivados por la influencia de agentes atmosféricos, errores de calibración y desplazamientos en el proceso de adquisición de la imagen hiperespectral por parte del sensor. Reducción dimensional: consiste en reducir la elevada dimensionalidad de una imagen hiperespectral de cara a operaciones de procesamiento posteriores. Detección de targets y anomalías: consiste en realizar una búsqueda en la imagen hiperespectral orientada a localizar píxels singulares o anómalos, conocidos de antemano o no, y que constituyen objetos de interés en la imagen. Detección de cambios: consiste en identificar y caracterizar los cambios más significativos que se han producido en una secuencia de imágenes hiperespectrales adquiridas sobre la misma ubicación geográfica en distintos periodos temporales. Clasificación: consiste en asignar una etiqueta (correspondiente a la asociación de un píxel con una determinada clase) a cada píxel de una imagen hiperespectral. Desmezclado o unmixing: consiste en estimar la fracción de abundancia de cada material espectralmente puro en cada píxel de la imagen hiperespectral, solventando así el problema de la mezcla. En el presente trabajo nos centramos en las técnicas de análisis hiperespectral orientadas a detección de targets y anomalías. En el presente apartado describimos algunas técnicas estándar para este propósito que serán utilizadas a lo largo de la presente memoria, y que constituyen el núcleo de los nuevos desarrollos presentados en este trabajo. En primer lugar, destacamos que el término target se aplica a objetos con características espectrales diferenciadas [8]. Un conjunto de targets estaría por tanto formado por un conjunto de firmas espectrales (puras o no) suficientemente representativas de los diferentes objetos presentes en la imagen y con características espectrales distintas entre sí. Existen diversos algoritmos disenados para procesar imágenes e identificar objetivos a los que llamamos targets. Estos algoritmos suelen funcionar de forma iterativa, obtenido un resultado(un nuevo target) en cada iteración del algoritmo. Al final del algoritmo obtendremos una lista de targets como salida del mismo. En cuanto a la metodología de funcionamiento de este tipo de algoritmos, existen diversos criterios a la hora de iniciar el proceso de detección. Por ejemplo, el algoritmo Iterative Error Analysis (IEA) [31] utiliza un proceso iterativo partiendo del píxel promedio (centroide) de la escena y utilizando el error cuadrático medio para generar un conjunto

36 18 Antecedentes de targets en base a su disimilaridad aplicando dicho criterio. El algoritmo Unsupervised Fully Constrained Least Squares (UFCLS) [22] aplica un criterio similar, pero en este caso el target inicial es el píxel más brillante de la escena. Por último, en la literatura reciente se han aplicado diferentes algoritmos de extracción de firmas espectrales puras o endmembers al problema de detección de targets. Entre dichos algoritmos se encuentran el Píxel Purity Index [5] o el denominado N-FINDR [74], los cuales detectan píxels aplicando conceptos de extremidad o convexidad en el espacio multidimensional en el que se encuentran los píxels de una imagen hiperespectral. En trabajos previos, se ha demostrado que los algoritmos de extracción de endmembers tienden a penalizar aquellos targets cuyas características espectrales no son puras desde un punto de vista espectral [43], lo cual no depende enteramente de la naturaleza del target u objetivo sino que también puede estar relacionado con aspectos como la resolución espacial de las imágenes. Por este motivo, y dado que en el presente trabajo consideramos datos obtenidos por un sensor con resolución espacial moderada (20 metros por píxel en AVIRIS) dichas técnicas de extracción de endmembers no serán consideradas en el presente trabajo. A la hora de desarrollar nuevos algoritmos para detección de targets, hemos tomado como punto de partida dos de los algoritmos más ampliamente utilizados en la literatura: Automatic Target Generation Process (ATGP) y el algoritmo de Reed-Xiaoli (RX) [56]. En el caso particular del algoritmo ATGP, que detallamos a continuación, el punto de partida del algoritmo es, de nuevo, el píxel más brillante de la imagen. De forma similar a otras medidas existentes, es posible utilizar diferentes puntos de partida en lugar del píxel más brillante, pero en estos casos, se ha comprobado experimentalmente que dicho píxel siempre es detectado en un número reducido de iteraciones si no se ha escogido como punto de partida [43]. Por este motivo, parece razonable utilizarlo como condición de partida. A continuación, mostramos una descripción algorítmica detallada de los algoritmos ATGP y RX. Seguidamente, mostramos las métricas más ampliamente utilizadas en la validación de algoritmos de detección de targets y anomalías. Finalmente, justificamos la necesidad de paralelismo en este tipo de algoritmos Automated Target Generation Process (ATGP) El algoritmo ATGP fue desarrollado para encontrar firmas espectrales utilizando proyecciones ortogonales [61, 39]. Este algoritmo hace uso de un operador de proyección ortogonal que viene dado por la expresión (2.1) mostrada a continuación : P U = I U(UT U) 1 U T, (2.1) donde U es una matriz que contiene las firmas espectrales de los targets detectados iterativamente en el proceso, U T es la traspuesta de dicha matriz, e I es la matriz identidad. El algoritmo ATGP utiliza el operador de proyección ortogonal descrito en la expresión (2.1) en cada iteración para encontrar una serie de píxels ortogonales a partir de un píxel inicial que, por defecto, suele ser el píxel más brillante de la imagen. Más concretamente, el algoritmo realiza los siguientes pasos: 1. Calcular t 0, el target inicial que se asigna al píxel más brillante de la imagen hiperespectral. Si denotamos una imagen hiperspectral con n bandas espectrales

37 2.2 Técnicas de análisis hiperespectral 19 como F, podemos obtener el píxel más brillante de la imagen utilizando la expresión (2.2), donde F(x,y) es el píxel (vector n-dimensional) en las coordenadas (x,y) de dicha imagen. Como puede comprobarse, el píxel más brillante es aquel que resulta en mayor valor escalar al calcular el producto vectorial entre el vector asociado a dicho píxel y su traspuesto, F(x,y) T : t 0 = arg{máx (x,y) [F(x,y)T F(x,y)]}. (2.2) 2. Aplicar el operador de proyección ortogonal P U en la expresión (2.1) con U = t 0 a todos los píxels de la imagen hiperespectral. Como resultado de este proceso, el algoritmo encuentra un nuevo target t 1 con el mayor valor de proyección (según P U ) en el espacio complementario < t 0 >, es decir, ortogonal a t 0, utilizando la expresión (2.3). En otras palabras, para encontrar t 1 el algoritmo busca el píxel más ortogonal con respecto a t 0 en la imagen hiperespectral. t 1 = arg{máx (x,y) [P U F(x,y)]T [PU F(x,y)]}. (2.3) 3. A continuación se modifica la matriz U añadiendo el nuevo target recientemente encontrado, es decir, U = [t 0,t 1 ]. Seguidamente, el algoritmo busca un nuevo target t 2 con el mayor valor en el espacio complementario < t 0,t 1 > ortogonal tanto a t 0 como a t 1, utilizando la expresión (2.4). Llegados a este punto, conviene diferenciar esta operación de la realizada por el algoritmo en el paso 3, en el que U = t 0, mientras que en este paso el operador de proyección ortogonal se basa en U = [t 0,t 1 ], por lo que el concepto de ortogonalidad es ligeramente diferente (el nuevo target es ortogonal a los dos anteriormente detectados y no solamente a uno de ellos). t 2 = arg{máx (x,y) [P U F(x,y)] T [P U F(x,y)]} (2.4) 4. A partir de este paso, el proceso se repite de forma iterativa, para encontrar un tercer target t 3, un cuarto target t 4, y así sucesivamente, hasta que se satisface una determinada condición de terminación para el algoritmo. La condición de terminación más habitual es alcanzar un número de targets, p, que se establece como parámetro de entrada al algoritmo Algoritmo de detección de anomalías RX El algoritmo RX constituye una técnica automática de detección de anomalías propuestoporreedyxiaoli[75].elmétodotambiénseconoceenlaliteraturacomorxd (Reed-Xiaoli-Detector) y se ha utilizado frecuentemente como mecanismo automático de identificación de anomalías en imágenes hiperespectrales y multiespectrales. Este algoritmo identifica los píxels que son espectralmente distintos con respecto a los materiales espectrales predominantes en la imagen hiperespectral. El funcionamiento del algoritmo RX puede resumirse en una serie de pasos:

38 20 Antecedentes 1. Calcular el vector media m de la imagen hiperespectral, donde cada elemento de dicho vector es la media de los valores de los píxels de cada banda espectral. En concreto, el vector media de una imagen hiperspectral F puede calcularse de forma sencilla mediante la siguiente expresión: m = 1 N M N x=1y=1 M [F(x,y)], (2.5) donde N denota el número de líneas y M denota el número de bandas de la imagen hiperespectral F. 2. A continuación, el algoritmo calcula la matriz de covarianza espectral K n n (recordamos que n el número de bandas de la imagen hiperespectral F) y aplica la siguiente expresión (conocida como filtro RX ó RXF): RXF(F) = [F(x,y) m] T K 1 n n[f(x,y) m]. (2.6) Como puede comprobarse, el filtro RXF en la expresión (2.6) coincide con la denominada distancia de Mahalanobis, que se aplica a todos los píxels de la imagen para identificar los píxels anómalos en la misma. A partir de la expresión (2.6) se obtiene un indicador de la probabilidad de que un determinado píxel de la imagen hiperespectral constituya una anomalía. Para extraer los píxels anómalos de la imagen puede aplicarse un proceso de umbralizado, o bien selección de los píxels con mayor probabilidad tras aplicar la expresión(2.6), de forma que podría seleccionarse un conjunto de p píxels anómalos siendo p un parámetro de entrada al algoritmo. No obstante, a lo largo de la memoria veremos diferentes estrategias para evaluar la calidad del resultado proporcionado por RXF(F), incluyendo las métricas que se describen en el siguiente subapartado de la presente memoria Métricas empleadas en la evaluación de algoritmos de detección de targets En la literatura existen dos aproximaciones fundamentales a la hora de evaluar algoritmos de detección de targets o anomalías. Si se dispone de información verdadterreno(de referencia) sobre la ubicación de los targets, un esquema sencillo de evaluación consiste en contabilizar el número de targets detectados frente al número de targets conocidos en la verdad terreno. Sin embargo, ciertos algoritmos como RX dependen de la aplicación de un valor umbral sobre una imagen de probabilidad dada por los valores de RXF(F) en cada píxel F(x,y) de la imagen. En este caso, resulta altamente deseable y apropiado poder evaluar la precisión del algoritmo de detección de targets o anomalías independientemente del valor umbral que se aplique (es decir, se evalúa la capacidad de la imagen de probabilidad para separar targets de fondo). Para ello, suelen aplicarse conceptos relativos a la teoría de la detección [75], que describimos a continuación. El mayor exponente de la teoría de la detección son las curvas ROC (receiving operating characteristics), que han sido ampliamente utilizadas para medir la habilidad

39 2.2 Técnicas de análisis hiperespectral 21 con la que un algoritmo computacional es capaz de llevar a cabo una tarea de reconocimiento de formas u objetos en imágenes digitales. En particular, estas curvas han sido utilizadas para evaluar nuevos algoritmos de análisis hiperespectral, fundamentalmente aquellos algoritmos orientados a identificar targets u objetos de interés en la escena [8]. Paraconstruir una curva ROC es necesario partir del supuesto de que la información verdad terreno viene expresada en forma de una imagen binaria, en la que cada píxel viene etiquetado como perteneciente una de dos clases: objeto de interés V o, o fondo V f, siendo estas clases mutuamente excluyentes entre sí. Por su parte, el algoritmo de detección de targets o anomalías daría como resultado dos clases binarias mutuamente excluyentes: objeto de interés detectado D o, o bien fondo D f. Teniendo en cuenta estas definiciones, la Tabla 2.2 resume la nomenclatura que será utilizada en lo sucesivo en nuestros estudios basados en análisis ROC orientados a evaluar la precisión de algoritmos de detección de targets o anomalías. Más concretamente, las medidas que aparecen reflejadas en la Tabla 2.2 pueden resumirse de la siguiente forma: V o V f D o VPs = D o V o FPs = D o V f D f FPs = D f V o FNs = D f V f Tabla 2.2: Nomenclatura utilizada en análisis ROC orientado a detección de targets o anomalías. En la tabla, VP denota verdadero positivo, FP denota falso positivo, VN denota verdadero negativo y FN denota falso negativo. Verdaderos positivos (VPs): son los aciertos, es decir, el número de píxels etiquetados de forma correcta por el algoritmo de detección como pertenecientes al objeto a detectar. Falsos positivos (FPs): son las falsas alarmas, es decir, el número de píxels etiquetados incorrectamente por el algoritmo de detección como pertenecientes al objeto que se desea detectar. Verdaderos negativos (TNs): son las desestimaciones correctas, es decir, el número de píxels que el algoritmo de detección etiqueta de forma acertada como no pertenecientes al objeto. Falsos negativos (FN): son las omisiones, o el número de píxels que el algoritmo etiqueta de forma errónea como no pertenecientes al objeto que se desea detectar. Teniendo en cuenta esta sencilla nomenclatura, podemos expresar el porcentaje de acierto global o sensibilidad mediante la siguiente expresión: H = VPs VPs+VNs. (2.7) De forma similar, podemos expresar el porcentaje de fallo o especificidad mediante la siguiente expresión: F = FPs FPs+VNs. (2.8)

40 22 Antecedentes Las curvas ROC son representaciones gráficas de la sensibilidad H (fracción de verdaderos positivos) frente a la especificidad F (fracción de falsos positivos). El rango de variación de H y F es el intervalo [0,1]. Así, la sensibilidad será perfecta si H = 1 y F = 0, mientras que la sensibilidad será nula si H = F. La construcción de una curva ROC se lleva a cabo mediante la obtención de diferentes pares de puntos (H,F) a través de la selección de diferentes valores para una variable de decisión[69]. En el caso de aplicaciones de detección de targets o anomalías, la variable de decisión normalmente consiste en la aplicación de un valor umbral sobre el resultado (valor de probabilidad) proporcionado por el algoritmo de detección, de forma que los píxels cuyo valor de probabilidad asociado está por encima del umbral establecido se consideran como pertenecientes al objeto a detectar, mientras que los píxels cuyo valor de probabilidad asociado está por debajo de dicho umbral se consideran como pertenecientes al fondo. Por motivos ilustrativos, la Fig. 2.8 muestra un sencillo ejemplo de la construcción de una curva ROC para una imagen de clasificación proporcionada por un algoritmo de detección de targets, en la que los píxels con nivel digital bajo (nivel de gris más cercano a negro) tienen menor probabilidad de pertenecer a los objetos de interés (árboles), mientras que los píxels con nivel digital alto (nivel de gris más cercano a blanco) tienen mayor probabilidad de pertenecer a dichos objetos y no al fondo (suelo). La construcción de la curva ROC se ha realizado mediante la selección de cinco valores umbrales equidistantes en el rango dinámico de la imagen resultante al representar la salida del algoritmo de detección de targets (valores de probabilidad) en forma de imagen digital, con los valores de probabilidad más altos cercanos al color blanco y los valores de probabilidad más bajos cercanos al color negro. Esta sencilla figura pone de manifiesto que la construcción de una curva ROC permite obtener una medida cualitativa y cuantitativa de la bondad del algoritmo de detección, independientemente de la selección de valores umbrales específicos, lo cual resulta muy apropiado a la hora de evaluar la precisión de un algoritmo de detección de targets o anomalías independientemente de la bondad del umbral escogido (ya que la curva ROC permite evaluar un gran número de valores umbrales, normalmente equidistantes, en el rango de valores de probabilidad proporcionados por el algoritmo de detección considerado para cada píxel de la imagen). Según la teoría de la detección[75], una medida apropiada para cuantificar la precisión con la que algoritmo de detección identifica los objetos de interés es el área bajo la curva ROC. En el ejemplo mostrado en la Fig. 2.8, el área bajo la curva ROC se aproxima al 90% con respecto al área total disponible en la cuadrícula, lo cual (en el contexto que nos ocupa) indica que la precisión del algoritmo de detección de targets en este ejemplo concreto se sitúa en torno al 90% Necesidad de paralelismo en análisis hiperespectral El proceso de captación de datos hiperespectrales por parte de sensores remotos de observación de la tierra produce cantidades enormes de datos de gran dimensionalidad que deben ser almacenados y tratados de forma eficiente. La falta de arquitecturas

41 2.3 Necesidad de paralelismo en análisis hiperespectral 23 Figura 2.8: Ejemplo de construcción de una curva ROC. consolidadas para el tratamiento eficiente de imágenes hiperespectrales ha dado lugar a una situación actual en la que, a pesar de que diferentes instituciones como NASA o la agencia Europea del espacio (ESA) obtienen varios Terabytes de datos hiperespectrales cada día, se estima que una parte significativa de dichos datos no son nunca utilizados o procesados, sino meramente almacenados en una base de datos y muchas veces reservados para futuro uso que, en ocasiones, no se materializa debido a los enormes requerimientos computacionales para almacenar, procesar y distribuir dichas imágenes de forma eficiente. Con el auge de las arquitecturas de computación paralela de bajo coste en problemas de cálculo científico, en la actualidad existe una comunidad investigadora muy activa orientada al desarrollo de algoritmos para el procesamiento eficiente de datos hiperespectrales. Desde un punto de vista computacional, estos algoritmos presentan paralelismo en múltiples niveles: a través de los vectores que constituyen los píxels (paralelismo de grano grueso a nivel de píxel), a través de la información espectral (paralelismo de grano fino a nivel espectral), e incluso a nivel de tareas ejecutadas por diferentes algoritmos como las técnicas de detección de targets y anomalías que

42 24 Antecedentes constituyen el principal interés de la presente memoria. Teniendo en cuenta que los accesos a datos en los algoritmos de análisis hiperespectral son normalmente regulares y altamente predecibles, en la literatura reciente se ha demostrado que muchos de estos algoritmos se pueden mapear fácilmente sobre sistemas paralelos tales como clústers de computadores, sistemas heterogéneos y dispositivos hardware especializados para procesamiento a bordo. A continuación, describimos brevemente los avances más recientes en cuanto al procesamiento eficiente de imágenes hiperespectrales utilizando arquitecturas de computación de altas prestaciones. Llegados a este punto, es preciso destacar que las técnicas de procesamiento a bordo son altamente deseables en aplicaciones que requieren una respuesta en tiempo real, tales como aquellas orientadas a la detección de agentes contaminantes en aguas y atmósfera, detección y seguimiento de incendios forestales, etc. [44]. En este sentido, las técnicas de computación paralela han sido ampliamente utilizadas en la literatura reciente para llevar a cabo tareas de procesamiento de imágenes hiperespectrales, facilitando la obtención de tiempos de respuesta muy reducidos en dichas aplicaciones mediante arquitecturas de bajo coste [58]. Siguiendo la evolución histórica en las investigaciones llevadas a cabo en este campo, en lapresentesecciónofrecemosuna visióndelestadodel arteen cuantoa laaplicaciónde técnicas de computación de altas prestaciones aplicada a problemas relacionados con el análisis hiperespectral, comenzando con los primeros avances centrados en computación en clústers de computadores personales, pasando por nuevos desarrollos basados en computación paralela heterogénea, y concluyendo con avances recientes en hardware especializado para el procesamiento de imágenes hiperespectrales a bordo de sensores de observación remota de la Tierra [52] Computación clúster aplicada a análisis hiperespectral La idea de aplicar clústers de computadores personales [7] para satisfacer los requerimientos computacionales en aplicaciones de análisis hiperespectral surgió a principios de la década de los 90, y originalmente se aplicó a problemas de procesamiento de imágenes multiespectrales con un número limitado (decenas) de bandas[24]. A medida que los sensores de observación remota de la tierra fueron incrementando su resolución espectral, la computación clúster aplicada a este tipo de problemas se centró en el procesamiento de imágenes hiperespectrales de mayor dimensionalidad [10]. El primer intento documentado de aplicar técnicas de computación clúster a problemas de análisis hiperespectral data de mediados de los 90, periodo en el que un equipo de investigadores del centro Goddard Space Flight Center (GSFC) de la NASA diseñó el primer clúster específicamente orientado a resolver problemas relacionados con la observación remota de la tierra. Dicho clúster estaba consistía en 16 PCs idénticos, cuyas CPUs poseaían una frecuencia de reloj de 100MHz, interconectados mediante 2 hub Ethernet configurados en modo bonding, de forma que las dos redes de comunicación existentes funcionaban como una sola red al doble de velocidad. Con la evolución de la aplicaciones de procesamiento de datos hiperespectrales, en 1996 el California Institute of Technology (CalTech) diseñó un nuevo clúster de tipo Beowulf orientado al procesamiento

43 2.3 Necesidad de paralelismo en análisis hiperespectral 25 de datos hiperespectrales, demonstrando un rendimiento de un Gigaflop en una aplicación de análisis hiperespectral, siendo la primera vez que un clúster de estas características mostraba su potencial en este contexto. De forma general, conviene destacar que hasta 1997 los clústers utilizandos en aplicaciones de observación remota de la tierra eran esencialmente prototipos de ingeniería, es decir, los clústers eran generalmente construidos por los mismos investigadores que iban a hacer uso de ellos. Sin embargo, a finales de 1997 se inició un nuevo proyecto en el centro GSFC para construir un clúster ideado para ser explotado por una comunidad de investigadores entre los que no necesariamente se encontraban los diseñadores del mismo. Este proyecto se denominó Highly Parallel Virtual Environment (HIVE) [14] y su filosofía consistió en disponer de estaciones de trabajo distribuidas en diferentes lugares y un gran número de nodos de cómputo (el núcleo) concentrados en un único espacio. Aunque el sistema HIVE original sólo tenía una estación de trabajo, varios usuarios podían acceder a él desde sus propias estaciones de trabajo a través de internet. HIVE fue el primer clúster que superó un rendimiento sostenido de 10 Gigaflops procesando datos hiperespectrales(entre otras aplicaciones). Más adelante, una evolución de HIVE se utilizó de forma específica en aplicaciones de análisis hiperespectral. Este sistema, conocido como Thunderhead, es un clúster homogéneo con 512 procesadores formado por 256 nodos duales Intel Xeon a 2.4GHz, cada uno con 1 GByte de memoria y 80 GBytes de disco. El rendimiento pico de Thunderhead es de Gigaflops. Además de los 512 procesadores, Thunderhead cuenta con otros nodos conectados mediante una red Myrinet. Este clúster ha sido utilizado en multitud de estudios de análisis de imágenes hiperespectrales durante los últimos años[42, 58, 45, 73], y en particular, ha sido utilizado activamente para evaluar el rendimiento de los nuevos algoritmos de detección de targets y anomalías desarrollados en el presente trabajo [39, 40], así como otros algoritmos de análisis hiperespectral [50, 59, 34]. Además de los sistemas anteriormente mencionados, NASA y ESA poseen actualmente otras plataformas específicamente dedicadas al tratamiento eficiente de imágenes hiperespectrales. Un ejemplo de ello es el supercomputador Columbia 1 ubicado en el Ames Research Center de la NASA. Está compuesto por CPUs SGI Altix Intel Itanium 2, 20 TBytes de memoria e interconexiones heterogéneas de tipo Infiniband y Gigabit Ethernet. Otro ejemplo es el sistema Discover del centro GSFC, con un total de procesadores y red de comunicación de tipo Infiniband, dedicado a la predicción de los cambios climáticos a corto, medio y largo plazo mediante el uso de imágenes hiperespectrales. Fuera del entorno de NASA y ESA, otro supercomputador que ha sido utilizado esporádicamente para el tratamiento de imágenes hiperespectrales es Marenostrum [59], ubicado en el Barcelona Supercomputing Center. Es un clúster IBM compuesto por CPUs, red Myrinet a 2.3 GHz y GB de memoria en el momento de la realización de nuestros experimentos basados en análisis hiperespectral. Por último, el High Performance Computing Collaboratory (HPC 2 ) en la Mississippi State University posee varias instalaciones de supercomputación que se han utilizado en estudios realacionados con análisis de imágenes hiperespectrales. Entre ellos destaca el 1

44 26 Antecedentes sistema Maverick 2, compuesto por nodos IBM donde cada nodo contiene un procesador dual Xeon a 3.06 GHz y 2.5 GBytes de RAM. Otro sistema ampliamente utilizado en aplicaciones de análisis hiperespectral disponible en HPC 2 es Raptor, que comenzó a utilizarse en 2006, y que consta de 2048 núcleos de procesamiento, con 512 servidores Sunfire X2200 M2 de Sun Microsystems, cada uno de los cuales posee dos procesadores dual-core AMD Opteron 2218 a 2.6 GHz y 8 GB de memoria. Recientemente, el sistema Talon de HPC 2 ha comenzado a utilizarse de forma activa en aplicaciones de análisis hiperespectral. Dicho sistema consta de 3072 núcleos de proceamiento, con 256 nodos idataplex de IBM cada uno con dos procesadores Intel Westmere de 6 cores a 2.8 GHz y 24 GB de memoria Computación heterogénea en análisis hiperespectral Con la evolución en el hardware de red e interconexión, las redes de computación heterogéneas capaces de interconectar recursos de cómputo ubicados en localizaciones geográficas dispersas se convirtieron en una herramienta muy popular para la computación distribuida, y pronto este paradigma comenzó a aplicarse en problemas relacionados con análisis de datos de la superficie terrestre en general, y con análisis de datos hiperespectrales en particular [71]. Al contrario que en la computación clúster, en la que el número y la ubicación de los nodos de cómputo es conocida a priori, en la computación heterogénea distribuida no siempre es posible garantizar la disponibilidad de los recursos de antemano, lo cual ha motivado cambios en las aplicaciones de procesamiento de datos hiperespectrales que utilizan este paradigma. Una evolución del concepto de computación distribuida anteriormente descrito es el concepto de computación Grid, en el que el número y ubicación de los nodos es relativamente dinámico y se conoce únicamente en tiempo de ejecución. Este concepto se ha aplicado (aunque todavía no de manera muy consolidada) en el contexto de análisis de imágenes hiperespectrales [62]. Por ejemplo. existen estudios orientados a facilitar la accesibilidad (con toleracia a fallos gracias al diseño especializado del middleware), la distribución eficiente y la compartición entre usuarios geográficamente dispersos de grandes colecciones de imágenes hiperespectrales [6, 55]. En la literatura reciente existen otros trabajos de investigación orientados al procesamiento distribuido eficiente de imágenes hiperespectrales. Tal vez el ejemplo más simple es el uso de versiones heterogéneas de algoritmos paralelos de procesamiento de datos desarrollados para clústers homogéneos, por ejemplo, introduciendo variaciones que doten a dichos algoritmos de la capacidad de modelar la heterogeneidad inherente en una red distribuida, balanceando la carga de forma eficiente contemplando la heterogeneidad de los recursos disponibles [55, 57, 25, 30]. Este marco de trabajo permite portar fácilmente un código paralelo desarrollado para un sistema homogéneo a entornos completamente heterogéneos. Otra propuesta ampliamente utilizada en la literatura ha consistido en la adaptación de algoritmos diseñados para ejecutarse en un único clúster a entornos distribuidos multi-clúster, formados por varios clusters 2

45 2.3 Necesidad de paralelismo en análisis hiperespectral 27 homogéneos interconectados entre sí a través de una red de tipo wide area network (WAN) [26]. Por otra parte, algunas aplicaciones han explorado la posibilidad de utilizar componentes software para construir algoritmos eficientes para el procesamiento de imágenes hiperespectrales. Por ejemplo, existen desarrollos orientados a realizar el proceso de corrección atmosférica de la imagen hiperespectral utilizando componentes [6]. Dichos componentes ofrecen la posibilidad de encapsular gran parte de la complejidad existente en las tareas de procesamiento al tratar los algoritmos como si fuesen cajas negras, mostrando únicamente la interfaz de cada componente (por ejemplo, los parámetros de entrada y salida de cada módulo) al resto de componentes. La programación orientada a componentes puede ofrecer nuevas perspectivas en cuanto a compartición eficiente de algoritmos de análisis hiperespectral Hardware especializado para análisis hiperespectral Durante los últimos años se han realizado numerosos esfuerzos para incorporar el procesamiento de imágenes hiperespectrales a bordo del sensor, dados los requirimientos computacionales de determinadas aplicaciones críticas que requieren una respuesta en tiempo real [41]. Un buen ejemplo es el seguimiento de un incendio, que evoluciona de forma muy rápida y que requiere una velocidad de procesamiento de datos equiparable a la velocidad del proceso de adquisición de los mismos, permitiendo procesar los datos a medida que se adquieren por parte del sensor a bordo. La posibilidad de procesar datos hiperespectrales a bordo también introduce numerosas ventajas desde el punto de vista de reducir los requerimientos de ancho de banda del enlace de comunicación con la estación de procesamiento de datos en tierra, tanto para un eventual acondicionamiento y preprocesado de la imagen, como para la realización de una selección inteligente de los datos hiperespectrales que se van a transmitir a tierra (por ejemplo, seleccionando las bandas espectrales más relevantes en un contexto de aplicación determinado) [12]. En particular, la compresión de datos hiperespectrales a bordo resulta de gran interés, ya sea sin pérdida o bien con pérdida selectiva de información [11]. Por otra parte, algunas misiones de análisis hiperespectral se encuentran orientadas a la exploración planetaria (por ejemplo, de la superficie de Marte [32]), y en este caso la toma de decisiones automática a bordo resulta indispensable con vistas a evitar comunicaciones que pueden resultar lentas y muy costosas. Llegados a este punto, conviene destacar que las arquitecturas tipo clúster y sistemas distribuidos no resultan adecuadas para este tipo de procesamiento a bordo. Los clústers son, en general, caros y difíciles de adaptar a escenarios de procesamiento a bordo, en los que los componentes de peso reducido y bajo consumo son muy importantes para reducir el peso (payload) del sensor y de la misión en general, así como el coste de la misma. En la literatura reciente han aparecido numerosos trabajos orientados a la implementación de algoritmos de análisis hiperespectral en dispositivos hardware como Field Programmable Gate Arrays (FPGAs) y tarjetas gráficas programables(gpus). Por una parte, las FPGAs ofrecen actractivas características tales como reconfigurabilidad y bajo consumo energético [18], mientras que las GPUs ofrecen gran rendimiento computacional a bajo coste[37]. En el caso de las GPUs, la evolución de estos dispositivos

46 28 Antecedentes ha venido motivada por las cada vez más exigentes demandas de la industria del videojuego, con la posibilidad de disponer de sistemas programables altamente paralelos a un coste relativamente bajo. Aunque sus capacidades en cuanto a programación todavía plantean algunos retos, las GPUs actuales son suficientemente generales como para permitir la realización de desarrollos computacionales de propósito general más allá del dominio de la representación de gráficos y del mundo de los video-juegos. Este enfoque se denomina General Purpose GPU (GPGPU). La disponibilidad de hardware especializado susceptible de ser utilizado para procesamiento a bordo en misiones de adquisición de datos hiperespectrales limita de forma significativa la explotación de clústers y sistemas distribuidos en procesamiento a bordo [41]. Por otra parte, el mantenimiento de un sistema a gran escala requiere una inversión importante en cuanto a mantenimiento, acondicionamiento, etc. Aunque los clústers se consideran arquitectura paralelas de bajo coste, el mantenimiento de un sistema de estas características se hace más complejo a medida que aumenta el número de nodos [58]. En cambio, las FPGAs y las GPUs se caracterizan por su bajo peso y tamaño, así como por la capacidad de ofrecer un rendimiento computacional similar al de un clúster en determinados contextos. En particular, estudios recientes demuestran que el incremento de prestaciones obtenido al utilizar FPGAs [45, 72, 13, 18] y GPUs [65, 37, 70] en aplicaciones de procesamiento de imágenes hiperespectrales puede llegar a ser del mismo orden de magnitud que el obtenido por un clúster con un número de nodos relativamente alto[37]. En virtud de su reconfigurabilidad[21], las FPGAs ofrecen además la posibilidad de seleccionar de forma adaptativa el algoritmo de análisis hiperespectral a utilizar (de un conjunto o pool de algoritmos disponibles) desde una estación de control en Tierra. Por otra parte, las FPGAs son generalmente más caras que las GPUs [37]. En este sentido, tanto la reconfigurabilidad de las FPGAs por una parte, como el bajo coste y portabilidad de las GPUs por otra, abren nuevas perspectivas innovadoras para el procesamiento en tiempo real de imágenes hiperespectrales.[52] En cualquier caso, a pesar de sus atractivas propiedades, tanto las FPGAs como GPUs aún no se encuentran plenamente incorporadas en misiones de observación de la Tierra. Por ejemplo, las FPGAs todavía no son totalmente eficientes en situaciones en las que es necesario disponer de varios algoritmos implementados en el mismo hardware, caso en el que la reconfigurabilidad requiere que solamente una pequeña parte de los recursos esté disponible para la lógica, mientras que el resto del hardware se utiliza para aspectos de interconexión y configuración. Esto supone una penalización en términos de velocidad y energía, lo cual es particularmente complicado en FPGAs tolerantes a radiación (imprescindibles para misiones espaciales y sensores de tipo satélite) las cuales, por norma general, cuentan con un número de puertas varios órdenes de magnitud por debajo del número de puertas disponibles en las FPGAs comerciales de última generación [18]. En cuanto a las GPUs, su alto consumo de energía (comparado con las FPGAs) introduce importantes consideraciones desde el punto de vista del payload de la misión, aunque ya existen arquitecturas GPU con menor consumo de energía 3. En los próximos años se esperan grandes avances en el diseño de GPUs de bajo consumo, incluyendo 3

47 2.3 Necesidad de paralelismo en análisis hiperespectral 29 desarrollos orientados a obtener GPUs tolerantes a radiación de cara a su incorporación a sensores diseñados para adquirir imágenes hiperespectrales desde el espacio. En la literaturareciente se han llevadoacabo estudios relacionados[37, 35, 38, 36, 52, 66, 60] que permiten contrastar el potencial que ofrecen las arquitecturas especializadas en aplicaciones reales de análisis de imágenes hiperespectrales. Otros estudios se han centrado más en el esfuerzo necesario para desarrollar implementaciones capaces de explotar la potencia computacional de dichas arquitecturas en determinados contextos [53, 54]. Desde el punto de vista de la programación de propósito general, una de las principales ventajas que ofrecen las GPUs modernas es que estas plataformas se pueden abstraer, utilizando un modelo de procesamiento de flujos en el que todos los bloques de datos se consideran conjuntos ordenados de datos, de forma que las aplicaciones se construyen encadenando varios núcleos. Los núcleos operan sobre flujos completos, es decir, tomando uno o más flujos como entrada y produciendo uno o más flujos como salida. Este tipo de procesamiento debe satisfacer una restricción principal: la semántica de los flujos no debe depender del orden en el que se generan los elementos de los flujos de salida [33, 36]. Por tanto, el paralelismo a nivel de datos queda expuesto al hardware y los núcleos pueden operar directamente sobre los flujos, sin ningún tipo de sincronización previa. Las GPUs modernas aprovechan las características anteriormente mencionadas para reemplazar los componentes hardware de control de flujo por unidades de proceso adicionales. En este sentido, los algoritmos de análisis hiperespectral pueden beneficiarse de forma significativa de las prestaciones del hardware y de los modelos de programación basados en GPUs, aprovechando características como la disponibilidad de instrucciones rápidas y precisas para funciones trascendentales, así como el reducido tamaño y el relativo bajo coste de estas unidades. En el siguiente capítulo describimos en mayor detalle las dos arquitecturas paralelas que serán utilizadas en el presente trabajo para acelerar algoritmos de tratamiento de imágenes hiperespectrales: clústers y GPUs, resaltando una serie de características específicas que, bajo nuestro punto de vista, asemejan la programación de propósito general de GPUs a la programación paralela clásica de sistemas tradicionales como clústers de computadores, destacando las potenciales ventajas que ofrecen las GPUs para reducir la sobrecarga en la transmisión de datos mediante procesamiento a bordo, y para satisfacer los extremadamente elevados requisitos computacionales exigidos por muchas misiones de observación de la Tierra, tanto en desarrollo como futuras.

48 30 Antecedentes

49 Capítulo 3 Arquitecturas paralelas consideradas En este capítulo se describen las características de las arquitecturas paralelas consideradas (clusters de computadores frente a tarjetas gráficas programables) a la hora de desarrollar algoritmos paralelos para el procesamiento de imágenes hiperespectrales. A lo largo del capítulo discutimos las ventajas e inconvenientes de cada una de las arquitecturas y detallamos brevemente las herramientas y librerías de programación utilizadas en el presente trabajo. Para las implementaciones en clusters, hemos utilizado la librería de paso de mensajes Message Passing Interface (MPI), mientras que las implementaciones en GPUs han sido desarrolladas utilizando la arquitectura Compute Unified Device Architecture (CUDA) de NVidia TM Procesamiento paralelo en clusters Hoy en día aún se desconoce el origen exacto del término computación clúster. Algunos estudios consideran que el término proviene de las investigaciones realizadas por Eugene Myron Amdahl [4], que sentó las bases del procesamiento paralelo con su publicación en 1967 de la denominada ley de Amdahl, la cual permite determinar la mejora máxima que puede alcanzar un sistema cuando sólo una parte de éste es mejorado. Esta ley también permite describir matemáticamente el factor de aceleración que puede conseguirse paralelizando una serie de tareas en una determinada arquitectura. En la actualidad, el término clúster se refiere habitualmente a una red de computadores (interconectados entre sí mediante una red de comunicación) que trabajan de forma conjunta como un único recurso computacional, permitiendo al usuario la ilusión de estar empleando una sola máquina cuya potencia es muy superior a la habitual. Como ejemplo de clúster utilizado ampliamente en operaciones de tratamiento de datos de la superficie terrestre obtenidos de ofrma remota, podemos citar el supercomputador Columbia ubicado en el centro NASA Ames Research Center, con un total de procesadores y con conexión de tipo Infiniband (ver Fig. 3.1). En su día los clusters supusieron una gran revolución de cara al procesamiento de

50 32 Arquitecturas paralelas consideradas Figura 3.1: Supercomputador Columbia, en el centro NASA Ames Research Center grandes cantidades de información en aplicaciones científicas, incluyendo el análisis de imágenes hiperespectrales de la superficie terrestre que nos ocupa en el presente trabajo. A continuación se enumeran algunas carácterísticas genéricas ofrecidas por este tipo de sistemas: 1. Alto rendimiento: Al ofrecer un rendimiento superior, un clúster permite abordar problemas de mayor tamaño utilizando un conjunto de máquinas de bajo coste. Utilizando un clúster se pueden llegar a conseguir capacidades de cálculo superiores a las de un ordenador más caro que el conjunto de los ordenadores que forman el clúster. [7] 2. Alta disponibilidad: El fallo de un nodo (uno de los equipos conectados a la red) no supone la pérdida total del servicio. Al contar con múltiples nodos, en caso de error es relativamente fácil extraer un nodo de la red de cómputo para repararlo o reemplazarlo por otro, sin que afecte al funcionamiento global del clúster. [7] 3. Coste: Los equipos que se utilizan normalmente para formar un clúster son equipos fabricados a gran escala (normalmente de menor coste) y que además utilizan sistemas operativos estándar. En general, la construcción de un clúster es sencilla y relativamente económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semihomogéneo), o bien disponer de diferente hardware y sistema operativo (clúster heterogéneo), lo que hace más fácil y económica su construcción. En el caso de los clusters heterogéneos, es posible implementar algoritmos capaces de administrar la carga de cada nodo de acuerdo a las características del mismo [51, 55].

51 3.1 Procesamiento paralelo en clusters 33 El uso extendido de clusters pronto supuso una clara necesidad de definir una serie de librerías estándar que permitiesen a los usuarios utilizar y controlar este tipo de sistemas de forma más o menos intuitiva. Esto motivó el uso extendido de librerías como Parallel Virtual Machine (PVM)[68] o Message passage interface (MPI)[27]. A continuación describimos brevemente los aspectos más destacados de la librería MPI, por ser el estándar utilizado en los estudios con clusters presentados en este documento. MPI es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes disenada para ser usada en programas que exploten la existencia de múltiples procesadores [3]. MPI se considera un protocolo de comunicación entre máquinas. Actualmente, es el estándar para la comunicación entre los nodos que ejecutan un determinado programa en un sistema de memoria distribuida. Las implementaciones basadas en MPI consisten en un conjunto de bibliotecas de rutinas que pueden ser utilizadas en programas escritos en los lenguajes de programación C, C++, Fortran y Ada. La principal ventaja de MPI sobre otras bibliotecas de paso de mensajes es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi todas las arquitecturas de memoria distribuida), y rápidos, (porque cada implementación de la biblioteca ha sido optimizada para el hardware en el cual se ejecuta). En MPI, un mensaje está formado por el cuerpo del mensaje, el cual contiene los datos a ser enviados, y su envoltura, que contiene el proceso fuente y el destino. El cuerpo de un mensaje MPI está formado por tres partes: Buffer: dirección de memoria donde están los datos de salida (envío) o donde se almacenan los datos de entrada (recepción). Tipo de dato, indica el tipo de los datos que se envían en el mensaje. En casos simples, es un tipo primitivo, por ejemplo, un número entero; y en aplicaciones más avanzadas puede ser incluso una estructura formada por varios tipos de datos. Los tipos de datos son análogos a los tipos de C. Contador: es un número de secuencia que, junto con el tipo de datos permite al usuario agrupar datos de un mismo tipo en un solo mensaje. MPI estandariza los tipos de datos primitivos, evitando que el programador se preocupe de las diferencias que existen entre ellos cuando se encuentran en distintas plataformas. Un mensaje en MPI contiene por tanto la dirección destino, la dirección de la fuente del mensaje, y cualquier otra información que se necesite para transmitir y entregar dicho mensaje. Estos elementos son la fuente, que identifica al proceso transmisor, el destino, que identifica al proceso receptor, un comunicador que especifica el grupo de procesos a los cuales pertenecen la fuente y el destino, y una etiqueta (tag) que permite clasificar el mensaje, pudiendo distinguir entre los mensajes que recibe un proceso. Con MPI, el número de procesos requeridos se asigna antes de la ejecución del programa, y no se crean procesos adicionales mientras la aplicación se ejecuta. A cada proceso se le asigna una variable que se denomina rank (rango), la cual identifica a cada proceso, en el rango {0 P 1}, donde P es el número total de procesos. En este sentido, la variable rank permite controlar la ejecución del programa y determinar qué proceso ejecuta una

52 34 Arquitecturas paralelas consideradas determinada porción del código. Por otro lado, el comunicador engloba la colección de procesos que pueden enviarse mensajes entre sí, de forma que el comunicador básico se denomina MPI COMM WORLD y se define mediante una macro del lenguaje C. Este comunicador global agrupa a todos los procesos activos durante la ejecución de una determinada aplicación. Las llamadas de MPI se dividen en tres clases diferenciadas: Llamadas utilizadas para inicializar, administrar y finalizar comunicaciones: Permiten inicializar la biblioteca de paso de mensajes, identificar el número de procesos (size) y el rango de los procesos (rank). MPI dispone de 4 funciones primordiales que se utilizan en todo programa con MPI. Estas funciones son: MPI Init: permite inicializar una sesión MPI. Esta función debe ser utilizada antes de llamar a cualquier otra función de MPI. MPI Finalize: permite terminar una sesión MPI. Esta función debe ser la última llamada a MPI que un programa realice. Permite liberar la memoria usada por MPI. MPI Comm size: permite determinar el número total de procesos que pertenecen a un comunicador. MPI Comm rank: permite determinar el identificador (rank) del proceso actual. Llamadas utilizadas para transferir datos entre un par de procesos: incluye operaciones de comunicación punto a punto, para diferentes tipos de actividades de envío y recepción. La transferencia de datos entre dos procesos se consigue mediante las siguientes llamadas: MPI Send: permite enviar información desde un proceso a otro. Esta función es bloqueante, es decir, que el proceso que realiza la llamada se bloquea hasta que la operación de comunicación se complete. Este tipo de llamadas devuelven un código que indica su éxito o fracaso MPI Recv: permite recibir información desde otro proceso. Es también una operación bloqueante. MPI Isend: envía información e un proceso a otro de forma no bloqueante. Las llamadas no bloqueantes deben finalizar explícitamente con llamadas como MPI Wait. MPI IRecv: recibe información de otro proceso de forma no bloqueante. MPI Wait: es una llamada bloqueante y retorna cuando la operación de envío o recepción se completa MPI Test: permite verificar si la operación de envío o recepción ha finalizado; esta función primero chequea el estado de la operación de envío o recepción y luego retorna.

53 3.2 Procesamiento paralelo en GPUs 35 Llamadas para transferir datos entre varios procesos: son conocidas como operaciones grupales, ya que proveen operaciones de comunicación orientada a grupos de procesos. Este tipo de llamadas incluyen operaciones tipo difusión (broadcast), recolección (gather), distribución (scatter) y reducción. Algunas de las funciones que permiten realizar transferencia entre varios procesos se presentan a continuación: MPI Barrier: permite realizar operaciones de sincronización. En estas operaciones no existe ninguna clase de intercambio de información. Suele emplearse para dar por finalizada una etapa del programa, asegurándose de que todos los procesos han terminado antes de dar comienzo a la siguiente. MPI Bcast: permite a un proceso enviar una copia de sus datos a otros procesos dentro de un grupo definido por un comunicador. MPI Scatter: establece una operación de distribución, en la cual un dato (o vector de algún tipo de datos) se distribuye en diferentes procesos. MPI Gather: establece una operación de recolección, en la cual los datos son recolectados en un sólo proceso. MPI Reduce: permite que el proceso raíz recolecte datos desde otros procesos en un grupo, y los combine en un solo ítem de datos Procesamiento paralelo en GPUs Una GPU es un dispositivo hardware (conocido comúnmente como tarjeta gráfica programable) que se compone de un conjunto de multiprocesadores que podrían clasificarse dentro de los tipo SIMD (Single Instruction Multiple Data architecture) [16]. Cada uno de los multiprocesadores que componen la GPU cuenta con los siguientes elementos de memoria (ver Fig. 3.2): Un conjunto de registros por procesador. Una memoria compartida o caché paralela, que es compartida por todos los procesadores. Una caché de constantes y una caché de texturas, ambas de solo lectura. Antes de comentar la arquitectura de la GPU, vamos a presentar las diferencias fundamentales entre una CPU y una GPU. Las GPUs han llegado a convertirse en procesadores masivamente paralelos, multihilo y multinúcleo, que consiguen un gran potencial de procesamiento además de un gran ancho de banda de memoria (ver Figs. 3.3 y 3.4). La Fig. 3.3 muestra cómo la nueva gama de GPUs de NVidia TM consigue picos de más de 900 Gigaflops por segundo, mientras que la gama de CPUs Harpertown apenas llega a 200 Gigaflops. Es destacable cómo a medida que va pasando el tiempo la diferencia entre ambas tecnologías crece de forma exponencial a favor de las GPUs, observándose saltos pronunciados en cuanto a su capacidad de procesamiento. Por otra

54 36 Arquitecturas paralelas consideradas Figura 3.2: Esquema hardware de una GPU. parte, la Fig. 3.4 muestra cómo el ancho de banda que ofrecen las GPUs se incrementa notablemente con respecto al de las CPUs, progresando de forma exponencial a medida que van apareciendo nuevas generaciones de ambas tecnologías. La diferencia fundamental entre ambas arquitecturas (CPU frente a GPU) radica en que las GPUs invierten más transistores para el procesamiento de datos que para caché y control de flujo, como puede verse en la Fig Esto significa que una GPU está preparada especialmente para afrontar problemas que pueden resolverse de forma paralela, y necesita muy poco control de flujo ya que estos problemas se basan fundamentalmente en aplicar un mismo programa a cada elemento de un conjunto de datos. A continuación describimos las carácterísticas fundamentales de NVidia TM CUDA, la arquitectura que hemos utilizado en el presente trabajo para realizar todos los desarrollos propuestos. El apartado finaliza con una breve discusión de las caracteríticas

55 3.2 Procesamiento paralelo en GPUs 37 Figura 3.3: Operaciones en coma flotante CPU frente a GPU. Figura 3.4: Ancho de banda en GB/s de memoria CPU frente a GPU. que ofrecen las GPUs frente a los clusters de computadores en el contexto de nuestra aplicación NVidia TM CUDA NVidia TM CUDAesunaarquitecturadecomputaciónparaleladedepropósitogeneral que presenta un nuevo modelo de programación paralelo y un conjunto de instrucciones, que combinados permiten utilizar una GPU NVidia TM para resolver grandes problemas complejos de forma más eficiente que si se utilizase una CPU. Una de las características más interesantes de CUDA es que permite utilizar el lenguaje C como lenguaje de

56 38 Arquitecturas paralelas consideradas Figura 3.5: Arquitectura CPU frente GPU. programación de alto nivel, del mismo modo que soporta también otros lenguajes como C++, OpenCL, Fortran, etc. CUDA se compone básicamente de un compilador y un conjunto de herramientas de desarrollo creadas por NVidia TM que permiten usar una variación de un lenguaje de programación para codificar algoritmos en una GPU. En lo sucesivo, hablaremos de diferentes aspectos de CUDA que permiten obtener una funcionalidaad avanzada como arquitectura hardware y software que permite realizar cálculos en la GPU utilizándola como un dispositivo de procesamiento paralelo Paralelismo en NVidia TM CUDA: grids, bloques e hilos CUDA consigue su paralelismo a través tres elementos bien estructurados y anidados: grids, bloques e hilos. Básicamente, un grid se compone de bloques de hilos (ver Fig. 3.6), siendo el hilo la unidad más pequena e indivisible de paralelismo. Estos elementos son utilizados por las funciones del núcleo de la GPU(en adelante kernel) de forma totalmente personalizable por parte del usuario, permitiendo elegir la configuración de paralelismo que sea más adecuada para cada procedimiento. La GPU puede definir un solo grid para cada ejecución de una función en el kernel, en el cual pueden definirse tantos bloques dentro del grid, e hilos dentro de cada bloque como se desee. El número de hilos dentro de un bloque es el mismo para una invocación de una función y puede ser diferente en las siguientes funciones que vayan a ser ejecutadas, simplemente cambiando el valor del número de hilos por bloque. Hay que tener en cuenta que sólo puede ejecutarse una función del kernel cada vez, y mientras que no termine esa función no puede invocarse otra. Por tanto es esencial controlar qué hacen los hilos en esa función y asegurarse de tener el mayor número de hilos corriendo a la vez para obtener el mejor rendimiento posible. En este sentido, la diferencia fundamental de estos hilos con respecto a los hilos con los que cuentan algunas CPUs es que los hilos de CUDA son extremadamente ligeros dado que su creación tiene un coste insignificante, y además ofrecen un cambio de contexto instantáneo. CUDA utiliza miles de hilos frente a los multiprocesadores convencionales, que sólo pueden usar unos pocos. En CUDA, todos los hilos dentro de un bloque ejecutan el mismo código, con la salvedad de que cada hilo posee su propio identificador, que puede ser utilizado para realizar parte del control de flujo y para calcular la dirección de memoria de inicio de los datos a procesar. De esta forma, cada hilo ejecuta exactamente las mismas líneas

57 3.2 Procesamiento paralelo en GPUs 39 Figura 3.6: Estructura de paralelismo de CUDA. de código pero con diferente información, facilitando de manera notable la realización de cálculos vectoriales y matriciales (ver Fig. 3.7). Figura 3.7: Todos los hilos dentro de un bloque CUDA ejecutan el mismo código. Llegados a este punto, es importante destacar que en la arquitectura CUDA es posible que los hilos de ejecución (asociados a un mismo bloque) trabajen de forma conjunta, lo cual permite compartir resultados para evitar cálculos redundantes y compartir accesos a memoria con vistas a aumentar el ancho de banda en dichos accesos. Como valor añadido, CUDA permite definir grids y bloques de varias dimensiones que permiten afrontar problemas mucho más complejos de forma sencilla. La Fig. 3.8 muestra un ejemplo de grid bidimensional que a su vez cuenta con bloques de dos dimensiones. Otro aspecto importante de la arquitectura CUDA es el hecho de que los hilos dentro

58 40 Arquitecturas paralelas consideradas Figura 3.8: Ejemplo de grid bidimensional de bloques. de un bloque pueden cooperar entre ellos, compartiendo información a través de la memoria compartida, y sincronizar su ejecución para coordinar los accesos a memoria. A continuación describimos la arquitectura de memoria de CUDA Arquitectura de memoria de NVidia TM CUDA En CUDA, los hilos pueden acceder a la información de diferentes formas según una jerarquía de memoria. En primer lugar, como muestra la Fig. 3.9, cada hilo posee su propia memoria privada. Subiendo en la jerarquía, cada bloque de hilos cuenta con su propia memoria compartida, la cual está disponible para todos los hilos que se encuentran en un mismo bloque. El tiempo de vida de la memoria privada de cada hilo y la memoria de un bloque de hilos es el mismo que el del elemento en sí, por lo que, tras terminar su ejecución, ésta es inaccesible. En el nivel más alto de la jerarquía se encuentra la memoria compartida global, a la que todos y cada uno de los hilos pueden acceder. La GPU cuenta además con dos espacios adicionales de memoria de solo lectura (accesibles por todos los hilos) que son la memoria de constantes y la memoria de texturas, las cuales están optimizadas para utilizarse con tipos de datos específicos. Estas tres memorias (global, de constantes y de texturas) tienen el mismo tiempo de vida que la aplicación que las invoca, perdurando entre diferentes invocaciones de funciones del kernel dentro de la misma ejecución de la aplicación. A continuación describimos el modelo de ejecución en la GPU.

59 3.2 Procesamiento paralelo en GPUs 41 Figura 3.9: Jerarquía de memoria en la GPU según CUDA Modelo de ejecución en NVidia TM CUDA La arquitectura CUDA se construye sobre la base del conjunto de multiprocesadores (Streaming Multiprocessors o SMs) que componen la GPU. Cuando un programa que está siendo ejecutado en la CPU invoca una función del kernel, los bloques del grid que invocan la función son enumerados y distribuidos entre los multiprocesadores que estén libres (ver Fig. 3.10). Los hilos de un bloque son ejecutados de forma concurrente en un multiprocesador, y en cuanto un bloque de hilos termina, el multiprocesador queda libre para procesar otro bloque (que estará esperando su ejecución).

60 42 Arquitecturas paralelas consideradas Figura 3.10: Distribución automática de bloques de hilos entre multiprocesadores. Un multiprocesador está compuesto de varios procesadores escalares (Scalar Processors o SPs), así como de una unidad para instrucciones multihilo y memoria compartida. El multiprocesador crea, controla y ejecuta los hilos de forma concurrente sin ningún coste de planificación o scheduling adicional. El multiprocesador cuenta de forma intrínseca con una barrera de sincronización de hilos que puede invocar con una sola instrucción ( syncthreads()). La rápida sincronización de la barrera, junto con el coste insignificante de creación y el coste cero de scheduling, permiten definir un paralelismo de granularidad fina. Esto posibilita por ejemplo, la descomposición de un problema en operaciones elementales, asignando un hilo a cada elemento (como un píxel en una imagen, un voxel en un volumen, o una celda en computación Grid). Para controlar los cientos de hilos que pueden estar en ejecución al mismo tiempo, los multiprocesadores utilizan una nueva arquitectura que NVidia TM ha definido como SIMT (Single Instruction, Multiple Thread). El multiprocesador asocia cada hilo a un SP (procesador escalar) y cada hilo escalar se ejecuta de forma independiente, con su dirección de memoria y registros. Un multiprocesador SIMT crea, controla, planifica y ejecuta los hilos en grupos de 32. Estosgruposde32hilosparalelossedefinencomowarps. Loshilosquecomponenunwarp comienzan su ejecución de forma conjunta en la misma dirección del programa, pero son libres de ramificarse y ejecutarse de forma independiente. Cuando un multiprocesador recibe varios bloques para procesar, los divide en warps que son planificados por la unidad

61 3.2 Procesamiento paralelo en GPUs 43 SIMT. Esta división en warps se lleva a cabo siempre de la misma forma: los hilos de cada warp se numeran siguiendo el orden incremental desde el hilo cuyo identificador es 0, que se encuentra en el primer warp. Cuando es necesario ejecutar una instrucción, la unidad SIMT selecciona un warp que esté listo para ejecutarse y le entrega la instrucción a los hilos que conforman el warp. Un warp ejecuta una instrucción cada vez, por lo que se conseguirá la máxima eficiencia cuando los 32 hilos del warp trabajen en el mismo sentido. Si los hilos de un warp se dividen en diferentes ramas, éste ejecutará de forma secuencial cada rama, deshabilitando los hilos que no sigan el mismo camino que los que esté ejecutando en ese momento, y no convergerán hasta terminar todas las ramas. En este sentido, la arquitectura SIMT es similar a la clasificación SIMD en el hecho de que una sola instrucción controla varios elementos de procesamiento. Sin embargo, las instrucciones SIMT pueden especificar la ejecución y la ramificación de un solo hilo. Esto permite a los programadores crear código a nivel de hilo, ya sea para controlar un solo hilo o un conjunto de ellos que trabajan de forma conjunta. Por otra parte, el número de bloques que un multiprocesador puede ejecutar a la vez (número de bloques activo por MP) depende de cuántos registros y de cuánta memoria compartida por bloque es necesaria para el kernel, teniendo en cuenta que los registros del MP y la memoria compartida se dividen entre todos los hilos de los bloques activos. Si no hay suficientes registros o memoria compartida disponible por multiprocesador para procesar al menos un bloque, el kernel no se ejecutará. En cuanto a los warps y las escrituras en memoria, si una instrucción no atómica de escritura en memoria es ejecutada por varios hilos de un warp en la misma zona de la memoria global o compartida, el número de escrituras y el orden de las mismas será indeterminado, pero al menos uno de ellos lo hará. En cambio, si una instrucción atómica que lee, modifica y escribe la misma posición de memoria es ejecutada por varios hilos de un warp, cada lectura, modificación y escritura se llevarán a cabo de forma secuencial, pero el orden de ejecución seguirá siendo indeterminado Aspectos básicos de programación en NVidia TM CUDA En este apartado mostramos algunos aspectos básicos de programación en CUDA para poder entender mejor el funcionamiento de los algoritmos desarrollados en esta arquitectura y que se explican en capítulos posteriores. El modelo de programación de la arquitectura CUDA asume que los hilos se ejecutan en un dispositivo independiente (la GPU o device) que trabaja como un coprocesador del equipo (el host) durante la ejecución del programa. De esta forma los kernels se ejecutan en la CPU y el resto del programa (escrito por ejemplo en lenguaje C/C++) se ejecuta en la CPU. Este modelo también asume que tanto el host como el device conservan su propia memoria principal (DRAM), a la que identifica como memoria del host (o host memory) y memoria del device (o device memory), respectivamente. Además, las aplicaciones desarrolladas en CUDA pueden controlar con total facilidad todos los espacios de memoria visibles por el kernel, a través de las llamadas CUDA destinadas para ello. Esto significa que es posible almacenar y liberar memoria, así como realizar transferencias entre las memorias del host

62 44 Arquitecturas paralelas consideradas y del device. NVidia TM CUDA C es una extensión del lenguaje de programación C que permite al programador definir kernels que, al invocarse, son ejecutados N veces en paralelo por N hilos CUDA. Para definir un kernel basta con anteponer la declaración global a la declaración de la función y especificar el número de hilos que van a ejecutarla en la invocación de la misma, mediante la sintaxis <<<...>>>. // Definición del kernel global void SumarVectores(float* A, float* B, float* C) {... } int main() {... // Invocación del kernel SumarVectores<<<1, N>>>(A, B, C); } Código 3.1: Definición e invocación de un kernel en NVidia TM CUDA. Cada uno de los hilos que ejecuta un kernel posee un identificador de hilo único, que es accesible desde el propio kernel a través de la variable threadidx. El código 3.1 muestra un kernel que realiza la suma de los vectores A y B de N componentes, y almacena el resultado en el vector C. El código 3.2 muestra un fragmento de código de ejemplo. Cada uno de los hilos que ejecuta el kernel SumarVectores() en dicho código realiza una suma por parejas y almacena el resultado en el vector C. // Definición del kernel global void SumarVectores(float* A, float* B, float* C) { int i = threadidx.x; C[i] = A[i] + B[i];} } int main() {... // Invocación del kernel SumarVectores<<<1, N>>>(A, B, C); } Código 3.2: Kernel sencillo que suma dos vectores de N componentes Uso de GPUs frente a clusters en análisis de imágenes hiperespectrales Para finalizar el capítulo, en este apartado comentamos brevemente algunos aspectos que justifican la utilización de GPUs frente a clusters en aplicaciones relacionadas con análisis de imágenes hiperespectrales: Espacio. Para un clúster, es imprescindible disponer de un espacio razonable para concentrar todos los equipos que lo componen, el cual además debe estar acondicionado para ello con sistemas de refrigeración, sistemas de alimentación ininterrumpida, etc. Por el contrario, una GPU actual (con el sistema de refrigeración incluido), tiene el tamaño de una tarjeta de ordenador. En

63 3.2 Procesamiento paralelo en GPUs 45 determinados contextos, utilizando sólo una GPU pueden conseguirse resultados equivalentes a utilizar decenas de nodos de un clúster [37]. Mantenimiento. El mantenimiento de un clúster convencional supone una gran inversión de tiempo y dinero, ya que cada nodo es un ordenador por sí mismo, con su propia instalación del sistema operativo, posibles bloqueos, deterioro de componentes, errores, etc. Esto requiere la dedicación exclusiva de uno o varios administradores, dependiendo del tamano del clúster, para conseguir que todo esté operativo en cada momento. Por su parte, la GPU es fácil de mantener y gestionar [37]. Coste y consumo. Aunque un clúster suponga una arquitectura paralela relativamente económica, a medida que la arquitectura crece en cuanto a tamaño y potencia su coste global puede incrementarse. Por el contrario, una GPU actual de altas prestaciones puede tener un coste aproximado inferior a 1000e y su consumo energético puede ofrecer algunos problemas en cuanto a procesamiento a bordo pero en cualquier caso es siempre inferior al coste global de un clúster con la misma potencia agregada o superior [52]. Tiempo de comunicación entre nodos. De cara al procesamiento paralelo, en los clusters suele invertirse un tiempo considerable en tareas de coordinación y comunicación [50], perdiendo un tiempo muy valioso en compartir la información entre los diferentes nodos. Este punto es especialmente importante de cara a aplicaciones cuya respuesta debe ser en tiempo real, como las relativas a la detección y seguimiento de incendios, detección de agentes contaminantes en atmósfera y agua, detección de objetivos militares, etc. En una GPU, al no tener que pasar la informaciónatravésde una interfazde red, el anchode banda es muchomayorylas operaciones sobre memoria se efectúan de forma mucho más eficiente y minimizando posibles conflictos de tráfico. Portabilidad y peso. A la hora de diseñar sistemas de procesamiento a bordo de imágenes hiperespectrales, un aspecto fundamental es el payload de la misión, que define la carga máxima que puede llevar a bordo el avión o satélite que realiza la adquisición de datos hiperespectrales. En este sentido, las GPUs ofrecen una alternativa interesante a los clusters ya que su tamaño y peso permiten su instalación a bordo, obteniendo resultados comparables a los mejores que podrían ser obtenidos con arquitecturas de mucho mayor coste, peso y consumo.

64 46 Arquitecturas paralelas consideradas

65 Capítulo 4 Métodos El presente capítulo capítulo se divide en dos grandes bloques. En el primero de ellos se describen las métricas de análisis hiperespectral consideradas a la hora de implementar algoritmos paralelos de detección de targets y anomalías, destacando las propiedades de cada una de dichas métricas. Conviene destacar que la utilización de nuevas medidas de distancia supone una contribución altamente novedosa, ya que la implementación clásica de algoritmos como ATGP (descrito en el capítulo 2 de la presente memoria) únicamente utiliza una distancia (ortogonal). En este sentido, las métricas que se presentan en este capítulo suponen una ampliación de la versión clásica de algoritmos como ATGP. Una vez descritas las métricas consideradas, procedemos a presentar un nuevo algoritmo (denominado Morph) para detección de anomalías basado en conceptos de matemética morfológica multidimensional, el cual integra la información espacial y espectral presente en la escena Métricas de análisis hiperespectral consideradas Laamplia gamade factoresque pueden afectarel procesode obtención de una imagen hiperespectral (variabilidad espectral, efectos atmosféricos, presencia de píxels mezcla, etc.) pone de manifiesto la importancia de las métricas empleadas en la comparación de firmas espectrales a la hora de, por ejemplo, detectar un target o anomalía. En este sentido, la determinación del grado de similaridad entre dos firmas espectrales puede ser abordada utilizando un amplio abanico de medidas de distancia. Por este motivo, la elección de una medida de similaridad apropiada resultará de gran importancia a la hora de cuantificar e interpretar los resultados finales obtenidos. El objetivo principal de este apartado es presentar las métricas de comparación de firmas espectrales que han sido empleadas en el presente trabajo, destacando sus ventajas e inconvenientes principales. Dichas métricas serán posteriormente incorporadas como diferentes alternativas a la hora de diseñar los algoritmos paralelos para detectar targets que constituyen la principal contribución de la presente memoria. Conviene destacar que las medidas que van a ser introducidas en esta sección no incorporan información acerca de las propiedades físicas de los objetos cuyas

66 48 Métodos firmas espectrales son analizadas. Al contrario, las magnitudes introducidas permiten cuantificar el grado de similaridad entre dos firmas espectrales. Teniendo en cuenta las consideraciones anteriormente mencionadas, procedemos a detallar las medidas de comparación más relevantes en el análisis de datos hiperespectrales. La importancia de estas medidas radica en que se utilizan de forma recurrente como base del funcionamiento de muchos algoritmos de análisis hiperespectral. En concreto, el conjunto de medidas descritas a continuación son susceptibles de ser incorporadas a los algoritmos paralelos que serán propuestos en apartados posteriores de la presente memoria, permitiendo realizar un estudio detallado de la precisión obtenida por cada algoritmo en el proceso de detección de targets y anomalías a partir de la utilización de diferentes métricas y criterios. En cada caso, destacamos únicamente los aspectos más relevantes sobre cada métrica, ya que las mismas aparecen descritas en detalle en [73] Distancia ortogonal (implementación clásica de ATGP) Para comenzar nuestra descripción de las métricas de análisis hiperespectral consideradas en el presente apartado, mostramos un sencillo ejemplo de funcionamiento de la distancia ortogonal empleada en la implementación clásica de ATGP, la cual fue descrita en el apartado de la presente memoria. Como vimos al presentar la versión clásica de ATGP, la distancia ortogonal se basa en la utilización de un operador de proyeccción ortogonal que da como resultado la selección de píxels espectralmente diferentes entre sí. La Fig. 4.1 muestra un sencillo ejemplo de aplicación de este operador en un espacio bidimensional (en imágenes hiperespectrales el número de bandas es mucho mayor que las dos bandas que aparecen representadas en la Fig. 4.1 y el problema se establece en un espacio multidimensional). En la Fig. 4.1(a) se muestra el proceso de detección del target inicial (píxel más brillante o, en este caso, el píxel más alejado del origen de coordenadas). A continuación se aplica un operador de proyección ortogonal que permite identificar un segundo target como el más ortogonal al primer target detectado, tal y como se muestra en la Fig. 4.1(b). El tercer target, como aparece reflejado en la Fig. 4.1(c), viene dado por el píxel más ortogonal a los dos primeros targets detectados. El proceso puede repetirse de forma iterativa hasta que se alcanza un cierto número de targets especificado a priori, o bien hasta que se producen repeticiones en el proceso de selección de targets (lo cual no es factible en espacios altamente dimensionales), en cuyo caso los píxels más extremos tienden a ser detectados, como se muestra en la Fig. 4.1(d). En este sentido, el operador de proyección ortogonal tiende a detectar los píxels espectralmente puros de la imagen. En el presente trabajo, evaluamos la posibilidad de reemplazar la distancia ortogonal por otras métricas de análisis hiperespectral alternativas, las cuales se describen en los siguientes subapartados Ángulo espectral o spectral angle distance (SAD). El ángulo espectral mide la similaridad espectral de dos firmas espectrales en términos del ángulo definido por sus vectores representativos en el espacio n-dimensional. Para

67 4.1 Métricas de análisis hiperespectral consideradas 49 (a) (b) (c) (d) Figura 4.1: Interpretación gráfica del operador de proyección ortogonal empleado por la versión clásica del algoritmo de detección de targets ATGP en un espacio de 2 dimensiones. (a) Selección del target inicial. (b) Selección del segundo target como el más ortogonal al primero. (c) Selección del tercer target como el más ortogonal a los dos primeros. (d) Finalización del proceso iterativo describir esta medida en términos matemáticos, consideramos dos firmas espectrales u = [u 1,,u n ] T y v = [v 1,,v n ] T que pueden venir asociadas o no a píxels de una imagen hiperespectral F. Dado que estas firmas no se corresponden necesariamente con píxels de una escena, omitimos las coordenadas espaciales (x, y) utilizadas en la notación empleada para describir los algoritmos ATGP y RX en el apartado 2.2 de la presente memoria para simplificar la formulación. Teniendo en cuenta las anteriores consideraciones, el ángulo espectral o spectral angle distance (SAD) viene dado por el arco coseno del ángulo espectral formado por dichos vectores en el espacio n-dimensional, es decir: n u v SAD(u,v) = arccos u v = arccos i=1 u i v i n n. (4.1) i=1 u2 i i=1 v2 i A continuación, destacamos algunas características interesantes relacionadas con esta

68 50 Métodos Figura 4.2: Representación gráfica del ángulo espectral (SAD) en un espacio tridimensional. medida: 1. El valor de la medida SAD suele venir dada por un valor entre 0 y 1, ya que las firmas espectrales de una imagen suelen venir dadas por valores positivos, independientemente de si se encuentran expresadas en radiancia(radiación obtenida por el sensor) o reflectancia (resultado de un proceso de corrección atmosférica sobre los datos). Esta situación aparece ilustrada mediante un ejemplo en la Fig. 4.2, en la que se describe de forma gráficala medida SAD en un ejemplo ilustrativo, considerando una imagen hiperespectral con únicamente tres bandas espectrales. 2. Por otra parte, la medida SAD es invariante frente a la multiplicación de los vectores u y v por valores constantes. De este modo, se trata de una medida robusta frente a cambios en la escala de las firmas espectrales debidos a diferentes condiciones de iluminación de la escena, así como a divergencias en la orientación angular, aspectos que la convierten en una medida muy apropiada para analizar el grado de similitud de dos firmas espectrales independientemente de la magnitud de las mismas (la cual está directamente relacionada con las condiciones de iluminación presentes en la escena) Divergencia espectral o spectral information divergence (SID). Esta medida se basa en el cálculo de la entropía de las firmas espectrales comparadas. De nuevo, consideramos dos firmas espectrales u = [u 1,,u n ] T y v = [v 1,,v n ] T. Si se satisface la restricción de que todos los componentes de los vectores u y v son no negativos, suposición altamente razonable en el contexto de datos hiperespectrales

69 4.1 Métricas de análisis hiperespectral consideradas 51 medidos en unidades de radiancia o reflectancia, podemos definir una medida de probabilidad p(u j ) asociada a una determinada componente u j del vector u, con j = 1,,n, de la siguiente forma: p(u j ) = p j = u j n i=1 u. (4.2) i En este caso, el vector p = [p 1,,p n ] T se denomina vector de probabilidad asociado al vector u. Del mismo modo, podemos definir una medida de probabilidad q asociada a una determinada componente v j del vector v, con j = 1,,n, de la siguiente forma: q(v j ) = q j = v j n i=1 v. (4.3) i En este caso, el vector q = [q 1,,q n ] T se denomina vector de probabilidad asociado al vector v. Para calcular la divergencia espectral (SID) entre las dos firmas espectrales u y v, es preciso calcular en primer lugar la entropía de u con respecto a v, la cual viene dada por la siguiente expresión: D(u v) = n i=1 p i log p i q i. (4.4) De forma análoga, podemos calcular la entropía de v con respecto a u utilizando la siguiente expresión: D(v u) = n i=1 q i log q i p i. (4.5) Teniendo en cuenta las definiciones anteriores, la divergencia espectral entre los vectores u y v viene, finalmente, dada por la siguiente expresión: SID(u, v) = D(u v) + D(v u). (4.6) Otras medidas utilizadas Además de las medidas anteriormente comentadas, hemos empleado otras métricas habituales en la comparación de formas espectrales. Por ejemplo, las normas 1, 2 e son medidas clásicas de distancia entre vectores y han sido consideradas en nuestros experimentos [73]. Suponiendo la misma notación adoptada en apartados anteriores, es decir, el objetivo es calcular la distancia entre dos firmas espectrales u = [u 1,,u n ] T y v = [v 1,,v n ] T, la norma 1 entre u y v se define simplemente como: u v = n u i v i. (4.7) i=1 Por su parte, la norma 2 viene dada por la siguiente expresión: u v 2 = n (u i v i ) (4.8) i=1

70 52 Métodos Finalmente, la norma viene dada por la siguiente expresión: u v = max( u i v j,i = 1,2,...,n). (4.9) Otra medida clásica utilizada en nuestras pruebas es la raíz cuadrada del error cuadrático de la media de la suma de las bandas (square root of band sum mean squared error, BSMSE), que se basa en minimizar el incremento de la media del error cuadrático al comparar las dos firmas espectrales. Al igual que la medida anterior, la raíz cuadrada del error cuadrático de la media de los máximos de las bandas (square root of band maximum mean squared error, BSMME) también se basa en minimizar el incremento de la media del error cuadrático. En lugar de sumar las bandas toma el máximo valor de todas las bandas espectrales. La distancia vectorial normalizada (normalized vector distance, NVD) se basa en la combinación de una medida de módulo vectorial(en nuestro caso, la norma 2) con el ángulo espectral (SAD). Según este criterio, se considera que dos vectores son iguales si tienen el mismo módulo y el ángulo espectral entre ellos es 0. Por otra parte, la entropía de las firmas espectrales consiste en calcular una medida de probabilidad para cada firma comparada, normalizando dicho valor con la suma de los valores de los píxels para una banda particular. Por su parte, la medida synthetic aperture speckle noise criterion (SAR SNC) se basa en modelar el ruido asociado a cada píxel de la imagen, entendiendo que las firmas espectrales a comparar corresponden a píxels reales en la misma. Todas estas medidas aparecen descritas en detalle en [73] Algoritmo morfológico para detección de anomalías (Morph) En el presente apartado describimos un nuevo algoritmo morfológico para detección de anomalías en imágenes hiperespectrales que integra la información espacial y espectral presente en la escena. El apartado se encuentra estructurado de la siguiente forma. En primer lugar, describimos el proceso utilizado para definir operadores morfológicos en imágenes hiperespectrales, argumentando los motivos por los que se ha seleccionado este tipo de operadores en el diseño del nuevo algoritmo, que se presenta a continuación Operaciones morfológicas extendidas para análisis de imágenes hiperespectrales Todos los algoritmos de detección de targets o anomalías descritos hasta el momento se basan exclusivamente en explotar la información espectral presente en la imagen. Sin embargo, no parece razonable descartar la rica información espacial presente en este tipo de imágenes. Como ejemplo, mostramosun sencillo caso de estudio en la Fig En este caso, una imagen hiperespectral obtenida sobre una zona urbana se ha alterado generando una nueva imagen en la que las coordenadas espaciales (x,y) asociadas a los píxels de la imagen F se han reordenado de forma aleatoria, manteniendo la información espectral asociada a cada píxel pero ordenando aleatoriamente dichos píxels en el dominio espacial. Como se muestra en la Fig. 4.3, la aplicación de una técnica de análisis puramente

71 4.2 Algoritmo morfológico para detección de anomalías (Morph) 53 Figura 4.3: Ejemplo ilustrativo sobre los problemas introducidos al descartar la información espacial en el tratamiento de imágenes hiperespectrales. espectral (como por ejemplo, los algoritmos ATGP o RX descritos en el capítulo 2 de la presente memoria) daría como resultado una misma salida, al tratarse de métodos basados únicamente en la información espectral y que no tienen en cuenta la correlación espacial presente en los datos. Con vistas a solventar este problema, en particular, desde el punto de vista de la detección de targets o anomalías, proponemos utilizar conceptos de morfología matemática[64, 67], una teoría para el análisis de estructuras espaciales dentro de una imagen. Las operaciones morfológicas básicas (erosión y dilatación) asumen que existe una relación de orden entre los píxels de una imagen. Mientras que en imágenes binarias o en niveles de gris dicha relación puede venir dada por el nivel digital de los píxels de la imagen, no existe una forma intuitiva de ordenar vectores en el espacio n- dimensional en el que se ubican los píxels de una imagen hiperespectral con n bandas. De este modo, es preciso establecer una relación de orden entre dichos píxels que, en nuestro caso, se basa en una distancia acumulada que permite ordenar los píxels de la imagen atendiendo a su grado de extremidad en la nube de puntos, de forma que el mayor elemento del conjunto dado por los píxels de la imagen sería el píxel más extremo o anómalo, mientras que el menor elemento del conjunto sería un píxel similar a otros píxels existentes en la imagen. Teniendo en cuenta esta propiedad, podemos definir la distancia acumulada[49] para ordenar los píxels de la imagen como: D S (F(x,y)) = (s,t) S SAD(F(x,y),F(s,t)), (4.10) donde S denota un elemento estructural o vecindad que se aplica para cada píxel F(x,y) de la imagen y (s,t) son las coordenadas espaciales de los píxels en el dominio del elemento estructural. De este modo, el valor D S (F(x,y)) viene dado por la suma de los valores angulares entre el píxel f(x,y) (situado en el centro de la vecindad) y todos los demás píxels en la vecindad definida por el elemento estructural S. El proceso de ordenación de vectores en un espacio n-dimensional aparece descrito mediante un sencillo ejemplo (en un espacio con dos dimensiones) en la Fig Utilizando las anteriores definiciones, podemos denotar la operación de erosión morfológica (en un contexto de

72 54 Métodos Figura 4.4: Ordenación de vectores n-dimensionales utilizando una medida de distancia acumulada (en el ejemplo, el caso de estudio se ha reducido a un espacio de dos dimensiones para facilitar la representación). análisis hiperespectral) de la siguiente forma: (F S)(x,y) = argmin (s,t) S {D S (F(x+s,y +t)}. (4.11) Del mismo modo, podemos denotar la operación de dilatación morfológica(en el contexto de una imagen hiperespectral) de la siguiente forma: (F S)(x,y) = argmax (s,t) S {D S (F(x s,y t)}. (4.12) Identificación morfológica de anomalías En el presente apartado describimos un nuevo algoritmo morfológico para identificación de anomalías que hace uso de los operadores extendidos anteriormente descritos. El algoritmo se ha denominado Morph, y recibe como entradas la imagen hiperespectral a procesar, F, y dos elementos estructurales que se utilizan para definir una ventana interna, S interna y una ventana externa, S externa. La salida del algoritmo es un conjunto de p targets que se obtienen a partir de píxels de la imagen. El algoritmo viene dado por los siguientes pasos, que aparecen resumidos en forma de diagrama de bloques en la Fig. 4.5: Imagen hiperespectral Carga de la imagen Dilatación morfológica interna Búsqueda de targets Sustracción morfológica Dilatación morfológica externa Figura 4.5: Diagrama de bloques que resume el funcionamiento del algoritmo morfológico para detección de anomalías (Morph).

73 Algoritmo morfológico para detección de anomalías (Morph) Carga de la imagen. A diferencia de algoritmos como ATGP o RX, en el algoritmo Morph requiere que la imagen hiperespectral F que procesa el algoritmo se encuentre en formato band interleaved by pixel (BIP) en lugar del formato más habitual band sequential (BSQ) utilizando habitualmente por ATGP o RX. El principal motivo es que Morph puede beneficiarse notablemente de realizar un recorrido de los datos por píxels (en lugar de hacerlo por bandas como está estructurado el formato BSQ). Para aclarar este aspecto, la Fig. 4.6 muestra un ejemplo de la distribución de los datos de una sencilla imagen con 5 líneas, 4 muestras y 3 bandas en los formatos BSQ y BIP. muestras bandas líneas 5 líneas 4 muestras 3 bandas píxel píxel BSQ (Band-Sequential or Band-Interleaved) banda BIP (Band-Interleaved-by-Pixel or Pixel-Interleaved) Figura 4.6: Ejemplo de recorrido de los datos de una imagen hiperespectral en formato band sequential (BSQ) y band interleaved by pixel (BIP). 2. Dilatación morfológica interna y externa. El siguiente paso del algoritmo consiste en definir dos ventanas de procesamiento de diferente tamaño (a partir de los elementos estructurales) S interna y S externa. Dichas ventanas definen una vecindad alrededor de cada píxel de la imagen. Teniendo en cuenta la definición del operadorf S en la expresión (4.12)y la relaciónde orden en la que esta operación se basa, a continuación se realiza una doble operación de dilatación morfológica sobre cada píxel F(x, y) de la imagen, utilizando primero la ventana interna: F S interna (x,y), y posteriormente la ventana externa: F S externa (x,y). Una vez que todos los píxels de la imagen han sido procesados por las ventanas definidas por los elementos estructurales S interna y S externa, se comparan los valores de resultantes de dichas operaciones morfológicas con el píxel original F(x, y) mediante una medida de distancia, acumulando los valores resultantes. El objetivo de aplicar doble ventana es utilizar la ventana externa para resaltar aún más las anomalías que la primera operación de dilatación morfológica (con la ventana interna) ya había resaltado en primera instancia. En nuestro caso, la medida utilizada para realizar dichas operaciones es el ángulo espectral. El resultado de este proceso es la obtención de un valor asociado a cada píxel de la imagen, que será alto para píxels anómalos en las vecindades consiederadas (interna y externa).

74 56 Métodos 3. Búsqueda de targets. Llegados a este punto, el resultado de comparar los resultados obtenidos por las dos operaciones de dilatación con elementos estructuralesde diferente tamañoesun valorasociadoacadapíxelde la imagen.en otras palabras, cada píxel F(x, y) tendrá asociado un valor, que podemos emplear para encontrar p píxels anómalos identificando los píxels con mayores valores asociados o bien aplicando un determinado valor umbral a la imagen resultante tras interpretar los valores asociados a cada píxel como niveles digitales.

75 Capítulo 5 Implementaciones paralelas En este capítulo presentamos las diferentes implementaciones paralelas desarrolladas en arquitecturas clúster y GPU de algoritmos de detección de targets y anomalías descritos en capítulos previos de la presente memoria. El capítulo se estructura de la siguiente forma. En primer lugar, describimos las nuevas implementaciones paralelas desarrolladas en clústers de computadores, orientadas a acelerar algoritmos clásicos como ATGP (implementado con nuevas medidas de distancia) y RX, así como el nuevo algoritmo morfológico (Morph) desarrollado en el presente trabajo. En todos los casos, describimos el esquema de particionamiento de datos y paralelismo adoptado y proporcionamos ejemplos prácticos que permiten analizar los diferentes pasos efectuados en la paralelización de dichos algoritmos. Seguidamente, se describen las versiones paralelas de ATGP, RX y Morph para GPUs, comentando los kernels desarrollados en NVidia TM CUDA y del esquema de paralelismo adoptado en la GPU. Conviene destacar que se han desarrollado también versiones modificadas o relajadas de algunos de los algoritmos anteriormente mencionados que permiten evitar algunos de los problemas presentes en las implementaciones originales, tales como la repetición de targets en el caso de ATGP paralelo o bien el desarrollo de un esquema comunicativo más eficiente en la versión paralela del algoritmo RX. Dichos aspectos también serán comentados en detalle en el presente capítulo Implementaciones paralelas en clústers de computadores En este apartado se comentan en detalle las implementaciones realizadas en clústers, prestando especial atención a los esquemas de paralelismo utilizados, comunicación entre nodos y estrategias de particionamiento de datos. Dado que los algoritmos implementados en clústers se basan en estrategias de particionamento de datos, antes de abordar la descripción de los aspectos individuales relacionados con dichos algoritmos, comenzamos analizando las diferentes estrategias de particionamiento que pueden adoptarse en análisis hiperespectral, destacando sus ventajas e inconvenientes. Seguidamente, describimos las versiones paralelas desarrolladas para los algoritmos ATGP y RX en clústers,

76 58 Implementaciones paralelas Figura 5.1: Estrategias de particionamiento de datos hiperespectrales. (a) Particionamiento espectral. (b) Particionamiento espacial. (c) Particionamiento híbrido. prestando especial atención a los esquemas de particionamiento y comunicación que dichos algoritmos. A continuación analizamos las dos versiones paralelas desarrolladas para el algoritmo RX en clústers, denominadas RX comunicativo y RX independiente. Finalmente describimos la versión clúster del nuevo algoritmo para detección de anomalías utilizando conceptos de matemática morfológica que hemos desarrollado en el presente trabajo Estrategias de particionamiento de datos hiperespectrales En la literatura reciente se han explorado diferentes aproximaciones al problema de particionar datos hiperespectrales con vistas a su procesamiento en paralelo. En la mayor parte de los casos, dicho particionamiento de datos se encuentra intrínsecamente asociado a un algoritmo paralelo maestro-esclavo en el que un procesador de la arquitectura paralela considerada (maestro) se encarga de particionar los datos hiperespectrales y de distribuirlos entre un conjunto de procesadores (esclavos) que efectúan un procesamiento de tipo local con los datos devolviendo los resultados parciales al procesador maestro una vez finalizado el proceso local. Seguidamente, el procesador maestro se encarga de combinar los resultados parciales obtenidos y de proporcionar un resultado global. Teniendo en cuenta este tipo de procesamiento, a continuación se describen los tres tipos de particionamiento de datos considerados en el presente trabajo, destacando las ventajas e inconvenientes de cada una de estas aproximaciones. Finalmente, se justifica la elección de uno de los tipos de particionamiento propuestos como modelo base para el desarrollo de implementaciones paralelas a lo largo del presente capítulo. 1. Particionamiento espectral. Este tipo de particionamiento subdivide el cubo de datos hiperespectral en sub-volúmenes, cada uno de los cuales contiene información relativa a todos los píxels de la imagen, de forma que la información espectral asociada a un mismo píxel puede encontrarse almacenado en dos o más procesadores [ver Fig. 5.1(a)]. En este tipo de particionamiento, el procesamiento asociado a un único píxel de la imagen requiere comunicación entre dos o más procesadores del

77 5.1 Implementaciones paralelas en clústers de computadores 59 sistema al encontrarse la información espectral asociada a un mismo píxel dispersa entre varios procesadores. 2. Particionamiento espacial. Este tipo de particionamiento subdivide el cubo de datos hiperespectral en bloques, de forma que cada bloque contiene información relativa a un subconjunto de píxels de la imagen (ubicados de forma contigua en el dominio espacial) y teniendo en cuenta que los píxels que componen cada bloque retienen toda la información espectral asociada a ellos, es decir, cada uno de los píxels que integran un bloque se encuentra almacenado de forma íntegra(con todos sus valores espectrales asociados) en un mismo procesador [ver Fig. 5.1(b)]. 3. Particionamiento híbrido. Por último, el particionamiento de tipo híbrido integra las características de los dos tipos de particionamiento anteriormente descritos, es decir, en este tipo de particionamiento el cubo de datos hiperespectral se encuentra dividido en sub-volúmenes, de forma que cada sub-volúmen integra una partición de la imagen en el dominio espacial (es decir, un subconjunto de píxels ubicados de forma contigua en el dominio espacial) y a su vez la información espectral asociada a un píxel de dicho sub-volumen puede encontrarse almacenada en dos o más procesadores [ver Fig. 5.1(c)]. Con vistas a explotar el paralelismo inherente en los algoritmos de particionamiento de datos desarrollados en la presente memoria, hemos optado por un particionamiento de tipo espacial por los motivos que se describen a continuación: En primer lugar, el particionamiento espacial supone una alternativa natural a la hora de paralelizar algoritmos basados en un procesamiento por ventana, tales como el nuevo algoritmo Morph propuesto en el presente trabajo para detectar anomalías. Dicho esquema de particionamiento también se adapta de forma adecuada a otros algoritmos para detección de targets como ATGP y RX. Otra razón fundamental para seleccionar el particionamiento espacial frente a los particionamientos de tipo espectral e híbrido es el hecho de que el particionamiento espacial permite reducir sensiblemente las comunicaciones entre los procesadores de la arquitectura paralela. Como se ha descrito en la presente memoria, la mayor parte de los algoritmos de análisis hiperespectral consideran la firma espectral (información completa asociada a un píxel de la imagen) como la unidad mínima de procesamiento y, por tanto, los particionamientos espectral e híbrido involucran comunicaciones inter-procesador a nivel de píxel, incrementando significativamente el coste total asociado a las comunicaciones lo cual, en términos generales, se traduce en un menor rendimiento paralelo y en problemas de escalabilidad a medida que el número de procesadores aumenta. Una última razón fundamental para seleccionar el particionamiento espacial es la posibilidad de reutilizar código y de mejorar la portabilidad de los algoritmos paralelos desarrollados a diferentes arquitecturas. En la mayor parte de aplicaciones, es altamente deseable poder reutilizar los códigos serie a la hora de desarrollar

78 60 Implementaciones paralelas Figura 5.2: Necesidad de comunicar información en particionamiento espacial para procesado morfológico utilizando un elemento estructural de 3 3 píxels. versiones paralelas dada la complejidad de algunas técnicas de análisis. En este sentido, el particionamiento espacial permite un paralelismo de grano fino al facilitar la aplicación de un algoritmo paralelo a diferentes porciones de datos en las que se retiene toda la información espectral, permitiendo así que la transformación del código serie en código paralelo sea mucho más sencilla que al aplicar un particionamiento espectral o híbrido. Antes de finalizar este apartado, mencionamos algunas consideraciones adicionales sobre la utilización del esquema de particionamiento espacial de forma previa a la aplicación de un algoritmo de procesamiento basado en ventana deslizante, tal y como el algoritmo Morph que se basa en el uso de un elementos estructurales que definen vecindades espaciales alrededor de cada píxel de la imagen F(x, y). En este caso, sería preciso implementar operaciones capaces de llevar a cabo la comunicación de información entre procesadores cuando el elemento estructural está centrado en un píxel situado en el borde de una partición local (ver ejemplo en Fig. 5.3, basado en un elemento estructural de tamaño 3 3 píxels. En este ejemplo, los cálculos efectuados en el procesador #1 en relación a la vecindad del píxel en la posición (5, 3) de la imagen hiperespectral original necesitan tres píxels(vectores) localizados en el procesador#2. Por tanto, sería necesario comunicar dichos píxels del procesador #2 al procesador #1 para finalizar la operación. No obstante, una alternativa a este envío de información (basado en varios cientos de valores espectrales) a través de la red de comunicación de la arquitectura paralela, con el previsible incremento del coste asociado a las comunicaciones punto a punto, sería introducir información redundante en el procesador #1 para evitar dicha comunicación de información. En este ejemplo, la información redundante correspondería a la primera fila de píxelsen la particiónasociadaalprocesador#2, que secopiaríacomola última fila de píxels en la partición asociada al procesador #1 [ver Fig. 5.3]. En este caso, está claro que se introduce información redundante en el sistema ya que la intersección entre ambas

79 5.1 Implementaciones paralelas en clústers de computadores 61 Figura 5.3: Introducción de información redundante para evitar comunicación de información en particionamiento espacial para procesado morfológico utilizando un elemento estructural de 3 3 píxels. particiones no es disjunta, pero al mismo tiempo el rendimiento paralelo del algoritmo puede mejorar al reducirse el coste asociado a las comunicaciones a expensas de introducir una pequeñacantidadde informaciónredundanteen elsistema.ala horade optarporun esquema basado en replicación de información o por un esquema basado en comunicación de información, es preciso valorar las características concretas de la aplicación. En nuestro caso, al trabajar con vectores n-dimensionales, hemos comprobado experimentalmente que el esquema basado en computación redundante resulta generalmente más apropiado que el basado en comunicación, en particular, cuando el tamaño de los elementos estructurales empleados es pequeño o puede utilizarse de forma iterativa para considerar una mayor vecindad espacial sin necesidad de aumentar el tamaño en píxels de dichos elementos estructurales. Teniendo en cuenta las anteriores consideraciones y la posibilidad de obtener un algoritmo de particionamiento sin comunicación entre procesadores mediante la introducción de información redundante, concluimos este apartado describiendo el algoritmo de particionamiento empleado en las implementaciones paralelas basadas en particionamiento de datos que serán desarrolladas en apartados sucesivos. Dicho algoritmo, que aparece ilustrado mediante un sencillo diagrama de bloques en la Fig. 5.4, se basa en una sencilla operación de particionamiento (realizada en un procesador maestro) a partir de la cual se asignan particiones espaciales a procesadores separados. Tras un procesado local en paralelo en cada uno de dichos procesadores (que puede incluir información redundante o no), los resultados intermedios se envían al procesador maestro, el cual combina los resultados parciales y genera un resultado final.

80 62 Implementaciones paralelas Figura 5.4: Diagrama de bloques ilustrativo del algoritmo de particionamiento espacial empleado en las implementaciones paralelas de algoritmos de tratamiento de datos hiperespectrales Implementación clúster de ATGP A continuación describimos la implementación paralela del algoritmo ATGP. Al igual que ocurría en la versión secuencial del algoritmo descrita en el apartado 2.2.1, los parámetros de entrada al mismo son una imagen hiperespectral F y un número de targets a detectar, p. La salida es un conjunto de targets, {t i } p i=1 identificados según una medida de distancia en la que se basa el algoritmo. A continuación se muestra una descripción paso a paso de la versión paralela del algoritmo ATGP: 1. El procesador maestro particiona la imagen hiperespectral en P particiones espaciales {F i } P i=1 según el esquema descrito en la Fig. 5.5, asignando aproximadamente la misma carga de trabajo a los diferentes procesadores esclavos (es decir, particionando los datos de forma que cada procesador esclavo reciba aproximadamente el mismo número de filas completas de píxels). En caso de no ser posible una asignación completamente balanceada, se opta por asignar la carga restante a un mismo procesador, tal y como se muestra en la Fig Cada procesador esclavo envía al maestro el valor asociado al píxel F i (x,y) identificado como el más brillante en la partición local. El píxel más brillante es identificado como aquel que resulta en mayor valor al realizar el producto vectorial entre el vector asociado a dicho píxel y su transpuesto. El proceso de envío de información por parte de cada nodo esclavo al procesador maestro aparece ilustrado en la Fig. 5.7, mientras que el código 5.1 muestra una versión simplificada del código MPI necesario para implementar esta operación. Como puede verse en dicho trozo de código, los esclavos envían al procesador maestro su máximo local y se quedan en espera hasta que el maestro decida cuál el el máximo global y se lo envíe a todos los esclavos, de forma que pueda continuar el proceso realizado por el algoritmo paralelo.

81 5.1 Implementaciones paralelas en clústers de computadores 63 Figura 5.5: Particionamiento espacial perfectamente balanceado de una imagen hiperespectral. Figura 5.6: Particionamiento espacial no perfectamente balanceado de una imagen hiperespectral. if ((node_id > 0)&&(node_id < num_nodes)) { //Envía al máster su máximo local MPI_Send(&max,1,MPI_DOUBLE,0,node_id,MPI_COMM_WORLD); // Se queda recibiendo hasta que el máster decida cuál es // el máximo global y se lo envíe MPI_Recv(&elegido,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD,&status); } Código 5.1: Versión simplificada del código MPI necesario para enviar el píxel más brillante (el que resulta en mayor valor al realizar el producto vectorial entre el vector asociado a dicho píxel y su transpuesto) desde los nodos esclavos al nodo maestro. 3. El procesador maestro recibe la información de los diferentes procesadores esclavo y calcula el píxel más brillante de la imagen, seleccionando el mayor valor de entre todos los valores proporcionados por los esclavos. A continuación, el procesador

82 64 Implementaciones paralelas Figura 5.7: Proceso de envío del valor asociado al píxel más brillante (el que resulta en mayor valor al realizar el producto vectorial entre el vector asociado a dicho píxel y su transpuesto) desde los nodos esclavos al nodo maestro. maestro envía a todos los nodos esclavo el identificador del procesador que contiene el valor máximo(ver Fig. 5.8), cuyo píxel asociado se etiqueta como el primer target, t 1. El código 5.2 muestra una versión simplificada del código asociado a este paso, en el que pueden apreciarse las llamadas realizadas a las librerías MPI necesarias para utilizar las funciones que permiten enviar y esperar la información requerida. // Si es el máster else{ max_aux [0] = max; max_parcial = max; elegido=0; // Recibimos los máximos de cada uno de los workers MPI_Gather(max_parcial,1,MPI_DOUBLE,max_aux,1,MPI_DOUBLE,0, MPI_COMM_WORLD); // MPI_Gather equivale a: // for(i=1;i<num_nodes;i++) // MPI_Recv(&max_aux[i],1,MPI_DOUBLE,i,MPI_ANY_TAG, // MPI_COMM_WORLD,&status); // Elegimos el procesador que tiene máximo global for(i=1;i<num_nodes;i++){ if(max_parcial < max_aux[i]){ max_parcial=max_aux[i]; elegido=i; } } // Enviamos a todos los workers el id del procesador // que tiene el píxel más brillante MPI_Bcast(&elegido,1,MPI_INT,0,MPI_COMM_WORLD); // MPI_Bcast equivale a: // for(i=1;i<num_nodes;i++) // MPI_Send(&elegido,1,MPI_INT,i,0,MPI_COMM_WORLD); } Código 5.2: Versión simplificada del código MPI que permite enviar el identificador del procesador que contiene el píxel más brillante de la imagen desde el nodo maestro a los nodos esclavo. 4. El nodo que contiene el píxel más brillante lo envía a todos los demás nodos (ver Fig. 5.9), que lo guardan como el primer target identificado en el proceso. Ahora todos los nodos esclavo tienen el píxel más brillante, que utilizarán a nivel local para

83 5.1 Implementaciones paralelas en clústers de computadores 65 Figura 5.8: Proceso de envío del identificador del procesador que contiene el píxel más brillante de la imagen desde el nodo maestro a los nodos esclavo. identificar el píxel con mayor valor de distancia con respecto al píxel más brillante (en este punto, pueden considerarse múltiples tipos de distancias) y enviarán al nodo maestro dicho valor, que corresponde al píxel más diferente en la partición local con respecto al primer target. Seguidamente, el nodo maestro recibe dichos valores, calcula el siguiente target como aquel con el mayor valor asociado (dicho target se etiquetará como t 2 ) y envía a los esclavos el identificador del procesador que contiene dicho target (ver Fig. 5.10). Figura 5.9: Procesode envíodel píxel más brillante por parte del nodo que contiene dicho píxel al resto de nodos. 5. De nuevo, el nodo que contiene el último target identificado envía su valor asociado a todos los demás nodos y el proceso se repite hasta que se detectan un total de p targets {t i } p i= Implementación clúster de RX La versión paralela de RX que hemos desarrollado en clústers se basa en los mismos principios de paralelismo que ATGP. En este caso, hemos implementado dos versiones paralelas del algoritmo RX: una versión comunicativa (en la que los nodos se comunican información a lo largo del proceso) y una versión independiente (en la que cada nodo procesa su partición de forma independiente). A continuación describimos ambas ver-

84 66 Implementaciones paralelas Figura 5.10: Proceso de envío del identificador del procesador que contiene el siguiente target identificado en la imagen desde el nodo maestro a los nodos esclavo. siones, comentando brevemente las principales diferencias entre ambas. // Recibimos los máximos locales MPI_Gather(&max_ant, 1, MPI_DOUBLE,max_aux,1,MPI_DOUBLE,0, MPI_COMM_WORLD); // El máster procesa los máximos locales if (node_id == 0) { elegido=0; for(i=0;i<num_nodes;i++) if (max_ant < max_aux[i]) { max_ant=max_aux[i]; elegido=i; } // En max_ant está el max global } // Enviamos el máximo global y el identificador de // quien lo tiene a todos los nodos MPI_Bcast(&elegido,1,MPI_INT,0,MPI_COMM_WORLD); MPI_Bcast(&max_ant,1,MPI_DOUBLE,0,MPI_COMM_WORLD); Código 5.3: Versión simplificada del código MPI utilizado para implementar los pasos 2 y 3 de la versión comunicativa del algoritmo RX paralelo para clústers Versión comunicativa de la implementación clúster de RX En la versión comunicativa de RX, los parámetros de entrada son los mismos que en la versión serie de RX, descrita en el apartado 2.2.2: una imagen hiperespectral F y un número de targets a detectar, p. La salida es un conjunto de targets, {t i } p i=1. A continuación se muestra una descripción paso a paso de la versión paralela del algoritmo RX comunicativo: 1. Se realiza un particionamiento espacial de la imagen hiperespectral F en P particiones espaciales {F i } P i=1, de forma idéntica a la utilizada en el caso del algoritmo ATGP (ver Figs. 5.5 y 5.6). 2. Cada esclavo aplica el algoritmo RX de forma local en su partición local F i y envía al nodo maestro el valor máximo resultante tras aplicar el filtro RXF a todos los píxels en la partición local.

85 5.1 Implementaciones paralelas en clústers de computadores El nodo maestro recibe los valores máximos proporcionados por cada uno de los nodos esclavo y calcula el valor máximo de entre todos los valores recibidos, el cual será etiquetado como el primer target t 1. A continuación, el maestro envía a los esclavos el identificador del nodo que contiene el valor máximo. 4. A continuación se repiten los pasos 2-4 tantas veces como sea necesario para detectar un segundo target t 2, un tercer target t 3, hasta que se identifica un conjunto de p targets donde el valor de p es el especificado como parámetro de entrada al algoritmo. El código 5.3 muestra el una versión simplificada del código MPI necesario para implementar los pasos 2 y 3 de la versión comunicativa de RX Versión independiente de la implementación clúster de RX La versión independiente del algoritmo RX paralelo implementado para clústers tiene exactamente los mismos parámetros que la versión comunicativa: una imagen hiperespectralfyun númerode targets adetectar, p. Lasalida esun conjuntode targets, {t i } p i=1. La principal diferencia de la versión independiente con respecto a la versión comunicativa es que la versión independiente no realiza ningún tipo de comunicación entre nodos, sino que cada nodo esclavo (de un total de P nodos) se limita a procesar su partición por separado. Una vez que cada esclavo ha procesado su partición, dicho nodo obtiene el número de targets que el usuario ha especificado por parámetro, enviando las coordenadas asociadas a los mismos al maestro. Al final del proceso, los targets obtenidos se ordenan en el procesador maestro según el valor asociado a dichos targets por parte del filtro RXF. El maestro proporciona el conjunto final de targets {t i } p i=1. El algoritmo puede resumirse de forma sencilla en los siguientes pasos: 1. Se realiza un particionamiento espacial de la imagen hiperespectral F en P particiones espaciales {F i } P i=1, de forma idéntica a la utilizada en el caso del algoritmo ATGP (ver Figs. 5.5 y 5.6). 2. Cada esclavo aplica el algoritmo RX de forma local en su partición local F i, aplicando el filtro RXF a todos los píxels en la partición local y obteniendo un total de p targets, cuyas coordenadas son enviadas al procesador maestro. 3. El nodo maestro recibe los targets identificados por cada uno de los nodos esclavo y, utilizando la imagen original F, identifica un conjunto final de p targets ordenando los valores asociados a dichos targets que fueron enviados por los esclavos. Conviene destacar que los resultados obtenidos por la versión paralela independiente de RX varían en mayor medida con respecto a la versión comunicativa cuanto mayor es el número de nodos utilizados. Aún así, la variación es mínima, ya que cada nodo esclavo identifica en primer lugar todos los máximos independientes de su partición por orden. A priori, podemos anticipar una serie de ventajas e inconvenientes de utilizar la versión comunicativa o independiente del algoritmo RX paralelo: La versión comunicativa realiza una puesta en común global para cada uno de los valores máximos obtenidos, obteniendo en cada iteración el valor máximo de entre

86 68 Implementaciones paralelas todos los nodos. Esto permite obtener en primer lugar los targets más significativos. Por su parte, la versión independiente no establece una comunicación con los demás nodos, por lo que en cada iteración obtiene el valor máximo asociado a su partición aunquedichovalorseainferioralosobtenidosenelrestodenodos.de estaforma,la versión independiente obtiene el número de targets especificado para cada nodo pero desconoce si los targets obtenidos en una iteración en un determinado nodo esclavo son más significativos(en función de su valor RXF asociado) que los obtenidos para otro nodo esclavo. Teniendo en cuenta las anteriores consideraciones, podemos plantearnos utilizar la versión comunicativa para localizar un número reducido de targets que deben ser distinguidos de forma clara, o bien siguiendo un orden decreciente de valores RXF. En el caso de analizar imágenes hiperespectrales con gran dimensionalidad (y previsiblemente con un número elevado de targets) en la que tenemos la certeza de que los targets se encuentran distribuidos uniformemente, en este caso consideramos que la versión independiente puede resultar más adecuada Implementación clúster de Morph Finalmente, describimos la versión paralela del algoritmo Morph para detectar anomalías haciendo uso de la información espacial y espectral presente en la escena. El algoritmo paralelo, al igual que la versión serie descrita en el apartado 4.2.2, recibe como entradas la imagen hiperespectral a procesar, F, dos elementos estructurales que definen ventanas de procesamiento alrededor de cada píxel que denominamos S interna y S externa, y un número de targets a detectar, p. La salida del algoritmo es un conjunto de p targets denotados como {t i } p i=1. El algoritmo puede resumirse en los siguientes pasos: 1. El procesador maestro particiona la imagen hiperespectral en P particiones espaciales{f i } P i=1. Paraevitar el coste excesivode las operaciones de comunicación ilustradas en la Fig. 5.2, las particiones se efectúan con información redundante en los bordes, tal y como aparece descrito en la Fig Cada procesador efectúa un proceso de identificación de targets local e iterativo, utilizando su correspondiente partición F i. Para ello, cada esclavo ejecuta el algoritmomorph(descritoenelcapítulo4delapresentememoria)deformalocalen cadapartición,utilizandolasventanass interna y S externa paraobtenerun valorlocal asociado a cada píxel F i (x,y) que será alto para píxels anómalos en las vecindades consideradas (interna y externa). 3. Una vez finalizado el proceso, cada procesador esclavo envía al maestro los p valores locales asociados a cada píxel junto con las coordenadas de los píxels locales, y el procesador maestro recoge todos los resultados parciales y selecciona (utilizando la imagen original F) el conjunto de p píxels de dicha imagen con mayor valor asociado. Dichos píxels constituyen el conjunto final de p targets denotados como {t i } p i=1.

87 5.2 Implementaciones paralelas en GPUs 69 Para finalizar este apartado, conviene destacar que en ocasiones puede resultar de gran interés analizar la salida proporcionada por los algoritmos RX(en su versión comunicativa e independiente) y Morph como una imagen de probabilidad de detección de targets o anomalías, sobre la que se realiza un estudio basado en curvas ROC (ver apartado 2.2.3) para determinar la calidad de dicha imagen en dicho contexto. En este caso, las modificaciones que se realizan sobre las versiones paralelas de los algoritmos son mínimas, ya que en general consisten en evitar el último paso de dichas implementaciones(detección de targets de forma individualizada) de forma que el procesador maestro simplemente combina los resultados individuales proporcionados por cada esclavo (valores asociados a cada píxel en la partición local) formando la imagen de probabilidad completa. Dichas implementaciones también han sido utilizadas en el presente trabajo, en particular, cuando el resultado proporcionado por los algoritmos RX y Morph no se analiza en base a un conjunto de p targets detectados, sino construyendo la curva ROC asociada a la imagen de probabilidad resultante de aplicar ambos algoritmos. En el siguiente capítulo de la presente memoria utilizaremos ambas estrategias para validar los resultados proporcionados por dichos algoritmos Implementaciones paralelas en GPUs En este apartado se comentan en detalle las implementaciones realizadas en GPUs, prestando especial atención a los esquemas de paralelismo utilizados. Dado que la GPU es una arquitectura de memoria compartida, las estrategias de particionamiento de datos no son tan relevantes como en el caso de las implementaciones clúster, en las que el objetivo principal es reducir los tiempos de comunicación entre nodos. En el caso de las implementaciones paralelas de ATGP, RX y Morph en la GPU prestamos especial atención en su descripción a la forma en que los algoritmos se adaptan a la arquitectura, tarea que ha sido realizada utilizando el lenguaje CUDA de NVidia TM. A continuación describimos la estrategia de paralelización adoptada para portar cada uno de los algoritmos considerados a arquitecturas GPU Implementación GPU del algoritmo ATGP La implementación en GPU del algoritmo ATGP se ha llevado a cabo intentando aprovechar las ventajas que ofrecen las arquitecturas GPU por el hecho de tratarse de sistemas de memoria compartida, en los que no es necesario invertir demasiado tiempo en la comunicación de resultados entre los diferentes núcleos de procesamiento. En este sentido, nuestra descripción de la versión paralela de ATGP ofrece detalles acerca de los pasos seguidos para adaptar el algoritmo a la arquitectura de la GPU, acompañada de algunos fragmentos de código que servirán para ilustrar las principales operaciones realizadas por el mismo. En particular, los pasos que se han seguido para implementar el algoritmo ATGP en una arquitectura GPU son los que se resumen a continuación: 1. En primer lugar, la imagen hiperespectral F se almacena en la memoria local de la GPU. En el presente trabajo, asumimos que la imagen hiperespectral completa

88 70 Implementaciones paralelas Figura 5.11: Imagen hiperespectral de ejemplo utilizada para ilustrar el procesamiento paralelo realizado en la GPU. Figura 5.12: En la implementación GPU del algoritmo ATGP, cada píxel de la imagen puede ser procesado de forma independiente utilizando un hilo de procesamiento o thread. puede almacenarse en la memoria de la GPU. En el sensor AVIRIS, el tamaño estándar de una imagen hiperespectral es de a píxels de 224 valores, cada uno de los cuales se condifica utilizando 16 bits. Esto hace un tamaño total de información de aproximadamente 140 MB. Por tanto, este tamaño corresponde a la unidad mínima a procesar en aplicaciones de análisis hiperespectral con dicho sensor. A medida que el sensor necesita cubrir una zona más grande, lo hace captando de forma consecutiva imágenes de este tamaño, por lo que dicha cantidad de información puede considerarse la unidad mínima de información a procesar en la GPU. Los parámetros en otros sensores hiperespectrales como los mostrados en la tabla 2.1 de la presente memoria son similares, por lo que resulta razonable suponer que la imagen hiperespectral se puede almacenar en la memoria local de la GPU al ser el tamaño de dicha memoria superior a 140 MB en arquitecturas GPU estándar de NVidia TM (por ejemplo, en las arquitecturas TM GeForce 9800GX2 y GTX275 consideradas en el presente trabajo el tamaño de la memoria local de la GPU es, respectivamente, de 1024 MB y 1792 MB). 2. Seguidamente, se define en la GPU una estructura orientada a almacenar los valores asociados a cada píxel de la imagen con el fin de calcular el píxel más brillante de la misma, que se utiliza como el primer target t 1. Si utilizamos una sencilla imagen hiperespectral de ejemplo (ver Fig. 5.11), la estructura anteriormente mencionada almacenará los resultados obtenidos tras procesar dicha imagen hiperespectral utilizando tantos hilos de procesamiento o threads como píxels tiene la imagen (ver Fig. 5.12). De esta forma, el paralelismo en la GPU se aprovecha de forma muy efi-

89 5.2 Implementaciones paralelas en GPUs 71 Figura 5.13: El procesamiento en la GPU del algoritmo ATGP se realiza en forma de un grid de bloques con tantos bloques como líneas tiene la imagen, de forma que cada bloque tiene tantos threads como muestras tiene la imagen. caz, en el sentido de que al mismo tiempo que en una CPU con un sólo procesador solamente se podría procesar un píxel utilizando un thread, en la GPU es posible procesar un gran número de píxels utilizando un grid con tantos bloques como líneas tiene la imagen, de forma que cada bloque tiene tantos threads como muestras tiene la imagen (ver Fig. 5.13). En particular, los códigos 5.4 y 5.5 muestran, respectivamente, los fragmentos de código CUDA para la invocación del kernel que calcula el píxel más brillante de la imagen hiperespectral y el kernel CUDA que efectúa dicha operación. // Definición del tamaño de los bloques y del grid int numblocks = num_lines; int numthreadsperblock = num_samples; // Calculamos el brillo de todos los píxels de la imagen // y guardamos sus valores en la matriz de brillo CalculateBright<<< numblocks, numthreadsperblock >>>(d_image_vector, d_bright_matrix, num_bands, lines_samples); Código 5.4: Fragmento de código CUDA que realiza la invocación del kernel que calcula el píxel más brillante de la imagen hiperespectral en la implementación GPU del algoritmo ATGP. 3. Utilizando el target t 1 obtenido en el paso anterior, a continuación se identifica el siguientetarget t 2 comparandoen paralelotodos lospíxelsde la imagen hiperespectral con el target t 1 mediante una medida de distancia concreta. Dicha operación se realiza de forma íntegra en la GPU a partir de la definición de tantos threads de procesamiento como píxels tiene la imagen hiperespectral. Para ello, es preciso

90 72 Implementaciones paralelas definir un grid de bloques de hilos tal y como se muestra en la Fig. 5.13, de forma que cada hilo aplicará la medida de distancia considerada y almacenará el resultado en la estructura orientada a almacenar los valores asociados a cada píxel de la imagen en la memoria local de la GPU. A continuación se procesa esta estructura en paralelo para identificar el máximo valor de distancia obtenido a lo largo del proceso, y dicho valor sirve para identificar el target t 2. El proceso se repite de forma iterativa para detectar un nuevo target t 3 y así sucesivamente, hasta que se identifica un conjunto de p targets {t i } p i=1. global void CalculateBright(short int *d_image_vector, float *d_bright_matrix, int num_bands, long int lines_samples) { // Imagen en Device: d_image_vector // Matriz de brillos en d_bright_matrix int k; float bright=0, value; // Obtención del identificador del hilo int idx = blockdim.x * blockidx.x + threadidx.x; for (k = 0; k < num_bands; k++){ value = d_image_vector[idx+(k*lines_samples)]; bright += value; } } d_bright_matrix[idx]=bright; Código 5.5: Fragmento de código CUDA que contiene el kernel que calcula el píxel más brillante de la imagen hiperespectral en la implementación GPU del algoritmo ATGP. Llegados a este punto, en el que se han presentado tanto la versión secuencial de ATGP como sus versiones paralelas en clústers y GPUs, conviene destacar que, para todas las versiones realizadas de dicho algoritmo, hemos implementado una variante del mismo orientada a evitar que los targets que se obtienen a lo largo del proceso puedan repetirse en algún momento debido a la aplicación de diferentes medidas de distancia. En el caso de la distancia ortogonal (presente en la implementación clásica del algoritmo) la repetición de targets no es posible ya que siempre se identifica el siguiente target como el más ortogonal con respecto a los ya detectados. Sin embargo, al utilizar otras distancias hemos observado que es posible que algunos targets identificados durante el proceso se repitan (es decir, que vuelvan a detectarse) en un determinado número de iteraciones. Para evitar la situación comentada anteriormente, se ha implementado una variante que consiste en eliminar los targets que ya han sido detectados por el algoritmo del conjunto de píxels candidatos en sucesivas iteraciones, evitando así que un mismo target pueda ser detectado varias veces a lo largo del proceso. Dicha operación, denominada relajación, permite participar únicamente al resto de píxels de la imagen (es decir, a los que no han sido todavía detectados como targets) en el proceso competitivo que se aplica para detectar a los siguientes candidatos utilizando la medida de distancia considerada. Experimentalmente hemos observado que las implementaciones de ATGP con relajación permiten identificar un mayor número de targets diferentes y evitar la repetición de los mismos en el proceso de detección. En todos los casos (implementación serie y paralela

91 5.2 Implementaciones paralelas en GPUs 73 en clústers y GPUs) las modificaciones introducidas para implementar la versión relajada son mínimas, por lo que en términos computacionales no suponen diferencia alguna con respecto a las anteriores versiones de ATGP comentadas en la presente memoria Implementación en GPU del algoritmo RX La implementación en GPU del algoritmorx se ha llevado a cabo teniendo en cuenta el carácter matricial de las operaciones que este algoritmo realiza, intentando aprovechar las ventajas del sistema de memoria compartida que ofrecen las arquitecturas GPU. De nuevo, nuestra descripción de la versión paralela de RX ofrece detalles acerca de los pasos seguidos para adaptar el algoritmo a la arquitectura de la GPU. En particular, los pasos que se han seguido para implementar el algoritmo RX en una arquitectura GPU son los que se resumen a continuación: 1. En primer lugar, la imagen hiperespectral F se almacena en la memoria local de la GPU. De nuevo, asumimos que la imagen hiperespectral completa puede almacenarse en la memoria de la GPU. 2. A continuación, se define un grid de tantos bloques como número de bandas contiene la imagen hiperespectral, es decir, n. Dentro de cada bloque, se define un número de hilos que es también igual al número de bandas de la imagen hiperespectral. Esta configuración, ilustrada en la Fig. 5.14, se ha diseñado con el objetivo de calcular eficientemente en la GPU la matriz de covarianza K n n necesaria para la implementación del algoritmo RX. Figura 5.14: El procesamiento en la GPU del algoritmorx se realiza en forma de un grid de bloques con tantos bloques como bandas tiene la imagen, de forma que cada bloque tiene tantos threads como bandas tiene la imagen.

92 74 Implementaciones paralelas 3. Una vez obtenida la matriz de covarianza K n n en paralelo, es necesario invertirla (es decir, calcular K 1 n n) para poder calcular el valor del filtro RXF sobre el que se fundamenta la construcción del algoritmo RX. Para realizar este cálculo de forma eficiente, se ha adoptado el método de eliminación Gaussiana que, para matrices de dimensiones considerables como las obtenidas en análisis hiperespectral en las que el tamaño es n n siendo n el número de bandas, ha resultado ser muy eficiente de acuerdo con las pruebas realizadas. En particular, un sistema de ecuaciones puede resolverse por el método de Gauss cuando sus soluciones pueden obtenerse mediante la reducción del sistema dado a otro equivalente en el que cada ecuación tiene una incógnita menos que el anterior. Para el cálculo de la inversa de la matriz de covarianza, aplicamos este método calculando la matriz aumentada, que se obtiene añadiendo la matriz identidad a la matriz de covarianza. El objetivo es obtener la inversa mediate operaciones simples sobre las filas de la matriz aumentada. Esto puede conseguirse cuando la matriz con la que se trabaja en el proceso cumple una serie de propiedades, tales como el hecho de que todas las filas que son cero están en la parte inferior de la matriz, que el elemento delantero de cada fila diferente de cero es uno (denominado pivote), y que todos los elementos por debajo y por encima de un pivote son cero. Aprovechando estas propiedades podemos calcular K 1 n n de forma eficiente en la GPU. 4. Utilizando la inversa de la matriz de covarianza, podemos calcular el resultado del filtro RXF aplicado por el algoritmo RX a todos los píxels de la imagen de forma sencilla, procesando cada píxel con un thread (tal y como se muestra en la Fig. 5.12) y utilizando un grid de bloques (con sus correspondientes threads) similar al que se muestra en la Fig Dichos threads aplican el filtro RXF de forma independiente para cada píxel de la imagen, asignando un valor a cada uno de dichos píxels que da como resultado una matriz de valores. Dichos valores pueden ser utilizados para generar un conjunto de p targets a partir de los valores máximos obtenidos, o bien la matriz de valores puede analizarse construyendo la curva ROC asociada a la imagen de probabilidad resultante de interpretar dicha matriz como un conjunto de niveles digitales Implementación de Morph en GPU La implementación en GPU del algoritmo Morph se ha llevado a cabo intentando explotar al máximo el paralelismo que ofrece la GPU, aprovechando la fina granularidad del paralelismo que permite adoptar este algoritmo en el que las operaciones morfológicas se pueden implementar de forma casi independiente, en especial, dado que la GPU es un sistema de memoria compartida que permite minimizar considerablemente el impacto de los efectos de borde ilustrados en la Fig De este modo, la implementación en GPU de Morph se basa en acelerar al máximo la doble operación de dilatación morfológica realizada por el algoritmo Morph. A continuación se muestran los pasos que se han seguido para implementar el algoritmo Morph en una arquitectura GPU: 1. Al igual que en implementaciones anteriores, el primer paso consiste en almacenar

93 5.2 Implementaciones paralelas en GPUs 75 la imagen hiperespectral F en la memoria local de la GPU. 2. A continuación se realiza en paralelo la primera operación de dilatación morfológica realizada sobre la imagen original F, la cual está basada en el elemento estructural quedefine laventanas interna. Paraello, sedefine un grid de procesamientoformado por tantos bloques como píxels tiene la imagen F, y en el que cada bloque de procesamientorealiza todas lasoperacionesasociadasala ventanas interna centrada alrededor de cada píxel F(x, y) de la imagen. Dichas operaciones, que consisten en aplicar la distancia SAD entre cada píxel de la ventana y todos los píxels vecinos dentro de la misma, son efectuadas por los hilos asociados a cada bloque, que serán tantos como pixels de la imagen contiene la ventana (ver Fig. 5.15). Figura 5.15: El procesamiento en la GPU del algoritmo Morph(basado en la utilización de elementos estructurales que definen una ventana alreadedor de cada píxel de la imagen) se realiza definiendo un grid de bloques con tantos bloques como píxels tiene la imagen, y en el que cada bloque de procesamiento realiza todas las operaciones asociadas a la ventana. 3. Seguidamente se realiza en paralelo la segunda operación de dilatación morfológica realizada sobre la imagen original F, la cual está basada en el elemento estructural que define la ventana S externa y que utiliza un esquema muy similar al mencionado en el paso anterior, pero que define un nuevo grid de procesamiento con el mismo número de bloques que en el paso anterior (tantos como píxels tiene la imagen F) pero con un mayor número de hilos asociados a cada bloque como resultado del mayor tamaño de la ventana considerada en este paso. 4. Una vez que todos los píxels de la imagen hiperespectral F han sido procesados por las dos ventanas, se calcula la distancia píxel a píxel entre las imágenes resultantes

94 76 Implementaciones paralelas utilizando el ángulo espectral y asignando el valor obtenido a cada uno de los píxels de la imagen, operación que da como resultado una matriz de valores. Al igual que en el caso del algoritmo RX anteriormente comentado, dichos valores pueden ser utilizados para generar un conjunto de p targets a partir de los valores máximos obtenidos, o bien la matriz de valores puede analizarse construyendo la curva ROC asociada a la imagen de probabilidad resultante de interpretar dicha matriz como un conjunto de niveles digitales.

95 Capítulo 6 Resultados experimentales En este capítulo describimos los resultados obtenidos en la validación experimental de los nuevos algoritmos e implementaciones paralelas propuestas. En primer lugar, describimos la imagen hiperespectral en la que se ha centrado el estudio. Dicha imagen ofrece la oportunidad de analizar un escenario real en el que la identificación de anomalías constituye un objetivo relevante, en nuestro caso asociado con la detección automática de píxels anómalos (correspondientes a fuegos) en un entorno complejo (zona urbana centrada en el World Trade Center de Nueva York, cinco días después de los atentados terroristas del 11 de Septiembre de 2011). A continuación, describimos los resultados obtenidos en cuanto a la precisión de los algoritmos considerados en el proceso de detección de anomalías anteriormente descrito. Seguidamente, mostraremos los resultados obtenidos en cuanto al rendimiento computacional de las diferentes implementaciones (serie y paralelo) de dichos algoritmos, analizando factores como el incremento de rendimiento, la relación entre el tiempo de procesamiento y el tiempo de comunicación, el balanceo de carga, la escalabilidad en función del tamaño de la imagen, etc. Por último, discutimos de forma global los resultados mostrados a lo largo del capítulo, haciendo especial énfasis en la discusión del estudio comparativo y cuantitativo realizado utilizando todas las métricas e implementaciones consideradas Imagen hiperespectral considerada La imagen hiperespectral en la que centramos los estudios llevados a cabo en el presente trabajo fue adquirida por el sensor AVIRIS, operado por el Jet Propulsion Laboratory de NASA. La imagen fue tomada el día 16 de septiembre de 2001, justo cinco días después de los ataques terroristas que derrumbaron las dos torres principales y otros edificios del complejo World Trade Center (en adelante, WTC). Las características principales de la imagen aparecen resumidas en la Tabla 6.1. Conviene destacar que la resolución espacial de la imagen es muy elevada (1.7 metros por píxel) para lo que suele ser habitual en el caso de AVIRIS, en el que la resolución espacial habitual suele rondar los 20 metros por píxel. Esto se debe a que la imagen utilizada corresponde a un vuelo de baja altura, mediante el cual se pretendía obtener la mayor resolución espacial

96 78 Resultados experimentales posible sobre la zona de estudio (WTC) al contrario de otros estudios con el mismo sensor, en los que se pretende cubrir un área más o menos extensa. Por este motivo, el impacto de los píxels mezcla en nuestro estudio es mucho menor de lo que cabría esperar en un entorno de análisis hiperespectral habitual, permitiéndonos así la realización de un estudio más centrado en la habilidad de los algoritmos utilizados en cuanto a la detección de anomalías (fuegos) independientemente de su sensibilidad a la presencia de píxels mezcla en la imagen. Líneas 2133 Muestras 512 Bandas 224 Rango espectral 0,4-2,5 µm Resolución espacial 1.7 metros/píxel tamaño 1 GByte aproximadamente Tabla 6.1: Características de la imagen hiperespectral AVIRIS obtenida sobre la ciudad de Nueva York, cinco días después del atentado terrorista del 11 de Septiembre de La Fig. 6.1 muestra una composición en falso color de la imagen considerada. En dicha composición, utilizamos las bandas espectrales localizadas en 1682, 1107 y 655 nanómetros como rojo, verde y azul, respectivamente. En función de la composición en falso color utilizada, las zonas de la imagen con predominancia de vegetación reciben tonalidades verdes, mientras que las zonas con fuegos aparecen con tonos grisáceos. El humo que proviene del área del WTC (enmarcada en el rectángulo de color rojo) y que se dirige al sur de la isla de Manhattan recibe un tono azul claro en la composición de falso color, debido a la elevada reflectancia del humo en la longitud de onda correspondiente a 655 nanómetros. A la hora de realizar los diferentes estudios de validación relativa a la precisión en la detección de anomalías (fuegos) en la imagen, hemos utilizado un mapa térmico de referencia desarrollado por el servicio geológico de Estados Unidos (USGS), el cual muestra la ubicación espacial exacta de los fuegos (denominados hot spots) en la zona del WTC 1 [2]. Estos puntos se representan con colores cercanos al rojo claro, naranja y amarillo en la Fig. 6.2 y están etiquetados con las letras: A, B, C, D, E, F, G y H. Para cada uno de estos píxels, USGS además proporciona las coordenadas de latitud y longitud, por lo que en total existe información de referencia acerca de 8 targets u objetivos en la imagen, que a su vez pueden considerarse píxels anómalos debido a que constituyen una minoría de los píxels de la imagen y su firma espectral es completamente diferente a la de los píxels de los objetos que los rodean. Como puede apreciarse en la Fig. 6.2, el mapa está centrado en la región en la que las torres se derrumbaron. Las temperaturas de los fuegos oscilan entre los 700 y los 1300 grados Farenheit (371 C a 704 C). En lo sucesivo, nos referiremos a este mapa térmico como información de referencia a la hora de validar la precisión en la detección de targets sobre esta imagen. El mapa térmico ha sido utilizado para generar una imagen verdad-terreno(ver Fig. 6.3) en la que se muestran las coordenadas exactas de los píxels que componen cada uno de los fuegos (targets) en la 1

97 6.1 Imagen hiperespectral considerada 79 imagen AVIRIS WTC. Como complemento a la Fig. 6.3, la Tabla 6.2 muestra el número de píxels que componen cada uno de los targets considerados. Para finalizar este subapartado, conviene destacar que el proceso de detección automática de fuegos en el WTC constituye un problema muy complejo, principalmente debido a la diversidad del entorno urbano en el que los fuegos se ubican, que dificulta las tareas de discriminación entre objetos de interés(fuegos) y fondo debido, principalmente, a la complejidad del fondo, que comprende numerosas sustancias espectrales distintas como cabría esperar en un paisaje de tipo urbano. Figura 6.1: Composición en falso color de la imagen hiperespectral AVIRIS obtenida sobre la ciudad de Nueva York, cinco días después del atentado terrorista del 11 de Septiembre de El recuadro en rojo marca la zona donde se sitúa el World Trade Center en la imagen.

98 80 Resultados experimentales Figura 6.2: Mapa térmico asociado a la zona del World Trade Center, obtenido cinco días después del atentado terrorista del 11 de Septiembre de Figura 6.3: Imagen verdad terreno asociada a la imagen AVIRIS obtenida sobre el World Trade Center (los píxels en blanco indican la presencia de fuegos) Arquitecturas paralelas consideradas En el presente apartado describimos las dos arquitecturas paralelas consideradas en la validación experimental de los algoritmos paralelos propuestos en la presente memoria. Conviene destacar que el apartado de la presente memoria contiene una descripción detallada de las ventajas e inconvenientes asociados a la implementación de algoritmos de análisis hiperespectral en estos dos tipos de arquitecturas (clústers de computadores

99 6.2 Arquitecturas paralelas consideradas 81 Target Número de píxels A 13 B 6 C 5 D 6 E 5 F 23 G 16 H 10 Total 84 Tabla 6.2: Número de píxels que forman cada target en la imagen AVIRIS sobre el World Trade Center. frente a GPUs). En este sentido, los sistemas paralelos seleccionados constituyen ejemplos representativos de ambos tipos de arquitecturas. A a continuación procedemos a detallar las características técnicas de ambos sistemas, que comprenden el clúster Thunderhead del centro GSFC de NASA y un conjunto de GPUs de altas prestaciones de NVidia TM. A lo largo de la memoria, realizaremos comparativas referentes al coste y rendimiento obtenido tras implementar algoritmos de análisis hiperespectral orientados a la detección de targets y anomalías en ambos tipos de arquitecturas Clúster Thunderhead de NASA GSFC El supercomputador Thunderhead del centro GSFC de NASA es un clúster de tipo Beowulf. Sus especificaciones se muestran en la Tabla 6.3. Este clúster surgió como una evolución del sistema HIVE disponible en dicho centro. El sistema está compuesto por nodos de computación idénticos, conectados entre sí por diferentes redes de interconexión. La Fig. 6.4 muestra una fotografía del clúster mientras que la Fig. 6.5 muestra la topología de red del sistema. Como se ha comentado en el apartado de la presente memoria, Thunderhead fue uno de los primeros clústers de tipo Beowulf dedicados de forma casi exclusiva a aplicaciones de procesamiento de imágenes de la superficie terrestre obtenidas de forma remota en general, y a procesamiento de imágenes hiperespectrales en particular. Sistema Operativo Linux Fedora Core Procesador IntelR XeonR 2.4 GHz Dual Memoria en cada nodo 1 Gbit = MBytes Pico global TFLOPs Versión de MPI MPICH Número de nodos 268 duales (536 procesadores) Red de interconexión 1 Myrinet 2000 Red de interconexión 2 Gigabit Ethernet Red de interconexión 3 Fast Ethernet Tabla 6.3: Especificaciones del clúster Thunderhead ubicado en el centro GSFC de NASA.

100 82 Resultados experimentales Figura 6.4: Clúster Thunderhead ubicado en el centro GSFC de NASA. Figura 6.5: Topología de interconexión del cluster Thunderhead de NASA GSFC GPUs NVidia TM GeForce 9800GX2 y GTX275 En el presente trabajohemos utilizado dos GPUs de NVidia TM, uno de los principales fabricantes de GPUs a nivel internacional. Ambas GPUs se encuentran conectadas a un sistema con CPU Intel Q9450 (4 núcleos) sobre una placa ASUS Striker II NSE (con chipset NVIDIA 790i) y 4 GBytes de memoria RAM a 1333 MHz. También hemos considerado una CPU Intel Pentium IV a 3.00GHz en nuestros experimentos. La primera GPU utilizada en nuestras pruebas es la NVidia TM GeForce 9800GX2, que aparece mostrada en la Fig. 6.6(a). La característica principal de esta GPU es que fue una de las primeras tarjetas duales (con 2 GPUs) del mercado. La segunda GPU utilizada en nuestras pruebas es la NVidia TM GeForce GTX275, que aparece mostrada en la Fig. 6.6(b). En estudios posteriores hemos utilizado GPUs orientadas a aplicaciones de propósito general, tales como NVidia TM Tesla C1060, obteniendo resultados similares o ligeramente por debajo en cuanto a rendimiento con respecto a los que serán mostrados para el caso de la arquitectura NVidia TM GeForce GTX275. Sin embargo, en el presente trabajo nos hemos centrado en arquitecturas GPU no específicamente orientadas a

101 6.3 Análisis de precisión 83 aplicaciones de computación de propósito general, con idea de mostrar la flexibilidad de este tipo de arquitectura en distintos entornos (video-juegos, computación, visualización, etc.) Finalmente, la Tabla 6.4 muestra una comparativa de las características técnicas de las dos GPUs de NVidia TM consideradas en el presente trabajo. (a) GeForce 9800GX2 (b) GeForce GTX275 Figura 6.6: GPUs de NVidia TM utilizadas en el presente trabajo. GPU GeForce 9800GX2 GeForce GTX275 Frecuencia del núcleo 600 MHz 715 MHz Shader Clock 1500 MHz 1550 MHz Shader Model Ratio de relleno de texturas 76.8 billones/seg billones/seg. Stream Processors 256 (Combinados) 240 Memoria de vídeo 1024MB (combinadas) 1792 MB Tipo de memoria GDDR3 GDDR3 Velocidad de la memoria 2000 MHz 1260 MHz Interfaz de memoria 512-bit (combinadas) 448-bit Ancho de banda de la memoria 128 GB/sec GB/sec. Tabla 6.4: Comparativa de las características técnicas de las GPUs NVidia TM GeForce 9800GX2 y GTX275 utilizadas en el presente trabajo Análisis de precisión En el presente apartado realizamos un estudio de la precisión de los diferentes algoritmos considerados en el proceso de detección de targets y anomalías. Para realizar este tipo de comparativa, utilizamos el ángulo espectral ó SAD (descrito en el apartado de la presente memoria) para evaluar la similaridad espectral [46] entre los píxels detectados como targets por el algoritmo que se desea evaluar con respecto a los píxels de referencia conocidos a priori. En este sentido, lo que se prentende realizar es una evaluación objetiva de la precisión de cada algoritmo en el proceso de detección. Aquellos targets cuyo espectro tienen un valor de SAD con respecto al target conocido menor que un cierto umbral se consideran targets similares 2 Si el valor de la medida SAD 2 Definimos un pixel similar espectralmente como un píxel cuya firma espectral es muy parecidas con respecto a la firma espectral del objeto de referencia con el que se compara. Los pixels similares pueden

102 84 Resultados experimentales entre dos firmas espectrales es cero, se considera que las firmas espectrales son idénticas [47]. Alternativamente, en el caso de algoritmos que no producen explícitamente las coordenadas de los targets o anomalías sino un valor de probabilidad asociado a cada píxel, empleamos curvas ROC para evaluar la capacidad de dichos algoritmos para encontrar los objetos buscados independientemente de valores umbrales concretos. La metodología asociada a la construcción de curvas ROC fue descrita en el apartado de la presente memoria. Conviene destacar que, en los experimentos realizados con la imagen AVIRIS obtenida sobre el WTC, el número de targets o anomalías a detectar (condición de terminación de losalgoritmos)seha fijadoap = 30trasaplicarel conceptodedimensionalidadvirtualde la imagen[8] que calcula el número de sustancias espectralmente diferentes presentes en la misma, asegurando así que todas las firmas espectrales relevantes son consideradas en el proceso de búsqueda manteniendo el valor de p en un rango relativamente bajo de acuerdo con los experimentos realizados. Llegados a este punto, destacamos que en la mayor parte de los algoritmos considerados, al incrementar el valor de p se consiguió detectar todos o casi todos los targets presentes en la imagen considerada. No obstante, en la mayor parte de las pruebas realizadas hemos decidido fijar el número de targets a detectar a un número relativamente bajo (p = 30) para poder así realizar comparativas entre los diferentes algoritmos empleando un mismo valor de este parámetro de entrada, obtenido a partir de un criterio objetivo y cuantificable como es la anteriormente mencionada dimensionalidad virtual de la imagen. El resto del presente apartado se estructura de la siguiente forma. En primer lugar, evaluamos la precisión obtenida por las distintas implementaciones de los algoritmos ATGP, RX y Morph (en clústers y GPUs) de forma genérica, desde el punto de vista del número de targets correctamente detectados por parte de dichos algoritmos y utilizando la distancia SAD como métrica fundamental en la comparativa y el valor p = 30 como número de targets a detectar establecido a priori. Seguidamente, analizamos el valor de p necesario en cada algoritmo para detectar todos los fuegos presentes en el área del WTC. Finalmente, realizamos una comparativa centrada en los algoritmos que ofrecen un valor de probabilidad asociado a cada píxel, es decir, RX y Morph, utilizando curvas ROC como métrica fundamental empleada en dicha comparación. El principal motivo de estudiar RX y Morph de forma separada es que, en general, dichos algoritmos ofrecen las mejores prestaciones en el presente estudio. Otro motivo importante es que la comparativa entre estos dos métodos y el método ATGP (realizada en el primer subapartado) requiere fijar el valor de p a un determinado valor a priori mientras que, en su modo de operación habitual, tanto RX como Morph no necesitan fijar este valor a priori ya que su modo de funcionamiento es asociar un valor de probabilidad a cada píxel de la imagen (al contrario que ATGP, que identifica píxels candidatos iterativamente a partir de un valor inicial). Por tanto, consideramos que RX y Morph constituyen una clase diferente de algoritmos con respecto a ATGP y hemos decidido incluir una comparativa específica entre ambos (basada en curvas ROC) atendiendo a las propiedades concretas de dichos algoritmos. formar parte del conjunto de pixels que constituyen dicho objeto, o bien constituir el objeto buscado en sí.

103 6.3 Análisis de precisión 85 En el siguiente subapartado, no obstante, realizamos una comparativa de ambos métodos con ATGP para cubrir todo el espectro de posibilidades en cuanto a la validación de la precisión obtenida por parte de los algoritmos considerados en la presente memoria Comparativa de ATGP, RX y Morph Antes de analizar, de forma comparativa, la precisión de los algoritmos ATGP, RX y Morph en el proceso de detección automática de fuegos en la imagen AVIRIS obtenida sobre el WTC, destacamos que los resultados descritos en el presente apartado se refieren tanto a las implementaciones serie como a las implementaciones paralelas (obtenidas en clústers y GPUs) de dichos algoritmos. Esto se debe a que los resultados de precisión obtenidos para las versiones serie y las correspondientes versiones paralelas son idénticos. A pesar de que los algoritmos se ejecutan en diferentes arquitecturas, al desarrollar las versiones paralelas hemos asegurado que el funcionamiento de los mismos fuese idéntico con respecto a sus correspondientes versiones serie, independientemente de la arquitectura en la que dicho algoritmo se haya implementado. A pesar de que los algoritmos fueron aplicados sobre la imagen AVIRIS completa, la Fig. 6.7 muestra el fragmento que emplearemos para ilustrar los resultados de detección obtenidos por los diferentes algoritmos. Dicho fragmento corresponde a la zona marcada con un recuadro en la Fig En lo sucesivo, mostramos únicamente los resultados obtenidos por parte de los diferentes algoritmos sobre dicho fragmento para simplificar la interpretación de dichos resultados. Figura 6.7: Fragmento de la imagen AVIRIS considerada en el presente estudio. Dicho fragmento se encuentra centrado en la región WTC, y será empleado para ilustrar de forma gráfica los resultados de precisión obtenidos por diferentes algoritmos. Con vistas a simplificar la comparativa, en lo sucesivo utilizamos la nomenclatura descrita en la Fig. 6.8 (basada en un sencillo código de colores) para referirnos a un target detectado o bien a un target idéntico. El umbral escogido para denominar a un determinado píxel como suficientemente similar (en términos del valor SAD resultante al

104 86 Resultados experimentales Figura 6.8: Nomenclatura utilizada(basada en un sencillo código de colores) para denotar un target idéntico (derecha, en amarillo) o un target detectado (izquierda, en verde). comparar las firmas espectrales asociadas) con respecto a un target de referencia y, por tanto, para etiquetar el target asociado como detectado es de 0.3 radianes (equivalente a 17 grados), valor utilizado en trabajos previos[47] como un valor aceptable de similaridad espectral y adoptado por defecto en el presente estudio. Recordamos que un valor de SAD de cero implica que las firmas espectrales comparadas son iguales y, por tanto, en este caso etiquetamos el target detectado como idéntico. Algoritmo A B C D E F G H ATGP (Norma 1) 0, , , , , , , ,62394 ATGP (Norma 2) 0, , , , , , , ,45081 ATGP (Norma ) 0, , , , , , , ,46425 ATGP (SAD) 0, , , , , , , ,52727 ATGP (SID) 0, , , , , , , ,35451 ATGP (BSMSE) 0, , , , , , , ,45081 ATGP (BSMME) 0, , , , , , , ,46425 ATGP (NVD) 0, , , , , , , ,54263 ATGP (Entropía) 1, , , , , , , ,02844 ATGP (SAR SNC) 0, , , , , , , ,26837 ATGP (Ortogonal) 0, , , , , , , ,38034 RX 0, , , , , , , ,71031 Morph 0, , , , , , , ,20271 Tabla 6.5: Valores angulares (radianes) obtenidos tras comparar las firmas espectrales asociadas a los targets de referencia(fuegos) identificados por USGS en la imagen AVIRIS WTC en comparación con las firmas espectrales identificadas por los diferentes algoritmos considerados (ATGP implementado con diferentes distancias, RX y Morph). En todos los casos, el número de targets identificados es p = 30 y la tabla sólo muestra el valor de similaridad espectral más bajo obtenido al comparar todos los targets identificados por el algoritmo considerado con cada target de referencia. La Tabla 6.5 muestra los valores angulares (en radianes) obtenidos tras comparar las firmas espectrales asociadas a los targets (fuegos) identificados por USGS en la imagen AVIRIS WTC, en comparación con las firmas espectrales identificadas por los diferentes algoritmos considerados (ATGP implementado con diferentes distancias, RX y Morph). En todos los casos, el número de targets identificados es p = 30. Para facilitar la interpretación de los resultados, la tabla solamente muestra el valor de similaridad espectral más bajo obtenido al comparar todos los targets identificados por el algoritmo considerado con cada target de referencia. En la tabla se muestran con fondo amarillo los targets que han sido identificados de forma exacta (con distancia SAD igual a 0 radianes) y en verde los targets similares (según el valor umbral de 0.3 radianes considerado). Llegados a este punto, conviene destacar que la aplicación del método de relajación en

105 6.3 Análisis de precisión 87 el algoritmo ATGP mejora notablemente los resultados por dicho método. La Tabla 6.6 muestra los resultados por ATGP con el método de relajación, en la que no aparece reflejada la distancia ortogonal ya que dicha distancia evita que un mismo target se detecte varias veces y, por tanto, no es necesario aplicar el método de relajación en este caso. Algoritmo A B C D E F G H ATGP (Norma 1) 0, , , , , , , ,54323 ATGP (Norma 2) 0, , , , , , , ,45081 ATGP (Norma ) 0, , , , , , , ,46425 ATGP (SAD) 0, , , , , , , ,52727 ATGP (SID) 0, , , , , , , ,38821 ATGP (BSMSE) 0, , , , , , , ,45081 ATGP (BSMME) 0, , , , , , , ,46425 ATGP (NVD) 0, , , , , , , ,47779 ATGP (Entropía) 1, , , , , , , ,02844 ATGP (SAR SNC) 0, , , , , , , ,26837 Tabla 6.6: Valores angulares (radianes) obtenidos tras comparar las firmas espectrales asociadas a los targets de referencia(fuegos) identificados por USGS en la imagen AVIRIS WTC en comparación con las firmas espectrales identificadas por el algoritmo ATGP (implementado con diferentes distancias y aplicando el método de relajación). En todos los casos, el número de targets identificados es p = 30 y la tabla sólo muestra el valor de similaridad espectral más bajo obtenido al comparar todos los targets identificados por el algoritmo considerado con cada target de referencia. Implementación Normal Con relajación Algoritmo Detectado Similar Detectado Similar ATGP (Norma 1) C A, D A, C B, D ATGP (Norma 2) C A, D A, C B, D ATGP (Norma ) C A, D C A, B, D ATGP (SAD) C A, D A, C B, D ATGP (SID) C A, D A, C D ATGP (BSMSE) C A, D A, C B, D ATGP (BSMME) C A, D C A, B, D ATGP (NVD) C A, D C A, D ATGP (Entropía) Ninguno Ninguno Ninguno Ninguno ATGP (SAR SNC) A, C B, D, G, H A, C B, D, G, H ATGP (Ortogonal) C, D A, B N/A RX A, C, D B N/A Morph A, B, C, D E, F, G, H N/A Tabla 6.7: Resumen de resultados obtenidos con los diferentes algoritmos de detección de targets (en su versión normal y relajada) y métricas de similaridad consideradas en la imagen AVIRIS WTC. En todos los casos, el número de targets identificados es p = 30. En la tabla, N/A indica que no se aplicó la versión con relajación. Una vez mostrados los valores angulares de similaridad obtenidos en los diferentes experimentos, podemos sintetizar los resultados de detección de targets obtenidos en una única tabla, para poder comparar dichos resultados de forma más sencilla. En concreto, la Tabla 6.7 muestra de forma resumida los targets que han sido detectados en cada uno

106 88 Resultados experimentales A C C (a) Sin relajación (b) Con relajación Figura 6.9: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma 1 (p = 30). de los experimentos realizados, utilizando todos los algoritmos (en su versión normal y relajada) y con las diferentes distancias consideradas. En todos los casos, se considera como número de targets a detectar p = 30. Como puede apreciarse en la Tabla 6.7, todas las métricas de similaridad utilizadas en combinación con el algoritmo ATGP (excepto la entropía) detectan el target etiquetado como C y mientras que la medida SAR SNC permite detectar además el target A. En cuanto a la medida ortogonal, podemos ver permite detectar los targets A y B y que, además del target C, detecta también el target D. Por último, tanto RX como Morph son los algoritmos que más targets detectan, reconociendo perfectamente los targets A, C y D y también identificando el target B en caso de RX, y todos los targets restantes en el caso de Morph. Por último, destacamos que el método de relajación permite que ATGP mejore sensiblemente los resultados obtenidos con diferentes medidas. Por razones ilustrativas, las Figs. 6.9 a 6.21 muestran los resultados obtenidos por todos los métodos de detección de targets considerados en el presente estudio al ser aplicados sobre la imagen AVIRIS WTC, incluyendo el algoritmo ATGP implementado con las medidas: Norma 1, Norma 2, Norma, SAD, SID, BSMSE, BSMME, NVD, Entropía, SAR SNC y ortogonal, así como los algoritmos RX y Morph. En todos los casos, se considera un número de targets a detectar de p = 30. Los resultados de detección mostrados en las Figs. 6.9 a 6.21 revelan que hay cierta armonía entre las distintas medidas. El píxel más brillante de la imagen es el primer target detectado por ATGP utilizando todas las medidas aplicadas y este target es también detectado por el algoritmo RX, pero no es uno de los targets etiquetados por parte de USGS. Por lo demás, las Figs. 6.9 a 6.21 también relevan que las diferentes medidas aplicadas en la implementación de ATGP suelen centrarse en determinadas zonas, existiendo una variación mínima en la localización de los targets detectados. En el caso particular de la

107 6.3 Análisis de precisión 89 A C C (a) Sin relajación (b) Con relajación Figura 6.10: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma 2 (p = 30). C C (a) Sin relajación (b) Con relajación Figura 6.11: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Norma (p = 30). Entropía, sólo se detecta un target (el más brillante). Esto se debe a que los logaritmos calculados obtienen el mismo valor en cada iteración, dado que algunas de las bandas de la imagen tienen valores iguales a cero, en cuyo caso el logaritmo es indefinido. En cuanto a la diferencia de resultados entre las versiones normal y relajada en el algoritmo ATGP, el hecho de detectar un mayor número de targets utilizando la versión relajada se debe a que, a diferencia de la versión normal, no se repiten los targets detectados en ningún momento, por lo que se obtienen resultados más variados en cuanto al número de

108 90 Resultados experimentales A C C (a) Sin relajación (b) Con relajación Figura 6.12: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SAD (p = 30). A C C (a) Sin relajación (b) Con relajación Figura 6.13: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SID (p = 30). targets detectados con el mismo número de iteraciones. Es preciso destacar también que los algoritmos RX y Morph son los que mejores resultados ofrecen, detectando gran parte de los targets especificados como referencia por parte de USGS en un número reducido de iteraciones.

109 6.3 Análisis de precisión 91 A C C (a) Sin relajación (b) Con relajación Figura 6.14: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: BSMSE (p = 30). C C (a) Sin relajación (b) Con relajación Figura 6.15: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: BSMME (p = 30) Número de iteraciones necesarias en cada algoritmo Los resultados de precisión mostrados hasta el momento corresponden a un caso de estudio basado en ejecutar los diferentes algoritmos considerados asumiendo que el númerodetargets adetectaresdep = 30.Sinembargo,enlaTabla6.2observábamosque el número de píxels asociados a cada target es variable, existiendo un total de 84 píxels, los cuales se encuentran asociados a un total de 8 targets. Este tipo de consideración hace que, en diversas aplicaciones orientadas a la detección de targets, generalmente se

110 92 Resultados experimentales C C (a) Sin relajación (b) Con relajación Figura 6.16: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: NVD (p = 30). (a) Sin relajación (b) Con relajación Figura 6.17: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: Entropía (p = 30). considera detectado un target cuando el algoritmo reconoce al menos uno de los píxels que forman parte del mismo. Sin embargo, con p = 30 iteraciones en muchos casos no fue posible detectar todos los targets por lo que en el presente subapartado analizamos el número de iteraciones que cada algoritmo necesita para detectar al menos uno de los píxels que component cada target. Para ello, la Tabla 6.8 ilustra la iteración (valor de p) en el que se considera detectado cada uno de los 8 targets de referencia por parte de los tres algoritmos considerados: ATGP, RX y Morph, con idea de ilustrar el número

111 6.3 Análisis de precisión 93 A A C C (a) Sin relajación (b) Con relajación Figura 6.18: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: SAR SNC (p = 30). C D Figura 6.19: Resultados de detección de targets obtenidos por el algoritmo ATGP implementado con la métrica: ortogonal (p = 30). de iteraciones necesario para encontrar el mayor número de targets posible por parte de cada algoritmo. En el caso de ATGP, la distancia escogida es SAD, y para todos los algoritmos considerados se realizó un máximo de p = 500 iteraciones. A partir de los resultados en la Tabla 6.2, podemos comprobar el número de iteraciones necesarias para detectar cada target. Por ejemplo, en un total de p = 500 iteraciones el target H no puede ser detectado. Si analizamos la firma espectral de este target, podemos encontrar una ligera diferencia con respecto a los demás. Para analizar esta diferencia tomaremos como ejemplo píxels correspondientes a los targets C, D y H. La Fig y la Fig muestran, respectivamente, la firma espectral de un píxel correspondiente

112 94 Resultados experimentales A C D Figura 6.20: Resultados de detección de targets obtenidos por el algoritmo RX (p = 30). Figura 6.21: Resultados de detección de targets obtenidos por el algoritmo Morph (p = 30). al target C y D. Como puede apreciarse en dichas figuras, estas firmas espectrales cuentan con valores de radiancia altos en las longitudes de onda ubicadas entre 2000 y 2500 nanómetros. Por otro lado, la Fig muestra la firma espectral de un píxel Algoritmo Targets detectados A B C D E F G H ATGP (SAD) A, B, C, D, E, F RX A,B,C,D,E,F,G Morph A,B,C,D Tabla 6.8: Número de iteraciones necesarias para detectar los diferentes targets de referencia empleando los algoritmos ATGP, RX y Morph con un máximo de p = 500 iteraciones.

113 6.3 Análisis de precisión 95 Figura 6.22: Firma espectral del target etiquetado como C por USGS en la zona del World Trade Center. Figura 6.23: Firma espectral del target etiquetado como D por USGS en la zona del World Trade Center. correspondiente al target H. A diferencia de las anteriores (y del resto de targets), esta firma espectral se caracteriza por contar con valores muy bajos en las longitudes de onda antes mencionadas. Quizás esta divergencia pueda deberse a problemas en la corrección atmosférica o en el proceso de etiquetado del target. En cualquier caso, hemos comprobado experimentalmente que dichos aspectos solamente se producen en el target etiquetado como H y no en el resto de targets, por lo que en lo sucesivo continuamos nuestro análisis de precisión sin tener en cuenta estos aspectos. Por último, mostramos algunas firmas espectrales correspondientes a otros materiales en la imagen AVIRIS WTC. En concreto, incluimos firmas espectrales características de vegetación (ver Fig. 6.25), agua (ver Fig. 6.26) y zonas urbanas (ver Fig. 6.27). Estas firmas espectrales ofrecen una idea acerca de la variabilidad espectral que tiene lugar en la escena, al tiempo que ilustran las detalladas características espectrales que ofrecen

114 96 Resultados experimentales Figura 6.24: Firma espectral del target etiquetado como H por USGS en la zona del World Trade Center. Figura 6.25: Firma espectral de vegetación en la imagen AVIRIS World Trade Center. los sensores hiperespectrales a la hora de identificar diferentes objetos, si bien es cierto que fenómenos como ruido y variabilidad espectral de las firmas asociadas a objetos similares pueden dificultar el análisis y revelar detalles ocultos (no distinguibles a simple vista) acerca de los objetos observados que dificultan el proceso de detección de targets y anomalías, en particular, en escenas complejas como la considerada en los experimentos, en la que los targets u objetos de interés (puntos calientes de los incendios) se encuentran rodeados por un fondo urbano no homogéneo y con elevada variabilidad espectral Estudio comparativo detallado de RX y Morph En el presente subapartado realizamos un estudio detallado de los dos algoritmos que mejor respuesta ofrecen en cuanto a la identificación de targets y anomalías: RX y Morph. En particular, ambos algoritmos ofrecen una salida diferente a la proporcionada por el

115 6.3 Análisis de precisión 97 Figura 6.26: Firma espectral de agua en la imagen AVIRIS World Trade Center. Figura 6.27: Firma espectral de una zona urbana en la imagen AVIRIS World Trade Center. algoritmo ATGP el cual directamente ofrece las coordenadas de los targets detectados. En el caso de los algoritmos RX y Morph, es necesario realizar un paso intermedio para convertir la imagen de probabilidad de detección de targets proporcionada por dichos algoritmos en un conjunto de píxels detectados que pueden asociarse a los targets. En concreto, dicha imagen puede interpretarse como una representación gráfica de la matriz resultado del algoritmo. Dado que disponemos de una imagen verdad terreno que resalta de forma específica y más clara (en color blanco) los objetos de interés en la imagen con respecto al fondo, representado en color nego (ver Fig. 6.3), podemos realizar un estudio para analizar las propiedades de detección de RX y Morph, ya que los valores que posee la matriz resultado pueden así utilizarse para generar diferentes gráficas que permiten analizar con mayor claridad la calidad de la precisión del algoritmo independientemente de valores umbrales concretos. Así pues, en el presente apartado utilizamos curvas ROC con el objetivo de determinar

116 98 Resultados experimentales el porcentaje de acierto de los algoritmos RX y Morph, cuya salida es una imagen de probabilidad. En el apartado de la presente memoria se describió en detalle el proceso de elaboración de una curva de este tipo. En nuestros experimentos, en primer lugar obtenemos los valores máximo y mínimo de esta matriz y seguidamente establecemos 10 valores umbrales equidistantes entre ellos (incluyendo el máximo y el mínimo). Una vez hecho esto, utilizamos los 10 valores umbrales para establecer si un target ha sido o no detectado utilizando el siguiente criterio: si el valor de probabilidad es inferior al umbral, se considera fondo de la imagen; en caso contrario, se considera perteneciente al target u objeto de interés. Esto supone aplicar 10 umbrales a la matriz de probabilidad obtenida por los algoritmos RX y Morph, calculando la información relativa al porcentaje de verdaderos positivos, y falsos positivos y representando la información de forma gráfica como se muestra en la Fig. 6.28, que muestra la curva ROC asociada al algoritmo RX. Figura 6.28: Curva ROC obtenida al evaluar la salida del algoritmo RX en función de la verdad terreno disponible para la imagen AVIRIS World Trade Center. Si calculamos el área de bajo la curva de la Fig (medida que suele utilizarse para evaluar la precisión de un algoritmo de detección de targets a partir de una imagen de probabilidad, independientemente del valor umbral considerado) obtenemos un área cercana al 94% para el algoritmo RX, lo cual revela las elevadas prestaciones del mismo a la hora de detectar correctamente los targets en el problema considerado. También es importante destacar que el algoritmo ATGP no puede evaluarse según el criterio del área bajo la curva ROC, ya que dicho algoritmo devuelve como salida las posiciones de los targets detectados y no un valor de probabilidad asociado a la detección de los mismos. Siguiendo la misma metodología para calcular la curva ROC, la Fig muestra los resultados obtenidos en la evaluación de la imagen de probabilidad proporcionada por el algoritmo Morph. Si calculamos el área bajo la curva en este caso, obtenemos un valor de 97 5%. Puede observarse cómo Morph mejora los resultados que obtiene el

117 6.3 Análisis de precisión 99 Figura 6.29: Curva ROC obtenida al evaluar la salida del algoritmo Morph en función de la verdad terreno disponible para la imagen AVIRIS World Trade Center. algoritmorx, consiguiendo un mayoráreabajo la curva, lo cual se traduce en una mayor precisión en la detección de targets. Otro aspecto importante en relación a la precisión obtenida por Morph en comparación con la obtenida por RX es el hecho de que Morph encuentra los targets más significativos en las primeras iteraciones del algoritmo y después detecta otros elementos. Por ejemplo Morph detecta, en las 20 primeras iteraciones, 16 pixels que forman parte de targets, concretamente 8 píxels asociados al target A, 2 píxels asociados al target B, 4 píxels asociados al target C y 2 píxels asociados al target D. En cambio, RX empieza a detectar píxels asociados a targets mucho más tarde, intercalando elementos que no son objetos de interés en el proceso de detección. Siguiendo con el mismo ejemplo, en las 20 primeras iteraciones RX solamente detecta 4 píxels que forman parte de targets, concretamente 1 del target A y 3 del target C. La Tabla 6.9 resume estos resultados. Por tanto, una de las mayores ventajas de Morph con respecto a RX y ATGP en cualquiera de sus versiones es la rapidez con la que encuentra los targets, como puede apreciarsetanto en la Tabla 6.8 como en la Tabla 6.9, en la que se observa que Morph en 18 iteraciones es capaz de detectar 4 targets diferentes, resultando 14 de las 18 iteraciones en la detección de píxels pertenecientes a otros targets. Por este motivo, pensamos que Morph es el algoritmo que ofrece mejores prestaciones en cuanto a detección de targets entre todos los algoritmos considerados.

118 100 Resultados experimentales Iteración RX Morph 1 - C 2 - C 3 - C C A 6 - D 7 - A 8 C A 9 - C 10 - A 11 - A A D 16 - A 17 - A 18 C B 19 - A 20 - B Aciertos 4 16 Errores 16 4 Tabla 6.9: Resúmen de targets detectados (en las 20 primeras iteraciones) por parte de RX y Morh en la imagen AVIRIS World Trade Center Análisis del rendimiento de ATGP, RX y Morph En el presente apartado describimos los resultados obtenidos por las versiones paralelas de los algoritmos desarrollados con respecto a sus correspondientes versiones serie. El apartado está estructurado de la siguiente forma. En primer lugar, describimos las medidas de rendimiento utilizadas. A continuación presentamos los resultados de rendimiento obtenidos en el clúster Thunderhead de NASA, aplicando las medidas de rendimiento consideradas y realizando una serie de comentarios generales acerca de dichos resultados. Seguidamente, presentamos los resultados de rendimiento obtenidos en las arquitecturas GPU consideradas. El apartado concluye con una discusión general de los resultados obtenidos en el clúster frente a los resultados obtenidos en la GPU. Dicha discusión se centra en los aspectos diferenciales de los dos tipos de arquitecturas consideradas, los cuales fueron introducidos en el capítulo 3 del presente documento. El resultado de dicha discusión es ofrecer una serie de recomendaciones prácticas, relativas al buen uso de las implementaciones desarrolladas en diferentes arquitecturas, en el contexto de la aplicación utilizada en el presente documento como caso de estudio ilustrativo Medidas de rendimiento utilizadas Una de las principales métricas para evaluar el rendimiento de un algoritmo paralelo es el incremento en el rendimiento o speedup [4]. Si denotamos el tiempo requerido

119 6.4 Análisis del rendimiento de ATGP, RX y Morph 101 para ejecutar un algoritmo paralelo en P procesadores como T P, el speedup puede aproximarse mediante la expresión T P = A P + BP P + C P, donde A P es una fracción secuencial (no paralelizable) del algoritmo paralelo, B P es la fracción paralela y C P es la sobrecarga introducida por las comunicaciones. En las implementaciones desarrolladas en el presente trabajo, hemos comprobado experimentalmente que la sobrecarga introducida por las comunicaciones puede solaparse con las fracciones A P y B P, por lo que la expresión normalmente queda reducida a T P = A P + BP P. Teniendo en cuenta las anteriores definiciones, podemos definir el incremento en el rendimiento o speedup para P procesadores mediante la siguiente expresión (conocida como ley de Amdahl): S P = T 1 T P T 1 A P + BP P +C P, (6.1) donde T 1 denota el tiempo medido para una versión secuencial real del algoritmoparalelo ejecutada en un único procesador. Esta relación viene a indicar que el speedup de un algoritmo paralelo normalmente no se incrementa de manera proporcional con el aumento en el número de procesadores. La razón de este comportamiento es que la fracción secuencial A P se hace proporcionalmente más importante con respecto a B P a medida que el número de procesadores aumenta y, por este motivo, el rendimiento del algoritmo paralelo depende en gran medida de la posibilidad de que A P sea lo más cercano a cero posible y de la posibilidad de solapar C P con los otros tiempos involucrados. Otramedida de granimportancia ala horade estudiarel rendimiento de un algoritmo paralelo es el balanceo de carga.si denotamos como T (max) P al tiempo de ejecución mayor obtenido por el algoritmo paralelo en el conjunto de P procesadores que componen la arquitectura paralela una vez distribuida la carga de trabajo, y como T (min) P al tiempo de ejecución menor obtenido por el algoritmo paralelo en el conjunto de P procesadores una vez distribuida la carga, podemos definir el balanceo de carga en P procesadores como D P = T (max) P /T (min) P. El balanceo de carga perfecto se obtiene por tanto cuando D P = 1, lo cual significa que la cargade trabajoestá igualmente repartidaentre todos los procesadores que componen el sistema paralelo de forma que todos terminan sus tareas de cómputo local al mismo tiempo Resultados en el clúster Thunderhead En el presente apartado comentamos los resultados obtenidos a lo largo de las pruebas realizadas en el cluster Thunderhead de GSFC. La Tabla 6.10 muestra los tiempos de procesamiento obtenidos al aplicar los diferentes algoritmos (en sus versiones serie y paralela) a la imagen AVIRIS WTC, utilizando distintos números de procesadores (solamente un total de P = 32 procesadores se encontraban disponibles para pruebas externas en el momento de realizar los experimentos) y un número de targets a identificar de p = 30. Conviene destacar que las implementaciones serie han sido cuidadosamente optimizadas aplicando diferentes flags de compilación y optimizaciones vectoriales. Como puede verse en la Tabla 6.10, los resultados de ATGP son similares en cuanto al tiempo de ejecución, exceptuando las medidas SID y Entropía, las cuales

120 102 Resultados experimentales Algoritmo Serie 2 CPUs 4 CPUs 8 CPUs 16 CPUs 32 CPUs ATGP (Norma 1) 260,43 191,33 97,28 50,00 27,72 19,80 ATGP (Norma 2) 235,78 182,74 94,383 49,42 25,46 19,28 ATGP (Norma ) 268,95 187,92 99,28 50,96 27,75 22,00 ATGP (SAD) 241,93 187,83 96,14 49,24 25,35 19,00 ATGP (SID) 2267, ,80 579,51 305,32 165,46 99,37 ATGP (BSMSE) 233,27 181,43 96,74 49,50 27,77 19,18 ATGP (BSMME) 247,11 180,73 96,36 50,29 28,38 21,00 ATGP (NVD) 240,56 186,39 95,43 49,55 27,43 19,22 ATGP (Entropía) 11151, , , ,00 685,17 683,50 ATGP (SAR SNC) 284,27 198,62 100,60 53,03 29,59 20,63 RX Comunicativo 68,86 32,46 16,88 9,14 5,67 4,67 RX Independiente 68,86 32,70 16,82 8,98 5,46 4,42 Morph 2650, ,68 657,74 333,70 169,98 85,37 Tabla 6.10: Tiempos de procesamiento (segundos) obtenidos al aplicar los diferentes algoritmos (en sus versiones serie y paralela) a la imagen AVIRIS World Trade Center, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = 30. Algoritmo 2 CPUs 4 CPUs 8 CPUs 16 CPUs 32 CPUs ATGP (Norma 1) ATGP (Norma 2) ATGP (Norma ) ATGP (SAD) ATGP (SID) ATGP (BSMSE) ATGP (BSMME) ATGP (NVD) ATGP (Entropía) ATGP (SAR SNC) RX Comunicativo RX Independiente Morph Tabla 6.11: Speedups obtenidos al aplicar los diferentes algoritmos (en sus versiones serie y paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores en Thunderhead y un número de targets de p = 30. presentan tiempos de ejecución mucho mayores. Esto se debe a que la complejidad de dichas medidas es superior al del resto de medidas, fundamentalmente por el uso de la operación de logaritmo. Por otra parte, el algoritmo RX (en sus versiones comunicativa e independiente) se muestra como el algoritmo más rápido en cuanto a tiempo de procesamiento. Finalmente, el algoritmo Morph aparece como el más escalable, si bien es cierto que el tiempo empleado por el algoritmo para detectar p = 30 targets es considerablemente mayor que el empleado por el resto de algoritmos. La Tabla 6.11 muestra los speedups obtenidos por las diferentes implementaciones en el clúster Thunderhead de GSFC, considerando de nuevo P = 32 procesadores y p = 30 targets. Como puede apreciarse, el algoritmo Morph presenta un comportamiento

121 6.4 Análisis del rendimiento de ATGP, RX y Morph 103 cercano al óptimo (speedup lineal), mientras que el resto de algoritmos presentan mayores problemas en cuanto a la escalabilidad, que empiezan a apreciarse a partir de 16 procesadores. Experimentalmente, hemos comprobado que Morph es el único algoritmo que mantiene su escalabilidad lineal aumentando el número de procesadores. Esto se debe a que tanto ATGP como RX son algoritmos iterativos que necesitan comunicar información a lo largo del proceso, y dicha comunicación aumenta a medida que el número de procesadores es mayor. En cambio, el algoritmo Morph se ha implementado asumiendo computaciones redundantes, por lo que no hay comunicaciones a lo largo del proceso y la escalabilidad del método es casi perfecta. También se observan en la Tabla 6.11 ciertos efectos de superescalabilidad para un número bajo de procesadores, en particular en el algoritmo RX y en el ATGP implementado con la entropía. En el caso de RX esto puede deberse a posibles mejoras en la implementación serie del algoritmo, mientras que en el caso del ATGP implementado con la entropía el impacto del cálculo de los logaritmos en la versión serie se intuye como el principal motivo de dichos efectos de superescalabilidad. En cualquier caso, en términos de speedup el algoritmo que ofrece mejores prestaciones es precisamente Morph, debido sin duda al hecho de que las comunicaciones en este algoritmo se minimizan con respecto a las del resto de métodos implementados. Con vistas a analizar en mayor detalle la escalabilidad del resto de algoritmos(dejamos fuera de la comparativa a Morph que ofrece resultados cercanos al speedup lineal) las Figs y 6.31 muestran una representación gráfica de los speedups obtenidos por el algoritmo ATGP en sus diferentes versiones, utilizando P = 32 procesadores y p = 30 targets sobre la imagen AVIRIS WTC. Como podemos apreciar, la mejor escalabilidad se obtiene con la distancia SID, incluso cuando el número de procesadores es alto. Por otro lado, la implementación basada en la entropía muestra un comportamiento superescalar en para un número bajo de procesadores pero después cae de forma precipitada al incrementarse el número de procesadores. En este caso particular, se observa en la Fig que se supera el límite de escalabilidad lineal. En este caso, pensamos que este efecto se debe a la sobrecarga de computación frente a comunicación, que provoca problemas de paginación en la memoria virtual como resultado de la gran dimensionalidad de las particiones cuando el número de procesadores es pequeño (al disminuir el tamaño de las particiones como consecuencia del incremento del número de procesadores ya no se produce este efecto). Finalmente, la Fig revela el buen comportamiento que ofrecen las versiones paralelas del algoritmo RX, destacando la leve mejoría (esperada, por otra parte) del algoritmo RX independiente frente al RX comunicativo. A raíz de los problemas comentados en el párrafo anterior en relación a la implementación ATGP con la distancia entropía, cabe preguntarse por qué el efecto de superescalabilidad solamente se produce con la implementación basada en la entropía y no conel restode medidas.larazónes quelaentropíasebasaen calcularun elevadonúmero de operaciones basadas en cálculos logarítmicos, que pueden encontrar el problema de que en la firma espectral existan ciertas bandas cuyos valores son cero (reflectancia nula en ciertas longigudes de onda), siendo el logaritmo de cero un valor indefinido. Este tipo de valores indefinidos tienden a producir fenómenos como el que ocurre en este caso. Además, estos valores se propagan, es decir, si calculamos el logaritmo de un elemento

122 104 Resultados experimentales Figura 6.30: Representación gráfica de los speedups obtenidos por diferentes implementaciones de ATGP (distancias: Norma 1, Norma 2, Norma, SAD y SID) a la imagen AVIRIS WTC, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = 30. Figura 6.31: Representación gráfica de los speedups obtenidos por diferentes implementaciones de ATGP (distancias: BSMSE, MSMME, NVD, Entropía y SAR SNC) a la imagen AVIRIS WTC, utilizando distintos números de procesadores y un número de targets de p = 30. del vector que define un píxel cuyo valor es cero y utilizamos ese valor para el resto de operaciones, el valor final será también indeterminado. Para evitar esta situación, hemos optado por realizar diferentes comprobaciones tras calcular cada medida para evitar que se propaguen los valores indeterminados a la matriz de valores intermedios calculada, y dichas comprobaciones tienen un impacto tanto en la implementación serie

123 6.4 Análisis del rendimiento de ATGP, RX y Morph 105 Figura 6.32: Representación gráfica de los speedups obtenidos por diferentes implementaciones de RX (comunicativo e independiente) a la imagen AVIRIS WTC, utilizando distintos números de procesadores en Thunderhead y un número de targets de p = 30. como en la implementación paralela que pueden afectar indirectamente a la escalabilidad y eficiencia de las mismas. En este sentido, en futuros estudios pretendemos rediseñar las implementaciones clúster para evitar estos problemas. Con vistas a profundizar en el impacto de las comunicaciones en el rendimiento de los algoritmos paralelos desarrollados, la Tabla 6.12 muestra los tiempos de computación y comunicación (obtenidos en el nodo maestro) en las diferentes implementaciones paralelas desarrolladas. En la tabla se muestra también el ratio de computación frente a comunicación (calculado simplemente como el cociente entre ambos tiempos). Es importante destacar que los algoritmos RX independiente y Morph no aparecen destacados en la tabla ya que dichos algoritmos no invierten tiempo alguno en tareas de comunicación. En este caso, ambos algoritmos(en particular Morph, tal y como se deduce de la Tabla 6.11) son relativamente independientes de la red de comunicación utilizada. Por otra parte, la Tabla 6.13 muestra los tiempos de computación y comunicación obtenidos en un nodo aleatorio distinto del maestro. Tras observar de forma comparativa los resultados en las tablas 6.12 y 6.13, podemos concluir que, generalmente, el tiempo invertido por el nodo maestro es ligeramente mayor que el invertido por cualquiera de los nodos esclavos. También es destacable que algunos nodos esclavos pueden superar el tiempo de comunicación que invierten cuando se comparan con el nodo maestro, ya que en algunas iteraciones pueden tener que comunicarse con el resto enviando su información a los demás. Por otra parte, puede observarse cómo el ratio de computación frente a comunicación generalmente disminuye de forma proporcional al número de procesadores. Esto es, cuando empleamos un mayor número de procesadores, el tiempo invertido en comunicación generalmente va haciéndose más significativo frente al tiempo de procesamiento, ya que la partición asociada a cada

124 106 Resultados experimentales Algoritmo Ratio 2 CPUs 4 CPUs 8 CPUs 16 CPUs 32 CPUs Computación ATGP (Norma 1) Comunicación Ratio Computación ATGP (Norma 2) Comunicación Ratio Computación ATGP (Norma ) Comunicación Ratio Computación ATGP (SAD) Comunicación Ratio Computación ATGP (SID) Comunicación Ratio Computación ATGP (BSMSE) Comunicación Ratio Computación ATGP (BSMME) Comunicación Ratio Computación ATGP(NVD) Comunicación Ratio Computación ATGP (Entropía) Comunicación Ratio Computación ATGP (SAR SNC) Comunicación Ratio Computación RX Comunicativo Comunicación Ratio Tabla 6.12: Tiempos de computación y comunicación (segundos) obtenidos en el nodo maestro de Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = 30. nodo es menor y hay menos información que procesar, lo cual afecta negativamente al speedup. Estos aspectos no se producen en las versiones paralelas del algoritmo RX (independiente) ni, sobre todo, del algoritmo Morph, en la que el ratio de computación frente a comunicación permanece cercano al valor óptimo para cualquier número de procesadores. Finalmente, realizamos un estudio del balanceo de carga obtenido por las diferentes implementaciones paralelas consideradas. El balanceo se mide de forma sencilla calculando el ratio entre el mayor y el menor tiempo de procesamiento medido en los diferentes procesadores del sistema paralelo, de forma que el cociente entre ambos tiempos será cercano a 1 si los tiempos son iguales y menor que 1 si los tiempos son distintos. La Tabla 6.14 muestra los tiempos máximo y mínimo medidos en cada ejecución para cada algoritmo paralelo considerado, así como el valor de balanceo asociado. A partir de los resultados mostrados en la Tabla 6.14, podemos concluir que los balanceos de carga son cercanos al caso óptimo para cualquier número de procesadores. Esto indica

125 6.4 Análisis del rendimiento de ATGP, RX y Morph 107 Algoritmo Ratio 2 CPUs 4 CPUs 8 CPUs 16 CPUs 32 CPUs Computación ATGP (Norma 1) Comunicación Ratio Computación ATGP (Norma 2) Comunicación Ratio Computación ATGP (Norma ) Comunicación Ratio Computación ATGP (SAD) Comunicación Ratio Computación ATGP (SID) Comunicación Ratio Computación ATGP (BSMSE) Comunicación Ratio Computación ATGP (BSMME) Comunicación Ratio Computación ATGP (NVD) Comunicación Ratio Computación ATGP (Entropía) Comunicación Ratio Computación ATGP (SAR SNC) Comunicación Ratio Computación RX Comunicativo Comunicación Ratio Tabla 6.13: Tiempos de computación y comunicación (segundos) obtenidos en un nodo esclavo de Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = 30. que las computaciones están perfectamente balanceadas en el problema considerado y que la principal causa de que el speedup decrezca a medida que aumenta el número de procesadores es, precisamente, el mayor impacto de las comunicaciones. Por este motivo, el hecho de que los algoritmos RX independiente y Morph no necesiten comunicar información a lo largo del proceso se considera una ventaja altamente competitiva con respecto al resto de algoritmos mostrados en la Tabla En el caso de Morph, esta peculiaridad resulta en speedups casi lineales Resultados en GPUs de NVidia TM En este apartado mostramos los resultados obtenidos al ejecutar las versiones paralelas de los algoritmos considerados en dos arquitecturas GPU de NVidia TM. En primer lugar, mostramos los tiempos de procesamiento en GPU de los diferentes algoritmos en comparación con el tiempo de procesamiento en la CPU (ver Tabla 6.15). En los

126 108 Resultados experimentales Algoritmo ATGP (Norma 1) ATGP (Norma 2) ATGP (Norma ) ATGP (SAD) ATGP (SID) ATGP (BSMSE) ATGP (BSMME) ATGP (NVD) ATGP (Entropía) ATGP (SAR SNC) RX Comunicativo Tiempos 2 CPUs 4 CPUs 8 CPUs 16 CPUs 32 CPUs Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Máximo Mínimo Balanceo Tabla 6.14: Tiempos de computación máximos y mínimos (segundos) y balanceo de carga medido en Thunderhead al aplicar los diferentes algoritmos (en su versión paralela) a la imagen AVIRIS World Trade Center. utilizando distintos números de procesadores y un número de targets de p = 30. experimentos hemos considerado dos CPUs: un Intel Pentium IV a 3.00GHz y un Intel Quad CoreQ9450de 4núcleosa2.66GHz.El motivode utilizardostipos de procesadores es comprobar la diferencia obtenida al utilizar la GPU como coprocesador en dos tipos de arquitecturas. En el caso del Intel Quad Core Q9450, el speedup se obtiene calculando el incremento de velocidad de la versión GPU con respecto a la versión ejecutada en los cuatro procesadores o cores disponibles, por lo que la versión secuencial en este caso corresponde a una versión paralela (multi-núcleo) ejecutada utilizando cuatro núcleos. Este aspecto debe tenerse en cuenta a la hora de evaluar los speedups que se muestran en los resultados obtenidos. La Tabla 6.16 muestra los speedups obtenidos por las versiones CPU y GPU de los algoritmos: ATGP (implementado utilizando la distancia SAD), RX y Morph. Como puede apreciarse, cuando los algoritmos se ejecutan en la CPU Intel Pentium IV, los factores de aceleración obtenidos en las implementaciones GPU son más

127 6.4 Análisis del rendimiento de ATGP, RX y Morph 109 significativos. En cambio, cuando los algoritmos se ejecutan en la CPU Intel Quad Core Q9450, la versión serie reparte la carga entre los cuatro núcleos disponibles, de forma que el tiempo invertido en procesar la imagen AVIRIS WTC (utilizando un valor de p = 30) es aproximadamente la cuarta parte del invertido por la CPU Intel Pentium IV. Por otra parte, la Tabla 6.16 muestra los valores de speedup obtenidos al comparar cada versión CPU con las diferentes GPUs consideradas en el estudio. Como puede apreciarse, las versiones GPU son siempre más rápidas que las correspondientes versiones serie, si bien es cierto que los factores de aceleración obtenidos con respecto a la CPU Intel Quad Core Q9450 son menos significativos. Esto se debe al mayor grado de optimización de la versión serie (en realidad multi-núcleo) y por tanto en esta arquitectura concreta en la que hemos aprovechado todos los núcleos de procesamiento disponibles a la hora de generar los resultados. Algoritmo ATGP (SAD) RX Morph GPU NVidia TM GTX275 3,990 24,512 4,293 GPU NVidia TM 9800GX2 9, ,178 5,540 CPU Intel Pentium IV 133, ,152 78,016 CPU Intel Quad Core Q , ,551 6,163 Tabla 6.15: Tiempos de procesamiento (segundos) obtenidos al aplicar los diferentes algoritmos (en sus versiones CPU y GPU) a la imagen AVIRIS World Trade Center, utilizando un número de targets de p = 30. Arquitectura GPU Algoritmo CPU Intel Pentium IV CPU Intel Quad Core Q9450 ATGP (SAD) 14,747 5,405 GPU NVidia TM 9800GX2 RX 14,047 1,929 Morph 14,081 1,112 ATGP (SAD) 33,486 12,273 GPU NVidia TM GTX275 RX 81,393 10,955 Morph 18,170 1,435 Tabla 6.16: Speedups obtenidos al comparar los diferentes algoritmos (en sus versiones CPU y GPU) aplicados a la imagen AVIRIS World Trade Center, utilizando un número de targets de p = 30. A continuación estudiamos el impacto del tamaño de la imagen hiperespectral considerada en los factores de aceleración obtenidos, con vistas a evaluar si los factores de aceleración se mantienen para diferentes tamaños de imagen. Es importante destacar que en todas las pruebas realizadas la imagen AVIRIS WTC puede ubicarse por completo en la memoria de la GPU. Llegados a este punto, es importante destacar que el tamaño en píxels de la imagen AVIRIS WTC corresponde al volúmen estándar de información que el sensor AVIRIS vuelca a disco durante el proceso de adquisición de datos. Para funcionar a tiempo real, es necesario procesar una imagen completa como la obtenida sobre el WTC a unos segundos. Como puede apreciarse en la Tabla 6.15, los resultados obtenidos en la GPU NVidia TM GTX275 están en tiempo real para los algoritmos ATGP (implementado con la distancia SAD) y Morph. En los resultados en la NVidia TM 9800GX2, el resultado que más se aproxima a tiempo real es de nuevo el proporcionado por el algoritmo Morph. Dado que el tamaño mínimo de imagen

128 110 Resultados experimentales que el sensor obtiene en el proceso de adquisición cabe en la memoria de las GPU consideradas, procedemos a analizar si con tamaños menores de imagen los factores de aceleración se mantienen. La Tabla 6.17 muestra los tiempos de procesamiento y los speedups obtenidos al procesar diferentes particiones de la imagen AVIRIS WTC utilizando el algoritmo ATGP (implementado con la distancia SAD) en las diferentes arquitecturas CPU consideradas y en la GPU NVidia TM 9800GX2. Si representamos los speedups mostrados en la Tabla 6.17 (ver Fig. 6.33), observamos que en el algoritmo ATGP el speedup cae a medida que vamos disminuyendo el tamaño de la imagen, siendo la tendencia más pronunciada en el caso de la CPU Intel Pentium IV. Esto indica que, a mayor tamaño de imagen, mayor factor de aceleración se consigue y mejores prestaciones ofrece la versión GPU, lo cual consideramos un aspecto positivo ya que el verdadero interés de las implementaciones paralelas desarrolladas consiste en procesar grandes cantidades de datos, en consonancia con la tendencia creciente en cuanto a la cantidad de información transferida por parte de sensores hiperespectrales de observación remota a estaciones de control en tierra. Tipo de imagen Completa Partición (1/2) Partición (1/4) Partición (1/8) Partición (1/16) GPU NVidia TM 9800GX2 9,061 2,340 0,576 0,159 0,046 CPU Intel Pentium IV 133,637 24,964 6,017 1,635 0,516 CPU Intel Quad Core Q ,978 12,817 3,059 0,760 0,177 Speedup (CPU Intel Pentium IV) 14,747 10,666 10,431 10,245 11,184 Speedup (CPU Intel Quad Core Q9450) 5,405 5,476 5,304 4,765 3,853 Tabla 6.17: Tiempos de procesamiento y speedups obtenidos por el algoritmo ATGP (implementado con la distancia SAD en las dos CPUs consideradas y en la GPU NVidia TM 9800GX2) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. Por otra parte, la La Tabla 6.18 muestra los tiempos de procesamiento y los speedups obtenidos al procesar las diferentes particiones de la imagen AVIRIS WTC utilizando el algoritmo RX en las diferentes arquitecturas CPU y en la GPU NVidia TM GTX275. De nuevo, representamos los speedups mostrados en la Tabla 6.18 de forma gráfica en la Fig En este caso, podemos observar que la evolución de los speedups en el caso de RX es diferente a la observada en el caso del algoritmo ATGP. En primer lugar, la Fig indica que el speedup obtenido con respecto a la CPU Intel Pentium IV es considerable, ya que en este caso todas las operaciones matriciales se realizan en un único núcleo de procesamiento, ralentizando su ejecución de forma considerable. Por tanto, es razonable pensar que si aplicamos el algoritmo a imágenes de tamaño menor, el speedup seguirá aumentando. Además, pensamos que este comportamiento de la CPU Intel Pentium IV al procesar la imagen completa se debe a un problema de swapping motivado por la falta de memoria RAM para almacenar todos los valores matriciales intermedios que necesita el cálculo de RX, por lo que son necesarios intercambios con memoria secundaria que resultan muy costosos. En cambio, la Fig indica que en el caso de la CPU Intel Quad Core Q9450 el speedup obtenido disminuye siguiendo una tendencia logarítmica a medida que el tamaño de la imagen aumenta. Esta tendencia se debe a la presenciade un mayornúmero de núcleos de procesamientoen la CPU utilizada como referencia en el cálculo del speedup. Como observación general, podemos afirmar

129 6.4 Análisis del rendimiento de ATGP, RX y Morph 111 Figura 6.33: Representación gráfica de los speedups obtenidos por el algoritmo ATGP (implementado con la distancia SAD en las dos CPUs consideradas y en la GPU NVidia TM 9800GX2) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. En la gráfica, la CPU1 es un Intel Pentium IV y la CPU2 es un Intel Quad Core Q9450. que el algoritmo RX obtiene también mejores resultados cuanto mayor es el tamaño de imagen. La tendencia inestable del speedup en casos puntuales que se observa en la Fig puede deberse a la implementación GPU de los algoritmos, que actualmente no balancea la carga asociada a cada multiprocesador a nivel bajo, dejando en manos del planificador de la GPU dicha labor. En este sentido, una posible mejora en la implementación de los algoritmos en la GPU puede consistir en ajustar manualmente la estructuración de los bloques e hilos de procesamiento de forma que el algoritmo se adapte a los tamaños de bloque ideales para cada arquitectura GPU y así conseguir un ratio de ocupación máxima de los multiprocesadores presentes en la misma. Tipo de imagen Completa Partición (1/2) Partición (1/4) Partición (1/8) Partición (1/16) GPU NVidia TM GTX ,178 26,071 4,804 0,898 0,165 CPU Intel Pentium IV 1955, ,723 27,113 6,885 1,562 CPU Intel Quad Core Q ,551 62,180 15,607 3,565 0,962 Speedup (CPU Intel Pentium IV) 14,047 4,515 5,643 7,663 9,425 Speedup (CPU Intel Quad Core Q9450) 1,929 2,385 3,248 3,969 5,808 Tabla 6.18: Tiempos de procesamiento y speedups obtenidos por el algoritmo RX (implementado en las dos CPUs consideradas y en la GPU NVidia TM GTX275) aplicado sobre diferentes particiones de la imagen AVIRIS World Trade Center. Finalmente, la Tabla 6.19 muestra los tiempos de procesamiento y los speedups obtenidos al procesar las diferentes particiones consideradas de la imagen AVIRIS WTC utilizando el algoritmo Morph en las diferentes arquitecturas CPU consideradas y en la GPU NVidia TM GTX275. Al igual que en casos anteriores, también representamos los speedups mostrados en la Tabla 6.19 de forma gráfica en la Fig Como puede observarse en dicha figura, el comportamiento general de Morph en cuanto a la tendencia

Clusters frente a GPUs para Detección Automática de Objetivos en Imágenes Hiperespectrales de la Superficie Terrestre

Clusters frente a GPUs para Detección Automática de Objetivos en Imágenes Hiperespectrales de la Superficie Terrestre Clusters frente a GPUs para Detección Automática de Objetivos en Imágenes Hiperespectrales de la Superficie Terrestre Abel Paz Grupo Computación Hiperespectral (HYPERCOMP) Dept. Tecnología de Computadores

Más detalles

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: 4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea

Más detalles

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación Computación de Propósito General en Unidades de Procesamiento Gráfico () Pablo Ezzatti, Martín Pedemonte Clase 0 Lanzamiento del Curso Contenido Evolución histórica en Fing Infraestructura disponible en

Más detalles

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial Intel ha lanzado su procesador Xeon Phi en la Conferencia Internacional de Supercomputación de Alemania. El procesador

Más detalles

Este trabajo describe un nuevo método paralelo para la identicación de targets en imágenes

Este trabajo describe un nuevo método paralelo para la identicación de targets en imágenes Implementación paralela y validación preliminar de un nuevo algoritmo para detectar targets en imágenes hiperespectrales Soraya Blázquez, Sergio Muñoz, Antonio Plaza, Pablo Martínez, Abel Paz Departamento

Más detalles

Computación Paralela Móvil

Computación Paralela Móvil Algoritmos y Programación Paralela Facultad de Informática Universidad de Murcia Copyleft c 2008. Reproducción permitida bajo los términos de la licencia de documentación libre GNU. Contenido 1 Introducción

Más detalles

Gnu-LinEx. Aplicaciones del Software Libre en Computación de Altas Prestaciones. Sé legal... copia LinEx

Gnu-LinEx. Aplicaciones del Software Libre en Computación de Altas Prestaciones. Sé legal... copia LinEx Gnu-LinEx Aplicaciones del Software Libre en Computación de Altas Prestaciones Sé legal... copia LinEx Antonio Plaza Miguel Departamento Tecnología Computadores Universidad de Extremadura E-mail: aplaza@unex.es

Más detalles

CAPITULO 1 INTRODUCCION AL PROYECTO

CAPITULO 1 INTRODUCCION AL PROYECTO CAPITULO 1 INTRODUCCION AL PROYECTO 1 INTRODUCCION AL PROYECTO 1.1 Marco Teórico Los procesadores digitales de señales ganaron popularidad en los años sesentas con la introducción de la tecnología de estado

Más detalles

CARRERA DE CIECNIAS DE LA COMPUTACIÓN PROGRAMA DE ESTUDIO. Teóricos: 2 Práctico: 1 Total 3

CARRERA DE CIECNIAS DE LA COMPUTACIÓN PROGRAMA DE ESTUDIO. Teóricos: 2 Práctico: 1 Total 3 ARQUITECTURA DE COMPUTADORES CÓDIGO Y CCO301 Total 3 Las matemática aplicada a la computación es el modelado, simulación y optimización de procesos o fenómenos, para procesos complejos, costosos, riesgosos,

Más detalles

FICHA PÚBLICA DEL PROYECTO

FICHA PÚBLICA DEL PROYECTO NUMERO DE PROYECTO: 218824 EMPRESA BENEFICIADA: MICROCALLI DEL GOLFO S.A DE C.V TÍTULO DEL PROYECTO: LÍNEA DE PRODUCTOS DE SOFTWARE PARA DOMÓTICA OBJETIVO DEL PROYECTO: Incorporar el paradigma de LPS como

Más detalles

Planificación didáctica de MATEMÁTICAS 3º E.S.O.

Planificación didáctica de MATEMÁTICAS 3º E.S.O. Planificación didáctica de MATEMÁTICAS 3º E.S.O. (Orientadas a las enseñanzas aplicadas) Julio de 2016 Rev.: 0 Índice 1.- INTRODUCCIÓN... 1 2.- BLOQUE I. PROCESOS, MÉTODOS Y ACTITUDES EN MATEMÁTICAS...

Más detalles

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela Introducción Herramientas Estudio Conclusiones Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela Ingeniería en Informática

Más detalles

UNIVERSIDAD NACIONAL DEL CALLAO

UNIVERSIDAD NACIONAL DEL CALLAO UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS INSTITUTO DE INVESTIGACIÓN DE LA FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS INFORME FINAL DEL PROYECTO DE INVESTIGACIÓN

Más detalles

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Realizado por: Raúl García Calvo Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar Objetivos Implementar un algoritmo

Más detalles

UNIVERSIDAD DE EXTREMADURA. Escuela Politécnica Ingeniería Informática. Proyecto Fin de Carrera

UNIVERSIDAD DE EXTREMADURA. Escuela Politécnica Ingeniería Informática. Proyecto Fin de Carrera UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Ingeniería Informática Proyecto Fin de Carrera Aplicación de la Tecnología Grid al Tratamiento de Imágenes Hiperespectrales Fermín Ayuso Márquez Víctor Manuel

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

CONTENIDOS MÍNIMOS BLOQUE 2. NÚMEROS

CONTENIDOS MÍNIMOS BLOQUE 2. NÚMEROS CONTENIDOS Y CRITERIOS DE EVALUACIÓN DE MATEMÁTICAS 1º DE ESO. Bloque 1: Contenidos Comunes Este bloque de contenidos será desarrollado junto con los otros bloques a lo largo de todas y cada una de las

Más detalles

Estructuras Administrativas

Estructuras Administrativas Estructuras Administrativas ESTRUCTURAS ADMINISTRATIVAS 1 Sesión No. 7 Nombre: Diagramas de Flujo Objetivo: El estudiante desarrollará la propuesta de un diagrama de flujo para la especificación de la

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Ingeniería de

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN 1. Competencias Implementar sistemas de medición y control bajo los

Más detalles

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Nombre de la asignatura: Algoritmos y Lenguajes de programación. Nombre de la asignatura: Algoritmos y Lenguajes de programación. Créditos: 2-4- 6 Aportación al perfil Dominar la lógica necesaria para aprender lenguajes de programación de alto nivel para poder resolver

Más detalles

Nociones básicas de computación paralela

Nociones básicas de computación paralela Nociones básicas de computación paralela Javier Cuenca 1, Domingo Giménez 2 1 Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia 2 Departamento de Informática y Sistemas Universidad

Más detalles

Curso Avanzado de Procesamiento Digital de Imágenes con ENVI. TELEMATICA S.A. -

Curso Avanzado de Procesamiento Digital de Imágenes con ENVI. TELEMATICA S.A. - Curso Avanzado de Procesamiento Digital de Imágenes con ENVI L E C T U R A S TELEDETECCIÓN INTRODUCCIÓN TELEMATICA S.A. 2014 www.telematica.com.pe Introducción a la Teledetección y Procesamiento Digital

Más detalles

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Interfaces Ingeniería en Sistemas Computacionales SCF - 0417 2-4-8 2.- HISTORIA

Más detalles

COMPLEMENTARIO: SISTEMAS DE INFORMACIÓN GEOGRÁFICA APLICADOS A LA AGRICULTURA DE PRECISIÓN OBJETIVO GENERAL

COMPLEMENTARIO: SISTEMAS DE INFORMACIÓN GEOGRÁFICA APLICADOS A LA AGRICULTURA DE PRECISIÓN OBJETIVO GENERAL COMPLEMENTARIO: SISTEMAS DE INFORMACIÓN GEOGRÁFICA APLICADOS A LA AGRICULTURA DE PRECISIÓN OBJETIVO GENERAL PPROPORCIONAR A LOS APRENDICES DEL CURSO LOS FUNDAMENTOS TEÓRICOS Y PRÁCTICOS SOBRE LAS TECNOLOGÍAS

Más detalles

Especialidades en GII-TI

Especialidades en GII-TI Especialidades en GII-TI José Luis Ruiz Reina (coordinador) Escuela Técnica Superior de Ingeniería Informática Mayo 2014 Qué especialidades tiene la Ingeniería Informática? Según las asociaciones científicas

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

DISEÑO DEL SISTEMA DE INFORMACION (DSI)

DISEÑO DEL SISTEMA DE INFORMACION (DSI) DISEÑO DEL SISTEMA DE INFORMACION (DSI) El objetivo del proceso de Diseño del Sistema de Información (DSI) es la definición de la arquitectura del y del entrono tecnológico que le va a dar soporte, junto

Más detalles

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N. DIPLOMADO Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N. Trabajo Final Propuesta Metodológica del área de Ciencias

Más detalles

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB 1 Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB LPI: Control y Procesamiento Digital de Señales Por: Ricardo Alzate Castaño UNIVERSIDAD NACIONAL DE COLOMBIA Sede Manizales Segundo Semestre

Más detalles

G2.- Competencia para aplicar los conocimientos adquiridos.

G2.- Competencia para aplicar los conocimientos adquiridos. Competencias generales El egresado del Título de Máster en Técnicas Avanzadas en Química adquirirá al menos las siguientes competencias generales, que desarrollan las competencias básicas previstas en

Más detalles

Análisis Costo-Beneficio

Análisis Costo-Beneficio Análisis Costo-Beneficio 1 I. Resumen Ejecutivo Nombre del PPI En esta sección, deben llenarse los campos de la tabla que se muestran a continuación, a manera de resumen de las secciones que componen el

Más detalles

Avances y control de calidad de la carne y el pescado

Avances y control de calidad de la carne y el pescado Información del Plan Docente 63016 - Avances y control de calidad de la carne y el Año académico 2016/17 Centro académico Titulación 105 - Facultad de Veterinaria 566 - Máster Universitario en Calidad,

Más detalles

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO

CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO CARRERA DE INGENIERÍA CIVIL EN INFORMÁTICA COMPETENCIAS ESPECÍFICAS Y SUS NIVELES DE DOMINIO Responsables Prof. Oriel Herrera Gamboa Prof. Marcela Schindler Nualart Prof. Gustavo Donoso Montoya Prof. Alejandro

Más detalles

PERFIL PROFESIONAL INGENIERÍA EN TECNOLOGÍA AMBIENTAL. Universidad Politécnica de Durango

PERFIL PROFESIONAL INGENIERÍA EN TECNOLOGÍA AMBIENTAL. Universidad Politécnica de Durango PERFIL PROFESIONAL INGENIERÍA EN TECNOLOGÍA AMBIENTAL Universidad Politécnica de Durango I. Programa Educativo II. Requerimientos del Sector Productivo Ingeniería en Tecnología Ambiental Evaluación de

Más detalles

FICHA TÉCNICA DE ESTIMACIÓN FBKF TRIMESTRAL POR SECTORES INSTITUCIONALES Año base de referencia 1997

FICHA TÉCNICA DE ESTIMACIÓN FBKF TRIMESTRAL POR SECTORES INSTITUCIONALES Año base de referencia 1997 1 de 7 I.- Presentación: El Banco Central de Venezuela (BCV), en la búsqueda de fortalecer y ampliar la disponibilidad del conjunto de indicadores del país, ofrece al público para su análisis y seguimiento,

Más detalles

1. Análisis Teórico. 1.1. Microscopio Óptico. 1.2. Teoría de Formación de Imágenes de Abbe. Resolución. Laboratorio de Ondas y Óptica.

1. Análisis Teórico. 1.1. Microscopio Óptico. 1.2. Teoría de Formación de Imágenes de Abbe. Resolución. Laboratorio de Ondas y Óptica. Laboratorio de Ondas y Óptica Práctica N 7 Microscopía Óptica Digital Departamento de Física, FaCyT. Universidad de Carabobo, Venezuela. Objetivos Estudiar el funcionamiento de un Microscopio Óptico Preparación

Más detalles

Montaje y Reparación de Sistemas Microinformáticos

Montaje y Reparación de Sistemas Microinformáticos Montaje y Reparación de Sistemas s Es uno de los componentes más imprescindible del equipo informático. Al igual que el resto de tarjetas de expansión, la tarjeta gráfica se conecta al bus PCIe. Algunas

Más detalles

FÍSICA Y QUÍMICA 3º ESO. OBJETIVOS, CONTENIDOS Y CRITERIOS DE EVALUACIÓN 1ª Evaluación: Unidad 1. La medida y el método científico.

FÍSICA Y QUÍMICA 3º ESO. OBJETIVOS, CONTENIDOS Y CRITERIOS DE EVALUACIÓN 1ª Evaluación: Unidad 1. La medida y el método científico. FÍSICA Y QUÍMICA 3º ESO. OBJETIVOS, CONTENIDOS Y CRITERIOS DE EVALUACIÓN 1ª Evaluación: Unidad 1. La medida y el método científico. OBJETIVOS 1. Reconocer las etapas del trabajo científico y elaborar informes

Más detalles

3. Espacios de color. 3.Espacios de color. El uso del color en el procesamiento de imágenes está principalmente motivado por dos factores:

3. Espacios de color. 3.Espacios de color. El uso del color en el procesamiento de imágenes está principalmente motivado por dos factores: 3. Espacios de color El uso del color en el procesamiento de imágenes está principalmente motivado por dos factores: El color es un poderoso descriptor que, en la mayoría de los casos simplifica la identificación

Más detalles

La conectividad es la clave para una tecnología avanzada de ECG. Los sistemas de ECG no

La conectividad es la clave para una tecnología avanzada de ECG. Los sistemas de ECG no ELECTROCARDIÓGRAFOS MARCA GENERAL ELECTRIC MAC 800 La conectividad es la clave para una tecnología avanzada de ECG. Los sistemas de ECG no sólo deben ofrecer la suficiente portabilidad como para llegar

Más detalles

HERRAMIENTAS DE OFIMATICA PORTAFOLIO DE EVIDENCIAS

HERRAMIENTAS DE OFIMATICA PORTAFOLIO DE EVIDENCIAS 2011 HERRAMIENTAS DE OFIMATICA PORTAFOLIO DE EVIDENCIAS CREACION DEL PORTAFOLIO PARA SER PRESENTADO EL DIA LUNES ENVIADOALA CARPETA DE DROPBOX EL CUAL ES ACREDITABLE PARA LA CALIFICACION DE EL PARCIAL

Más detalles

F1131 Fundamentos de sistemas operativos 1/12

F1131 Fundamentos de sistemas operativos 1/12 PROGRAMA DE ESTUDIO Fundamentos de sistemas operativos Programa Educativo: Licenciado en Informática Administrativa Área de Formación : Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Total

Más detalles

INFORME SECTOR. AIDO ARTES GRÁFICAS. Análisis de ciclo de vida de libros impresos

INFORME SECTOR.  AIDO ARTES GRÁFICAS. Análisis de ciclo de vida de libros impresos 2011 INFORME SECTOR www.ecodisseny.net Análisis de ciclo de vida de libros impresos INDICE 1. INTRODUCCIÓN 2. ANÁLISIS DE CICLO DE VIDA 3. ANÁLISIS DE CICLO DE VIDA DEL LIBRO 2 1. INTRODUCCIÓN El cálculo

Más detalles

Programación de GPUs con CUDA

Programación de GPUs con CUDA Programación de GPUs con CUDA Alvaro Cuno 23/01/2010 1 Agenda GPUs Cuda Cuda + OpenGL 2 GPUs (Graphics Processing Units) 3 Supercomputadores Mapa de los 100 supercomputadores Sudamérica: posiciones 306

Más detalles

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO FACULTAD DE CS. QUIMICAS, FISICAS Y MATEMATICAS I. DATOS GENERALES DEPARTAMENTO ACADEMICO DE INFORMATICA SILABO 1.1 Asignatura : INTRODUCCION A LA INFORMATICA 1.2 Categoría : OE 1.3 Código : IF172AME 1.4

Más detalles

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL DEPARTAMENTO DE INGENIERÍA ESTRUCTURAL

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL DEPARTAMENTO DE INGENIERÍA ESTRUCTURAL 117 TIPO DE 5 FUNDAMENTACIÓN El desarrollo de toda actividad productiva y/o cualquier proyecto requiere como insumo indispensable disponer, manejar y procesar información relevante para los fines que se

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

Anexo 10. Pruebas verificadas

Anexo 10. Pruebas verificadas 1 Anexo 10. Pruebas verificadas Introducción El proceso de pruebas inició con una revisión conceptual para la identificación de las pruebas por realizar, a partir de las características del proyecto. En

Más detalles

MICROSOFT PROJECT 2010

MICROSOFT PROJECT 2010 MICROSOFT PROJECT 2010 METODOLOGÍA DE LOS CURSOS Cursos interactivos sobre materias especializadas en los que el alumno avanza de forma guiada bajo una concepción learning by doing (aprender haciendo).

Más detalles

MODELO Y SISTEMA DE GESTIÓN DE LA I+D+i

MODELO Y SISTEMA DE GESTIÓN DE LA I+D+i MÓDULO 2 CUESTIONARIO DE GESTIÓN TECNOLÓGICA Con este cuestionario tendrás una idea detallada de cómo se gestiona la I+D+i en tu empresa y podrás mejorar aquellas áreas en las que se necesite reforzar

Más detalles

Comprende el concepto de función y reconoce sus principales características. Grafica adecuadamente una función.

Comprende el concepto de función y reconoce sus principales características. Grafica adecuadamente una función. UNIVERSIDAD TECNOLÓGICA DE LOS ANDES FACULTAD DE INGENIERIAS ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA SILABO I.- DATOS GENERALES 1.1. Nombre del curso : Matemática Básica 1.2. Código

Más detalles

PLIEGO DE PRESCRIPCIONES TÉCNICAS CONTRATO DE SUMINISTRO

PLIEGO DE PRESCRIPCIONES TÉCNICAS CONTRATO DE SUMINISTRO PLIEGO DE PRESCRIPCIONES TÉCNICAS CONTRATO DE SUMINISTRO Contrato de suministro de un cluster de computadores con destino al Instituto Carlos I de Física Teórica y Computacional de la Universidad de Granada.

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Instrumentación industrial. 2. Competencias Implementar

Más detalles

Métodos de Investigación e Innovación -Metodologías de Investigación-

Métodos de Investigación e Innovación -Metodologías de Investigación- 1 Sesión 2 Métodos de Investigación e Innovación -Metodologías de Investigación- Dr. Hugo Terashima M. 25 de Enero de 2008 2 Page 1 Contenido de la Sesión Metodologías de Investigación Mapa conceptual

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles

Elaboración de una campaña de tráfico

Elaboración de una campaña de tráfico Elaboración de una campaña de tráfico Física y Química 4º ESO IES Saulo Torón María Dolores Ramírez Rodríguez En España los accidentes de tráfico son la quinta causa de muerte no natural siendo la velocidad

Más detalles

Secretaría de Desarrollo Rural Julio-Agosto del 2012

Secretaría de Desarrollo Rural Julio-Agosto del 2012 Secretaría de Desarrollo Rural Julio-Agosto del 2012 1 Índice 1. Introducción 3 2. Objetivo de la evaluación 5 3. Metodología 7 4. Evaluación de la Secretaría de Desarrollo Rural 12 4.1 Resultados de la

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

UNIVERSIDAD DE EXTREMADURA

UNIVERSIDAD DE EXTREMADURA UNIVERSIDAD DE EXTREMADURA Escuela Politécnica MÁSTER UNIVERSITARIO EN INICIACIÓN A LA INVESTIGACIÓN EN TECNOLOGÍA (MUIT) ESPECIALIDAD EN: TECNOLOGÍAS INFORMÁTICAS Y DE LAS COMUNICACIONES (TINC) Trabajo

Más detalles

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Ingeniería Ambiental Sustantiva profesional. Programa elaborado por: PROGRAMACIÓN APLICADA Horas teóricas: 1 Horas prácticas:

Más detalles

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje Nombre de la asignatura: Programación Básica Créditos: 2 4-6 Objetivo de aprendizaje Plantear metodológicamente la solución de problemas susceptibles de ser computarizados a través del manejo de técnicas

Más detalles

Programa de estudios por competencias Arquitectura de computadoras

Programa de estudios por competencias Arquitectura de computadoras Programa de estudios por competencias Arquitectura de computadoras 1. Identificación del curso Programa educativo: Ingeniería en Computación Unidad de aprendizaje: Arquitectura de computadoras Departamento

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE Programa de Formación: Técnico en programación de software Nombre del Proyecto: Sistema de información para la gestión empresarial Fase del proyecto: FASE

Más detalles

Cuando el lenguaje si importa

Cuando el lenguaje si importa Cuando el lenguaje si importa de software financiero J. Daniel Garcia Grupo ARCOS Universidad Carlos III de Madrid 11 de mayo de 2016 cbed J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) Twitter

Más detalles

Nombre de la asignatura: Simulación. Créditos: Aportación al perfil

Nombre de la asignatura: Simulación. Créditos: Aportación al perfil Nombre de la asignatura: Simulación Créditos: 2-4-6 Aportación al perfil Analizar, diseñar y gestionar sistemas productivos desde la provisión de insumos hasta la entrega de bienes y servicios, integrándolos

Más detalles

Asignaturas antecedentes y subsecuentes

Asignaturas antecedentes y subsecuentes PROGRAMA DE ESTUDIOS Sistemas Operativos I Área a la que pertenece: Área Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0168 Asignaturas antecedentes y subsecuentes PRESENTACIÓN

Más detalles

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316 . D A T O S D E L A A S I G N A T U R A Nombre de la asignatura: Diseño Estructurado de Algoritmos Carrera: Ingeniería en Sistemas Computacionales Clave de la asignatura: SCB-9 Horas teoría Horas práctica

Más detalles

PROCESOS INDUSTRIALES

PROCESOS INDUSTRIALES PROCESOS INDUSTRIALES HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura METROLOGÍA 2. Competencias Planear la producción considerando los recursos tecnológicos, financieros,

Más detalles

PROGRAMACIÓN DE AULA: OBJETIVOS CONTENIDOS MATERIALES y RECURSOS MODULO MATEMATICAS-TECNOLOGÍA

PROGRAMACIÓN DE AULA: OBJETIVOS CONTENIDOS MATERIALES y RECURSOS MODULO MATEMATICAS-TECNOLOGÍA UNIDAD 4: SUCESIONES Y ECUACIONES. PROYECTO TECNOLÓGICO TEMPORALIZACIÓN: 2 ÚLTIMAS SEMANAS DE NOVIEMBRE, 2 PRIMERAS DE DICIEMBRE, 3 ÚLTIMAS SEMANAS DE ENERO Y PRIMERA DE FEBRERO PROGRAMACIÓN DE AULA: CURSO/NIVEL:

Más detalles

MICROSOFT EXCEL 2010

MICROSOFT EXCEL 2010 MICROSOFT EXCEL 2010 1. AVANZADO Nº Horas:24 Objetivos: Descripción de funciones avanzadas de la hoja de cálculo Microsoft Excel 2010, viendo el uso de fórmulas, funciones y gráficos en los libros de Excel.

Más detalles

CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN

CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN Máster Universitario en Sistemas Electrónicos Avanzados. Sistemas Inteligentes. Universidad de Alcalá Curso Académico 2011/2012 Cuatrimestre 1º GUÍA DOCENTE Nombre

Más detalles

ESTADISTICA. Tradicionalmente la aplicación del término estadística se ha utilizado en tres ámbitos:

ESTADISTICA. Tradicionalmente la aplicación del término estadística se ha utilizado en tres ámbitos: ESTADISTICA Tradicionalmente la aplicación del término estadística se ha utilizado en tres ámbitos: a) Estadística como enumeración de datos. b) Estadística como descripción, es decir, a través de un análisis

Más detalles

Automatización de banco de ensayo de engranajes para el estudio de métodos de detección de estado

Automatización de banco de ensayo de engranajes para el estudio de métodos de detección de estado Automatización de banco de ensayo de engranajes para el estudio de métodos de detección de estado "La utilización de las herramientas software de NI ha permitido el desarrollo de un sistema de control

Más detalles

UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro)

UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro) UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro) 1. ESTADÍSTICA: CLASES Y CONCEPTOS BÁSICOS En sus orígenes históricos, la Estadística estuvo ligada a cuestiones de Estado (recuentos, censos,

Más detalles

I N T R O D U C C I Ó N. 1.1 motivación

I N T R O D U C C I Ó N. 1.1 motivación I N T R O D U C C I Ó N 1 1.1 motivación Durante los últimos años, las técnicas de mapeado a través de imágenes aéreas han sido objeto de gran interés, sobre todo tras la aparición de los sistemas aéreos

Más detalles

CAPITULO XII PUENTES DE CORRIENTE ALTERNA

CAPITULO XII PUENTES DE CORRIENTE ALTERNA CAPITULO XII PUENTES DE CORRIENTE ALTERNA 2. INTRODUCCION. En el Capítulo IX estudiamos el puente de Wheatstone como instrumento de medición de resistencias por el método de detección de cero. En este

Más detalles

RADAR DE SUPERFICIE GESTIÓN DE TRÁFICO AÉREO. Suministrando Sistemas de Gestión de Tráfico Aéreo en todo el mundo desde hace más de 30 años.

RADAR DE SUPERFICIE GESTIÓN DE TRÁFICO AÉREO. Suministrando Sistemas de Gestión de Tráfico Aéreo en todo el mundo desde hace más de 30 años. GESTIÓN DE TRÁFICO AÉREO RADAR DE SUPERFICIE Suministrando Sistemas de Gestión de Tráfico Aéreo en todo el mundo desde hace más de 30 años. indracompany.com SMR RADAR DE SUPERFICIE Antena SMR sobre la

Más detalles

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura UNIVERSIDAD DEL CARIBE UNICARIBE Escuela de Informática Programa de Asignatura Nombre de la asignatura : Sistema Operativo II Carga académica : 4 créditos Modalidad : Semi-presencial Clave : INF-223 Pre-requisito

Más detalles

ARQUITECTURA DE COMPUTADORAS II. Propósito del curso : Ingeniería Ingeniería en Sistemas. Hardware. Clave de la materia: 413

ARQUITECTURA DE COMPUTADORAS II. Propósito del curso : Ingeniería Ingeniería en Sistemas. Hardware. Clave de la materia: 413 UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU007H Clave: 08USU4053W FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: ARQUITECTURA DE COMPUTADORAS II DES: Ingeniería Ingeniería en Sistemas Programa(s) Educativo(s):

Más detalles

UNIVERSIDAD DE EXTREMADURA

UNIVERSIDAD DE EXTREMADURA UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Ingeniería Informática Proyecto Fin de Carrera Desarrollo de algoritmos de análisis de imágenes hiperespectrales en tarjetas gráficas NVidia Sergio Sánchez

Más detalles

Estadística: Conceptos Básicos, Tablas y Gráficas. Dra. Noemí L. Ruiz Limardo Revisado 2011 Derechos de Autor Reservados

Estadística: Conceptos Básicos, Tablas y Gráficas. Dra. Noemí L. Ruiz Limardo Revisado 2011 Derechos de Autor Reservados Estadística: Conceptos Básicos, Tablas y Gráficas Dra. Noemí L. Ruiz Limardo Revisado 2011 Derechos de Autor Reservados Objetivos de la Lección Conocer el significado de los términos: Estadística Estadística

Más detalles

Localización y orientación. Mapa topográfico y geológico. Foto aérea y Teledetección. Disciplinas de estudio.

Localización y orientación. Mapa topográfico y geológico. Foto aérea y Teledetección. Disciplinas de estudio. La investigación en Geología El tema se desarrolla a través de una historia inicial en la que Javier, un alumno de Bachillerato, va a visitar un instituto geológico en el que Roberto, un joven investigador,

Más detalles

CNCA. Colaboratorio Nacional de Computación Avanzada Centro Nacional de Alta Tecnología. Proyectos de uso de la e-infraestructura en RedCLARA

CNCA. Colaboratorio Nacional de Computación Avanzada Centro Nacional de Alta Tecnología. Proyectos de uso de la e-infraestructura en RedCLARA CNCA Colaboratorio Nacional de Computación Avanzada Centro Nacional de Alta Tecnología Proyectos de uso de la e-infraestructura en RedCLARA 1er Día Virtual de la e-infraestructura San José, Costa Rica,

Más detalles

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 )

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 ) MEMORIA DEL PROYECTO TITULADO: DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 ) PRESENTADO POR: María Luisa Pérez Delgado María Luisa Pérez Delgado Dentro del marco del proyecto

Más detalles

3. Elaboración de proyectos eléctricos

3. Elaboración de proyectos eléctricos 3. Elaboración de proyectos eléctricos INTRODUCCIÓN Este módulo tiene una duración de 228 horas y se sugiere impartilo en tercer año medio. Al finalizar este módulo, se espera que los y las estudiantes

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Desarrollo de Habilidades De Pensamiento

Más detalles

The World Competitiveness Yearbook 2008 Ránking Mundial de Competitividad 2008

The World Competitiveness Yearbook 2008 Ránking Mundial de Competitividad 2008 The World Competitiveness Yearbook 2008 Ránking Mundial de Competitividad 2008 May 2008 Mayo 2008 6 The World Competitiveness Yearbook 2008 Ránking Mundial de Competitividad 2008 CENTRUM Católica, la escuela

Más detalles

Síntesis de la programación

Síntesis de la programación Síntesis de la programación Instalaciones Automatizadas en Viviendas y Edificio 2º ELE 16 de enero de 2017 Tabla de Contenidos 1. Secuenciación de contenidos...1 2. Unidades de trabajo...2 2.1. EVOLUCIÓN

Más detalles

Leapfrog Geo 3.1. Notas técnicas de la versión

Leapfrog Geo 3.1. Notas técnicas de la versión Página 1 Leapfrog Geo 3.1 Notas técnicas de la versión Este documento destaca las principales mejoras y nuevas funcionalidades de Leapfrog Geo 3.1. Por favor póngase en contacto con su equipo de soporte

Más detalles

METODOLOGÍA DE MUESTREO PARA REPORTE DE TENDENCIAS 4o BÁSICO Y 2o MEDIO SIMCE 2010

METODOLOGÍA DE MUESTREO PARA REPORTE DE TENDENCIAS 4o BÁSICO Y 2o MEDIO SIMCE 2010 METODOLOGÍA DE MUESTREO PARA REPORTE DE TENDENCIAS 4o BÁSICO Y 2o MEDIO SIMCE 2010 SIMCE Unidad de Currículum y Evaluación Ministerio de Educación 2011 Índice 1. Antecedentes Generales 1 2. Metodología

Más detalles

CIENCIA Y TECNOLOGÍA DEL COLOR 2008 WORKSHOP ON COLORIMETRY AND COLOR IMAGING

CIENCIA Y TECNOLOGÍA DEL COLOR 2008 WORKSHOP ON COLORIMETRY AND COLOR IMAGING CIENCIA Y TECNOLOGÍA DEL COLOR 2008 WORKSHOP ON COLORIMETRY AND COLOR IMAGING Título: Ciencia y Tecnología del Color 2008. Workshop on Colorimetry and Color Imaging Editores: Joaquín Campos Acosta y Rafael

Más detalles

Además, debido al incremento del parque informático actual se requiere aumentar la cantidad de licencias, ya que a la fecha resulta insuficiente.

Además, debido al incremento del parque informático actual se requiere aumentar la cantidad de licencias, ya que a la fecha resulta insuficiente. Ministerio del Ambiente INFORME TECNICO PREVIO DE EVALUACIÓN DE SOFTWARE W ~ -201-0EFA/OTI 1. Nombre del área Oficina de Tecnologías de la Información. 2. Nombre y cargo de los responsables de la evaluación

Más detalles

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.

Más detalles

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1 Universidad Nacional Tecnológica del Cono Sur de Lima Especialidad Ingeniería Mecánica Ingeniería Electrónica Introducción PROGRAMACIÓN DE INGENIERÍA Semana 01-A: Introducción Arquitectura Ing. Jorge A.

Más detalles

Sistemas de Percepción

Sistemas de Percepción Visión por Computador Nota: Las imágenes que aparecen en esta presentación provienen del libro: Visión por Computador: fundamentos y métodos. Hueso. Prentice Hall. 1. Introducción 1 Definiciones: Introducción

Más detalles

PROPUESTA DE INFORME TECNICO PREVIO DE EVALUACION DE SOFTWARE

PROPUESTA DE INFORME TECNICO PREVIO DE EVALUACION DE SOFTWARE PROPUESTA DE INFORME TECNICO PREVIO DE EVALUACION DE SOFTWARE ADQUISICION DE LJCENCIAS DE SOFTWARE PARA MEDIOS IMPRESOS, WEB, MULTIMEDIA AUDIO Y VIDEO, 1. NOMBRE DEL AREA: Tecnologías de Información 2.

Más detalles

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada:

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada: Anexo Introducción Esta herramienta desarrollada junto con toda la información que se ha generado pertenece a un proyecto real. Este desarrollo se incluye en el proyecto MAVSEL (Minería, Análisis y Visualización

Más detalles

Los Gráficos. Que son? Cuales son los tipos que conoces. Cual es su relación con la estadística?

Los Gráficos. Que son? Cuales son los tipos que conoces. Cual es su relación con la estadística? Los Gráficos Que son? Cual es su relación con la estadística? Que factores se deben considerar para leerlos correctament e? Cuales son los tipos que conoces La representación grafica de datos sobre un

Más detalles