30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-ii


Actas de las XXII Jornadas de ParalelismoLa Laguna, Tenerife, EspañaEditoresFrancisco AlmeidaVicente BlancoCoromoto LeónCasiano RodríguezFrancisco de Sande7–9 Septiembre 2011


Actas de las XXII Jornadas de Paralelismo JP2011Editores: Francisco Almeida, Vicente Blanco, Coromoto León,Casiano Rodríguez y Francisco de SandeISBN: 978-84-694-1791-1Servicio de Publicaciones. Universidad de La Laguna, Tenerife, 2011Edición: 1 aImpresión: 1 aN o de páginas: 744Formato: 17 x 24Materia CDU: 004 Ciencia y tecnología de los ordenadores. InformáticaReservados los derechos para todos los países de lengua española. De conformidad con lo dispuesto en elartículo 270 y siguientes del código penal vigente, podrán ser castigados con penas de multa y privaci6n delibertad quienes reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica fijadaen cualquier tipo de soporte sin la preceptiva autorización. Ninguna parte de esta publicación, incluido eldiseño de la cubierta, puede ser reproducida, almacenada o trasmitida de ninguna forma, ni por ningún medio,sea éste electrónico, químico, mecánico, e1ectro–óptico, i grabación, fotocopia o cualquier otro, sin la previaautorización escrita por parte de la editorial.Diríjase a CEDRO (Centro Español de Derechos Reprográficos), www.cedro.org, si necesita fotocopiaro escanear algún fragmento de esta obra.COPYRIGHT c○2011 UNIVERSIDAD DE LA LAGUNA.svpubl@ull.esActas de las XXII Jornadas de ParalelismoDerechos reservados c○2011 respecto a la primera edición en español, por LOS AUTORESDerechos reservados c○2011 respecto a la primera edición en español, por UNIVERSIDAD DE LALAGUNA1 a Edición, 1 a ImpresiónISBN: 978-84-694-1791-1Depósito Legal: TF-723-2011http://jp2011.pcg.ull.esCréditos:Diseño de Portada: Jose A. de Luis jobues@yahoo.esMaquetación LATEX: LOS EDITOREScon la clase LATEX‘confproc’ (por V. Verfaille)Impreso en La Laguna — Septiembre 2011


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011ComitésCoordinaciónRamón Beivide Palacios (UC)Jesús Carretero Pérez (UCIIIM)José Duato Marín (UPV)Inmaculada García Fernández (UAL)Antonio Garrido Del Solo (UCLM)Emilio López Zapata (UMA)Emilio Luque Fadón (UAB)Pedro de Miguel Anasagasti (UPM)Alberto Prieto Espinosa (UGR)Francisco José Quiles Flor (UCLM)Ana Ripoll Aracil (UAB)Francisco Tirado Fernández (UCM)Mateo Valero Cortés (UPC)Victor Viñals Yúferas (UZ)Comité Organizador (ULL)Alejandro Acosta DíazFrancisco Almeida RodríguezJésica de Armas AdriánVicente Blanco PérezJuan Carlos Castillo CanoLuis Cerrudo ConcepciónAntonio Javier Dorta LorenzoJuan José Fumero AlfonsoCarlos González VilaCoromoto León HernándezIván López RodríguezGara Miranda ValladaresCarlos Alberto Morales DíazRuymán Reyes CastroCasiano Rodríguez LeónElena Sánchez NielsenFrancisco de Sande GonzálezAdrián Santos MarreroEduardo Segredo GonzálezCarlos Segura GonzálezJP2011-iii


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-iv


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011PresentaciónEs un placer para nosotros y un verdadero honor darles la bienvenida a la vigésimo segunda ediciónde las Jornadas de Paralelismo que se celebran por primera vez en Canarias los días 7, 8 y 9 deseptiembre de 2011 en La Laguna. Este evento, con más de dos décadas de tradición, supone elencuentro de numerosos investigadores para intercambiar experiencias que reflejan su trabajo enel ámbito de la computación de altas prestaciones. Por primera vez las Jornadas de Paralelismo secelebran de forma conjunta con las Jornadas de Computación Reconfigurable y Aplicaciones, JCRA.El creciente interés de la comunidad investigadora por todo lo relacionado con el paralelismo y lacomputación de altas prestaciones se ve claramente reflejado en la variedad, calidad y número de trabajospresentes en esta edición de las Jornadas. Este año se han recibido un total de 117 trabajos cuyapresentación se ha organizado en un programa que incluye 24 sesiones de ponencias. Por otra parte,el número de inscritos en las Jornadas asciende a 158 participantes, lo que muestra una vez más, tantoel elevado grado de aceptación del evento como el nivel de consolidación del mismo. Es de destacarque el abanico de tópicos tratado en las jornadas ha ido creciendo con los años y se ha adaptado a lainvestigación que se realiza en nuestro país. El programa cubre una amplia variedad de tópicos queincluyen la supercomputación; las arquitecturas del procesador, multiprocesadores y chips multinúcleo;las redes y sistemas de comunicaciones; los algoritmos y técnicas de programación paralelas;las Tecnologías grid, cluster, cloud computing y plataformas distribuidas; la arquitecturas del subsistemade memoria y almacenamiento secundario; la evaluación de prestaciones; la compilación parasistemas de altas prestaciones; las aplicaciones de la computación de altas prestaciones y la docenciaen arquitectura, tecnología de computadores y programación paralela.Contamos en esta edición con dos conferencias que abordarán temas de investigación de gran actualidady que esperamos que sean de su interés. Por una parte, el profesor de la Universitat Politècnicade Catalunya, D. Antonio González, director del centro Intel-UPC impartirá la conferencia tituladaLess energy is more performance. Asimismo, el profesor D. Marco Danelutto de la Università diPisa, director de Institute of Programming Models de esta universidad y miembro de la red Core-GRID impartirá la charla The multi/many core challenge: a pattern based programming perspective.El programa de las Jornadas incluye también dos mesas redondas con ponentes de gran relevancia.En la primera mesa redonda se debatirá sobre La ley de la ciencia y en la segunda sobre La ProgramaciónParalela en los títulos de Grado y Máster temas ambos que esperamos resulten del máximointerés para los participantes en las Jornadas. Tendremos asimismo oportunidad de asistir en elmarco de las Jornadas a la asamblea de la Sociedad de Arquitectura y Tecnología de Computadores(SARTECO).No queremos acabar esta presentación sin mostrar nuestro agradecimiento a todos los organimos yentidades, públicos y privados, que han colaborado en el desarrollo de estas Jornadas, en concreto,a la Universidad de La Laguna, al Ayuntamiento de San Cristobal de La Laguna, al Cabildo deTenerife, a la Agencia Canaria de Investigación, Innovación y Sociedad de la Información, al Departamentode EIO y Computación, a la Escuela Técnica Superior de Ingeniería Informática de la ULL,a la Facultad de Matemáticas de la ULL, a las empresas Bull e IBM, y por último a los miembrosde los grupos de Computación de Altas Prestaciones y Algoritmos y Lenguajes Paralelos de la ULL,que han prestado su apoyo para la organización de este congreso.Bienvenidos a La Laguna y muchas gracias por su interés y participación en estas XXII Jornadas deParalelismo, que esperamos cumplan con sus expectativas.Comité Organizador de las XXII Jornadas de ParalelismoLa Laguna, 7-9 de septiembre de 2011JP2011-v


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-vi


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Índice de las Actas JP2011Algoritmos y técnicas de programación paralelas3 Una Versión Paralela de la Evolución Diferencial para Predecir Motifs en Cadenas de ADNDavid L. González-Álvarez, Miguel A. Vega-Rodríguez, Juan A. Gómez-Pulido, Juan M. Sánchez-Pérez9 Comparación de Algoritmos Evolutivos Paralelos y Secuenciales para el Alineamiento Múltiple de SecuenciasFernando José Mateus Silva, Juan Manuel Sánchez-Pérez, Juan A. Gómez-Pulido, Miguel A. Vega-Rodríguez15 Evolución Diferencial OpenMP+MPI en Redes Ópticas WDMÁlvaro Rubio-Largo, Miguel A. Vega-Rodríguez, Juan A. Gómez-Pulido, Juan M. Sánchez-Pérez21 Paralelización del algoritmo de bi-mezclaJ.F.R. Herrera, L.G. Casado, I. García, Eligius M.T. Hendrix27 Optimización del Método BST para la Reducción de Modelos en Arquitecturas MultinúcleoPablo Ezzatti, Enrique S. Quintana-Ortí, Alfredo Remón33 Genetic Algorithm to Predict Wavelet Coefficients SignRicardo García, Otoniel López, Pablo Piñol, Miguel Martínez, Manuel P. Malumbres, Antonio Martí39 Resolución del Empaquetado 2D Multiobjetivizado con un Algoritmo Memético ParaleloCoromoto León, Carlos Segura, Eduardo Segredo45 Diseño de Filtros con Técnicas Evolutivas para la Clasificación de Señales de EncefalogramaCoromoto León, Yanira González, Carlos Segura51 Ranking de listas enlazadas en procesadores multicoreHugo Vegas, Thierry Gautier, Carlos García, Manuel Prieto57 Parallelizing Biblio-MetReS, a data mining toolOussama Abdelli, Anabel Usié, Hiren Karathia, Jordi Vilaplana, Francesc Solsona, Rui Alves63 Paralelización de una Plataforma para la Resolución de Problemas NP-completos Mediante Algoritmos EvolutivosJosé M. Lanza-Gutiérrez, Juan A. Gómez-Pulido, Miguel A. Vega-Rodríguez, Juan M. Sánchez-Pérez69 Comparando Modelos Paralelos Basados en Islas para el Problema del Posicionamiento de Antenas MultiobjetivizadoCoromoto León, Eduardo Segredo, Carlos Segura75 Exhaustive Program’s Robustness Analysis against Transient FaultsJoao Gramacho, Dolores Rexachs, Emilio Luque81 Biblioteca de Altas Prestaciones para la Resolución de Problemas Matriciales EstructuradosPedro Alonso-Jordá, Pablo Martínez-Naredo, F.J. Martínez-Zaldívar, José Ranilla, Antonio M. Vidal87 A translator framework for Dynamic Programming problemsAlejandro Acosta, Francisco Almeida, Ignacio PeláezAplicaciones de la computación de altas prestaciones95 Resolviendo el Diseño de Redes para Modelos de Tráfico Reales de Internet Mediante Optimización Multiobjetivoen MultiprocesadoresJosé M. Lanza-Gutiérrez, Juan A. Gómez-Pulido, Miguel A. Vega-Rodríguez, Juan M. Sánchez-Pérez101 A New Tool for Classification of Satellite Images Available from Google Maps: Efficient Implementation inGraphics Processing UnitsS. Bernabé, A. Plaza107 Visibility Map Computation at all Points of a TerrainS. Tabik, L.F. Romero, E.L. Zapata113 Un método de acceso aproximado para alta dimensionalidad y su paralalelizaciónF. Artigas119 Perceptually enhanced INTRA video encoder for high definition/quality servicesM. Martínez-Rach, O. López, Pablo Piñol, Manuel P. Malumbres, J. Oliver125 Equipo paralelo de metaheurísticas para la resolución de un problema real de telecomunicacionesJosé M. Chaves-González, Miguel A. Vega-Rodríguez, Juan A. Gómez-Pulido, Juan M. Sánchez-PérezJP2011-vii


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011131 Determination of traffic control tables by HPCEligius M.T. Hendrix, Siham Tabik, Rene Haijema135 Evaluación del método del Gradiente Biconjugado para matrices dispersas en GPUsG. Ortega, E. M. Garzón, F. Vázquez, I. García141 Paralelización del cálculo de coeficientes del Método de Elementos de Contorno en la resolución de problemasde contacto termoelástico 3DRaquel González, Lidia Sánchez, José Vallepuga147 Iterative procedure to solve thermoelastic contact problems between 3D solids using BEM and OOPA. Suárez, Raquel González, Lidia Sánchez, José Vallepuga153 Evaluación de la Paralelización de un Modelo Hidrodinámico 3DMario C. Acosta, Mancia Anguita, Francisco J. Rueda, F. Javier Fernández-Baldomero159 Paralelización del Análisis de Imágenes con Tensor de Difusión en Resonancia Magnética usando GPUsMoisés Hernández, Ginés D. Guerrero, José M. Cecilia, José M. García, Alberto Inuggi165 Agent-Based Simulation to Optimize Healthcare Emergency DepartmentsEduardo Cabrera, Manel Taboada, Emilio Luque171 Reducción de ruido impulsivo Fijo y Uniforme en imágenes digitales usando las GPUs.M. Guadalupe Sánchez, Vicente Vidal, Jordi Bataller, Alejandro Rivera177 Estrategias de Paralelización de Algoritmos de Razonamiento para Ontologías BiomédicasEduardo J. Cepas, Ginés D. Guerrero, José M. Cecilia, José M. García, Jesualdo FernándezArquitecturas del procesador, multiprocesadores y chips multinúcleo185 Real-Time Task Migration with Dynamic Partitioning to Reduce Power ConsumptionJosé Luis March, Julio Sahuquillo, Salvador Petit, Houcine Hassan, José Duato191 Unified Locality-sensitive Signatures for Transactional MemoryR. Quislant, E. Gutiérrez, O. Plata, E.L. Zapata197 Overriding the Coherence Protocol to Improve Directory CachesB. Cuesta, A. Ros, M.E. Gómez, A. Robles, José Duato203 Overcoming the Scalability Constraints of Coherence Protocols of Commodity SystemsA. Ros, B. Cuesta, Ricardo Fernández-Pascual, M.E. Gómez, Manuel E. Acacio, A. Robles, J. M. García, JoséDuato209 Efficient hardware support for lock synchronization in Many-core CMPsJosé L. Abellán, Juan Fernández, Manuel E. Acacio215 A Cooperative and Scalable Built-In Self-Test Architecture for NoCsC. Gómez, A. Strano, D. Ludovici, M. Favalli, M.E. Gómez, D. Bertozzi, P. López, José Duato221 Modular Distributed Switch: Spreading the Switch along the LinkA. Roca, C. Hernández, José Flich, F. Silla, J. Duato227 Reducing the Energy Consumption of Hardware Prefetching in Many-Core CMPs using Reply PartitioningA. Flores, Manuel E. Acacio, Juan L. Aragón233 Modelling Permanent Fault Impact on Cache PerformanceDaniel Sánchez, Yiannakis Sazeides, Juan L. Aragón, José M. García239 Coherencia de Caché Mediante Árbol Basado en Proximidad y PredicciónAntonio García-Guirado, Ricardo Fernández-Pascual, José M. García245 Explotación de Técnicas de Especialización de Cores para Planificación Eficiente en Procesadores MulticoreAsimétricosJ.C. Sáez, Manuel Prieto, A. Pousa, A. Fedorova251 Optimización MapReduce para uso de los recursos en las arquitecturas multi-core.Tharso Ferreira, Aprigio Bezerra, Antonio Espinosa, Porfídio Hernández, Juan Carlos Moure255 Análisis de los datos privados/compartidos en aplicaciones paralelas sobre CMPsAlfonso Ramos, Antonio García-Guirado, José M. García261 Reconfiguración de la NoC en la Virtualización de CMPsF. Triviño, Francisco J. Alfaro, José L. Sánchez, José Flich, S. GonzálezJP2011-viii


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011267 Beneficios del uso de la Red de Interconexión en la Aceleración de la CoherenciaL.G. Menezo, A. Colaso, P. Prieto, P. Abad, V. Puente, J.A. Gregorio273 Conversion between DPD and RBCD for on-line arithmetic computationSonia González, Carlos García, Julio Villalba277 Multiples Puertos de Inyección en una Red en ChipJ. Camacho, José Flich, José Duato283 A Flexible Hybrid Transactional Memory Multicore on FPGAOriol Arcas, Nehir Sonmez, Osman S. Unsal, Adrián Cristal, Mateo Valero291 An Adaptive Controller to Save Dynamic Energy in LP-NUCAD. Suárez Gracia, T. Monreal Arnal, V. Viñals Yúfera297 Acelerando las simulaciones de sistema completo usando Simics en sistemas multiprocesadorSantos González, Francisco Triviño, Francisco J. Andujar, José L. Sánchez, Francisco J. AlfaroArquitecturas, algoritmos y aplicaciones sobre aceleradores hardware305 Parallelization of the Generalized Hough Transform on GPUJuan Gómez-Luna, José María González-Linares, José Ignacio Benavides, E.L. Zapata, Nicolás Guil311 rCUDA: Uso Concurrente de Dispositivos Compatibles con CUDA de Forma Remota. Adaptación a CUDA 4C. Reaño, A. J. Peña, F. Silla, R. Mayo, Enrique S. Quintana-Ortí, José Duato317 Un nuevo entorno para el uso de GPUsP. Valero, F. L. Pelayo323 Pre-procesamiento de Flujo Óptico Robusto en Hardware GráficoF. Ayuso, G. Botella, C. García, Manuel Prieto, F. Tirado329 Experiencias con Python y CUDA en Computación de Altas PrestacionesSergio Armas, Lionel Mena, Alejandro Samarín, Vicente Blanco, A. Morales, Francisco Almeida335 A Scalable Visualization System for Crowd SimulationsGuillermo Vigueras, Juan M. Orduña, Miguel Lozano, Víctor Fernández-Bauset341 A New Approach to rCUDAJosé Duato, A. J. Peña, F. Silla, J. C. Fernández, R. Mayo, Enrique S. Quintana-Ortí347 Métodos no lineales basados en el gradiente conjugado para GPUsH. Migallón, V. Migallón, J. Penadés353 Búsquedas por Similitud en Espacios Métricos sobre Plataformas Basadas en GPUsRoberto Uribe-Paredes, Pedro Valero-Lara, Enrique Arias, José Luis Sánchez, Diego Cazorla359 Query Processing in Metric Spaces using GPUsR.J. Barrientos, J.I. Gómez, C. Tenllado, Manuel PrietoRedes y comunicaciones367 Desarrollo de un Prototipo para la Notificación Automática de Accidentes de Tráfico usando Redes VehicularesManuel Fogue, Piedad Garrido, Francisco J. Martinez, Carlos T. Calafate, Juan Carlos Cano, Pietro Manzoni373 Hierarchical Analysis of Resilience Benchmarking Results Using LSP: Ad Hoc Networks As a Case StudyJesús Friginal, Juan-Carlos Ruiz, David de Andrés, Pedro Gil379 Protocolo para entrega fiable de contenidos en redes inalámbricas basado en codificación RaptorMiguel Báguena, Carlos T. Calafate, Juan Carlos Cano, Pietro Manzoni385 Evaluating video streaming performance in MANETs using a testbedTim Bohrloch, Carlos T. Calafate, Alvaro Torres, Juan Carlos Cano, Pietro Manzoni391 Statistical Modeling of Transmission Path Loss in Underwater Acoustic NetworksJ. Llor, Manuel P. Malumbres397 Predictive and Distributed Routing Balancing for High Speed Interconnection NetworksC. Núñez Castillo, D. Lugones, D. Franco, Emilio Luque403 Evaluación de una alternativa para aumentar el número de puertos de los conmutadoresJuan Antonio Villar, Francisco J. Andújar, José L. Sánchez, Francisco J. Alfaro, José DuatoJP2011-ix


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011409 Combinando diferentes enfoques para el control de congestión en redes de interconexión de altas prestacionesJesús Escudero-Sahuquillo, E. G. Gran, Pedro Javier García, José Flich, T. Skeie, O. Lysne, F. J. Quiles, JoséDuato415 Un acercamiento a la eficacia de las técnicas de control de congestión en redes de interconexión con topologíasdirectasDaniel Gómez-García, Pedro Javier García, Francisco José Quiles, Jesús Escudero-Sahuquillo, Juan AntonioVillar, José Flich, José Duato421 Peripheral twists for torus topologies with arbitrary aspect ratioEnrique Vallejo, Miquel Moretó, Carmen Martínez, Ramón Beivide427 Performance analysis of an IEEE 802.21 based Vertical Handover protocol using ns-2Johann Márquez-Barja, Carlos T. Calafate, Juan Carlos Cano, Pietro Manzoni433 Mecanismos de Comunicación Eficientes en Redes de Altas Prestaciones para Bibliotecas de Paso de Mensajesen JavaRoberto R. Expósito, Guillermo L. Taboada, Juan Touriño, Ramón Doallo439 Comunicaciones Escalables en Memoria Compartida para Paso de Mensajes en JavaSabela Ramos, Guillermo L. Taboada, Juan Touriño, Ramón Doallo445 Aproximación distribuida de incendios forestales con WSN usando la envolvente convexaM. Ángeles Serna, Aurelio Bermúdez, Rafael Casado, Pawel Kulakowski451 A First Approach to King Topologies for On-Chip NetworksE. Stafford, J.L. Bosque, C. Martinez, F. Vallejo, Ramón Beivide, C. CamareroSistemas Web e Internet459 Incorporación del dinamismo del usuario en un benchmark de comercio electrónicoRaúl Peña-Ortiz, José Antonio Gil, Julio Sahuquillo, Ana Pont467 Servicios Web Semánticos. Una aproximación desde las OntologíasE. González, I. López, E. NielsenTecnología grid, cluster, cloud computing y plataformas distribuidas475 Planificación de DAGS en entornos oportunísticosMaria del Mar López, Elisa Heymann, Miquel Àngel Senar483 QoS en Entornos Grid mediante un Sistema de Meta-planificación por Adelantado basado en SLAsJ. Conejero, L. Tomás, C. Carrión, B. Caminero489 RSA@Cloud: Sistema de Criptoanálisis sobre Infraestructuras CloudAlberto Megía Negrillo, Antonio Molinera Lamas, José Antonio Rueda Sánchez, José Luis Vázquez-Poletti495 Descripción de la Plataforma Formiga CloudFernando Gomez-Folgar, Javier López Cacheiro, C. Fernández Sánchez, Antonio García-Loureiro, R. Valin,Víctor Fernández-Albor501 Planificación de trabajos MapReduce en clusters Hadoop no-dedicadosAprigio Bezerra, Tharso Ferreira, Antonio Espinosa, Juan Carlos Moure, Porfídio Hernández507 Procesamiento de videos usando la nubeA. Morales, Francisco Almeida513 R en la nubeA. Santos, Francisco Almeida, Vicente Blanco, J.C. Castillo519 Comparativa y estudio de distribución de software de cálculo científico en entornos cloud con CVMFSVíctor Fernández-Albor, Ricardo Graciani, Javier López Cacheiro, Fernando Gomez-Folgar, Antonio García-Loureiro, Juan José Saborido525 Multi-Cluster Performance Impact on the Multiple-Job Co-Allocation SchedulingH. Blanco, F. Guirado, J. L. Lérida531 Mr-Cirrus: Implementación de Map-Reduce bajo MPI para la ejecución paralela de programas secuencialesD. Ramet, J. Lago, J. Falgueras, O. Trelles537 AbFS: Sistema de Ficheros AbiertoAntonio F. Díaz, Mancia Anguita, Hugo E. Camacho, Erik Nieto, Julio OrtegaJP2011-x


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011543 Comparación del rendimiento entre los hipervisores XEN y KVM usando virtualización por hardwareIsaac Zablah, R. Valin, Antonio García-Loureiro, Javier López Cacheiro, Fernando Gomez-FolgarArquitecturas del subsistema de memoria y almacenamiento secundario551 A Novel Approach for a Metadata ClusterA. Avilés-Gonález, J. Piernas, P. González-Férez557 Algoritmo de reemplazo para cache de último nivel basado en periodos MRUAlejandro Valero, Julio Sahuquillo, Salvador Petit, Pedro López, José Duato563 A Comparison of Cache Hierarchies for SMT ProcessorsD. Suárez Gracia, T. Monreal Arnal, V. Viñals Yúfera569 Metodología para Analizar y Evaluar los Sistemas de Entrada/Salida ParalelosSandra Méndez, Dolores Rexachs, Emilio Luque575 Memory Hierarchy and Network Co-design through Trace-Driven SimulationMario Lodde, José FlichDocencia en arquitectura, tecnología de computadores y programación paralela583 E-Assessment of Matlab Assignments in Moodle: Application to an Introductory Programming Course for EngineersJulián Ramos, María A. Trenas, Sergio Romero, Eladio Gutiérrez589 Sobre la integración del Curriculum Initiative on Parallel and Distributed Computing en los planes de estudio delGrado en Ingeniería InformáticaFrancisco Almeida, Domingo Giménez, José Miguel Mantas, Antonio M. Vidal595 Experiencias en Docencia de Diseño y Evaluación de ConfiguracionesA.M. Mora, P. García-Sánchez, P.A. Castillo, M.G. Arenas, J.J. Merelo, J. Ortega599 Diseño de un cluster de computadores como actividad para Arquitectura de ComputadoresF. Javier Fernández-Baldomero, Mancia AnguitaEvaluación de prestaciones607 Achieving interactive multiagent simulations over Jason through Java tuningVíctor Fernández Bauset, Francisco Grimaldo Moreno, Miguel Lozano Ibáñez, Juan Manuel Orduña Huertas613 Dynamically Tuning Master/Worker Applications with MATEA. Martínez, A. Morajko619 Análisis de un sistema Android como plataforma para juegos de realidad aumentadaA.L. Sarmiento, M. Amor, C.V. Regueiro, E.J. Padrón625 Un modelo analítico mejorado para la arquitectura CUDAM. Viñas, B.B. Fraguela, M. Amor, Ramón Doallo631 Análisis de Escalabilidad en Aplicaciones Paralelas con Carga de Trabajo No EquilibradaJ.L. Bosque, OD. Robles, P. Toharía, L. Pastor637 Mejorando las aplicaciones de red en arquitecturas multinúcleo heterogéneasA. Ortiz, J. Ortega, Antonio F. Díaz, A. Prieto643 Estimación del efecto de los fallos cache en el rendimiento de aplicaciones paralelasD.R. Martínez, Vicente Blanco, J.C. Cabaleiro, T.F. Pena, Francisco F. Rivera649 Metodología para la sintonización de aplicaciones OpenMP en sistemas multicoreC. Allande, J. Jorba, E. César, A. Morajko655 Herramientas para la monitorización de los accesos a memoria de códigos paralelos mediante contadores hardwareOscar G. Lorenzo, Juan A. Lorenzo, Dora B. Heras, Juan C. Pichel, Francisco F. Rivera661 Evaluación del Benchmark Rodinia en los sistemas del SAIIL. Cerrudo, A. J. Dorta, J. J. Fumero, C. González, L. Grillo, I. López, F. de SandeJP2011-xi


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Computación de altas prestaciones sobre arquitecturas paralelas heterogéneas669 Algoritmos eficientes para la transformada wavelet discreta en multicores y GPUsV. Galiano, O. López, Manuel P. Malumbres, H. Migallón675 Tableless Distributed Routing in Heterogeneous MPSoC SystemsJosé Cano, José Flich, José Duato, Marcello Coppola, Riccardo Locatelli681 Uso del conocimiento de la arquitectura Fermi para mejorar el rendimiento en aplicaciones CUDAYuri Torres, Arturo González-Escribano, Diego R. Llanos687 Estrategias de optimización en diferentes arquitecturas CUDA usando llCoMPR. Reyes, J. J. Fumero, I. López, F. de Sande693 Sistema modular desarrollado en FPGA, para el cálculo de mapas de disparidad de imagenes estereoscópicasS. Ibarra, José Ignacio Benavides, M.H. Calviño699 Estrategias de optimización en GPU y CPU multi-core de modelos SPHJ. M. Domínguez, A. J. C. Crespo, A. Barreiro, M. Gómez-Gesteira705 Implementación del algoritmo de registro no lineal DARTEL sobre una plataforma heterogéneaP. Valero, José Luis Sánchez, Enrique Arias, D. CazorlaCompilación para sistemas de altas prestaciones713 Checkpoint Size Reduction in Application-level Fault Tolerant SolutionsI. Cores, G. Rodríguez, M. Martín, P. González719 Source-to-Source Transformations for Efficient SIMD Code GenerationAlejandro Berna, Marta Jiménez, Jose M. Llabería.727 Índice de AutoresJP2011-xii


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmos y técnicas de programación paralelasJP2011-1


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-2


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Una Versión Paralela de la EvoluciónDiferencial para Predecir Motifs en Cadenas deADNDavid L. González-Álvarez1 Miguel A. Vega-Rodríguez 2 Juan A. Gómez-Pulido 3Juan M. Sánchez-Pérez 4Resumen—La utilidad y la eficiencia de un algoritmo pararesolver un determinado problema de optimizaciónno viene dado solo por la calidad de las solucionesobtenidas, es también importante el tiempo computacionaly los recursos requeridos para su obtención.En este artículo presentamos una implementaciónparalela de la Evolución Diferencial (DE) para resolverel Problema del Descubrimiento de Motifs(PDM). El PDM es un problema de gran importanciabiológica que puede requerir una gran cargacomputacional si analizamos grandes cantidades deinformación genética, por ello, la utilización de paralelismoen maquinas de memoria compartida puedeayudarnos a obtener resultados más rápidamente.Para asegurarnos de que nuestra heurística obtieneresultados relevantes, hemos comparado los resultadosobtenidos con los obtenidos por un algoritmoestándar en la computación evolutiva como es el algoritmoNSGA-II, además de con otros catorce métodosmuy conocidos dentro del campo de la biología. Comoveremos, la estructura del algoritmo lo hace apropiadopara la paralelización, logrando buenos resultadosy eficiencias de hasta un 95%.Palabras clave—Evolución Diferencial, computación paralela, multinúcleo,optimización multiobjetivo, descubrimientode motifs.I. IntroducciónEn los últimos años hemos visto una granevolución en las interfaces de memoria compartida.Actualmente prácticamente todos los compiladoresincluyen las librerías necesarias para desarrollarfácilmente programas paralelos. Entre todasestas interfaces estándares de programación paraleladestacan MPI y OpenMP. MPI es una interfaz dedicadaa la programación de clusters, mientras queOpenMP es el estándar de programación más empleadoen la programación de multiprocesadores conmemoria compartida. En este trabajo aplicamos esteúltimo tipo de paralelismo para resolver un importanteproblema dentro de la bioinformatica, el Problemadel Descubrimiento de Motifs (PDM). Predecirmotifs es uno de los problemas más importantesdentro del análisis de secuencias, y aun nadie ha1 Dpto. Tecnología de Computadores y Comunicaciones,Grupo de Investigación ARCO, Universidad de Extremadura,e-mail: dlga@unex.es2 Dpto. Tecnología de Computadores y Comunicaciones,Grupo de Investigación ARCO, Universidad de Extremadura,e-mail: mavega@unex.es3 Dpto. Tecnología de Computadores y Comunicaciones,Grupo de Investigación ARCO, Universidad de Extremadura,e-mail: jangomez@unex.es4 Dpto. Tecnología de Computadores y Comunicaciones,Grupo de Investigación ARCO, Universidad de Extremadura,e-mail: sanperez@unex.esconseguido resolverlo de una manera eficiente. Estosmotifs son pequeños patrones de ADN, ARNo proteínas que normalmente ejercen la función dePuntos de Unión de Factores de Transcripción endistintos genes (TFBS). Normalmente no son muylargos (alrededor de 30 nucleótidos) y sin espacios,por lo que descubrirlos entre una gran cantidad deinformación biológica en las secuencias de ADN no esuna tarea nada fácil. Para encontrarlos, hemos utilizadouna heurística basada en la Evolución Diferencial(DE) que hemos paralelizado utilizando el interfazOpenMP. Además, hemos implementado tambiénuna versión paralela del algoritmo NSGA-II para asídisponer de un punto de referencia con el que compararlos resultados obtenidos por nuestra propuesta.En este trabajo no solo hemos analizado las eficienciaslogradas por las versiones paralelas de estos dosalgoritmos, sino que también hemos analizado la calidadde los motifs predichos por los algoritmos. Parahacer esto, hemos aplicado diferentes indicadorescomo el Hipervolumen o la Relación de Cobertura, yestadísticas como la Sensibilidad, el Valor de PrediccionesPositivas, el Coeficiente de Rendimiento o elCoeficiente de Correlación. Como veremos, nuestroalgoritmo logra buenos resultados paralelos, ademásde resultados biológicamente relevantes.Este documento se organiza de la siguiente forma.En la siguiente sección explicamos brevemente elPDM. En la Sección III describimos los algoritmospresentados en este trabajo y detallamos comolos hemos paralelizado. La Sección IV muestralos resultados obtenidos por nuestras propuestas,comparándolas con varios algoritmos y métodosbiológicos. Finalmente, la Sección V incluye variasconclusiones obtenidas tras la elaboración de estetrabajo.II. Problema del Descubrimiento de MotifsEl Problema del Descubrimiento de Motifs (PDM)trata de resolver de forma óptima el problema quesupone predecir motifs, aplicado a la tarea específicade descubrir nuevos Puntos de Unión de Factores deTranscripción (TFBS) en secuencias de ADN [1]. LosTFBSs y otros elementos genéticos con una estructuray función específica son conocidos con el nombrede motifs. Para descubrir motifs de una ciertarelevancia biológica debemos satisfacer unos objetivosconcretos a la vez que cumplir ciertas restricciones.Nosotros hemos afrontado el PDM definiendotres objetivos: el tamaño, el soporte y la simila-JP2011-3


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IUn problema de descubrimiento de motifs artificial. Muestra en (a) las secuencias, (b) indica las posicionesiniciales de los motifs candidatos, (c) los motifs candidatos, (d) la tasa de concordancia existente entre cadamotif candidato y el motif consenso ‘TCTTGGAA’ (umbral del soporte en 50%) y (e) las MRP y MFP.(a) (b) (c) (d) (e)1 GAC TCTTGGAC TAATCCTTC -1214 TCTTGGAC 7/8 √ A: 2 0 0 0 0 1 10 52 A GCTTGGAA TTGACTAGTGG -1137 GCTTGGAA 7/8 √ C: 1 10 0 0 0 0 0 33 CAGGGCTCT TCTGTAAA AAA -1266 TCTGTAAA 5/8 √ G: 1 0 1 2 8 9 0 04 TTTA ACTTGGAA AGCACTCA -0434 ACTTGGAA 7/8 √ T: 6 0 9 8 2 0 0 25 ACAATATGAC ACTTGGAC CA -0607 ACTTGGAC 6/8 √ A: 20% 0% 0% 0% 0% 10% 100% 50%6 A CCTTGGAA GTCAACAAAAA -0676 CCTTGGAA 7/8 √ C: 10% 100% 0% 0% 0% 0% 0% 30%7 GCAATTCGTGT TCTTTGAT G -1089 TCTTTGAT 6/8 √ G: 10% 0% 10% 20% 80% 90% 0% 0%8 GGATAT TCTTGGAT TCCTAG -0186 TCTTGGAT 6/8 √ T: 60% 0% 90% 80% 20% 0% 0% 20%9 AGGT TCTGGGAC TTTCCAGA -0887 TCTGGGAC 6/8 √10 AAC TCGTGGAA CGGCACATG -1067 TCGTGGAA 7/8 √ Soporte: 10, Tamaño: 8, Similaridad: 81%ridad del motif. Dado un conjunto de secuenciasS = {S i |i = 1, 2, ..., D} de nucleótidos definidos en elalfabeto B = {A, C, G, T }. S i = {S j i |j = 1, 2, ..., w i}es una secuencia de nucleótidos, donde w i es la longitudde la secuencia. El conjunto de todas las subsecuenciascontenidas en S es {s jii |i = 1, 2, ..., D, j i =1, 2, ..., w i − l + 1}, donde j i es el punto de uniónde un posible motif candidato s j i en la secuencia S i,y l es el tamaño del motif, el primer objetivo a sermaximizado. Para obtener los valores de los otrosdos objetivos tenemos que construir la Matriz de Indicadoresde Posición (MIP) A = {A i |i = 1, 2, ..., D}del motif, donde A i = {A j i |j = 1, 2, ..., w i} es el vectorindicador con respecto a la secuencia S i . A j ies 1 si la posición j en S i es el punto de unióny 0 en caso contrario. Nos referimos al númerode motifs candidatos como |A| = ∑ D ∑ wii=1 j=1 Aj i .También necesitamos encontrar el motif consenso, elcual se extrae de los motifs candidatos. En este trabajoconsideramos un solo motif candidato por secuenciay, solo aquellas secuencias que logren motifscandidatos de cierta calidad (con respecto almotif consenso) se tendrán en cuanta a la hora deformar el motif final. Esto se indica a través delsegundo objetivo, el soporte. Además, S(A) ={S(A) 1 , S(A) 2 , ..., S(A) |A| } es el conjunto de |A| motifscandidatos, donde S(A) i = S(A) 1 i S(A)2 i ...S(A)l ies el i-esimo motif candidato de |A|. S(A) puedetambién expandirse con (S(A) 1 , S(A) 2 , ..., S(A) l ),donde S(A) j = S(A) j 1 S(A)j 2 ...S(A)j |A|es la lista denucleótidos de la j-esima posición del motif candidato.A continuación debemos construir la Matriz deRepeticiones por Posición (MRP) N(A) teniendo encuenta el número de nucleótidos de cada tipo que hayen cada posición de cada motif candidato (A) quehaya superado el valor umbral en el segundo objetivo,el soporte. N(A) = {N(A) 1 , N(A) 2 , ..., N(A) l }y N(A) j = {N(A) j b |b ∈ B}, donde N(A)j b=|{S(A) j i |S(A)j i = b}|. El número de repeticiones delnucleótido dominante en cada posición se normalizaobteniendo la Matriz de Frecuencia por Posición(MFP) ̂N = N(A)|A|. Finalmente, para hallar el valordel último objetivo, la similaridad, debemos calcularel valor medio de las repeticiones de los nucleótidosdominantes en cada columna de la MFP, tal y comose indica en la siguiente expresión:∑ li=1Similaridad(Motif) =max b{f(b, i)}l(1)donde f(b, i) es la puntuación obtenida por el nucleótidob en la columna i de la MFP y max b {f(b, i)}es el número de repeticiones normalizado obtenidopor el nucleótido dominante en la columna i.Para orientar la búsqueda de patrones hacia solucionescon cierta relevancia biológica, hemos incorporadovarias restricciones que deben satisfacer todaslas soluciones obtenidas por nuestros algoritmos.La primera de ellas limita el tamaño de los motifsal rango [7,64], donde 7 es el tamaño mínimo y 64el máximo. En el segundo objetivo hemos establecidoun valor mínimo en el soporte de 2 para losmotifs descubiertos en instancias compuestas por 4o menos secuencias, y de 3 en las demás (más de4 secuencias). Finalmente, hemos aplicado el conceptode complejidad [2]. La complejidad de un motifdebe considerarse para descartar las solucionesmenos complejas y, por lo tanto, menos relevantesbiológicamente hablando. Para ello aplicaremos lasiguiente expresión:Complejidad = log Nl!∏ (ni )!(2)donde N = 4 para secuencias de ADN, l es el tamañodel motif, y n i es el número de nucleótidos del tipoi ∈ {A, C, G, T }.La Tabla I muestra un PDM artificial con motifs detamaño = 8. En este ejemplo, utilizando los motifscandidatos mostrados en las Tablas Ia y Ic obtenemosel motif consenso TCTTGGAA. Con este motifpodemos calcular el valor del segundo objetivo, elsoporte (ver Tabla Id). Las secuencias cuyos motifscandidatos superen o igualen el valor umbral de concordanciaestablecido en 50% (4/8), se tendrán encuenta en este objetivo. En este ejemplo obtenemosun soporte = 10. El último paso es construir la MRPJP2011-4


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 1.Esquema de la versión paralela de la Evolución Diferencial.y la MFP utilizando los nucleótidos de los motifs candidatosque hayan superado el filtro anterior (umbraldel soporte). Hecho esto, podemos obtener el valorfinal de similaridad aplicando la ecuación (1). Eneste ejemplo obtenemos una similaridad = 0, 8125.III. Descripción de los AlgoritmosParalelosEn este trabajo presentamos una versión paralelade la Evolución Diferencial (DE). Esta nueva versióndel algoritmo la comparamos con otra versión paraleladel algoritmo NSGA-II. El algoritmo DE es unalgoritmo basado en población [3] que optimiza unproblema manteniendo una serie de individuos que secruzan para generar otros nuevos. Todo este procesose realiza aplicando una formulación de cruce y mutaciónmuy sencilla. Para adaptar el funcionamientode este algoritmo al PDM multiobjetivo hemos incorporadoel concepto de Torneos de Pareto, obteniendoun nuevo algoritmo llamado Evolución Diferencialcon Torneos de Pareto (DEPT), descrito en [4]. El interfazde programación OpenMP es el escogido paradesarrollar las versiones paralelas de nuestros algoritmos.Si analizamos el funcionamiento del DEPT ([3]y [4]) podemos comprobar cómo no existe ningunadependencia de datos en el bucle principal, por loque se puede paralelizar en su totalidad. Para ello,hemos incrustado la directiva OpenMP ‘#pragmaomp parallel for’ antes del bucle principal del algoritmo,especificando apropiadamente las variablespúblicas y privadas necesarias. En cada iteración delbucle el algoritmo aplica el esquema de selección especificadoa todos los individuos de la población (individuosobjetivo). Suponiendo una población de 8individuos en una maquina de 8 núcleos, cada núcleoprocesaría solo un individuo objetivo, generando elcorrespondiente individuo de prueba y ejecutando eltorneo de Pareto que enfrentará al individuo objetivocon el individuo de prueba. Nuestra Evolución Diferencialparalela divide cada iteración del bucle principalen diferentes hilos. Si lo explicásemos de formamatemática, diríamos que disponiendo de un sisteman-núcleos y un tamaño de población P S, cada hiloejecuta P S/n iteraciones del bucle principal. En laFigura 1 mostramos una representación grafica delproceso seguido por el algoritmo paralelo suponiendouna población de 32 individuos en un sistema con 8núcleos. En este ejemplo desplegamos 8 hilos, dondecada uno de ellos procesa 4 individuos objetivo encada generación. Es importante saber que hasta quetodos los hilos no hayan terminado su ejecución, lasiguiente generación no comenzará.El segundo algoritmo que hemos paralelizado esel Algoritmo Genético de Ordenación Nodominada(NSGA-II). Este algoritmo es una extensión delAlgoritmo Genético (GA) diseñado para optimizarmúltiples objetivos. En [5] podemos encontraruna descripción detallada del algoritmo. Para paralelizarlohemos seguido la misma metodología queen el algoritmo DEPT, utilizando el interfaz de programaciónOpenMP. En la versión paralela del algoritmoNSGA-II hemos paralelizado la función quegenera la población padre, la función que se encargade generar la población hija utilizando individuos dela población padre, la ordenación nodominada y elcálculo de la distancia de crowding. Para ello hemosvuelto a hacer uso de la directiva ‘#pragma ompparallel for’, definiendo los parámetros necesariospara no sobrescribir ninguna variable. Empleando lamisma formulación matemática que en el algoritmoanterior, en las funciones que generan las poblacionespadre e hija, cada hilo genera P S/n individuos, lograndouna mejora temporal considerable. En lasotras dos funciones (la ordenación nodominada y elcálculo de la distancia de crowding) cada hilo calculael numero de soluciones dominadas o que dominan acada individuo en cada uno de ellos (para despuéspoder ordenarlos según esos datos) y obtener así elcorrespondiente valor de distancia de crowding.Con los dos algoritmos paralelizados podemoscomenzar a hacer comparativas para saber cuál de losdos algoritmos es más apropiado paralelizar. En lasiguiente sección se muestra los resultados (speedupsy eficiencias) obtenidos por cada algoritmo y se analizael comportamiento de ambos en diferentes sistemasmulti-núcleo. Como veremos los primerosresultados indican que el algoritmo DEPT es másapropiado para la paralelización que el algoritmoNSGA-II, logrando eficiencias de hasta un 95%.IV. Evaluación Experimental yComparativasAntes de paralelizar los algoritmos, debemos encontrarlas configuraciones que mejores resultadosobtienen. En esta sección describimos las instanciasutilizadas en nuestros experimentos y mostramos losresultados obtenidos. La metodología seguida y larepresentación de los individuos es la misma que laque utilizada en [4], estableciendo como condiciónde terminación 3000 generaciones en ambos algorit-JP2011-5


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IICaracterísticas de las instancias utilizadas.TABLA IIIMejores configuraciones encontradas.Nombre #Sec. Tamaño Nombre #Sec. Tamañodm01g 4 1500 mus02r 9 1000dm04g 4 2000 mus03g 5 500dm05g 3 2500 mus07g 4 1500hm03r 10 1500 yst03m 8 500hm04m 13 2000 yst04r 7 1000hm16g 7 3000 yst08r 11 1000DEPT Tamaño de la Población 200Probabilidad de Cruce 25%Factor de Mutación 3%Esquema de Selección Aleatorio/1/BinomialNSGA-II Tamaño de la Población 200Probabilidad de Cruce 60%Factor de Mutación 50%Elección de los Padres Torneo BinarioTABLA IVHipervolúmenes obtenidos por los algoritmos.DEPTNSGAIIPeor Media Mejor Peor Media Mejordm01g 76,69% 79,68% 82,41% 80,62% 81,56% 82,27%dm04g 77,26% 79,74% 81,70% 80,22% 81,06% 81,90%dm05g 79,59% 81,95% 84,46% 83,53% 84,41% 85,86%hm03r 61,80% 65,33% 71,91% 42,70% 47,40% 53,38%hm04m 56,87% 61,25% 65,40% 39,30% 43,32% 45,93%hm16g 74,78% 79,72% 85,41% 65,92% 68,12% 70,47%mus02r 67,71% 69,96% 74,69% 57,09% 59,24% 61,72%mus03g 73,73% 77,49% 79,62% 76,38% 77,18% 77,55%mus07g 76,49% 80,58% 87,19% 86,16% 87,01% 88,30%yst03m 71,85% 73,22% 74,98% 63,50% 65,52% 68,10%yst04r 70,66% 74,32% 78,97% 74,29% 74,80% 75,80%yst08r 63,39% 68,03% 75,78% 62,23% 64,87% 67,09%Media 70,90% 74,27% 78,54% 67,66% 69,54% 71,53%TABLA VRelación de cobertura (A ≽ B).A B dm01g dm04g dm05g hm03r hm04m hm16g mus02r mus03g mus07g yst03m yst04r yst08r MediaDEPT NSGAII 44,12% 65,85% 55,17% 97,62% 97,26% 90,00% 94,52% 83,93% 60,87% 93,06% 89,83% 95,24% 80,62%NSGAII DEPT 51,79% 39,29% 48,39% 0,00% 0,00% 0,00% 0,00% 23,75% 42,11% 0,78% 0,00% 0,00% 17,17%mos. Para comparar los resultados obtenidos por losalgoritmos que hemos implementado, además del indicadorHipervolumen, hemos utilizado la Relaciónde Cobertura [6], la cual permite analizar que algoritmoobtiene los mejores frentes de Pareto. En nuestraexperimentación hemos utilizado doce instanciasreales seleccionadas de la base de datos TRANS-FAC [7]. Estos conjuntos de datos tienen diferentespropiedades para asegurar que nuestros algoritmosfuncionan bien con todo tipo de instancias (ver TablaII).Los parámetros configurados y los mejores valoresencontrados para cada uno de ellos se muestran enla Tabla III. El orden en el que estos han sido ajustadoses el mismo que aparece en la Tabla III. Parademostrar que los resultados obtenidos por ambosalgoritmos son relevantes hemos realizado comparativasutilizando diferentes indicadores. La primeracomparativa analiza los resultados obtenidos por ambosalgoritmos utilizando el indicador Hipervolumen.Este indicador mide la región cubierta por las solucionespredichas por cada algoritmo en cada instancia.En la Tabla IV mostramos los Hipervolúmenesobtenidos. Podemos apreciar como en los conjuntosde datos con 4 o menos secuencias (instanciasdm y mus07g) el algoritmo NSGA-II logra mejoresresultados que el DEPT. Vemos también como enlos conjuntos de datos con entre 5 y 7 secuencias(mus03g, yst04r y hm16g) ambos algoritmos obtienenHipervolúmenes similares. Sin embargo, elalgoritmo DEPT obtiene mejores resultados en lasinstancias con 7 o más secuencias. Esto demuestraque el algoritmo DEPT es un algoritmo muy regular,mientras que el algoritmo NSGA-II solo funcionabien en instancias sencillas con pocas secuencias.En la Tabla V aplicamos el segundo indicador,la Relación de Cobertura. Este indicador permitecomparar los resultados individuales obtenidos porambos algoritmos [6], ya que se aplica sobre las solucionesnodominadas descubiertas por los algoritmos.En la Tabla V vemos como las soluciones nodominadasdel algoritmo DEPT cubren el 80.62% delas soluciones nodominadas del algoritmos NSGA-II,mientras que el algoritmo NSGA-II solo logra cubrirJP2011-6


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA VIComparativas de Sensibilidad (nSn) y Valor de Predicciones Positivas (nP P V ) de las soluciones del DEPT.nSnnPPVInstancia Mejor Valor (método) DEPT Incremento Mejor Valor (método) DEPT Incrementodm01g 0,344000 (SeSiMCMC) 0,440000 0,096000 0,344000 (SeSiMCMC) 1,000000 0,656000dm04g 0,022222 (MotifSampler) 0,370370 0,348148 0,032967 (MotifSampler) 0,888889 0,855922dm05g 0,037500 (MEME) 0,293750 0,256250 0,026666 (MEME) 1,000000 0,973333hm03r 0,063725 (MEME) 0,250000 0,186275 0,108333 (MEME) 0,564103 0,455770hm04m 0,005952 (AlignACE) 0,273810 0,267858 0,006060 (AlignACE) 0,333333 0,327272hm16g 0,000000 (-) 0,384146 0,384146 0,000000 (-) 0,666667 0,666667mus02r 0,094827 (MEME) 0,306034 0,211206 0,142857 (MEME) 0,750000 0,607143mus03g 0,281690 (AlignACE) 0,528169 0,246479 0,256410 (AlignACE) 1,000000 0,743590mus07g 0,040000 (ANN Spec) 0,510000 0,470000 0,020942 (ANN Spec) 1,000000 0,979058yst03m 0,340136 (Improbizer) 0,251701 -0,088435 0,700000 (YMF) 0,904762 0,204762yst04r 0,335877 (Consensus) 0,448598 0,112720 0,357142 (MITRA) 0,590909 0,233766yst08r 0,387096 (AlignACE) 0,390681 0,003584 0,786407 (MotifSampler) 0,559524 -0,226884TABLA VIIComparativas de Rendimiento (nP C) y Coeficiente de Correlación (nCC) de las soluciones del DEPT.nPCnCCInstancia Mejor Valor (método) DEPT Incremento Mejor Valor (método) DEPT Incrementodm01g 0,207729 (SeSiMCMC) 0,404762 0,197033 0,330042 (SeSiMCMC) 0,628460 0,298417dm04g 0,013452 (MotifSampler) 0,247525 0,234072 0,013401 (MotifSampler) 0,388252 0,374851dm05g 0,015831 (MEME) 0,211429 0,195598 0,006491 (MEME) 0,399132 0,392641hm03r 0,041800 (MEME) 0,195402 0,153601 0,063601 (MEME) 0,330695 0,267094hm04m 0,003012 (AlignACE) 0,136364 0,133352 -0,000399 (AlignACE) 0,237391 0,237791hm16g 0,000000 (-) 0,274882 0,274882 -0,005203 (MEME) 0,438551 0,443755mus02r 0,060439 (MEME) 0,201258 0,140818 0,097480 (MEME) 0,347446 0,249966mus03g 0,155038 (AlignACE) 0,401070 0,246031 0,222479 (AlignACE) 0,551272 0,328792mus07g 0,013937 (ANN Spec) 0,382114 0,368177 0,006056 (ANN Spec) 0,555691 0,549635yst03m 0,261904 (oligodyad) 0,203488 -0,058417 0,437304 (oligodyad) 0,369000 -0,068304yst04r 0,202765 (Consensus) 0,265152 0,062387 0,322430 (Consensus) 0,430516 0,108086yst08r 0,269103 (MotifSampler) 0,250000 -0,019103 0,470595 (MotifSampler) 0,384898 -0,085698TABLA VIIIRendimiento del DEPT y el NSGA-II utilizando diferentes sistemas multi-núcleo. X es el tiempo medio (ensegundos), S p es el speed-up y E p la eficiencia, para p núcleos.Secuencial 2-Núcleos 4-Núcleos 8-NúcleosDEPT NSGA-II DEPT NSGA-II DEPT NSGA-II DEPT NSGA-IIInstancias X X S 2 E 2 S 2 E 2 S 4 E 4 S 4 E 4 S 8 E 8 S 8 E 8dm01g 139,0 176,6 1,90 95,1% 1,80 90,0% 3,63 90,7% 3,13 78,4% 6,51 81,3% 4,58 57,3%dm04g 139,1 168,6 1,90 94,9% 1,90 95,1% 3,62 90,6% 3,16 79,0% 6,50 81,2% 4,89 61,2%dm05g 107,2 43,2 1,89 94,3% 1,68 84,0% 3,57 89,2% 2,38 59,6% 6,21 77,6% 2,80 35,0%hm03r 150,7 115,6 1,87 93,7% 1,74 86,9% 3,48 87,0% 2,78 69,4% 5,42 67,8% 3,63 45,3%hm04m 130,5 132,3 1,81 90,4% 1,73 86,4% 3,33 83,3% 2,85 71,2% 4,33 54,1% 3,75 46,8%hm16g 156,8 170,6 1,88 94,0% 1,77 88,6% 3,59 89,8% 3,08 77,1% 6,31 78,8% 4,56 56,9%mus02r 177,6 141,7 1,88 93,9% 1,76 88,2% 3,60 90,0% 2,92 73,0% 6,26 78,3% 4,15 51,9%mus03g 131,7 180,8 1,91 95,3% 1,75 87,7% 3,60 90,1% 3,30 82,4% 6,41 80,1% 4,83 60,4%mus07g 173,1 142,3 1,85 92,5% 1,82 90,8% 3,51 87,7% 3,06 76,4% 5,73 71,6% 4,06 50,7%yst03m 175,9 190,1 1,88 94,1% 1,83 91,7% 3,61 90,1% 3,20 80,0% 6,52 81,5% 4,84 60,5%yst04r 172,9 218,2 1,90 94,8% 1,82 91,0% 3,63 90,7% 3,19 79,9% 6,50 81,3% 4,87 60,9%yst08r 200,1 160,6 1,89 94,7% 1,78 89,1% 3,61 90,1% 3,09 77,1% 6,26 78,2% 4,30 53,7%Media 154,6 153,4 1,88 94,0% 1,78 89,1% 3,56 89,1% 3,01 75,3% 6,08 76,0% 4,27 53,4%JP2011-7


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011el 17.17% de las soluciones del DEPT.Podemos observar también como en casi todaslas instancias donde el algoritmo NSGA-II logramejores Hipervolúmenes que el DEPT, este últimologra mayores tasas de cobertura. Esto es debidoal hecho de que el algoritmo NSGA-II logra puntosmás dispersos en sus frentes de Pareto (favoreciendoel Hipervolumen). Sin embargo, las soluciones descubiertaspor el DEPT tienen mejores valores ensus objetivos. La última comparativa pretende demostrarla relevancia biológica de los motifs predichospor nuestro principal algoritmo, el DEPT. Parahacer esto, hemos comparado estas soluciones conlas predichas por otros catorce métodos bien conocidosen el campo biológico, descritos con detalle en[8]. En esta comparativa analizamos la Sensibilidad(nSn), el Valor de Predicciones Positivas (nP P V ), elRendimiento (nP C) y el Coeficiente de Correlación(nCC) de los mejores motifs descubiertos por el algoritmoDEPT, en cada uno de los conjuntos de datos.Comparándolos con el mejor resultado obtenido porel mejor método de entre los catorce anteriormentemencionados. Véase como en las Tablas VI y VIIen casi todas las instancias, los resultados obtenidospor nuestros motifs logran mejores resultados que losobtenidos por el mejor, demostrando así que los resultadosdescubiertos por nuestra heurística tienenuna gran relevancia biológica.Finalmente, en esta sección presentamos los resultadosde la paralelización aplicada sobre los algoritmosDEPT y NSGA-II, utilizando el interfazde programación OpenMP. Es importante destacarque los resultados obtenidos por las versiones paralelasy secuenciales de los algoritmos son los mismos,solo que se obtienen más rápidamente. En laTabla VIII mostramos los tiempos de ejecución, losspeedups y las eficiencias logradas por ambos algoritmos(DEPT y NSGA-II), en distintos sistemas multinúcleo(con 1, 2, 4 y 8 núcleos). En cada experimentohemos calculado el valor medio de speedup yeficiencia de entre 30 ejecuciones independientes, utilizandouna maquina multi-núcleo que dispone de 8núcleos (2,8Ghz y Scientific Linux 5,3). En la TablaVIII vemos como el algoritmo DEPT consigue casiel speedup ideal utilizando los sistemas con 2 y 4núcleos. Vemos también como el algoritmo NSGA-II,aunque consigue eficiencias muy prometedoras (porencima del 75%), obtiene resultados un poco peoresque los logrados por el DEPT. Finalmente, enlas pruebas realizadas con el sistema de 8 núcleos,el algoritmo DEPT mantiene eficiencias mayores del75%, mientras que el algoritmo NSGA-II cae hasta el53,4%. Con estos datos concluimos que el algoritmoDEPT es capaz de obtener soluciones hasta 6 vecesmás rápido (speedup de 6,08) en un sistema con 8núcleos. Por contra, el algoritmo NSGA-II solo escapaz de obtener los resultados 4 veces más rápido(speedup de 4,27). Las diferencias entre ambos algoritmosson considerables siendo el algoritmo DEPTun algoritmo muy adecuado para paralelizar.V. Conclusiones y Líneas FuturasEn este trabajo hemos propuesto una versión paralelade la Evolución Diferencial para resolver elProblemas del Descubrimiento de Motifs (PDM)utilizando la interfaz OpenMP. Los experimentosrealizados con distintos sistemas multi-núcleo demuestranque este algoritmo es apropiado para laparalelización, obteniendo eficiencias de hasta un95%. También hemos desarrollado la correspondienteversión paralela del algoritmo NSGA-II un algoritmoestándar en computación evolutiva. Analizandotodos los resultados podemos concluir quenuestra propuesta paralela obtiene mejores eficienciasy mejores predicciones que el algoritmo NSGA-II. Como trabajo futuro implementaremos y paralelizaremosnuevos algoritmos evolutivos multiobjetivopara resolver el PDM, comparando los resultadosobtenidos con los obtenidos por los algoritmosincluidos en este trabajo.AgradecimientosGracias a la Fundación Valhondo Calaff por elapoyo económico ofrecido a David L. González-Álvarez para realizar este trabajo. Este trabajo estáparcialmente financiado por el Ministerio de Cienciae Innovación y el FEDER (Fondo Europeo de DesarrolloRegional), bajo el proyecto TIN2008-06491-C04-04 (proyecto M*).Referencias[1] P. D’haeseleer, What are DNA sequence motifs?, NatureBiotechnology, vol. 24, no. 4, pp. 423-425, 2006.[2] G.B. Fogel et al., Evolutionary computation for discoveryof composite transcription factor binding sites, NucleicAcids Reseach, vol. 36, no. 21, pp. e142, 2008.[3] K. Price, R. Storn, Differential Evolution - A Simple EvolutionStrategy for Fast Optimization, Dr. Dobb’s Journal,vol. 22, no. 4, pp. 18-24 and 78, 1997.[4] D.L. González-Álvarez, M.A. Vega-Rodríguez, J.A.Gómez-Pulido, J.M. Sánchez-Pérez, Solving the MotifDiscovery Problem by Using Differential Evolution withPareto Tournaments, CEC’10, IEEE Computer Society,Barcelona, Spain, pp. 4140-4147, 2010.[5] K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, A fast andelitist multi-objective genetic algorithm: NSGA II, IEEETransactions on Evolutionary Computation, vol. 6, 182-197, 2002.[6] E. Zitzler, K. Deb, L. Thiele, Comparison of multiobjectiveevolutionary algorithms: empirical results, IEEE Transactionson Evolutionary Computation, vol. 8, no. 2, pp.173-195, 2000.[7] E. Wingender, P. Dietze, H. Karas, R. Knüppel, TRANS-FAC: a database on transcription factors and their DNAbinding sites, Nucleic Acids Research, vol. 24, no. 1, pp.238-241, 1996.[8] M. Tompa, et al, Assessing computational tools for thediscovery of transcription factor binding sites, NatureBiotechnology, vol. 23, no. 1, pp. 137-144, 2005.JP2011-8


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Comparación de Algoritmos Evolutivos Paralelos y Secuencialespara el Alineamiento Múltiple de SecuenciasFernando José Mateus Silva 1 Juan Manuel Sánchez-Pérez 2 , Juan Antonio Gómez-Pulido 2 and MiguelA. Vega-Rodríguez 2 -TISCTGNIGAG-NHVKWYQQLPGResumen—El alineamiento múltiple de secuencias es una delas tareas más comunes en Bioinformática. Es un método quepermite organizar un conjunto de secuencias moleculares con elfin de mostrar sus similitudes y sus diferencias. El uso demétodos exactos, para abordar este problema, está limitado porla gran cantidad de recursos de computación necesarios paraexplorar espacios de soluciones grandes y complejos. AlineaGAes un algoritmo evolutivo desarrollado para realizaralineamiento múltiple de secuencias y constituye, además, unaalternativa para mejorar la exploración y explotación de labúsqueda de soluciones con el fin de encontrar el mejoralineamiento. Este algoritmo se ha desarrollado tanto en formasecuencial como paralela. La versión paralela utiliza elprotocolo MPI y, no sólo aumenta la calidad de las solucionesencontradas sino que las encuentra en menos tiempo. En estetrabajo se comparan las versiones secuencial y paralela deAlineaGA, realizando además una comparación de la calidadde las soluciones obtenidas con las que se encuentran con unade las herramientas mas usadas en el alineamiento múltiple desecuencias - ClustalW2. Los resultados de esta comparaciónpermiten sacar conclusiones sobre la eficacia y aplicabilidad delos algoritmos desarrollados.Palabras clave—Alineamiento múltiple de secuencias,algoritmos genéticos, algoritmos genéticos paralelos, MPI,MPI.NET.UI. INTRODUCCIÓNNA de las tareas más comunes en Bioinformática es elalineamiento de secuencias moleculares. Diversosmétodos de modelización biológica dependen de unalineamiento preciso de las secuencias. Entre estos métodosse encuentran la reconstrucción filogenética, los perfiles y lapredicción de estructuras; y se aplican a diversas áreas comogenómica funcional, estudios evolutivos, modelado deestructuras, experimentos de mutagénesis y diseño defármacos [1]. El alineamiento múltiple de secuencias puedeayudar a comparar la relación de estructuras entre lassecuencias estableciendo conexiones entre sus elementos[2]. Un alineamiento organiza las secuencias de manera queindica donde las secuencias son similares, y donde sondiferentes. En las secuencias se pueden introducir espaciospara encontrar regiones de similitud entre ellas. Estos1School of Technology and Management, Computer Science andCommunication Research Centre, of the Polytechnic Institute of Leiria,Portugal (e-mail: fernando.silva@estg.ipleiria.pt).2Dept. Tecnologías Computadores y Comunicaciones, EscuelaPolitécnica, Universidad de Extremadura, Cáceres, Spain (e-mail:{sanperez, jangomez, mavega}@unex.es).espacios se denominan “gaps” y se representan por el signo“-”. Un alineamiento óptimo es el que exhibe el mayornúmero de correspondencias y el menor número dediferencias, pero este alineamiento puede o no puede serbiológicamente significativo [3]. La Fig. 1 muestra unejemplo de un alineamiento múltiple de secuencias.-RLSCSSIFSS--YAMYWVRQAPGL-LTCTVSFDD--YYSTWVRQPPGPEVTCVVSHEDPQVKFNWYVQ-PGFig. 1. Ejemplo de un alineamiento múltiple de secuencias.Actualmente, hay dos métodos importantes para realizarel alineamiento múltiple de secuencias: el métodoprogresivo y el método iterativo. Sin embargo, elalineamiento múltiple de secuencias se puede realizartambién con algoritmos exactos, que intentan encontrar unaalineación óptima o cuasi-óptima dentro de límites biendefinidos. Sin embargo, este procedimiento está muylimitado por la cantidad de recursos informáticos necesariospara alinear un gran número de secuencias [4].Aunque el enfoque progresivo es el adoptado por lamayoría de las herramientas de alineamiento múltiple desecuencias [5], tiene algunas limitaciones. En este método,el alineamiento se construye alineando progresivamentepares de secuencias según su similitud. Si el cálculo de lasimilitud es incorrecto, tendrá consecuencias en el resultadofinal, que se agravarán gradualmente mientras mássecuencias se añadan al alineamiento [6]. Uno de losejemplos más visibles basados en este método es ClustalW2.0 [7], que es probablemente el programa de alineamientomúltiple de secuencias más utilizado [8].Por el contrario, los métodos iterativos producen unalineamiento y luego lo refinan durante una serie deiteraciones hasta que no pueden hacerse más mejoras. Estosmétodos intentan optimizar una función de puntuación querefleje eventos biológicos de tal modo que optimizando lapuntuación se llegue a un alineamiento correcto [9]. LosAlgoritmos Evolutivos (AE), como p.e los AlgoritmosGenéticos (AGs), tanto secuenciales como paralelos, sonejemplos de métodos iterativos.AlineaGA [10, 11] es un AE que realiza el alineamientomúltiple de secuencias utilizando un AG que incorpora aalgunos de sus operadores genéticos un sencillo método deoptimización de búsqueda local. Está disponible en dosversiones: la secuencial y la paralela. La paralela “ParallelJP2011-9


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011AlineaGA” [12] utiliza la implementación MPI.NET [13]del protocolo de comunicaciones MPI (Message PassingInterface) [14]. A continuación presentamos unacomparación de ambas versiones del algoritmo con el fin desacar conclusiones sobre su eficacia. Aunque en este estudiono se tienen en cuenta los costes de comunicación, ya que secentra en la calidad de las soluciones obtenidas, se presentatambién una comparación entre los tiempos de ejecución delas diferentes versiones del algoritmo. Con el fin decomprender mejor la contribución de AlineaGA en laobtención de alineamientos múltiples de secuencias, tambiéncomparamos la calidad de las soluciones encontradas porambas versiones con las encontradas por ClustalW 2.0 [7] en8 conjuntos de datos o configuraciones de test de BAliBASE[15].II. ANTECEDENTESEn esta sección se introduce la terminología de losconceptos más relevantes relacionados con nuestrapropuesta para resolver el problema del alineamientomúltiple de secuencias.A. Algoritmos GenéticosLos AEs son métodos de búsqueda inspirados en laselección natural y la supervivencia del más apto en elmundo biológico. Se diferencian de las técnicas mástradicionales de optimización porque realizan la búsqueda deuna población de soluciones, y no de una única solución.Los AGs son una categoría de métodos evolutivos debúsqueda que se centran en la optimización de problemascombinatorios. Son procesos de búsqueda robustos yadaptativos, inspirados en eventos naturales, como laherencia genética y la lucha Darwiniana por la supervivencia[16].En los AGs, una población de tamaño fijo de solucionesevoluciona mediante una serie de iteraciones con operadoresgenéticos, como el cruce y la mutación. El cruce combina lascaracterísticas de la población intercambiando segmentoscorrespondientes de dos individuos escogidosaleatoriamente (los padres), y forma dos nuevos individuossimilares (hijos). La mutación por lo general aplica uncambio aleatorio en una solución. Ambos operadores seutilizan con una tasa de probabilidad definida de antemano[17]. Para poder realizar esta evolución, cada solución tieneasociado un valor o “fitness” que refleja su aptitud y que sepuede utilizar para determinar qué soluciones se puedenutilizar para producir nuevos individuos.B. Algoritmos Genéticos ParalelosAunque la paralelización se utiliza para acelerar laejecución de los algoritmos, en el caso de los AGs tambiénse traduce en una mejora de la eficiencia y eficacia comoconsecuencia de su población estructurada [18]. AGs demúltiples poblaciones o múltiples-demes, hacen uso dediferentes subpoblaciones independientes que intercambiansoluciones de vez en cuando. Este intercambio de solucionesse denomina migración y está limitado por diversosparámetros, tales como tasa de migración, que es el númerode individuos que se intercambian entre las subpoblaciones,intervalo de la migración, que indica cuando se realiza lamigración, y topología, que establece como se realiza laconexión entre las subpoblaciones [19].Esta clase de algoritmos, también denominados AGsdistribuidos [18], AGs de grano grueso [19], o AGsparalelos basados en islas (IPGA) [17, 19], son fáciles deimplementar, ya que ejecutan varios AGs independientessimultáneamente, añadiendo subrutinas que se encarguen dela migración. Estos algoritmos paralelos se pueden ejecutaren sistemas multiprocesadores e incluso en sistemasmonoprocesador utilizando tecnologías MPI [14].III. ALGORITMOS ALINEAGAEsta sección explica brevemente las características yoperaciones que realizan los algoritmos desarrollados. Elapartado A) introduce la versión secuencial del AlgoritmoAlineaGA, explicando además características comunes aambas versiones, secuencial y paralela. En el apartado B) seexplican las particularidades de la versión paralela, haciendoénfasis en las cuestiones de migración.A. AlineaGA – Un AE para Alineamiento Múltiple deSecuenciasAlineaGA utiliza una población de soluciones candidatasque evoluciona a lo largo de un determinado número degeneraciones. Los individuos de esta población sonalineamientos múltiples de secuencias, como el representadoen la Fig. 1, donde puede observarse que utiliza una versiónno codificada de los cromosomas. Cada solución se generamediante la colocación de cada secuencia en una línea delarray e insertando a continuación “gaps” de forma aleatoriahasta conseguir que todas las secuencias tengan la mismalongitud. Los pasos que se realizan posteriormente consistenen seleccionar, combinar y mutar las soluciones durante unnúmero definido de generaciones para producir nuevosindividuos (soluciones).En cada generación, todos los individuos de cadasubpoblación se evalúan para determinar su aptitud o“fitness”. Para ello, se utiliza la función suma de pares [20]que se ilustra en (1). También se utiliza una matriz depuntuación (PAM 350) [21] para determinar el costo delalineamiento de cada pareja de aminoácidos. Se emplea, unapenalización de -10 [11] cuando un aminoácido se alineacon un “gap”.n 1 n∑∑−i= 1 j=i+1Sum − of − Pairs = ScoringMatrix(l i, lj) (1)La selección de los padres se realiza según su aptitud, locual significa que los padres más aptos tienen másprobabilidades de reproducirse por medio de una operaciónde cruce. Se ha adoptado una aproximación elitista, según laJP2011-10


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011cual se mantiene el 40% de las mejores soluciones de cadageneración. La selección de los restantes individuos serealiza utilizando “torneos” de tamaño 2. Según estemétodo, se cogen aleatoriamente dos individuos de lapoblación y el que tiene mayor aptitud (“fitness”), i.e.puntuación, se selecciona para el cruce. Si ambos candidatostienen la misma aptitud se selecciona el que presente elmayor número de columnas totalmente idénticas.La recombinación de los individuos se realiza utilizandotres operadores de cruce, que se eligen aleatoriamente con lamisma probabilidad de selección. En [11] se da unadescripción detallada de estos operadores.Las mutaciones se producen, introduciendo nuevascaracterísticas en la población, aumentando así la diversidad.Con el fin de no modificar las secuencias y, por tantoinvalidar el alineamiento, los cambios sólo se pueden hacercon los “gaps” y no con los aminoácidos. Por lo tanto,insertar o desplazar “gaps” son las formas más efectivas deintroducir nuevos patrones en la población. Tanto AlineaGAcomo Parallel AlineaGA hacen uso de seis operadores demutación [22]. Cada operador de mutación se selecciona alazar y se aplica a un individuo de acuerdo con laprobabilidad de mutación definida. Si la solución mutada espeor que la original, se puede aplicar una nueva mutación alindividuo mutado. Este proceso puede repetirse hasta quemejore la aptitud, o durante un cierto número de intentospreviamente definidos por el usuario. En nuestros tests, sepermiten un máximo de 2 intentos, lo cual representa unbuen compromiso entre velocidad y robustez, sintransformar completamente los individuos de una solageneración.Se utilizan dos tipos diferentes de operadores demutación: los estocásticos y los avariciosos, que hemosdenominado operadores inteligentes (“Smart”). Losoperadores estocásticos se basan en versiones de estosoperadores ya descritas en la literatura: [23-25].Los operadores inteligentes mejoran las versionesestocásticas hibridándolas con una sencilla estrategia debúsqueda local. Las mutaciones inteligentes sólo producenla mutación si el alineamiento mutado presenta una aptitud opuntuación mejor que la del el original. Estos operadoresutilizan una probabilidad de dirección que determina lainserción/desplazamiento de los “gaps” al principio o al finaldel alineamiento. Esta probabilidad se establece inicialmentepara el centro del alineamiento y se actualiza de acuerdo alos resultados, aumentando la probabilidad deinsertar/desplazar los “gaps” a la izquierda o la derecha delalineamiento. Cada operador intenta mejorar el alineamientoun máximo de 3 veces. En [22] se da una descripción masdetallada de estos operadores.B. Parallel AlineaGAParallel AlineaGA es un IPGA, en el que cadasubpoblación de un número fijo de soluciones evoluciona deforma independiente, intercambiando periódicamenteindividuos entre sí mediante de un proceso denominadomigración. La representación de soluciones, los mecanismosde selección, la forma de evaluación, así como lasoperaciones de cruce y mutación son iguales que losutilizados por AlineaGA. Sin embargo, la diferencia radicaen su proceso de migración.Cada subpoblación se asigna a un proceso diferente quepuede ser ejecutado en procesadores distintos. Se utiliza unatopología en estrella para conectar los procesos. En estatopología, en cada intervalo de migración definido, cadaproceso esclavo envía su mejor individuo al procesoprincipal o maestro y el proceso maestro envía su mejorindividuo a cada proceso esclavo. Estos intercambiossustituyen los peores individuos de cada subpoblación,manteniendo su tamaño sin cambios. Este proceso se realizade forma asíncrona, para evitar los cuellos de botellaoriginados por los procesos más lentos. El procedimiento serepite durante un número fijo de generaciones para encontrarla mejor solución posible entre todas las subpoblaciones.Para llevar a cabo la comunicación entre lassubpoblaciones, se ha utilizado MPI.NET [13] la aplicacióndel protocolo MPI [14]. Esta elección está relacionada con laespecificidad de la plataforma .NET utilizada para ejecutarel algoritmo.IV. TESTS Y RESULTADOSEn esta sección se realiza una breve comparación de losresultados obtenidos con AlineaGA y Parallel AlineaGA.Hemos realizado tests para comprobar la eficiencia deAlineaGA y Parallel AlineaGA con ocho configuraciones detest “Reference 1” de BAliBASE [15]. Cuatro de lasconfiguraciones utilizadas (1aho, 1fmb, 1plc, 1dox)presentan más del 35% de coincidencias entre sussecuencias y las otras cuatro (1fjlA, 1hpi, 1pfc, 1ycc)presentan entre un 20% y un 40% de coincidencias. Paraevaluar el rendimiento de AlineaGA y Parallel AlineaGAhemos determinado el valor de la función de aptitud (sumade-pares)para cada una de las configuraciones de testmencionadas.Debido a la naturaleza estocástica del algoritmo, lascomparaciones se han realizado teniendo en cuenta la mediade los resultados obtenidos en 30 ejecucionesindependientes de cada versión de AlineaGA con cadaconfiguración de test. Además, en el caso de ParallelAlineaGA y con la finalidad de entender mejor el efecto delnúmero de islas en los resultados finales, cada configuraciónde test se ha ejecutado con modelos de 4 y 8 islasrespectivamente.En esta sección también se hace una comparación entrelos resultados obtenidos con AlineaGA, Parallel AlineaGA,ClustalW2 [7] (http://www.ebi.ac.uk/Tools/clustalw2), conlas configuraciones de test de BAliBASE [15].Las dos versiones del algoritmo, secuencial y paralela, sehan escrito en C#, usando .NET Framework 4. Las versionesparalelas usan MPI.NET [13] para la comunicación entre losJP2011-11


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011diferentes procesos. Todas los tests se hicieron en un 2.4GHz CPU Core2 Quad Q6600, con 2 GB de memoria,Windows XP Professional, Service Pack 3.A. Configuraciones de TestA continuación, se comparan los resultados de lasdiferentes versiones utilizadas para resolver el problema delalineamiento múltiple de secuencias utilizando técnicas deComputación Evolutiva.Los parámetros utilizados para las diferentes versiones delalgoritmo son similares y se eligieron en base a los trabajosrealizados con AlineaGA [11] y Parallel AlineaGA [12].Todos los operadores de cruce y mutación se escogieronaleatoriamente con la misma probabilidad de selección encada generación. Sin embargo, el número de generacionesnecesarias para obtener las soluciones es diferente para cadaversión del algoritmo como se indica en la Tabla I.TABLA ICONFIGURACIONES DE TESTParámetros AlineaGA Parallel AlineaGATamaño de Población 100 -Tamaño Subpoblación - 100Intervalo de Migración - 100 generacionesMatriz de Puntuación PAM350 PAM350Método de selección Torneo (Tamaño 2) Torneo (Tamaño 2)Probabilidad de Cruce 0.8 0.8Probab. de Mutación 0.4 0.4Generaciones 2000 1000B. ResultadosA continuación se presentan los resultados de los testsrealizados, teniendo en cuenta el rendimiento global y laevolución de la población.1) Rendimiento: La Tabla II que resume los resultadosobtenidos con AlineaGA y Parallel AlineaGA, permitecomparar la calidad de las soluciones obtenidas con lacalidad de las configuraciones de test de BAliBASE [15] ycon la de las soluciones obtenidas con ClustalW2 [7] para lasmismas configuraciones de test. La columna “Suma de Paresde BAliBASE” presenta la suma de pares de lasconfiguraciones de test de referencia. La columna “Suma dePares de ClustalW2” muestra el valor de la suma de pares delos resultados obtenidos con ClustalW2 [7]. Estos valores seobtuvieron usando la matriz PAM 350 y una penalización deapertura de “gaps” de -10. Las columnas “Suma de Pares deAlineaGA” y “Suma de Pares de Parallel AlineaGA”presentan el promedio de todos los resultados obtenidos enlas 30 ejecuciones de las dos versiones de AlineaGA.Al comparar los alineamientos de BAliBASE con lassoluciones encontradas con ClustalW2, se observa queClustalW2 presenta mejores soluciones para lasconfiguraciones de test: 1fmb, 1fjlA y 1pfc. Para lasconfiguraciones restantes ClustalW2 no alcanza los valoresde las configuraciones de referencia. Con respecto a lassoluciones obtenidas con AlineaGA, sólo lasconfiguraciones 1dox, 1fjlA y 1hpi no superan el valor de lasuma de pares conseguido por BAliBASE. Para las demásconfiguraciones de test AlineaGA se comporta mejor.Con respecto a ClustalW2, AlineaGA presenta mejoresvalores de la suma de pares para las configuraciones: 1fmb,1dox y 1fjlA. Sin embargo al comparar los resultados deClustalW2 con los obtenidos por Parallel AlineaGA seobserva que el modelo de 4 islas se comporta mejor paratodas las configuraciones excepto para: 1dox y 1fjlA, y queel modelo de 8 islas tiene un mejor comportamiento en todaslas configuraciones excepto en: 1fjlA. El modelo de 8 islasde Parallel AlineaGA no supera los valores de lasconfiguraciones de test 1dox, 1fjlA y 1hpi de BAliBASE.Al comparar los resultados de AlineaGA con los deParallel AlineaGA resulta obvio que con las versionesparalelas se obtienen soluciones de mayor calidad. Esto sedebe principalmente a que cuando se utilizan variaspoblaciones, se tiene más capacidad para explorar un mayorárea del espacio de búsqueda, además se aprovechan mejorlos resultados de la búsqueda gracias la migración. Elmodelo de 4 islas presenta mejores resultados que la versiónsecuencial para todas las configuraciones de test.Considerando globalmente la versión paralela de AlineaGAse puede constatar que la configuración de 8 islas logramejores resultados que la configuración de 4 islas. Sinembargo, aunque en los tests realizados no se han tenido encuenta los gastos de comunicación, se observa que laconfiguración de 8 islas tiene el inconveniente de mayorestiempos de ejecución como puede observarse en la Fig. 2.TABLA IIRESULTADOS DE LOS TESTSSuma de Pares deConfiguraciones Suma de Pares Suma de Pares Suma de ParesParallel AlineaGAde Test de BAliBASE ClustalW2 de AlineaGA4 Islas 8 Islas1aho 2015 1644 2016.89 2145.67 2207.771fmb 1706 1780 1769.63 1859.80 1876.231plc 2403 2387 2404.83 2537.53 2590.571dox 1234 1020 833.57 974.40 1162.031fjlA 1740 1770 1366.33 1558.17 1710.031hpi 1208 1087 1142.10 1190.37 1199.431pfc 2216 2231 2422.50 2501.80 2533.331ycc 963 798 971.23 1099.33 1152.20“Suma de Pares de AlineaGA” y “Suma de Pares de Parallel AlineaGA” se obtuvieron por promedio de la suma-de-pares obtenida en 30 ejecuciones deAlineaGA y Parallel AlineaGA, respectivamente.JP2011-12


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Al observar el valor medio de la suma de pares de lapoblación, se puede comprobar que cada isla realiza unabúsqueda diferente, pero su comportamiento es similarcuando las mejores soluciones en todas las subpoblacionescomienzan a ser semejantes.Fig. 2. Comparación de los tiempos de ejecución de AlineaGA y ParallelAlineaGA (en milisegundos).Al comparar los tiempos de ejecución de las diferentesversiones de AlineaGA se observa que cuando se considerael modelo paralelo de 8 islas los tiempos de ejecución sonsimilares a los de su versión secuencial; sin embargo, elmodelo de 4 islas presenta mejores tiempos de ejecución quela versión secuencial para todas las configuraciones de test.No obstante, la obtención de resultados de más calidadconseguidos con el modelo de 8 islas justifica el tiempoextra que necesita para encontrar las soluciones. Lasversiones paralelas de AlineaGA suponen una mejora tantoen la calidad de las soluciones como en los tiempos deejecución (especialmente el modelo de 4 islas) con respectoa su versión secuencial.2) Evolución de la Población: Para ilustrar las diferenciasde comportamiento de las versiones paralelas de AlineaGAcon respecto a la versión secuencial, analizaremos laevolución de la población con una de las configuraciones detest.Las Figuras 3, 4 y 5 comparan la evolución de la aptituddel mejor individuo y la aptitud media de toda la poblaciónpara la configuración de test 1aho en AlineaGA y en lasconfiguraciones de 4 y 8 islas de Parallel AlineaGA. Lasleyendas “Best” se refieren la evolución de la mejor soluciónencontrada. Las leyendas “Pop” se refieren al valor mediode todos los individuos de la población.Al comparar el comportamiento de la población entre lasversiones paralelas y la versión secuencial, está claro que ladiversidad que existe en la población de AlineaGA no escomparable con la de las distintas islas de las versionesparalelas de AlineaGA. Esta diversidad permite quesoluciones similares a las alcanzadas por AlineaGA al finalde la última generación, se puedan conseguir en torno a lageneración 500 en la versión de 4 islas de AlineaGA y entorno a la generación 400 en la versión de 8 islas deAlineaGA. La reducción del número de generacionescontribuye a la reducción de los tiempos de ejecución.Si consideramos sólo la evolución de la población en lasversiones paralelas del algoritmo, se puede observar que,debido a la migración de las mejores soluciones entre lasdiferentes islas, las series que representan la mejor solucióntienen un comportamiento análogo, acabando porsuperponerse tan pronto como en una de las islas se generensoluciones de alta calidad.Fig. 3. Mejor solución de AlineaGA y evolución de la población con laconfiguración de test 1aho.Fig. 4. Mejor solución de Parallel AlineaGA con 4 islas y la evolución de lapoblación con la configuración de test 1aho.Fig. 5. Mejor solución de Parallel AlineaGA con 8 islas y la evolución de lapoblación con la configuración de test 1aho.V. CONCLUSIONESAlineaGA puede encontrar alineamientos múltiples desecuencias de calidad. Sin embargo, su rendimiento losupera Parallel AlineaGA, tanto en calidad de las solucionesencontradas, para los modelos de 4 y 8 islas, como entiempos de ejecución, para el modelo de 4 islas. Sinembargo, ambas versiones pueden encontrar solucionesinteresantes que en la mayoría de los casos testeados, sonmejores que las que se encuentran con ClustalW2 [7].JP2011-13


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011El número de islas en el modelo paralelo es tambiéndecisivo para aumentar la robustez de los resultados.Mientras más islas tenga el modelo se alcanzaran mejoressoluciones que serán más consistentes. Sin embargo esplausible que los costos de comunicación crezcan con elnúmero de islas de los modelos, por lo que este número nodebe descuidarse.AGRADECIMIENTOSEste trabajo ha sido parcialmente soportado por elInstituto Politécnico de Leiria (Portugal) y por el proyectoMSTAR de referencia TIN 2008-06491-C04-04/TIN(MICINN España).REFERENCIAS[1] J. D. Thompson and O. Poch, "Multiple sequence alignment as aworkbench for molecular systems biology," Current Bioinformatics,vol. 1, pp. 95-104, 2006.[2] J. Horng, L. Wu, C. Lin, and B. Yang, "A genetic algorithm for multiplesequence alignment," Soft Computing, vol. 9, pp. 407-420, June 2005.[3] S. K. Pal, S. Bandyopadhyay, and S. S. Ray, "Evolutionary computationin bioinformatics: A review," IEEE Transactions on Systems Man andCybernetics Part C-Appl and Rev, vol. 36, pp. 601-615, September2006.[4] O. Lecompte, J. D. Thompson, F. Plewniak, J.-C. Thierry, and O. Poch,"Multiple alignment of complete sequences (MACS) in the postgenomicera," Gene, pp. 17-30, March 2001.[5] C. Notredame, "Recent evolutions of multiple sequence alignmentalgorithms," PLoS Comput. Biol, vol. 3, p. e123, 2007.[6] C. Notredame, D. G. Higgins, and J. Heringa, "T-Coffee: A novelmethod for fast and accurate multiple sequence alignment," Journal ofMolecular Biology, vol. 302, pp. 205-17, 2000.[7] M. A. Larkin, G. Blackshields, N. P. Brown, R. Chenna, P. A.McGettigan, H. McWilliam, F. Valentin, I. M. Wallace, A. Wilm, andR. Lopez, "Clustal W and Clustal X version 2.0," Bioinformatics, vol.23, p. 2947, 2007.[8] R. C. Edgar and S. Batzoglou, "Multiple sequence alignment," CurrentOpinion in Structural Biology, vol. 16, pp. 368-373, 2006.[9] T. Lassmann and E. L. L. Sonnhammer, "Quality assessment ofmultiple alignment programs," FEBS Letters, vol. 529, pp. 126-130,2002.[10] F. J. M. Silva, J. M. Sánchez Pérez, J. A. Gómez Pulido, and M. Á.Vega Rodríguez, "AlineaGA - A Genetic Algorithm with Local SearchOptimization for Multiple Sequence Alignment," Applied Intelligence,pp. 1-9, 2009.[11] F. J. M. Silva, J. M. Sánchez Pérez, J. A. Gómez Pulido, and M. Á.Vega Rodríguez, "An Evolutionary Approach for Performing MultipleSequence Alignment," in WCCI 2010 IEEE World Congress onComputational Intelligence Barcelona, Spain, 2010, pp. 992-998.[12] F. J. M. Silva, J. M. Sánchez Pérez, J. A. Gómez Pulido, and M. Á.Vega Rodríguez, "Parallel AlineaGA: An Island Parallel EvolutionaryAlgorithm for Multiple Sequence Alignment," in SoCPaR 2010 -International Conference on Soft Computing and Pattern Recognition,Cergy Pontoise, Paris, France, 2010, pp. 279-284.[13] D. Gregor and A. Lumsdaine, "Design and implementation of a highperformanceMPI for C# and the common language infrastructure," inProceedings of the 13th ACM SIGPLAN Symposium on Principles andpractice of parallel programming, Salt Lake City, USA, 2008, pp. 133-142.[14] W. Gropp, E. Lusk, and A. Skjellum, "Using MPI: portable parallelprogramming with the message passing interface," 1999.[15] J. D. Thompson, F. Plewniak, and O. Poch, "BAliBASE: a benchmarkalignment database for the evaluation of multiple alignment programs,"Bioinformatics, vol. 15, pp. 87-88, 1999.[16] Z. Michalewicz, Genetic algorithms + data structures = evolutionprograms - Third, Revised and Extended Edition, 3 ed.: Springer, 1996.[17] L. A. Anbarasu, P. Narayanasamy, and V. Sundararajan, "Multiplemolecular sequence alignment by island parallel genetic algorithm,"Current Science, vol. 78, pp. 858-863, April 2000.[18] E. Alba and J. M. Troya, "A survey of parallel distributed geneticalgorithms," Complexity, vol. 4, pp. 31-52, 1999.[19] E. Cantú-Paz, "A survey of parallel genetic algorithms," CalculateursParalleles, Reseaux et Systems Repartis, vol. 10, pp. 141-171, 1998.[20] M. Murata, J. S. Richardson, and J. L. Sussman, "Simultaneouscomparison of three protein sequences," Proceedings of the NationalAcademy of Sciences of the United States of America, vol. 82, p. 3073,1985.[21] M. O. Dayhoff, R. M. Schwartz, and B. C. Orcutt, "A Model ofEvolutionary Change in Proteins," in Atlas of Protein Sequence andStructure. vol. 5: National Biomedical Research Foundation, 1978, pp.345-352.[22] F. J. M. Silva, J. M. Sánchez Pérez, J. A. Gómez Pulido, and M. Á.Vega Rodríguez, "Optimizing Multiple Sequence Alignment byImproving Mutation Operators of a Genetic Algorithm," in ISDA '09Ninth International Conference on Intelligent Systems Design andApplications, 2009, pp. 1257-1262.[23] J.-T. Horng, C.-M. Lin, B.-J. Liu, and C.-Y. Kao, "Using GeneticAlgorithms to Solve Multiple Sequence Alignments," in Proceedings ofthe Genetic and Evolutionary Computation Conference (GECCO-2000), Las Vegas, Nevada, USA, 2000, pp. 883-890.[24] C. Notredame, E. A. O'Brien, and D. G. Higgins, "RAGA: RNAsequence alignment by genetic algorithm," Nucleic Acids Research, vol.25, pp. 4570-4580, 1997.[25] C. Wang and E. J. Lefkowitz, "Genomic multiple sequence alignments:refinement using a genetic algorithm," BMC Bioinformatics, vol. 6,August 2005.JP2011-14


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Evolución Diferencial OpenMP+MPI en RedesÓpticas WDMÁlvaro Rubio-Largo 1 , Miguel A. Vega-Rodríguez 1 , Juan A. Gómez-Pulido 1 yJuan M. Sánchez-Pérez 1Resumen—Hoy en día, la multiplexación por división de longitudde onda (Wavelength Division Multiplexing oWDM) es la tecnología más utilizada para explotarel enorme ancho de banda presente en las redesópticas. Sin embargo, cuando es necesario estableceruna conexión entre un nodo origen y un nodo destino,el problema de enrutamiento y asignación delongitud de onda (Routing and Wavelength Assignmento RWA) aparece. En este trabajo se proponeuna versión híbrida OpenMP+MPI de la EvoluciónDiferencial con Torneos de Pareto (DEPT) para resolverel problema RWA. Hemos estudiado el comportamientode esta versión híbrida de la EvoluciónDiferencial multiobjetivo, con una versión del algoritmoDEPT que únicamente utiliza MPI. En este estudiohemos utilizado la topología real Nippon Telegraphand Telephone (NTT, Japón) y un clúster homogéneocompuesto por 16 nodos multi-núcleo, cadanodo con 8 núcleos (un total de 128 núcleos). Trasrealizar distintos experimentos con 2, 4, 8, 16, 32,64 y 128 núcleos, podemos concluir que la versiónOpenMP+MPI del algoritmo DEPT es altamenteparalelizable, obteniendo una eficiencia media superioral 95%.Palabras clave— Híbrido OpenMP+MPI, EvoluciónDiferencial, Optimización Multiobjetivo, ProblemaRWA, Redes Ópticas.I. IntroducciónEl número de usuarios que utilizan las redesde datos ha crecido de manera exponencial enlos últimos años. Debido a que el ancho debanda de nuestras redes actuales no es suficientepara satisfacer este crecimento exponencial, surge lanecesidad de utilizar fibra óptica.La clave para explotar el enorme ancho de bandade este tipo de redes es introducir concurrencia enlas transmisiones de datos. Este es precisamenteel objetivo de la tecnología de Multiplexación porDivisión de Longitud de Onda (en inglés, WavelengthDivision Multiplexing o WDM), dividir un enlacede fibra óptica en diferentes canales o longitudes deonda [1]. Cuando surge la necesidad de estableceruna conexión entre un nodo origen y un nododestino, aparece un problema de enrutamiento yasignación de longitud de onda. Éste, es conocidoen la literatura como Routing and WavelengthAssignment (RWA) problem.Dado que el problema RWA es un problema deOptimización Multiobjetivo (MOOP) [2], en estetrabajo decidimos utilizar un algoritmo evolutivomultiobjetivo para resolver el problema RWA. Elalgoritmo elegido es la Evolución Diferencial con1 Dpto. Tecnología de Computadores y Comunicaciones,Grupo de Investigación ARCO, Universidad de Extremadura,e-mail: {arl, mavega, jangomez,sanperez}@unex.esTorneos de Pareto [3]. En este trabajo presentamosuna versión paralela de grano fino del algoritmoDEPT y el uso de un clúster multi-núcleo parareducir el tiempo que emplea el algoritmo DEPTen obtener soluciones de calidad. Para conseguireste objetivo, hemos diseñado una versión híbridaOpenMP+MPI de la Evolución Diferencial.Hemos estudiado el comportamiento de estaversión híbrida OpenMP+MPI del algoritmo DEPT,con una versión del mismo que únicamente utilizaMPI, con el fin de demostrar el alto rendimiento denuestra propuesta. En este estudio hemos utilizadola topología real Nippon Telegraph and Telephone(NTT, Japón) y un clúster homogéneo compuestopor 16 nodos multi-núcleo, cada nodo con 8 núcleos(un total de 128 núcleos). Tras numerosos experimentoscon distinto número de núcleos (2, 4, 8,16, 32, 64 y 128), podemos concluir que la versiónOpenMP+MPI del algoritmo DEPT obtiene unaalta eficiencia media (superior al 95%).El resto del artículo se organiza como sigue. Unadefinición formal del problema RWA se presentaen la Sección 2. En la Sección 3 se decribedetalladamente la versión Híbrida OpenMP+MPI dela Evolución Diferencial con Torneos de Pareto. Unestudio experimental exhaustivo de la metaheurísticaparalela se muestra en la Sección 4. Por último,las conclusiones y líneas futuras se muestran en laSección 5.II. Definición Formal del Problema RWAEn este trabajo, una red óptica se representa comoun grafo dirigido G = (V, E, C), donde V es elconjunto de nodos, E es el conjunto de enlaces entrenodos y C es el conjunto de longitudes de ondadisponibles en cada enlace óptico de E.• (i, j) ∈ E : Enlace óptico desde el nodo i al nodoj; i, j ∈ V .• c ij ∈ C : Número de longitudes de onda distintaspor enlace (i, j).• u = (s, d) : Demanda unicast u con nodo origens y nodo destino d, donde s, d ∈ V .• U : Conjunto de demandas unicast.: Longitud de Onda λ asignada a u en (i, j).• u λ i,j• l u : Conjunto de enlaces entre un nodo origen s uy un nodo destino d u ; con la correspondiente λasignada en cada enlace (i, j).• L u : Solución al problema RWA considerando elconjunto de demandas U.JP2011-15


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 1.Ejemplo ilustrativo del problema RWADebemos tener en cuenta que L u = {l u — l u esel conjunto de enlaces con su correspondiente λ asignada}. Utilizando la definición anterior, el problemaRWA puede ser tratado como un Problema de OptimizaciónMultiobjetivo (Multiobjective OptimizationProblem, MOOP) [2], el cual trata de encontrarla mejor solución L u que minimice simultáneamentelas siguientes funciones objetivo:1. Número de Saltos:y 1 = ∑ ∑u∈U (i,j)∈l uΦ j{ } (1)Φj = 1 si (i, j) ∈ ldondeuΦ j = 0 si en otro caso2. Número de Conmutaciones de Longitudes deOnda (λ):y 2 = ∑ ∑u∈U i∈V ϕ j{ } (2)ϕj = 1 si i ∈ V conmuta λdondeϕ j = 0 si en otro casoAdemás, debemos cumplir la restricción de conflictode longitudes de onda [4]: Dos transmisionesunicast diferentes deben tener diferente longitud deonda si se encuentran en el mismo enlace óptico (i, j).Un ejemplo ayudará a entender la formulación ylas funciones objetivo del problema RWA. Dada latopología de red óptica que aparece en Figura 1,suponer el conjunto de demandas {(0,2), (1,4), (4,0),y (2,3)}; y dos longitudes de onda disponibles en cadaenlace (c ij = 2). Como podemos ver en Figura 1, lasdemandas (0,2), (1,4) y (4,0) no presentan ningunaconversión de longitud de onda; sin embargo, lademanda (2,3) presenta una conversión de longitudde onda en el nodo 4. Además, en Figura 1, sepresentan los cálculos necesarios para obtener elvalor de las funciones objetivo: número de saltos(Y 1 ) y número de conmutaciones de longitud de onda(y 2 ). Aclaramos que la solución presentada (y 1 = 8,y 2 = 1) puede no ser la solución idónea, sin embargo,el objetivo de este ejemplo es ayudar a comprenderla formulación del problema y las funciones objetivodel problema RWA.III. Versión Híbrida OpenMP+MPI de laEvolución DiferencialLa Evolución Diferencial (DE) es un algoritmobasado en población, creado por Rainer Storny Ken Price [5]. Este algorítmo optimiza unproblema manteniendo una población de individuosy generando nuevos individuos mediante un simplemecanismo de cruce y mutación.Algoritmo 1 Pseudocódigo algoritmo DEPT1. P ← GenerarPoblaciónAleatoria(TamañoPoblación)2. EvaluarPoblación(P )3. para g = 0 to MAX-GENERACIONES hacer4. para i = 0 to TamañoPoblación hacer5. x target ← P [i]6. x target ← GenerarIndividuoTrial(x target , S)7. EvaluarIndividuo(x trial )8. /* TORNEO DE PARETO */9. si x trial ≠ x target entonces10. si x target .MOfitness > x trial .MOfitness entonces11. P [i] ← x trial12. sino si x target .MOfitness = x trial .MOfitness entonces13. P ′ ← x target ∪ x trial ∪ SolucionesNoDominadas(P, x trial )14. x target .cd ← DistanciaCrowding(P ′ , x target )15. x trial .cd ← DistanciaCrowding(P ′ , x trial )16. si x target .cd < x trial .cd entonces17. P [i] ← x trial18. fin si19. fin si20. fin si21. fin para22. fin paraEn [3], se presenta una versión multiobjetivodel algoritmo DE. En esta versión se incorpora elJP2011-16


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011(a) Versión paralela MPI del algoritmo DEPT(b) Versión paralela OpenMP+MPI del algoritmo DEPTFig. 2.Versiones paralelas de la Evolución Diferencial con Torneos de Pareto (DEPT)concepto de Torneos de Pareto, con el objetivode adaptar la Evolución Diferencial para resolverproblemas multiobjetivo, tales como el problemaRWA. En Algoritmo 1, se muestra el pseudocódigodel algoritmo DEPT. Para una descripción másdetalla de la Evolución Diferencial con Torneos dePareto (DEPT), consultar [3].Dado que el problema RWA es un problema NPcompletoen el que se emplea demasiado tiempoen obtener soluciones de calidad, en este trabajose propone una versión paralela de grano fino delalgoritmo DEPT y el uso de un clúster multinúcleo(el más común hoy en día) para reducir eltiempo de ejecución empleado en este problema decomunicaciones.Por un lado, el Interfaz de Paso de MensajesJP2011-17


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011(Message Passing Interface o MPI) tiene la principaldesventaja del excesivo tiempo mal empleado enla comunicación entre los núcleos que disponen dememoria compartida en un clúster multi-núcleo.Por otra parte, la interfaz de programación deaplicaciones para memoria compartida OpenMP nosrestringe ha utilizar los núcleos que compartenmemoria (normalmente no es superior a 8 núcleos,lo cuál no es suficiente [6]).Utilizando ambas tecnologías de forma conjunta(OpenMP+MPI), en este trabajo se propone unaversión híbrida OpenMP+MPI de la EvoluciónDiferencial con Torneos de Pareto, la cuál aprovechalas ventajas de ambas técnicas, obteniendo solucionesde idéntica calidad a las mostradas en [3], pero en untiempo razonable.En Figura 2, presentamos una descripciónilustrativa de cada versión paralela (MPI yOpenMP+MPI). En estos ejemplos, hemos supuestoun clúster homogéneo con 4 nodos (cada nodo con 2núcleos) y un tamaño de población de 16 individuos.Si nos centramos en la versión MPI, ver Figura2(a), para explotar el clúster multi-núcleo es necesariolanzar ocho procesos MPI, uno por cada núcleo.Despúés de esto, el proceso maestro emite a cadaproceso de forma simultánea un mensaje MPI. Estemensaje contiene una copia de la población entiempo t (P t ), ya que es necesaria para generar losnuevos individuos x trial . Cada proceso será capaz deconocer cuantos individuos tendrá que procesar yaque conoce cuantos procesos se encuentran activos(suponemos una distribución homogénea de los individuosde la población entre los procesos). Además,utilizando su propio identificador de proceso, cadaproceso identificará la posición de comienzo. Porejemplo, en Figura 2(a), el proceso con identificador2 comenzará a procesar individuos desde la cuartaposición. Cuando un proceso termina de procesar,éste envía al proceso maestro únicamente los individuosque ha procesado. Finalmente, el proceso maestrocrea la nueva población (P t+1 ) para la siguientegeneración.Por otro lado, la versión OpenMP+MPI, verFigura 2(b), sólo necesita lanzar un proceso MPI porcada nodo del clúster multi-núcleo (cuatro procesosen nuestro ejemplo). La metodología utilizada es lamisma que la explicada anteriormente, sin embargo,una vez que un proceso obtiene su propia copia de lapoblación P t , éste divide la carga de trabajo entre losnúcleos utilizando directivas OpenMP, explotando deesta forma cada nodo del clúster.Como podemos ver, existe una diferencia destacableentre ambas versiones paralelas: la versión MPInecesita el doble de mensajes para explotar el clústermulti-núcleo que la versión OpenMP+MPI, lo quese traduce en el doble de tiempo empleado en comunicacionesentre núcleos, lo que supone una pérdidaconsiderable de rendimiento en este tipo de sistemas.TABLA IMejor configuración encontrada para el algoritmoDEPTDEPTK-caminos-más-cortos (k) 10Tamaño de Población (N) 256Probabilidad de Cruce (CR) 20%Factor de Mutación (F ) 50%Esquema de Selección (S) Best/1/BinIV. Resultados ExperimentalesEn esta sección presentamos varios experimentoscomparando las versiones OpenMP+MPI y MPI dela Evolución Diferencial en un clúster homogéneocompuesto por 16 nodos multi-núcleo, cada nodocuenta con 8 núcleos (un total de 128 núcleos).En este trabajo se ha utilizado una topologíade fibra óptica real, la conocida Nippon Telegraphand Telephone (NTT, Japón), y seis conjuntos dedemandas; para más información acerca de lasinstancias, consultar [7].Las versiones paralelas fueron compiladas utilizandoel compilador gcc 4.1.2 (sin opciones de optimizacióny directivas OpenMP) y MPICH2 v1.0.8.En cada experimento, se han realizado 30 ejecucionesindependientes de 100 generaciones, con el objetivode asegurar cierta relevancia estadística. Losparámetros de configuración del algoritmo DEPT semuestran en Tabla I.En primer lugar, en Tabla II presentamos eltiempo de ejecución del algoritmo DEPT en secuencialpara cada conjunto de datos. Como podemosobservar, la instancia NTT c ij =10, |U|=40 necesitael tiempo más alto, 1229,81 segundos.TABLA IITiempo de Ejecución del algoritmo DEPT (secuencial)en segundosTopología NTTc ij =10, |U|=10 582,05c ij =10, |U|=20 858,98c ij =10, |U|=40 1229,81c ij =8, |U|=10 591,34c ij =8, |U|=20 814,8c ij =8, |U|=30 955,32Con el objetivo de realizar una comparativa justaentre ambas versiones paralelas (OpenMP+MPI yMPI), se han realizado varios experimentos utilizandodiferente número de núcleos: 2, 4, 8, 16, 32,64 y 128. Además, se ha medido por separado eltiempo de comunicación entre procesos y el tiempode computación invertido por cada versión.En Figura 3 se muestran los resultados obtenidospor las heurísticas paralelas para cada conjuntode datos. Como podemos ver, la versión MPIobtiene mayor tiempo de ejecución que la versiónOpenMP+MPI, idependientemente del número denúcleos utilizado. Podemos comprobar que estoJP2011-18


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 3.Tiempos de Ejecución de las versiones paralelas del algoritmo DEPT (OpenMP+MPI y MPI)es debido a que la versión MPI invierte muchomás tiempo en comunicaciones entre procesos quela versión híbrida. Además, podemos observar enFigura 3 que la versión OpenMP+MPI no presentatiempo de comunicaciones en los experimentos con2, 4 y 8 núcleos, debido a que esto no es necesarioya que comparten memoria. Con el fin de facilitar lalectura de los gráficos de barra presentados en Figura3, se ha ampliado la zona del gráfico correspondientea los experimentos con 16, 32, 64 y 128 núcleos.Podemos ver que la versión OpenMP+MPI obtieneresultados muy prometedores en todas las instancias.Por ejemplo, en el conjunto de datos NTTc ij =10, |U|=40, con 128 núcleos, la versión híbridaDEPT es capaz de ejecutar 100 generaciones en 11,32segundos, en lugar de 1229,81 segundos en la versiónsecuencial. Esto significa que utilizando la versiónOpenMP+MPI de la Evolución Diferencial con Torneosde Pareto, podemos obtener soluciones de igualcalidad a las presentadas en [3], pero por encima decien veces más rápido.Finalmente, en Figura 4(a) y Figura 4(b) semuestran el valor medio de aceleración y eficienciaobtenido por cada una de las versiones paralelasJP2011-19


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011implementadas en este trabajo.Como podemos ver en Figura 4(a), ambas versionespresentan un comportamiento similar con 2,4 y 8 núcleos, sin embargo, cuando el número denúcleos es incrementado, las diferencias entre ambasheurísticas crecen exponencialmente. De Figura 4(b)podemos extraer las mismas conclusiones: a medidaque aumenta el número de núcleos, la eficiencia dela versión MPI decrece de manera exponencial.Podemos concluir diciendo que el algoritmo DEPTes adecuado para ser paralelizado. Además, teniendoen cuenta que la versión OpenMP+MPI únicamenteacelera la ejecución del algoritmo (obteniendo solucionesde idéntica calidad), es capaz de superar losresultados obtenidos por otras heurísticas publicadasen la literatura ([8] and [9]), como indicamos en [3].de Enrutamiento y Asignación de Longitudes deOnda (RWA). Tras realizar una comparativa entrenuestra versión híbrida y una versión MPI, condistinto número de núcleos: 2, 4, 8, 16, 32, 64 y128, podemos concluir que la versión OpenMP+MPIobtiene resultados muy prometedores (una eficienciamedia de 95%), mientras que en la versión MPI laeficiencia decrece de manera exponencial a medidaque el número de núcleos se incrementa. Deesta forma, utilizando OpenMP y MPI de maneraconjunta para paralelizar el algoritmo multiobjetivoDEPT podemos solucionar el problema RWA en untiempo razonable.Como trabajo futuro, tenemos la intención deaplicar esta versión OpenMP+MPI de la EvoluciónDiferencial a otros problemas de telecomunicaciones,tales como Traffic Grooming. Además, no sedescarta diseñar otros algoritmos evolutivos multiobjetivocon el fin de realizar comparativas derendimiento.AgradecimentosEl presente trabajo ha sido parcialmente financiadopor el Ministerio de Ciencia e Innovación yel FEDER (Fondo Europeo de Desarrollo Regional),bajo el proyecto TIN2008- 06491-C04-04 (proyectoM*). Álvaro Rubio-Largo es becario de investigación(PRE09010) de la Junta de Extremadura (Consejeríade Economía, Comercio e Innovación).(a) Aceleración Media(b) Eficiencia MediaFig. 4. Aceleración y Eficiencia media obtenida por lasversiones paralelas del algoritmo DEPTV. Conclusiones y Trabajo FuturoEn este artículo presentamos una versión HíbridaOpenMP+MPI de la Evolución Diferencial conTorneos de Pareto (DEPT) para resolver el problemaReferencias[1] A. M. Hamad y A. E. Kamal, “A survey of multicastingprotocols for broadcast-and-select single-hop networks,”IEEE Network, vol. 16, pp. 36–48, 2002.[2] K. Deb, Multi-Objective Optimization Using EvolutionaryAlgorithms. New York, NY, USA: John Wiley & Sons,Inc., 2001.[3] A. Rubio-Largo, M. A. Vega-Rodríguez, J. A. Gómez-Pulido, y J. M. Sánchez-Pérez, “A Differential Evolutionwith Pareto Tournaments for solving the Routing andWavelength Assignment Problem in WDM Networks,”Proceedings of the 2010 IEEE Congress on EvolutionaryComputation (CEC 2010), pp. 129–136, 2010.[4] M. Gagnaire, M. Koubaa, y N. Puech, “Network Dimensioningunder Scheduled and Random Lightpath Demandsin All-Optical WDM Networks,” IEEE Journal on SelectedAreas in Communications, vol. 25, no. S-9, pp. 58–67, 2007.[5] R. Storn y K. Price, “Differential Evolution - A SimpleEvolution Strategy for Fast Optimization,” Dr. Dobb,vol. 22, no. 4, pp. 18–24, 1997.[6] A. Rubio-Largo, M. A. Vega-Rodríguez, J. A. Gómez-Pulido, y J. M. Sánchez-Pérez, “Improving optical wdmnetworks by using a multi-core version of differential evolutionwith pareto tournaments,” Distributed Computingand Artificial Intelligence, Springer Berlin / Heidelberg,vol. 79, pp. 629–636, 2010.[7] M. Schaerer y B. Barán, “A Multiobjective Ant ColonySystem for Vehicle Routing Problem with Time Windows,”IASTED International Conference on Applied Informatics,pp. 97–102, 2003.[8] C. Insfrán, D. Pinto, y B. Barán, “Diseño de TopologíasVirtuales en Redes Ópticas. Un enfoque basado en Coloniade Hormigas,” XXXII Latin-American Conference onInformatics 2006 - CLEI2006, vol. 8, pp. 173–195, 2006.[9] A. Arteta, B. Barán, y D. Pinto, “Routing and WavelengthAssignment over WDM Optical Networks: a comparisonbetween MOACOs and classical approaches,” in LANC’07: Proceedings of the 4th international IFIP/ACMLatin American conference on Networking. New York,NY, USA: ACM, 2007, pp. 53–63.JP2011-20


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Paralelización del algoritmo de bi-mezclaJuan F. R. Herrera 1 , Leocadio G. Casado 2 , Inmaculada García 3 y Eligius M. T. Hendrix 4Resumen— Los algoritmos de diseño de mezclas tienencomo objetivo determinar las mezclas de ingredientesque se ajustan a las restricciones de diseñoimpuestas para el producto en cuestión. Estas restriccionespueden ser lineales y/o cuadráticas. Las mezclasdeben ser óptimas, tanto el coste como el númerode ingredientes empleado tiene que ser mínimo. Losfabricantes elaboran una serie de productos a partirde un conjunto dado de materias primas. La escasezen la disponibilidad de estas materias primas introducerestricciones de disponibilidad que alteran la soluciónPareto-óptima. Los autores han desarrolladoalgoritmos de Ramificación y Acotación para resolverproblemas de mezcla en donde la complejidad computacionalse incrementa con la dimensión del producto.Debido a esta complejidad, se abordará el problemade mezcla para la obtención de sólo dos productos.El diseño de mezclas para dos productos es másdifícil que para un único producto porque además deque el diseño de cada producto está sometido a unasrestricciones, el frente de Pareto así como la disponibilidadde materias primas pasa a ser común a ambosproductos. Se debe realizar una combinación finalentre todas las soluciones del primer y el segundoproducto para eliminar las combinaciones de mezclasque no satisfacen los criterios impuestos. El conjuntoresultante puede ser usado como dato de entradadel mismo algoritmo cuando se requieran resultadosmás precisos. El coste computacional de la fase decombinación dependedel número de elementos delconjunto final de cada producto.Aquí, estudiaremos el coste computacional de lasdiferentes fases del algoritmo de mezcla para dos productosy proporcionaremos versiones hebradas paralas fases más costosas. Los experimentos se han realizadoen una máquina de ocho núcleos con memoriacompartida, usando un problema de tamaño mediopara evitar largos tiempos de ejecución. Los experimentosmuestran que la computación paralela es unaherramienta necesaria para hacer una búsqueda exhaustivaen problemas de grandes dimensiones y demás de un producto.Palabras clave— Memoria compartida, Procesamientoparalelo , Multihebrado, Ramificación y acotación,Optimización global.I. IntroducciónENCONTRAR un diseño robusto y barato paraun producto que satisfaga una serie de restriccionescuadráticas es un problema arduo. Se puedenencontrar descripciones de casos prácticos en [1] y[2], entre otros. En la industria, las compañías puedenutilizar las mismas materias primas para producirvarios productos. Esto complica el proceso debúsqueda de soluciones factibles y robustas si se pretendegarantizar la optimalidad y robustez de la soluciónfinal.1 Dpto. de Arquitectura de Computadores y Electrónica,Univ. Almería, e-mail: juanfrh@ual.es.2 Dpto. de Arquitectura de Computadores y Electrónica,Univ. Almería, e-mail: leo@ual.es.3 Dpto. de Arquitectura de Computadores, Univ. Málaga,e-mail: igarciaf@uma.es.4 Dpto. de Arquitectura de Computadores, Univ. Málaga,e-mail: eligius.hendrix@wur.nl.Los algoritmos de búsqueda exhaustiva para unproblema de diseño de un solo producto son descritosen [3], [4] y [5], mientras que el enfoque para laobtención de dos productos aparece en [6].La Sección I-A describe el problema de mezcla paraun producto y la Sección I-B para dos productos(bi-mezcla). La Sección II describe la versión secuencialdel algoritmo de bi-mezcla y la Sección III describesu modelo paralelo. La Sección IV muestra losresultados computacionales y la Sección V resumelas conclusiones y el trabajo futuro.A. El problema de diseño de un productoEl problema de diseño que nosotros investigamos(Semi-continuous Quadratic Mixture Design Problem,SQMDP) está descrito en [4], donde aparecenrestricciones cuadráticas y semicontinuas. Aquí resumiremoslas principales características del mismo.Las variables x i representan la fracción de la materiaprima i en la mezcla x. El conjunto de posiblesmezclas está matemáticamente definido por elsímplex unitario{}n∑S = x ∈ R n : x i = 1,0; x i ≥ 0 , (1)i=1donde n denota el número de materias primas.El objetivo es encontrar una mezcla x que minimiceel coste del producto, f(x) = c T x, donde el vectorc representa el coste de las materias primas. No sóloel coste del producto debe ser minimizado, sino tambiénel número de materias primas involucradas enla mezcla x dado por ∑ ni=1 δ i(x), donde{1 si xi > 0,δ i (x) =0 si x i = 0.La semicontinuidad de las variables está relacionadacon la dosis mínima aceptable md (minimaldose) de cada materia prima i, de forma que x i = 0ó x i ≥ md. El número de subsímplices resultantes(caras) esn∑( n= 2t)n − 1,t=1donde t denota el número de materias primas en cadasubsímplex. Todos los puntos x en un símplex inicialP u , u = 1, . . . , 2 n − 1, son mezclas del mismo grupode materias primas. El índice u representa el grupode materias primas correspondiente a un símplexinicial P u :n∑u = 2 i−1 δ i (x), ∀x ∈ P u .i=1Los productos deben satisfacer ciertos requisitos.Para problemas de mezcla relativamente sencillos, losJP2011-21


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011x 21,01,0 Una materia primamd0,0mdDos materias primasx 1x 1x2x 3Fig. 1Símplices 2D y 3D sin la región de dosis mínimalímites o restricciones lineales (véase [1], [2] y [7])definen el espacio de búsqueda X ⊂ S.Sin embargo, en la práctica aparecen restriccionescuadráticas [3], [4]. Se define Q como el espacio dondese satisfacen tales restricciones cuadráticas.Además, el resultado debe satisfacer las restriccionescuadráticas cuando aparecen pequeñas variacionesen los porcentajes de la mezcla debido al procesode producción. Dada una mezcla x, se define la robustezde x como R(x) y ésta debe ser mayor o iguala un umbral ε, véase [4].Teniendo en cuenta las consideraciones anteriores,se define SQMDP como:míns.a.f(x), ∑ ni=1 δ i(x)x ∈ X ∩ QR(x) ≥ εEn [3] se describen tests basados en las llamadas✭✭esferas de no factibilidad✮✮, que identifican áreasdonde no se puede encontrar una mezcla factible. En[4] se describe un algoritmo de Ramificación y Acotaciónpara resolver SQMDP usando tests de rechazobasados en restricciones lineales, cuadráticas y de robustez.El problema de encontrar la mejor solución robustase convierte en un problema de Optimización Global,donde resulta complejo garantizar que la solución obtenidaes la global, ya que pueden existir múltiplesóptimos locales y el área factible puede no ser convexao incluso estar dividida en varios compartimentos.En [8] se presentó una versión multihebrada del algoritmopara resolver SQMDP mediante un esquemaAsynchronous Multiple Pool [9], donde se siguió unaestrategia similar a la utilizada en el algoritmo paralelode Optimización Global basado en Aritméticade Intervalos (Local-PAMIGO), publicado en [10].B. El problema de diseño de dos productosEn este artículo, nuestro objetivo es paralelizar elalgoritmo que encuentre las mejores mezclas cuandose pretende diseñar dos productos que compartenmaterias primas. En algunas ocasiones, la industriase enfrenta al problema de la escasez de materiasprimas para los productos que desea elaborar. Esteinconveniente puede ser resuelto mediante el uso deuna dosis mayor de otro ingrediente, aunque esto hagaque la solución óptima para cada producto no seasiempre la solución del problema completo.Tal y como se describe en [6], cada producto tienesu propia demanda y sus propias especificacionesde diseño en forma de restricciones lineales y/ocuadráticas. Una manera común de describir el problemaes identificar un índice j para cada producto,que tiene una cierta demanda D j . La cantidad demateria prima i disponible viene dado por B i . Ahora,la variable de decisión principal x i,j es la fracciónde la materia prima i presente en el producto j.En principio, todos los productos x ∗,j , j = 1, 2,pueden hacer uso de todas las n materias primas;x ∗,j ∈ R n , j = 1, 2. Esto significa que x i,1 y x i,2hacen referencia a fracciones del mismo ingredientepara los productos 1 y 2. Las reservas de materiasprimas se describen a través de las restricciones dedisponibilidad, que vienen dadas por2∑D j x i,j ≤ B i ; i = 1, . . . , n.j=1Por lo tanto, se establece la función de coste deeste problema como:f bi (x ∗,1 , x ∗,2 ) =2∑D j f(x ∗,j ).j=1El otro criterio a minimizar es el número de distintasmaterias primas utilizado en el diseño de losdos productos:ω(x ∗,1 , x ∗,2 ) =n∑δ i (x ∗,1 ) ∨ δ i (x ∗,2 ),i=1dondedenota la operación or bit a bit.Por lo tanto, se define el problema de bi-mezclacomo:mín f bi (x ∗,1 , x ∗,2 ), ω(x ∗,1 , x ∗,2 )s.a. x ∗,1 ∈ X 1 ∩ Q 1 , x ∗,2 ∈ X 2 ∩ Q 2R(x ∗,j ) ≥ ε, j = 1, 2∑ 2j=1 D jx i,j ≤ B i ; i = 1, . . . , nII. Algoritmo para resolver el problemade bi-mezclaResolver el problema de bi-mezcla de una maneraexhaustiva (el método obtiene todas las solucionesJP2011-22


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmo 1 B&B1: Inicializar ns := 2 × (2 n − 1)2: Inicializar la lista Λ 1 := {C 1 , . . . , C 2n −1}3: Inicializar la lista Λ 2 := {C 2 n, . . . , C ns }4: Inicializar las listas Q 1 := {} y Q 2 := {}5: while Λ 1 , Λ 2 ≠ {} do6: Seleccionar un símplex C = C k de Λ j7: Evaluar C8: Calcular f L (C) y b L i (C), i = 1, . . . , t k9: if C no puede ser eliminado then10: if C satisface la regla de terminación then11: Almacenar C en Q j12: else13: Dividir C en C ns+1 , C ns+214: C := arg mín{f L (C ns+1 ), f L (C ns+2 )}15: Almacenar {C ns+1 , C ns+2 } \ C en Λ j16: ns := ns + 217: Ir a 718: end if19: end if20: j := (j mód 2) + 121: end while22: return Q 1 y Q 2globales dentro de la precisión establecida) requiereel diseño de un algoritmo de Ramificación y Acotación(Branch & Bound, B&B) específico. Los métodosB&B se caracterizan por cuatro reglas: Ramificación,Selección, Acotación y Eliminación [11], [12]. Sedebe incluir una regla de Terminación para problemasdonde las soluciones vienen determinadas poruna precisión establecida. En los algoritmos B&B,la región de búsqueda es dividida recursivamente enpartes disjuntas (ramificación) sobre las cuales se determinanlos límites de un valor de la solución óptima(acotación). Se define el límite superior global f U comoel valor de la función objetivo de la mejor soluciónε-robusta encontrada hasta ahora. De esta forma, sepueden descartar subconjuntos C k con un límite inferiorfkL de la función objetivo que sean mayores queel límite superior f U , ya que se puede garantizar queno contienen una solución óptima.Una descripción detallada del Algoritmo 1 se puedeencontrar en [6]. El Algoritmo 1 usa una lista detrabajo Λ j y una lista final Q j para cada producto.Aquí resumiremos las características más relevantespara el desarrollo de una versión paralela. Cadasímplex es una región que satisface (1) y sus vérticesson posibles recetas o mezclas (véase la Figura 1).Las reglas B&B usadas en el Algoritmo 1 se describena continuación:Ramificación: Se divide el símplex por el ladomás largo o por aquel lado definido por los vérticesmás caro y más barato.Acotación: Para cada símplex se calculan doslímites inferiores:Coste: f L (C) es el límite inferior del coste de unsímplex C y es proporcionado por el vérticecuyo coste es menor, debido a que los símplicesson convexos y la función de coste es lineal.Cantidad de cada materia prima: b L i (C) es ellímite inferior del uso de cada materia prima ien un símplex C. Este límite inferior es obtenidode manera análoga al límite inferior delcoste.Selección: Se realiza una búsqueda híbrida: combinaciónde la búsqueda en profundidad y labúsqueda ✭✭primero el mejor✮✮. Se selecciona elsímplex más barato, basado en la suma de loscostes de sus vértices, y se realiza una selecciónen profundidad hasta que el símplex no puedaser dividido más (véase el Algoritmo 1, las líneas6, 14 y 17). De esta forma, se pretende reducirel consumo de memoria del algoritmo.Eliminación: Se aplica un conjunto de tests basadosen restricciones lineales, cuadráticas y derobustez a los símplices de un producto, véase[4]. Además, existen otros tests de rechazo dondehay que tener en cuenta ambos productos.Estos tests son los siguientes:Test de disponibilidad: Se defineβi,j L = D j × mín x i (2)x∈C∈Λ j∪Q jcomo el límite inferior de la demanda de materiaprima i en el espacio de búsqueda actualdel producto j. Un símplex C k en el productoj no satisface la restricción de disponibilidadsiD j × b L i (C k ) + β L i,j ′ > B i, (3)donde j ′ hace referencia al otro producto.Test de Pareto: Si se encuentra un par de mezclasfactibles (x, y), siendo x ∈ C ∈ Λ 1 ∪ Q 1e y ∈ C ∈ Λ 2 ∪ Q 2 , con f(x) + f(y) f U ω(x,y) , (5)con x ∈ C k e y ∈ P u,j ′.Terminación: Los símplices no rechazados quealcanzan el tamaño requerido α son almacenadosen Q j .El resultado del Algoritmo 1 es un conjunto demezclas Pareto-óptimas (dentro de la precisión α) ylas listas finales Q j , j = 1, 2, que, además de lasmezclas, contienen los símplices que no han sido rechazados.Durante la ejecución del algoritmo, se actualizanlos límites inferiores βi,j L y ϕL u,j basándose en losJP2011-23


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmo 2 Comb1: for j = 1, 2 do2: for all C ∈ Q j no marcado como válido do3: if ∃ C ′ ∈ Q j ′ que satisfaga (6) y (7) then4: Marcar C ′ como válido5: Continuar con el siguiente símplex C{Los restantes C ′ ∈ Q j ′ no son visitados}6: else7: Eliminar C8: end if9: end for10: end forvértices no rechazados, así como el frente de Paretofp U . Por lo tanto, se debe realizar una combinaciónfinal entre los símplices de Q 1 y Q 2 para rechazaraquellos símplices C que no contengan una soluciónPareto-óptima:f L (C) + f L (C ′ ) > f U ω(x,y) ; x ∈ C, y ∈ C′ (6)o no satisfagan la restricción de disponibilidad:b L i (C) + bL i (C′ ) > B i ; i = 1, . . . , n, (7)para todos los símplices C ′ ∈ Q j ′.Esta operación se realiza en el Algoritmo 2. Enla primera iteración (j = 1) del bucle externo, sise encuentra un símplex C ′ ∈ Q 2 que junto con Csatisfaga (6) y (7), C ′ es marcado como válido y noserá procesado en la línea 2 de la siguiente iteración(j = 2).III. Estrategia paralelaEl problema de bi-mezcla se resuelve en dos fases:en la fase B&B se obtienen las listas Q 1 y Q 2con todos los símplices finales para ambos productos(Algoritmo 1) y en la fase Comb se filtran aquellassoluciones no factibles (Algoritmo 2). Como la salidadel Algoritmo 1 es la entrada del Algoritmo 2, laparalelización de ambos algoritmos se puede realizarde forma independiente.El número de símplices finales obtenidos por el Algoritmo1 dependede varios factores: la dimensióndel problema, la precisión α de la regla de terminacióny el tamaño de la región factible de cada producto.Experimentos preliminares muestran que estenúmero puede ser relativamente alto. Por lo tanto,el Algoritmo 2 puede ser mucho más costoso computacionalmenteque el Algoritmo 1, siendo la paralelizaciónde esta fase la principal prioridad de esteestudio.El Algoritmo 2 hace uso de un bucle anidado yde las dos listas finales Q 1 y Q 2 . Para cada símplexC ∈ Q j , se busca un símplex C ′ ∈ Q j ′ que satisfaga(6) y (7) de forma que C no se elimine. En el peor delos casos (cuando el símplex C se elimina), la listaQ j ′ se explora completamente (todos los símplicesC ′ ∈ Q j ′ son visitados).Para evitar contención entre hebras en el accesoa la lista enlazada Q j , los símplices no son rechazadossino marcados para ser eliminados posteriormente.De otro modo, la lista podría ser modificada porvarias hebras cuando los símplices son eliminados,haciendo necesario el uso de exclusión mutua.La siguiente notación es necesaria para la descripciónde las distintas estrategias:Pos(C, Q j ): posición del símplex C en Q j .NT h: número total de hebras.Id(T h): identificación de la hebra T h. Los númerosde identificación son consecutivos y comienzanen cero.Existen varias formas de paralelizar el Algoritmo 2mediante el uso de hebras. En este artículo abordaremosdos estrategias:Estrategia 1: Asignar NT h/2 hebras a cada listafinal Q j , j = 1, 2. De este modo, las iteraciones1 y 2 del bucle exterior se llevan a cabo en paralelo,trabajando sobre las dos listas simultáneamente.Esta estrategia requiere que NT h ≥ 2.Cada hebra T h analiza los símplices C ∈ Q jque satisfacen módulo (Pos(C, Q j )/(NT h/2)) =Id(T h). Después de recorrer ambas listas, el borradode los nodos de las listas Q j , j = 1, 2, esrealizado por una hebra para cada lista.Estrategia 2: Asignar NT h hebras al bucle interiorpara llevar a cabo una iteración del bucle exterior.Cada hebra T h analiza los símplices C ∈Q j que satisfacen módulo (Pos(C, Q j )/NT h) =Id(T h). Ahora se pretende procesar sólo una listaen paralelo, borrando los símplices no factiblesantes de procesar la siguiente lista en paralelo.El borrado de los nodos (marcados paratal fin) de Q j es realizado por una sola hebra alfinal de la cada iteración j.La paralelización del Algoritmo 1 es más difícilporque el trabajo computacional pendiente no es conocidode antemano. Un estudio de la predicción deltrabajo en algoritmos de Ramificación y Acotaciónpara problemas de Optimización Global basado enAritmética de Intervalos se puede encontrar en [13].Aunque los autores de este trabajo presentan algoritmosparalelos de Ramificación y Acotación en [10],[14], [15] y [16], estos artículos estudian la paralelizaciónde un único algoritmo B&B. Sin embargo, laresolución del problema de bi-mezcla se puede vercomo dos instancias del mismo algoritmo B&B, unapara cada producto, que comparten β L i,j , ϕL u,j y f U p(véase las Ecuaciones 2, 3, 4 y 5). Cada hebra j trabajacon una lista de trabajo Λ j y una lista final Q j .El problema es determinar cuántas hebras se dedicana cada producto. Aquí, utilizaremos una hebra porproducto para mostrar la dificultad de la fase B&B,dejando para trabajos futuros el uso de un númeromayor de hebras en esta fase.IV. Resultados experimentalesPara evaluar el rendimiento de las distintas versionesdel algoritmo paralelo, se han utilizado unpar de productos de cinco dimensiones, llamadosUniSpec1-5 y UniSpec5b-5. Ambos han sido adaptadosde dos productos de siete dimensiones (UniSpec1JP2011-24


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011y UniSpec5b, respectivamente) tomados de [4], eliminandolos elementos {a i,j ∈ A : i = 6, 7; j = 6, 7}y {b i ∈ b : i = 6, 7} de las restricciones cuadráticas.Este problema ha sido resuelto con una robustezε = √ 2/100, una precisión α = ε y una dosismínima md = 0,03. La demanda de cada productoes D T = (1, 1). La disponibilidad de la materia primauno (RM1) y de RM3 está restringida a 0,62 y0,6, respectivamente; mientras las otras materias notienen limitación alguna.Los algoritmos se han codificado en C y han sidoevaluados en una máquina Dell PowerEdge R810 conun procesador Intel Xeon 1.87 GHz de ocho núcleos,16 GB de RAM y sistema operativo Linux con kernel2.6. Para la creación y el manejo de las hebras, se hautilizado la librería de POSIX Threads. También seha usado la librería LAPACK para algunos cálculosmatemáticos realizados por el algoritmo.La Tabla I proporciona información sobre el esfuerzocomputacional realizado por el algoritmo secuencial(BiBlendSeq) y el algoritmo paralelo (Bi-BlendPar). La Tabla II muestra el tiempo de ejecuciónde BiBlendSeq y BiBlendPar. BiBlendPar utilizaNT h = 2 en la fase B&B. Para la fase Comb,se han usado NT h = 2, 4 y 8 en la Estrategia 1 yNT h = 1, 2, 4 y 8 en la Estrategia 2 (véase la SecciónIII). Los datos mostrados en las Tablas I y II esel valor medio de cinco ejecuciones.La siguiente notación ha sido utilizada para ambastablas:NEvalS: Número de símplices evaluados.NEvalV: Número de vértices evaluados.QLR: Número de símplices rechazados por restriccioneslineales, cuadráticas o de robustez.Pareto: Número de símplices rechazados por eltest de Pareto.Capacity: Número de símplices rechazados porel test de disponibilidad.|Q S |: Número de símplices almacenados en laslistas finales Q j , j = 1, 2.|Q V |: Número de vértices asociados a los símplicesen Q j , j = 1, 2.NT h: Número de hebras creadas.T h j time: El tiempo de ejecución de T h j , j =1, 2, en segundos.Time: El tiempo de ejecución en segundos.Speedup: Aceleración obtenida.La aceleración con respecto al tiempo de ejecuciónde un algoritmo paralelo con p unidades de procesose define como S(p) = t(1)/t(p), donde t(p) es eltiempo de ejecución cuando p unidades de procesoson utilizadas.La fase B&B de BiBlendPar es la misma para lasEstrategias 1 y 2. En esta fase se obtiene una ligeraaceleración en el tiempo de ejecución. No se alcanzauna aceleración lineal debido a la diferencia decomplejidad entre los dos productos: UniSpec1-5 tieneuna región factible definida por unas restriccionescuadráticas de menor complejidad que UniSpec5b-5.En cuanto a la fase Comb, la Estrategia 2 exhi-TABLA IEsfuerzo computacionalFase B&BBiBlendSeq BiBlendParNEvalS 2.536.862 2.537.430NEvalV 168.186 168.299QLR 887.609 888.004Pareto 54.050 54.050Capacity 18.277 18.211|Q S | 308.443 308.465|Q V | 49.317 49.324Fase CombBiBlendSeq BiBlendParPareto 27.284 27.284Capacity 105.499 105.521|Q S | 175.660 175.660|Q V | 24.861 24.861be una buena escalabilidad y aceleración comparadocon BiBlendSeq, obteniéndose una aceleración lineal.Nótese que en esta fase se filtran casi la mitad de lossímplices finales obtenidos en la fase B&B, de ahí sucomplejidad. En cambio, la Estrategia 1 ofrece unaaceleración muy pobre en comparación con la Estrategia2. Uno de los principales motivos es que en laEstrategia 1 no se borran los símplices hasta el final,siendo las listas del mismo tamaño durante toda laejecución del Algoritmo 1. Además, la Estrategia 2evalúa menos comparaciones (evaluación de (6) y posiblemente(7)) entre símplices (una media de 5.421millones) que la Estrategia 1 (5.487 millones).Para el problema de mezcla descrito anteriormente(UniSpec1-5 & UniSpec5b-5), se han encontrado dossoluciones con un número diferente de materias primasinvolucrado: (x ⋆[1]∗,1 , x⋆[1] ∗,2 ) y (x⋆[2] ∗,1 , x⋆[2] ∗,2 ). La primerade ellas hace uso de cuatro materias primas(RM1, RM3, RM4 y RM5):x ⋆[1] =UniSpec1-5 UniSpec5b-5⎛⎞RM1 0,428125 0,146875RM2 0,0 0,0RM3 ⎜ 0,4352344 0,1640625⎟RM4 ⎝ 0,0 0,2328125 ⎠RM5 0,1366406 0,4562500El valor de coste de esta solución es f bi (x ⋆[1]∗,1 , x⋆[1] ∗,2 ) =111,09 + 116,334375 = 227,424375. La segunda solucióninvolucra las cinco materias primas:x ⋆[2] =UniSpec1-5 UniSpec5b-5⎛⎞RM1 0,428125 0,156172RM2 0,0 0,03RM3 ⎜ 0,442344 0,152852⎟RM4 ⎝ 0,0 0,212617 ⎠RM5 0,129531 0,448359El valor de coste de esta solución es f bi (x ⋆[2]∗,1 , x⋆[2] ∗,2 ) =111,033125 + 116,172422 = 227,205547.JP2011-25


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IIAceleraciónFase B&B Fase Comb (Estrategia 1) TotalNT h T h 1 T h 2 Time Speedup NT h Time Speedup Time Speedup– – – 7,23 – – 1.991,46 – 1.998,70 –2 0,85 7,09 7,09 1,02 2 1.428,88 1,39 1.436,17 1,392 0,83 7,13 7,13 1,01 4 696,39 2,86 703,52 2,842 0,78 7,00 7,00 1,03 8 338,92 5,88 345,91 5,78Fase B&B Fase Comb (Estrategia 2) TotalNT h T h 1 T h 2 Time Speedup NT h Time Speedup Time Speedup– – – 7,23 – – 1.991,46 – 1.998,70 –2 0,83 7,03 7,03 1,03 1 1.966,51 1,01 1.973,54 1,012 0,81 7,03 7,03 1,03 2 956,01 2,08 936,05 2,082 0,76 6,96 6,96 1,04 4 465,02 4,28 471,98 4,232 0,81 7,00 7,00 1,03 8 228,63 8,71 235,63 8,48V. ConclusionesSe ha estudiado la paralelización de un algoritmocon la finalidad de resolver el problema de diseño dedos productos obtenidos mediante mezcla de materiasprimas para un problema de tamaño medio. Estecaso particular muestra las dificultades de este tipode algoritmos. El algoritmo de bi-mezcla incrementalos retos de la paralelización debido a la utilizaciónde dos algoritmos B&B que comparten información.Además, en los algoritmos de bi-mezcla, se ha de realizaruna combinación de símplices finales después dela fase B&B para descartar regiones no factibles. Estafase de combinación es varios órdenes de magnitudmás costosa computacionalmente que la fase B&B.Por ello, aquí sólo se ha utilizado una hebra por productoen la fase B&B y varias hebras en la fase decombinación. Los resultados muestran aceleracioneslineales en una máquina de ocho núcleos con memoriacompartida cuando se paraleliza el recorrido deuna lista final y después el de la otra, en vez de realizarambos recorridos en paralelo.Nuestra intención es experimentar con problemasde mayor dimensión, intentando reducir su costecomputacional. Otra línea de investigación a continuares desarrollar el algoritmo n-mezcla y su versiónparalela, problema que es de interés para la industria.AgradecimientosEl presente trabajo ha sido parcialmente financiadopor el Ministerio de Ciencia e Innovación(TIN2008-01117), la Junta de Andalucía (P08-TIC-3518) y el Fondo Europeo de Desarrollo Regional(FEDER). Eligius M. T. Hendrix es un investigadorpost-doctoral contratado a través del SubprogramaRamón y Cajal.Referencias[1] J. Ashayeri, A.G.M. van Eijs, and P. Nederstigt, “Blendingmodelling in a process manufacturing: A casestudy,” Eur. J. Oper. Res., vol. 72, no. 3, pp. 460–468,1994.[2] J.W.M. Bertrand and W.G.M.M. Rutten, “Evaluationof three production planning procedures for the use ofrecipe flexibility,” Eur. J. Oper. Res., vol. 115, no. 1, pp.179–194, 1999.[3] L.G. Casado, E.M.T. Hendrix, and I. García, “Infeasibilityspheres for finding robust solutions of blendingproblems with quadratic constraints,” J. Global Optim.,vol. 39, no. 4, pp. 577–593, 2007.[4] E.M.T. Hendrix, L.G. Casado, and I. García, “The semicontinuousquadratic mixture design problem: Descriptionand branch-and-bound approach,” Eur. J. Oper.Res., vol. 191, no. 3, pp. 803–815, 2008.[5] L.G. Casado, I. García, B.G. Tóth, and E.M.T. Hendrix,“On determining the cover of a simplex by spheres centeredat its vertices,” J. Global Optim., pp. 1–11, 2010.[6] J.F.R. Herrera, L.G. Casado, E.M.T. Hendrix, andI. García, “Pareto optimality and robustness in biblendingproblems,” TOP, 2011, Submitted.[7] H.P. Williams, Model Building in Mathematical Programming,Wiley & Sons, Chichester, 1993.[8] L.G. Casado, I. García, J.A. Martínez, and E.M.T. Hendrix,“Shared memory parallel exhaustive search ofepsilon-robust mixture design solutions,” in Volume ofAbstracts of 22nd European Conference on OperationalResearch (EURO XXII), 2007, p. 178.[9] B. Gendron and T.G. Crainic, “Parallel branch-andboundalgorithms: Survey and synthesis,” Oper. Res.,vol. 42, no. 6, pp. 1042–1066, 1994.[10] L.G. Casado, J.A. Martínez, I. García, and E.M.T. Hendrix,“Branch-and-bound interval global optimizationon shared memory multiprocessors,” Optim. Method.Softw., vol. 23, pp. 689–701, 2008.[11] T. Ibaraki, “Theoretical comparisons of search strategiesin branch and bound algorithms,” Int. J. Comput. Inf.Sci., vol. 5, no. 4, pp. 315–344, 1976.[12] L.G. Mitten, “Branch and bound methods: general formulationand properties,” Oper. Res., vol. 18, no. 1, pp.24–34, 1970.[13] J.L. Berenguel, L.G. Casado, I. García, and E.M.T. Hendrix,“On estimating workload in interval branch-andboundglobal optimization algorithms,” J. Global Optim.,2011, Submitted.[14] J.F.S. Estrada, L.G. Casado, and I. García, “Adaptiveparallel interval global optimization algorithms basedon their performance for non-dedicated multicore architectures,”in Parallel, Distributed and Network-BasedProcessing (PDP), 2011 19th Euromicro InternationalConference on, February 2011, pp. 252–256.[15] J.A. Martínez, L.G. Casado, J.A. Alvarez, and I. García,“Interval parallel global optimization with Charm++,”in Applied Parallel Computing. State of the Art in ScientificComputing, Jack Dongarra, Kaj Madsen, and JerzyWasniewski, Eds., vol. 3732 of Lecture Notes in ComputerScience, pp. 161–168. Springer Berlin / Heidelberg,2006.[16] J.F. Sanjuan-Estrada, L.G. Casado, and I. García,“Adaptive parallel interval branch and bound algorithmsbased on their performance for multicore architectures,”J. Supercomput., pp. 1–9, 2011.JP2011-26


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Optimización del Método BST para laReducción de Modelos en ArquitecturasMultinúcleoPablo Ezzatti 1 , Enrique S. Quintana-Ortí 2 and Alfredo Remón 3Resumen— La reducción de modelos es unaherramienta importante en diversas aplicacionescientíficas y de ingeniería. Dada su relevancia, esposible encontrar en la literatura diversos métodospara resolver este problema. Entre ellos destacanlos métodos basados en la descomposición de valoressingulares por sus buenas características numéricas.Pero estos métodos requieren un alto coste computacional,O(n 3 ) operaciones aritméticas en comaflotante, donde n es el orden del modelo original y seencuentra en el rango 10 3 − 10 5 en numerosas aplicacionesprácticas. Consecuentemente, la aplicabilidadde estos métodos está condicionada al uso de arquitecturasy técnicas de computación de altas prestaciones.En este estudio se han desarrollado y evaluado diversasimplementaciones para uno de estos métodos,el método BST, sobre una arquitectura con procesadoresmultinúcleo. Los resultados experimentalesavalan la eficiencia de los códigos desarrollados y suescalabilidad.Palabras clave— Reducción de modelos, sistemasdinámicos lineales, ecuaciones de Lyapunov, métodosSVD, GPUs.I. IntroducciónNUMEROSOS procesos físicos y químicos puedenser descritos mediante modelos matemáticos.Estos modelos pueden ser empleados, por ejemplo,para anticipar el comportamiento del proceso y seaplican con éxito en áreas tan dispares como eldiseño de controladores, la simulación de circuitos oel diseño de estructuras. En particular, considera unsistema lineal invariante en el tiempo que, por ejemplo,describe un proceso físico, definido en el modelode espacio de estados porẋ(t) = Ax(t) + Bu(t), t > 0, x(0) = x 0 ,y(t) = Cx(t) + Du(t), t ≥ 0,(1)donde A ∈ R n×n , B ∈ R n×m , C ∈ R p×n , D ∈R p×m , x 0 ∈ R n es el estado inicial del sistema, y nes el orden del modelo. El objetivo de la reducciónde modelos es encontrar un modelo de orden menorẋ r (t) = A r x r (t) + B r u(t), t > 0, x r (0) = ˆx 0 ,y r (t) = C r x r (t) + D r u(t), t ≥ 0,(2)donde A r ∈ R r×r , B r ∈ R r×m , C r ∈ R p×r ,D r ∈ R p×m , ˆx 0 ∈ R n es el estado inicial del sistema,r es el orden del nuevo modelo, con r ≪ n,1 Centro de Cálculo-Instituto de Computación, Universidadde la República, e-mail: pezzatti@fing.edu.uy2 Depto. de Ingeniería y Ciencia de Computadores, UniversidadJaume I, e-mail: quintana@icc.uji.es3 Depto. de Ingeniería y Ciencia de Computadores, UniversidadJaume I, e-mail: quintana@icc.uji.esy ‖y − y r ‖ es “pequeño”. Es decir, el propósito dela reducción de modelos es obtener un nuevo modelocon un orden menor (r), que potencialmente puedereemplazar el modelo original en posteriores cálculosreportando importantes reducciones de los requerimientoscomputacionales. Mientras que hace unosaños, la reducción de modelos con un espacio deestados en el orden de las decenas de miles o superior,requería del uso de un cluster de computadorascon un número moderado de nodos [1], losprocesadores multinúcleo actuales proporcionan unpoder de cómputo suficiente como para, en tiemposde cómputo razonable, ejecutar la mayor parte de lasoperaciones matriciales requeridas para la reducciónde modelos.En trabajos anteriores tratamos los casos en losque la matriz de espacio de estados A es dispersa [2],una matriz general densa [3], y una matriz banda[4]. En este trabajo nos centramos en el caso enel que la matriz −A es una matriz densa simétricadefinida positiva (en adelante SPD, del inglés SymmetricPositive Definite). En este caso, la estructuray propiedades de la matriz pueden ser explotadaspara reducir el número de operaciones aritméticasnecesarias.La estructura del resto del artículo es la siguiente:en la Sección II se revisan los métodos y bibliotecasempleadas en la reducción de modelos, en laSección III se describe el método de la función signopara la resolución de ecuaciones de Lyapunov, en lasSecciones IV y V se presentan diferentes métodospara la inversión de matrices SPD y las implementacionesde altas prestaciones propuestas para esta operación,finalmente, las Secciones VI y VII muestranlos resultados experimentales y las conclusiones alcanzadasen este trabajo.II. Algoritmos y bibliotecas para lareducción de modelosComo se ha comentado, existen diversos métodospara la reducción de modelos, pero entre ellosdestacan por sus cualidades numéricas los métodosbasados en la descomposición en valores singulares(SVD). Estos métodos se caracterizan por la preserveraciónde importantes cualidades de la matrizde estados, como por ejemplo la estabilidad o la pasividad.Además, estos métodos proporcionan cotasal error introducido por el nuevo modelo. Por contra,su alto coste computacional condiciona su aplicabilidada problemas de dimensión moderada. Elcoste computacional de estos métodos se concentraJP2011-27


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011en la resolución de dos ecuaciones de Lyapunov. Alaplicar el método del truncamiento balanceado a (1),las ecuaciones de Lyapunov que se deben resolver sonAW c + W c A T + BB T = 0,A T W o + W o A + C T C = 0.(3)En general, A es una matriz estable (es decir, todossus valores propios tienen parte real negativa) y consecuentemente,W c , W o son matrices SPDs. Desafortunadamente,W c , W o son densas, cuadradas y de dimensiónn×n incluso a pesar de que A sea una matrizdispersa. Estas ecuaciones pueden ser resueltas mediantemétodos directos [5][6] como los incluidos enla biblioteca SLICOT [7], permitiendo la reducciónde modelos de dimensión reducida (n < 5.000) en lascomputadoras modernas. Problemas de dimensiónmayor, con decenas de miles de variables en el espaciode estados, pueden ser reducidos utilizando elmétodo de la función signo en arquitecturas paralelasde altas prestaciones, por ejemplo mediante las rutinasincluidas en la biblioteca PLiCMR [8][1]. Las dificultadesde explotar la habitual estructura dispersade las matrices que aparecen en las ecuaciones deLyapunov durante su resolución mediante métodosdirectos o mediante el método de la función signo,limita la aplicabilidad de estas dos bibliotecas a problemasde dimensión moderada. No obstante, dichasbibliotecas están completamente basadas en núcleoscomputacionales de bibliotecas de álgebra numéricade altas prestaciones, en particular de las bibliotecasBLAS y LAPACK, reportando un rendimiento nadadesdeñable.III. El método de la función signoEl método de la función signo fue presentado en [9]como un método eficiente para resolver la ecuaciónde Lyapunov estándar. Una de las posibles implementacionesde este método se basa en el métodode la iteración de Newton [10]. A continuación, sedescriben los pasos a seguir en esta variante:Algorithm CECLNC:A 0 ← A, ˜S 0 ← B T , ˜R 0 ← Ck ← 0repeat(A k+1 ← √ 1 Ak 2+ A −1 )k˜S k+1 ← 1 √2[˜Sk ,˜R k+1 ← 1 √2[˜Rk ,k ← k + 1until convergence˜Sk (A −1]˜Rk A −1kk )T ]Al converger, tras j iteraciones, ˜S = √2 1 ˜Sj y˜R = √ 1 ˜Rj 2de dimensiones ˜k o × n y ˜k c × n son, respectivamente,aproximaciones de S y R, de formaque W c = S T S ≈ ˜S T ˜S y Wo = R T R ≈ ˜R T ˜R.Este método es propicio para la resolución de ecuacionesde Lyapunov en las arquitecturas de computaciónmodernas, en las que se dispone de unnúmero elevado de unidades computacionales. Enprimer lugar, presenta una convergencia cuadráticaque asegura un número de iteraciones moderado; ensegundo lugar, presenta un alto nivel de paralelismo,permitiendo extraer gran rendimiento a estas arquitecturas.Cada iteración del algoritmo CECLNC requiereO(n 3 ) operaciones artiméticas en coma flotante, oflops (del inglés floating-point arithmetic operations),donde n es la dimensión de la matriz A. En particular,las cuatro operaciones ejecutadas en cada pasoson:1. Obtener la matriz A −1k, la matriz inversa de lamatriz SPD A k (n 3 flops)2. Calcular la suma de dos matrices simétricas yescalar el resultado (n 2 flops)3. Calcular ˜S k+1 mediante un producto de matrices(n 2 × ˜k o flops)4. Calcular ˜R k+1 mediante un producto de matrices(n 2 × ˜k c flops)Como se puede ver, el coste computacional delalgoritmo descrito se concentra en el cálculo de lamatriz inversa A −1 k . Esta afirmación, basada en elcoste teórico, se refuerza con los resultados experimentalesalcanzados en un trabajo anterior, donde elmismo método era utilizado para resolver una únicaecuación de Lyapunov (pasos 1 a 3) con una matrizde coeficientes general [3]. En dicho trabajo, a pesardel uso de una GPU para acelerar el cómputo dela matriz inversa, esta operación requería de entreel 85% y el 91% del tiempo total de cómputo parados problemas de dimensión 5.177 y 9.699 respectivamente.Además, se dispone de implementaciones optimizadaspara arquitecturas multinúcleo para elresto de las operaciones requeridas por el algoritmoCECLNC. Por ejemplo, pueden utilizarse rutinas de labiblioteca BLAS para calcular los productos de matrices(pasos 3 y 4), o directivas OpenMP para optimizarla suma de matrices y el escalado del resultado(paso 2).Consecuentemente, el desarrollo de una implementaciónoptimizada de la inversión de una matrizSPD es la única herramienta necesaria para alcanzarun resolutor de ecuaciones de Lyapunov de altasprestaciones sobre arquitecturas multinúcleo, y conello, un método eficiente para la reducción de modelos.El resto del artículo se centra en el desarrollo deun núcleo computacional eficiente para la inversiónde matrices SPD sobre arquitecturas multinúcleo.IV. Inversión de matrices SPDEn esta sección revisitamos dos algoritmos diferentespara el cálculo de la matriz inversa de unamatriz SPD. El primer algoritmo se basa en la computaciónde la factorización de Cholesky, mientrasque el segundo algoritmo se basa en el método dela eliminación de Gauss-Jordan [11]. Ambos algoritmospresentan el mismo coste computacional, perolas propiedades del procedimiento de la emilinaciónJP2011-28


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algorithm: [A] := GJE blk v1 (A)„ «AT L A T RPartition A →⋆ A BRwhere A T L is 0 × 0 and A BR is n × nwhile m(A T L ) < m(A) doDetermine block size bRepartition„ «AT L A T R⋆ A BR0→ @where A 11 is b × bA 00 A 01 A 021⋆ A 11 A 12 AW := −A 00 · A 01 SYMMA 11 := A 11 + A T 01 · A 01 GEMMA 11 := chol(A 11 ) POTRFtriu(A 11 ) := triu(A 11 ) −1 TRTRIW := W · A 11 TRMMA 01 := W · A T 11 TRMMA 00 := A 00 + W · W T SYRKA 11 := triu(A 11 ) · triu(A 11 ) T LAUUMendwhileContinue with„ «AT L A T R⋆ A BR0← @A 00 A 01 A 021⋆ A 11 A 12 AFig. 1. Algoritmo por bloques para la inversión de matrices SPD via GJE (Variant 1).Algorithm: [A] := GJE blk v2 (A)„ «ATPartition A → L A T R⋆ A BRwhere A T L is 0 × 0 and A BR is n × nwhile m(A T L ) < m(A) doDetermine block size bRepartition„ «AT L A T R⋆ A BR0→ @where A 11 is b × bA 00 A 01 A 021⋆ A 11 A 12 AA 11 := chol(A 11 ) POTRFtriu(A 11 ) := triu(A −111 ) TRTRIA 01 := A 01 · A 11 TRMMA 00 := A 00 + A 01 · A T 01 SYRKA 01 := A 01 · A 11 TRMMA 12 := A −T11 · A 12 TRMMA 22 := A 22 − A T 12 · A 12 SYRKA 02 := A 02 − A 01 · A 12 GEMMA 12 := −(A 11 · A 12 ) TRMMA 11 := A 11 · A T 12 LAUUMendwhileContinue with„ «AT L A T R⋆ A BR0← @A 00 A 01 A 021⋆ A 11 A 12 AFig. 2. Algoritmo por bloques para la inversión de matrices SPD via GJE (Variant 2).de Gauss-Jordan son más propicias para su ejecuciónsobre arquitecturas paralelas.A. Inversión de matrices mediante la factorizaciónde CholeskyEl método tradicional para calcular la inversa deuna matriz SPD A ∈ R n×n se basa en la factorizaciónde Cholesky y consiste en los tres siguientes pasos:1. Calcular la factorización de Cholesky A =U T U, donde U ∈ R n×n es una matriz triangularsuperior2. Invertir el factor triangular U → U −13. Obtener la inversa mediante el producto de matricesU −1 U −T = A −1Explotando la estructura simétrica de A, el costecomputacional y espacial del algoritmo puede ser reducidoconsiderablemente. En particular, como se hacomentado, el coste computacional es n 3 flops (frentea los 2n 3 flops requeridos para invertir una matrizno-simétrica). Este algoritmo permite implementacionesin-place, de forma que la matriz resultadosobreescribe la matriz original, reportando una im-JP2011-29


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011portante reducción de los requerimientos espaciales.Además, sólo la parte superior de A es referenciadadurante el método, y sólo la parte superior de A −1 esescrita, de forma que se reducen los accesos a memoria.No obstante, con el fin de aumentar las prestaciones,la matriz A se almacena como una matrizcompleta n × n.B. Inversión de matrices basada en el algoritmo dela eliminación de Gauss-JordanEl algoritmo de la eliminación de Gauss-Jordan es,esencialmente, una reordenación de las operacionesejecutadas en el algoritmo tradicional. Por lo tanto,ambos presentan el mismo coste computacional. Lareordenación de operaciones reduce notablemente elnúmero de accesos a memoria requerido, además deproveer un método más propicio para su ejecuciónen arquitecturas provistas con múltiples unidades decómputo, gracias a un mejor balanceo de carga [12].Este método puede ser cuidadosamente diseñadopara explotar la estructura simétrica de la matriz yobtener una implementación in-place.Las Figuras 1 y 2 describen dos algoritmos porbloques basados en la eliminación de Gauss-Jordanutilizando la notación FLAME [13][14]. En ellos, lafunciones m(·) y triu(·) devuelven el número de filasy la parte triangular superior de la matriz argumentorespectivamente, mientras que “⋆” describe bloquesen la parte triangular inferior de la matriz, que noson referenciados en el método. Creemos que el restode la notación es intuitiva. A la derecha de cada operaciónse define el núcleo computacional de BLASque proporciona la funcionalidad necesaria para sucómputo. En ambos algoritmos, la inversa de la matrizsobreescribe la matriz inicial (son, por lo tanto,variantes in-place).En el algoritmo mostrado en la Figura 1 se ejecutanocho operaciones en cada iteración. Dos factoreslimitan las prestaciones de su implementaciónsobre arquitecturas paralelas: en primer lugar, lasnumerosas dependencias de datos entre las operacionesobligan a su ejecución secuencial, en segundo lugar,excepto la actualización del bloque A 00 , el restode operaciones involucran únicamente bloques de dimensiónreducida (teniendo en cuenta que, para aumentarlas prestaciones, el tamaño de bloque b sefija a un valor pequeño comparado con la dimensiónde la matriz, n). Ambos factores limitan el paralelismoinherente de la variante, especialmente durantelas primeras iteraciones del bucle, cuando A 00es también un bloque pequeño.La Figura 2 muestra una segunda variante del algoritmobasado en la eliminación de Gauss-Jordanen la que todos los elementos de la parte triangularsuperior de la matriz son actualizados en cadaiteración. De nuevo, las dependencias de datos obligana serializar la ejecución de la mayor parte de lasoperaciones.De forma que el paralelismo puede ser extraídoúnicamente durante la ejecución de cada operación.En esta variante, las actualizaciones de los bloquesA 00 y A 22 concentran la mayor parte de los cálculos,mientras que el resto de las operaciones involucranbloques pequeños. Esta implementación presentados ventajas respecto a la variante anterior:1. No requiere espacio de almacenamiento adicional2. El coste computacional de cada iteración esconstanteV. Implementaciones de altas prestacionesA. Implementaciones basadas en la factorización deCholeskyEl algoritmo basado en la factorización deCholesky para el cálculo de la matriz inversa deuna matriz SPD (ver la Sección IV-A) se componede tres etapas que deben ser ejecutadas secuencialmente.Esto significa que el paralelismo puede serextraído durante la ejecución de cada etapa pero node la ejecución concurrente de etapas.La biblioteca Intel MKL [15] ofrece rutinas para elcálculo de la factorización de Cholesky de una matrizSPD (rutina potrf, etapa 1) y el cálculo de lainversa de una matriz SPD dado su factor triangular(rutina potri, etapas 2 y 3). De forma que podemosfácilmente obtener una implementación de estealgoritmo, eficiente y paralela, para arquitecturasmultinúcleo, utilizando una implementación multithreadde la biblioteca MKL.B. Implementaciones basadas en el método de laeliminación de Gauss-JordanEn esta subsección describimos dos implementacionespara las sendas variantes del algoritmo GJEpresentadas en la Sección IV.En las dos variantes, la mayor parte de las operacioneshan sido reescritas en forma de productosde matrices. En particular, la operación que precisade un mayor número de flops es una actualizaciónsimétrica de rango-k (un caso particular del productode matrices).La biblioteca MKL incluye implementaciones dealtas prestaciones para este núcleo computacional,así como para el resto de operaciones implicadas enlos algoritmos GJE BLK V 1 y GJE BLK V 2 . Las rutinasGJE v1 y GJE v2 implementan estos algoritmosutilizando los núcleos computacionales de MKL. Elparalelismo es obtenido, de nuevo, en la ejecución decada operación mediante la invocación de las rutinasmulti-thread de MKL. El cómputo concurrentede distintas operaciones está limitado por la dependenciade datos.VI. Resultados experimentalesEn esta sección se evalúan las diferentes implementacionespropuestas en la sección V.Todos los experimentos en esta sección fueron desarrolladosutilizando aritmética IEEE de simple precisión.Se experimentó con matrices SPD de dimensión1.000, . . . , 15.000. Se evaluaron diferentestamaños de bloque (1024, 512, 256, 128, 64 y 32)JP2011-30


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IHardware empleado en los experimentos.Procesadores #cores Freq. L2 Memoria(GHz) (MB) (GB)Intel Xeon X7550 (8×4) 32 2.0 18 124350300LAPACKGJE_V1GJE_V235030025025032 THREADSGFLOPS20015010050GFLOPS2001501005016 THREADS8 THREADS4 THREADS2 THREADS1 THREAD00 2000 4000 6000 8000 10000 12000 14000 16000Dimensión de la matriz00 2000 4000 6000 8000 10000 12000 14000 16000Dimensión de la matrizFig. 3. Rendimiento de las distintas implementaciones de lainversión de matrices SPD.350Fig. 4. Rendimiento de la rutina GJE V1.para cada implementación, pero únicamente los resultadosobtenidos con el tamaño de bloque óptimoson mostrados.La plataforma empleada en los experimentos estáformada por cuatro procesadores Intel Xeon X7550(con 8 cores por procesador) a una frecuencia de 2.0GHz. La tabla I incluye más detalles sobre esta computadora.La mayor parte de las operaciones fueronejecutadas utilizando las rutinas de la biblioteca IntelMKL en su versión 11.0.La Figura 3 muestra las prestaciones obtenidas porla implementación basada en las rutinas LAPACKy las basadas en el algoritmo de la eliminación deGauss-Jordan descritas en la sección anterior. Entodas ellas se emplea 32 threads (uno por cadauno de los núcleos disponibles en la arquitectura).La implementación de la primera variante del algoritmo,GJE V1, es notablemente más eficiente quela implementación proporcionada por LAPACK, especialmenteen la inversión de matrices de gran dimensión(por ejemplo, para matrices de dimensión15.000 es aproximadamente 8× más rápida). No obstante,las mejores prestaciones se obtienen con laimplementación de la segunda variante del algoritmo,GJE V2, superando los 300 GFLOPS para matricesde dimensión 15.000, y siendo más de 10× másrápida que LAPACK. Esto se debe a las propiedadesde esta variante, que la hacen más adecuada para suejecución en computadoras paralelas.La Figura 4 muestra los resultados obtenidos porla variante GJE V1 empleando 1, 2, 4, 8, 16 y 32threads. El uso de más threads reporta un incrementoen las prestaciones considerable, excepto parala inversión de matrices con dimensión superior a8.000 cuando se emplean más de 16 threads. LosGFLOPS3002502001501005032 THREADS16 THREADS8 THREADS4 THREADS2 THREADS1 THREAD00 2000 4000 6000 8000 10000 12000 14000 16000Dimensión de la matrizFig. 5. Rendimiento de la rutina GJE V2.resultados obtenidos demuestran la escalabilidad dela rutina GJE V1.Finalmente, la Figura 5 es la análoga para la varianteGJE V2. Destacar en ella, además de laeficiencia alcanzada, la escalabilidad de la implementaciónGJE V2.VII. ConclusionesSe han presentado diferentes implementaciones dealtas prestaciones para la inversión de matrices SPDen arquitecturas multinúcleo. Esta operación esnecesaria para la reducción de modelos y requierede un alto coste computacional. Por lo tanto, requierede la aplicación de hardware y técnicas decomputación de altas prestaciones. El trabajo incluyela evaluación de dos algoritmos para la inversiónde matrices, el algoritmo tradicional basadoen la factorización de Cholesky, y otro basado en elalgoritmo de la eliminación de Gauss-Jordan, másadecuado para arquitecturas paralelas.JP2011-31


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Diferentes implementaciones de cada algoritmo sehan presentado y evaluado sobre una arquitecturacon 4 procesadores multinúcleo. Las implementacionesdesarrolladas se fundamentan en el uso denúcleos computacionales de altas prestaciones de labiblioteca Intel MKL.Los resultados experimentales demuestran quelas mejores prestaciones se obtienen con las rutinasbasadas en el algoritmo de la eliminación deGauss-Jordan. Las características de este algoritmolo hacen muy propicio para su implementaciónen arquitecturas paralelas, proporcionando un granrendimiento y una notoria escalabilidad.AgradecimientosLos autores quieren agradecer a Francisco Igualpor su soporte técnico, así como a Manuel Ujaldón(de la Universidad de Málaga) por facilitar el accesoa la plataforma hardware empleada para la evaluaciónexperimental de las nuevas rutinas. EnriqueS. Quintana-Ortí y Alfredo Remón recibieron financiacióndel proyecto CICYT TIN2008-06570-C04.Referencias[1] Peter Benner, Enrique S. Quintana-Ortí, and GregorioQuintana-Ortí, “State-space truncation methods for parallelmodel reduction of large-scale systems,” ParallelComputing, vol. 29, no. 11-12, pp. 1701 – 1722, 2003.[2] José M. Badía, Peter Benner, Rafael Mayo, and EnriqueS. Quintana-Ortí, “Parallel algorithms for balancedtruncation model reduction of sparse systems,” in AppliedParallel Computing, vol. 3732 of Lecture Notes inComputer Science, pp. 267–275. Springer Berlin / Heidelberg,2006.[3] Peter Benner, Pablo Ezzatti, Daniel Kressner, Enrique S.Quintana-Ortí, and Alfredo Remón, “A mixed-precisionalgorithm for the solution of Ļyapunov equations on hybridCPU-GPU ¸ platforms,” Parallel Computing, 2010.[4] Alfredo Remón, Enrique S. Quintana-Ortí, and GregorioQuintana-Ortí, “Solution of band linear systems in modelreduction for VSLI circuits,” in Scientific Computing inElectrical Engineering, vol. 11 of Mathematics in Industry,pp. 387–393. Springer Berlin Heidelberg, 2007.[5] R. H. Bartels and G. W. Stewart, “Solution of the matrixequation ax + xb = c [f4],” Commun. ACM, vol. 15, pp.820–826, September 1972.[6] S. J. Hammarling, “Numerical Solution of the Stable,Non-negative Definite Ļyapunov Equation,” IMA Journalof Numerical Analysis, vol. 2, no. 3, pp. 303–323,1982.[7] SLICOT (Control and Systems Library).[8] Peter Benner, Enrique S. Quintana-Ortí, and GregorioQuintana-Ortí, “Balanced Truncation Model Reductionof Large-Scale Dense Systems on Parallel Computers,”Mathematical and Computer Modelling of DynamicalSystems, vol. 6, pp. 383–405, 2000.[9] J.D. Roberts, “Linear model reduction and solution ofthe algebraic Riccati equation by use of the sign function,”Internationa Journal of Control, vol. 32, pp.677–687, 1980, (Reprint of Technical Report No. TR-13, CUED/B-Control, Cambridge University, EngineeringDepartment, 1971).[10] Peter Benner, Enrique S. Quintana-Ortí, and GregorioQuintana-Ortí, “Solving linear-quadratic optimal controlproblems on parallel computers,” Optimization MethodsSoftware, vol. 23, pp. 879–909, December 2008.[11] G.H. Golub and C.F. Van Loan, Matrix Computations,Johns Hopkins University Press, Baltimore, third edition,1996.[12] Paolo Bientinesi, Brian Gunter, and Robert A. van deGeijn, “Families of algorithms related to the inversionof a symmetric positive definite matrix,” ACM Trans.Math. Softw., vol. 35, pp. 3:1–3:22, July 2008.[13] Paolo Bientinesi, John A. Gunnels, Margaret E. Myers,Enrique S. Quintana-Ortí, and Robert A. van de Geijn,“The science of deriving dense linear algebra algorithms,”ACM Trans. Math. Softw., vol. 31, pp. 1–26, March 2005.[14] John A. Gunnels, Fred G. Gustavson, Greg M. Henry,and Robert A. van de Geijn, “Flame: Formal linearalgebra methods environment,” ACM Transactions onMathematical Software, vol. 27, no. 4, pp. 422–455, Dec.2001.[15] Intel Corporation., http://www.intel.com/.[16] Vasily Volkov and James Demmel, “LU¸ , QR ¸ andÇholesky factorizations using vector capabilities ofGPU ¸ s,” Technical Report No. UCB/EECS, vol. 49, May2008.[17] Sergio Barrachina, Maribel Castillo, Francisco D. Igual,Rafael Mayo, Enrique S. Quintana-Ortí, and GregorioQuintana-Ortí, “Exploiting the capabilities of moderngpus for dense matrix computations,” Concurr. Comput.: Pract. Exper., vol. 21, pp. 2457–2477, December 2009.[18] Enrique S. Quintana, Gregorio Quintana, Xiaobai Sun,and Robert van de Geijn, “A note on parallel matrixinversion,” SIAM Jorunal on Scientific Computing, vol.22, no. 5, pp. 1762–1771, 2001.[19] P. Benner, P. Ezzatti, E. S. Quintana, and A. Remón,“Using hybrid CPU-GPU ¸ platforms to accelerate thecomputation of the matrix sign function,” in LectureNotes in Computer Science, 7th Int. Workshop on Algorithms,Models and Tools for Parallel Computing onHeterogeneous Networks – HeteroPar’09, 2009.[20] B.D. Tapley, B.E. Schutz, and G.H. Born, StatisticalOrbit Determination, Elsevier Academic Press, 2004.[21] Nicholas J. Higham, Accuracy and Stability of NumericalAlgorithms, Society for Industrial and Applied Mathematics,Philadelphia, PA, USA, second edition, 2002.[22] Nvidia Corporation, http://www.nvidia.com/cuda/.[23] E. Anderson, Z. Bai, C. Bischof, L. S. Blackford,J. Demmel, Jack J. Dongarra, J. DuCroz, S. Hammarling,A. Greenbaum, A. McKenney, and D. Sorensen,LAPACK Users’ guide (third ed.), Society for Industrialand Applied Mathematics, Philadelphia, PA, USA,1999.[24] A.C. Antoulas, Approximation of Large-Scale DynamicalSystems., SIAM Publications, 2005.[25] V. Mehrmann P. Benner, Dimension Reduction of Large-Scale Systems, Springer-Verlag Berlin Heidelberg, 2005.JP2011-32


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Genetic Algorithm to Predict WaveletCoefficients SignRicardo García and Otoniel López and Pablo Piñol and Miguel Martínez and Manuel P.Malumbres 1 and Antonio Martí 2AbstractMost wavelet based encoders, do not compressthe wavelet coefficients sign because it has been assumedto be inefficient for a long time. However,in the last years several image encoders like JPEG2000 include sign coding capabilities. In this paper,we present a new sign coding approximationwhich uses a genetic algorithm to efficiently predictthe sign of wavelet coefficients. Preliminary resultsshow that, by including sign coding capabilities to anon-embedded encoder, the compression gain is upto 17.35%, being the Rate-Distortion (R/D) performanceimprovement up to 0.25 dB.Keywordssign coding, wavelets, image coding, genetic algorithms.I. IntroductionWAVELET transforms have proved to bevery powerful tools for image compression.Many state-of-the-art image codecs, including theJPEG2000 standard [1], employ a wavelet transformin their algorithms. One advantage is the provisionof both frequency and spatial localization of imageenergy. The image energy is compacted into a smallfraction of the transform coefficients and compressioncan be achieved by coding these coefficients.The energy of a wavelet transform coefficient is restrictedto non-negative real numbers, but the coefficientsthemselves are not, and they are defined byboth a magnitude and a sign. Shapiro stated in [2]that a transform coefficient is equally likely to bepositive or negative and thus one bit should be usedto encode the sign. In recent years, several authorshave begun to use context modeling for sign coding[3][4][5].For example, in [5], A. Deever and S. Hemami examinessign coding in detail in the context of an embeddedwavelet image coder. The paper shows that aPeak Signal to Noise Ratio (PSNR) improvement upto 0.7 dB is possible when sign entropy coding anda new extrapolation technique based on the mutualinformation that biorthogonal basis vectors provideto improve the estimation of insignificant coefficientsare combined. However, the contribution of sign codingby itself to the PSNR improvement is only up to0.4 dB.In [4] the Embedded Block Coding with OptimizedTruncation of the embedded bit-streams (EBCOT),1 Universidad Miguel Hernández, e-mail: r.garcia,otoniel, pablop, mmrach, mels@umh.es2 Universidad Politécnica de Valencia, e-mail:amarti@disca.upv.escore coding tool of the JPEG 2000 standard, encodesthe sign of wavelet coefficients using contextinformation from the sign of horizontal and verticalneighbor coefficients (North, South, East, West directions).Five context are used to model the signcoding stage.In [3], X. Wu presents a high order context modelingencoder. In this coder, the sign and the texturesshare the same context modeling. This modelis based on a different neighborhood for the HL, LHand HH wavelet subbands. For the HL subband,the information of North, North-West, North-East,North-North and South sign is used to predict thecurrent coefficient sign. The neighbors sign informationused for the LH subband are North, North-West, North-East, West-West and East. Finally, forthe HH subband, an inter-band prediction is used besidesthe intra-band prediction used by the HL andLH subbands.Genetic algorithms were first introduced by Hollandin [6] and they are nowadays well known techniquesfor finding nearly optimal solutions of verylarge problems and also, they have been used in imageprocessing [7][8].In a genetic algorithm, the evolution usually startsfrom a population of randomly generated individualsand happens in generations. In each generation,the fitness of every individual in the populationis evaluated by means of a cost function that determinesthe optimal degree we are looking for (i.ecompression rate). Multiple individuals are stochasticallyselected from the current population (basedon their fitness), and modified (recombined and possiblyrandomly mutated) to form a new population.The new population is then used in the next iterationof the algorithm. Commonly, the algorithmterminates when either a maximum number of generationshas been produced, or a satisfactory fitnesslevel has been reached for the population.In this paper, we will design a genetic algorithmto efficiently predict the wavelet coefficient signs. Ifthe sign prediction is really good, a binary entropyencoder will be able to get significant compressionrates. So, our goal is to define a genetic algorithmthat finds out the paremeters of our sign predictorthat achieve the best prediction performance. Asstudied in the literature, the parameters to be foundby our genetic algorithm will be a) the neighbor setthat defines the prediction context, and b) the signvalues (sign patterns) of wavelet coefficient neighborset with the correspondent sign prediction for currentwavelet coefficient.JP2011-33


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011After running the genetic algorithm and configuredthe sign predictor, we will evaluate the impactof the sign coding module in the overall performanceof an image wavelet encoder. In particular, we willuse the LTW wavelet encoder [9] to determine thebit-rate savings for several test images.The remainder of the paper is organized as follows:Section II describes our sign coding approximationand also the genetic algorithm structure. In SectionIII, we show the results of the global encoder system(with sign coding stage) and compare it withSPIHT and JPEG 2000. Finally, in Section IV someconclusions are drawn.II. Wavelet sign predictionMost wavelet image codecs do not consider the useof sign coding tools since the wavelet coefficients locatedat the high frequency subbands form a zeromeanprocess, and therefore equally likely positiveas negative.Schwartz, Zandi and Boliek were the first authorsto consider sign coding, using one neighboring pixelin their context modeling algorithm [10]. The mainidea behind this approach is to find correlations alongand across edges.The HL subbands of a multi-scale 2-D wavelet decompositionare formed from low-pass vertical filteringand high-pass horizontal filtering. The high-passfiltering detects vertical edges, thus the HL subbandscontain mainly vertical edge information. Oppositelydefined are the LH subbands that contain primarilyhorizontal edge information.As Deever explained in [5], given a vertical edge inan HL subband, it is reasonable to expect that neighboringcoefficients along the edge have the same signas the coefficient being coded. This is because verticalcorrelation often remains very high along verticaledges in images. When a low-pass filter is appliedalong the image columns, it results in a series of similarrows, as elements in a row tend to be very similarto elements directly above or below due to the highvertical correlation. Subsequent high-pass filteringalong similar rows is expected to yield vertically correlatedtransform coefficients.It is also important to consider correlation acrossedges, being the nature of the correlation directly affectedby the structure of the high pass filter. ForDaubechies’ 9/7 filters, wavelet coefficient signs arestrongly negatively correlated across edges becausethis filter is very similar to a second derivative of aGaussian, so, it is expected that wavelet coefficientswill change sign as the edge is crossed. Althoughthe discrete wavelet transform involves sub sampling,the sub sampled coefficients remain strongly negativelycorrelated across edges. In this manner, whena wavelet coefficient is optimally predicted as a functionof its across-edge neighbors (e.g. left and rightneighbors in HL subbands), the optimal predictioncoefficients are negative, indicating an expected signchange. This conclusion is general for any waveletwith a shape similar to a second derivative of a Gaussian.To estimate sign correlation in a practical way, wehave applied a 6-level Dyadic Wavelet Transform decompositionof the source image and then a low quantizationlevel to the resulting wavelet coefficients. Asa first approach and taking into account that thesign neighborhood correlation depends on the subbandtype (HL,LH,HH) as Deever assesses in [5], wehave used three different neighbors depending on thesubband type. So, for HL subband, the neighborsused are N, NN and W. Taking into account symmetry,for the LH subband, those neighbors are W,WW, and N. For the HH subband they are N, W,and NW, exploiting the correlation along and acrossthe diagonal edges. This lead us to a maximum of3 3 Neighbor Sign Patterns (NSP) for each subbandtype.TABLE IProbability distribution of neighbor sign patterns(NSPs) of HL 6 subband (8x8 coefficients) in LenaimageC N NN W Occurrences %Probability+ + + + 13 20.31+ + + - 8 12.50- - - + 8 12.50- + + + 6 9.38- - + + 6 9.38Others 23 35.93In Table I we show the NSP probability distributionfor HL 6 subband (from the sixth decompositionlevel) of Lena test image. As shown, the probabilitythat the current coefficient (C) is positive when its N,NN and W neighbors are also positive is around 20%.Besides, if the N and NN neighbors have the samesign and the W neighbor has the opposite sign, thecurrent coefficient (C) has the opposite sign of its Wneighbor with a probability of 25% as shown in rowstwo and three in Table I. The visible sign neighborhoodcorrelation suggest that the sign bits of waveletcoefficients are compressible. Using the previouslymentioned neighborhood for each subband type, wehave developed a genetic algorithm (GA) in order tofind an accurate sign estimation.A. Genetic algorithm for wavelet sign predictionThe goal of the desired genetic algorithm wouldbe to find a table where for each Sign NeigborhoodPattern (V k ) we have a sign prediction (S i,j ) for coefficientC i,j . There is no an univocal relationshipbetween a neighbor sign combination, i.e not alwaysfor a same V k pattern, S i,j is always positive or negative.However, it is possible that for a V k pattern,S i,j is more probably to be positive or negative. But,the problem is still more complex, because a sign predictionfor a neighbor sign pattern could fit well foran image and not for others. Therefore, the idea isto find suboptimal neighbor sign pattern predictionsthat better fit for a representative set of images.JP2011-34


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011The use of genetic algorithms to compress the signof wavelet coefficients is twofold. First, when thenumber of neighbors used to analyze the sign correlationgrows or when there is a great number ofimages to be used in the analysis, the search space isexcessively wide. Second, it is not intuitive to find away of combining the predictions obtained for severalimages.In Figure 1 we show the genetic algorithm pseudocodefor sign prediction. First of all we define eachindividual, containing a sign prediction for each 3 3NSP, then each NSP sign prediction of each individualof the universe is randomly initialized as apositive or negative sign.During evolution, sequences mate and mutate togenerate new sequences in the population and bestsequences are selected for survival on the basis oftheir fitness function. The mating of sequences isperformed through crossover operator, where parentsare randomly selected and its gens (NSPs) are mixed.The best two individuals, the ones that exhibit bestprediction performance, are selected for survival. Individualscan also undergo mutation, where a sequenceprediction is randomly modified.Finally, after performing the maximum iterations,the algorithm finishes, obtaining an optimal/suboptimalsign prediction for each NSP. Wehave performed the fitness evaluation over Lena andBarbara test images, because these images are representativefor both low and high textured imagesrespectively.Individual Structure{//Prediction array for each neighbor sign pattern combinationsign[NSP];//indicates the goodness of the individualfitness;}Individual universe[NUM-POPULATION];function SignPrediction (SubbandType, ImageFiles,mutation Probability)//Initialization phase:sign[NSPs]= random(POSITIVE/NEGATIVE)Initialize(universe, NUM-POPULATION, NSP);//we evaluate each individual of the universe.For each image in ImageFilesEvaluateFitness(SubbandType, ImageFiles, universe);for i=0 to NUM-ITERATIONS//Select the best two individuals from universe for survival.best = SelectBestIndividuals(2);//CrossovercrossPoint=random(NSP);//randomly selects a father and a mother to mix gensSelectFatherAndMother(random(NUM-POLUTATION));universe = MergeFatherAndMother(crossPoint);Mutation(universe, mutation Probability);universe = universe + best;EvaluateFitness(SubbandType, ImageFiles, universe);end//Finally get the best individual.best = SelectBestIndividuals(1);end of functionFig. 1.Genetic algorithm for sign predictionSeveral parameters should be taken into accountwhen training a genetic algorithm: The populationsize, the individuals initialization, the number of iterationsperformed, the mutation probability, thecrossover point, the crossover method, the selectioncriteria of the best sequences to be selected for survival,etc. We have performed lots of tests varyingthese parameters to tune the genetic algorithm.The parameters used to obtain the sign predictionare: population size (100), individuals initialization(ramdomly), number of iterations (1000), mutationprobability (0.001), crossover point (ramdomly) andcrossover method (best two fitness individuals overfour randomly selected parents).After running the genetic algorithm for each subbandtype, we obtain an individual containing theprediction of the current coefficient sign ( SC ˆ i,j [k]),for each NSP (k) of each subband type. So, what weare going to encode is the correctness of this prediction,i.e., a binary valued symbol from SC ˆ i,j [k]·SC i,j(see Table II). In order to compress this binary valuedsymbol, we use two contexts in the arithmeticencoder for each subband type, distributing all signcoding predictions from NSPs between them so asto minimize the zero order entropy of both contexts.The selection criterion is to isolate in one contextthose NSPs with the highest correctness predictionprobability and highest number of occurrences derivedfrom the probability distribution found in theprevious analysis. The rest of them are grouped intothe other context. However, there are certain NSPswith low correctness probability but with a greatamount of occurrences, so we have to heuristicallydetermine the convenience of including them in thefirst context or not.TABLE IISign prediction for HL subband in Lena image forsome NSPsNSP(k) N NN W Prediction( SC ˆ i,j [k])0 * * * -. . .13 + + + +14 + + - +. . .26 - - - +III. Performance EvaluationIn this section we analyze the behavior of the signcoding when implemented on LTW image encoder[9]. This new encoder implementation is called S-LTW. We will also compare the S-LTW encoder versusJPEG2000 (Jasper 1.701.0) and SPIHT (Spiht8.01) in terms of R/D and coding delay. All encodershave been tested on an Intel PentiumM Dual Core3.0 GHz with 2 Gbyte RAM memory.The test images used in the evaluation are: Barbara(512x512), Bike (2560x2048), Boat (512x512),Cafe (2560x2048), GoldHill (512x512), Lena(512x512), Mandrill (512x512), Woman (2560x2048)and Zelda (512x512).In Table III we show the relative compression gainwith respect to the original LTW due only to the signcoding capability for Barbara and Bike test images.As we can see, the maximum sign compression gainJP2011-35


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLE IIISign compression performance at different bit-rates.Bit-rate S-LTW SPIHT %Gain(bpp) #Significant #Bits #Significant #BitsCoefficients Saved Coefficients SavedBarbara (512x512)1 45740 7936 54657 9482 17.350.5 22331 3648 27535 4499 16.340.25 10484 1520 13460 1951 14.500.125 4343 304 6016 421 7.00Bike (2048x2560)1 855266 115200 1371280 184711 13.470.5 412212 64424 798202 124758 15.630.25 198943 30472 366927 56213 15.320.125 91767 11992 162990 21302 13.07P PSNR (d dB)0.5 S-LTW vs SPIHT0.4LTW vs SPIHTS-LTW vs JPEG20000.3LTW vs JPEG20000.20.100-0.10.5 1 1.5 2-0.2-0.3-0.4-0.5Fig. 2.Bit-rate (bpp)PSNR-Gain for Bike imageis 17.35%. Furthermore, we show an estimation ofthe bit savings for SPIHT encoder.TABLE IVCoding delay (seconds).Bit-rate JPEG SPIHT LTW S-LTW(bpp) 2000 Orig.CODING Barbara (512x512)1 0.080 0.042 0.037 0.0230.5 0.076 0.026 0.022 0.0140.25 0.074 0.018 0.013 0.0090.125 0.073 0.014 0.010 0.006CODING Bike (2048x2560)1 2.623 0.920 0.647 0.4300.5 2.543 0.521 0.381 0.2590.25 2.507 0.323 0.224 0.1620.125 2.518 0.221 0.158 0.117In Figure 2 we show the R/D improvement whencomparing original LTW versus JPEG2000/SPIHTand S-LTW versus JPEG2000/SPIHT. As shown,there is an increase in the PSNR difference betweenSPIHT and the new S-LTW encoder, and regardingJPEG2000, we can see than now S-LTW has a minorloss in PSNR than original LTW.Regarding coding delay, the use of a higher contextmodeling in the arithmetic encoder implies a highercomputational cost. In order to compensate the codingspeed loss, we have changed the arithmetic encoderstage by a fast arithmetic encoder [11]. Asit can be seen in Table IV, S-LTW encoder is 49%faster on average in the coding process than SPIHTencoder and 86% faster on average than JPEG2000.Furthermore, S-LTW encoder is even faster than theoriginal LTW version which does not include the signcoding stage (1.5 times faster on average in the codingprocess).IV. ConclusionsWe have presented a genetic algorithm that is ableto find a good sign predictor of wavelet coefficientsign. So, by encoding the sign prediction result (successor failure) with an arithmetic encoder, the signinformation will be highly compacted in the final bitstream.In order to prove our proposal we have implementedthe sign predictor over the non-embeddedLTW encoder. The new S-LTW proposed encoderhas slightly better R/D performance (up to 0.25 dB),or in terms of bitstream, it is able to reduce the bitstreamsize up to 17% for the same quality level.Regarding coding delay, the new image encoder ison average 2 times as fast as SPIHT in the codingprocess and 1.5 times as fast as original LTW due tothe inclusion of a fast arithmetic encoder.AcknowledgementsThanks to Spanish Ministry of education and Scienceunder grant DPI2007-66796-C03-03 for funding.References[1] ISO/IEC 15444-1, “JPEG2000 image coding system,”2000.[2] J.M. Shapiro, “A fast technique for identifying zerotreesin the EZW algorithm,” Proc. IEEE Int. Conf. Acoust.,Speech, Signal Processing, vol. 3, pp. 1455–1458, 1996.[3] X. Wu, “High-order context modeling and embeddedconditional entropy coding of wavelet coefficients for imagecompression,” in Proc. of 31st Asilomar Conf. onSignals, Systems, and Computers, 1997, pp. 1378–1382.[4] D. Taubman, “High performance scalable image compressionwith EBCOT,” IEEE Transactions on ImageProcessing, vol. 9, no. 7, pp. 1158–1170, July 2000.JP2011-36


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011[5] Aaron Deever and Sheila S. Hemami, “What’s your sign?:Efficient sign coding for embedded wavelet image coding,”in Proc. IEEE Data Compression Conf., Snowbird,UT, 2000, pp. 273–282.[6] J.H. Holland, Adaption in Natural and Artificial Systems,University of Michigan Press, 1975.[7] S. Chabrier, C. Rosenberger, B. Emile, , and H. Laurent,“Optimization-based image segmentation by genetic algorithms,”EURASIP Journal on Image and Video Processing,vol. 2008, pp. 1–10, 2008.[8] Sarawat Anam, Md. Shohidul Islam, M.A. Kashem, M.N.Islam, M.R. Islam, and M.S. Islam, “Face recognition usinggenetic algorithm and back propagation neural network,”in International MultiConference of Engineersand Computer Scientists, Hong Kong, 2009.[9] J. Oliver and M. P. Malumbres, “Low-complexitymultiresolution image compression using wavelet lowertrees,” IEEE Transactions on Circuits and Systems forVideo Technology, vol. 16, no. 11, pp. 1437–1444, 2006.[10] Edward L. Schwartz, Ahmad Z, and Martin Boliek,“CREW: Compression with reversible embeddedwavelets,” in In Proc SPIE, 1995, pp. 212–221.[11] Amir Said, “Comparative analysis of arithmetic codingcomputational complexity,” Tech. Rep., Hewlett-PackardLaboratories HPL-2004-75, 2004.JP2011-37


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-38


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Resolución del Empaquetado 2DMultiobjetivizado con un AlgoritmoMemético ParaleloCoromoto León, Carlos Segura y Eduardo Segredo 1Resumen— El problema de corte y empaquetadoes un problema de optimización NP-completo conmúltiples aplicaciones prácticas. En la sesión de competicionesde gecco 2008 se propuso una variante deeste problema. En la misma, los mejores resultadosfueron obtenidos a través de la aplicación de un algoritmomemético mono-objetivo. Posteriores estudioshan revelado que el método propuesto sufre deestancamiento en mínimos locales en diversas instancias.La técnica denominada multiobjetivización escapaz de transformar un problema mono-objetivo enuno multi-objetivo. Puede ser útil para evitar problemasde estancamiento. En este trabajo, el problemaes multiobjetivizado y abordado mediante unalgoritmo memético multi-objetivo. Se han analizadovarias alternativas para multiobjetivizar el problema.Además, se propone una paralelización de dicho algoritmo.Los resultados computacionales han demostradola validez de las propuestas secuenciales yparalelas. Se ha conseguido aumentar la calidad de lassoluciones obtenidas, a la vez que se ha disminuido eltiempo necesario para obtenerlas.Palabras clave— Multiobjetivización, Modelos Paralelelosbasados en Islas, Algoritmos Meméticos,Corte y Empaquetado.I. IntroducciónEL problema de empaquetado es un problema deoptimización combinatoria NP-completo, en elque se pretende empaquetar un conjunto de elementosen un objeto geométrico mayor, optimizando unafunción objetivo. Este problema tiene gran relacióncon el problema de corte, cuyo objetivo es dividiruna determinada pieza en otro conjunto de piezasmás pequeñas. Dada la estrecha relación entre ambosproblemas, en múltiples trabajos se han analizado deforma conjunta, siendo referenciado en dichos casoscomo el problema de corte y empaquetado (Cuttingand Packing - c&p). Los problemas de corte y empaquetadotienen numerosas aplicaciones prácticas,como la carga de contenedores o la optimización dela distribución de piezas en circuitos eléctricos. Durantela sesión de competiciones del gecco 2008 1se propuso una nueva variante de empaquetado 2D(Two-Dimensional Bin Packing Problem - 2dpp) conel objetivo de analizar las fortalezas de distintos algoritmosal abordar dicho problema.Los problemas de c&p han sido ampliamente analizadosen la literatura. Entre las técnicas propuestaspodemos identificar algunas estrategias exactas. Elprincipal inconveniente de dichas técnicas es al alto1 Dpto. de Estadística, I.O y Computación, Universidadde La Laguna, Edificio de Física y Matemáticas, Avda. AstrofísicoFco. Sánchez s/n, 38271 La Laguna, Tenerife, e-mail:(cleon|csegura|esegredo)@ull.es.1 http://www.sigevo.org/gecco-2008/competitions.htmlcoste computacional asociado a las mismas. Conel objetivo de reducir el tiempo requerido para suresolución, se han propuesto diversas paralelizacionesde estos algoritmos. Sin embargo, incluso utilizandotécnicas paralelas, la gran mayoría de instanciasdel problema con interés práctico, no pueden serabordadas utilizando dichas técnicas. Las técnicasaproximadas solventan parcialmente este problema.Entre estas técnicas cabe mencionar la amplia utilizaciónde meta-heurísticas. Concretamente, los AlgoritmosMeméticos (Memetic Algorithms - mas) [1]son una de las técnicas que han obtenido resultadosmás prometedores. Los mas son una sinergia entrelos Algoritmos Evolutivos (Evolutionary Algorithms- eas) y las técnicas de aprendizaje individual.Existen numerosos estudios que han analizado laposibilidad de paralelizar los eas [2] (peas). El modelobasado en islas [3] es una de las paralelizacionesmás populares. Este esquema divide la poblaciónen un conjunto de subpoblaciones independientes.Cada subpoblación constituye una isla, y sobre lamisma se aplica un ea. Además, se integra una fasede migración que posibilita el intercambio de individuosentre las islas. De esta forma, durante lamayor parte de las ejecuciones de un pea cada subpoblaciónes evolucionada de forma independiente,y sólo ocasionalmente, se producen comunicaciones.El modelo basado en islas se ha aplicado también ala paralelización de mas (pmas).La variante del problema de empaquetado propuestaen gecco 2008 fue abordada con múltiplestécnicas. Los mejores resultados para la instanciapropuesta fueron obtenidos mediante un ma monoobjetivo.En [4] se propuso un modelo basado enislas que hace uso de dicho ma. A pesar de que seobtuvieron resultados de alta calidad para la instanciapropuesta en la competición, posteriores estudiosrevelaron que dicho modelo sufre de estancamientoen mínimos locales para otras instancias. Con el objetivode abordar los problemas de estancamiento,se han diseñado una gran cantidad de técnicas [5].Entre ellas cabe destacar la multiobjetivización [6].La técnica denominada multiobjetivización transformaun problema mono-objetivo en uno multiobjetivo.Su principio de funcionamiento es que medianteesta conversión, se pueden cambiar las característicasdel problema, con lo que puede ser útilpara evitar problemas de estancamiento [6]. Sin embargo,también es posible que la nueva versión delproblema sea más compleja [7]. Las técnicas de multiobjevizaciónpueden ser clasificadas en dos tipos:JP2011-39


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011técnicas de descomposición y técnicas de agregación.Las técnicas de descomposición están basadas en dividirla función objetivo original en varias funcionesindependientes. Las técnicas de agregación consideran,junto a la función objetivo original, otras funcionesagregadas de forma artificial.En este trabajo se analizan las ventajas y desventajasde multiobjetivizar el 2dpp. Para ello se hanpropuesto un conjunto de multiobjetivizaciones y seles ha aplicado un ma multi-objetivo. Los resultadosobtenidos han sido comparados con los obtenidos porla mejor técnica secuencial propuesta en [4]. Dadoque la técnica más adecuada ha dependido de lainstancia considerada, no se ha podido demostrarla superioridad de las técnicas mono-objetivo, ni delas técnicas multi-objetivo. Por ello, la aplicaciónde esquemas de resolución de más alto nivel comolas hiperheurísticas, para automatizar la selecciónde qué técnica usar, parece muy prometedor. Estastécnicas han sido ampliamente utilizadas en conjuncióncon los modelos paralelos basados en islas[8]. Por ello, en este trabajo también se analizanla validez del modelo basado en islas con las multiobjetivizacionespropuestas. Los resultados computacioneshan demostrado la validez de la multiobjetivizacióny de la paralelización propuesta.El resto del trabajo se estructura de la siguientemanera: la formación matemática del 2dpp se detallaen la Sección II. En la Sección III se describeel esquema de optimización aplicado. El modelobasado en islas es descrito en la Sección IV. En lasección V se detallan los diferentes experimentos realizadosy se presentan los resultados computacionalesobtenidos. Por último, en la sección VI se presentanlas conclusiones y las líneas de trabajo futuro.II. Formulación Matemática del 2DPPEl problema propuesto durante la competición esuna variante del problema de empaquetado bidimensional.Una instancia del problema viene dada porlos siguientes datos:• Las dimensiones X, Y de una rejilla rectangular.• El número máximo que puede ser asignado en lasceldas de la rejilla: N. En cada celda se debeasignar un número entero en el rango [0, N].• La puntuación asociada a la aparición de cadapareja (a, b), en donde a, b ∈ [0, N]: v(a, b). Lapuntuación asociada a la aparición de (a, b) noes necesariamente igual a la aparición de (b, a).Una solución candidata se constituye asignando acada celda de la rejilla un valor en el rango válido.Por ello, el espacio de búsqueda está formado por(N + 1) X·Y soluciones candidatas. El objetivo consisteen encontrar la asignación de números que maximicela suma de las puntuaciones de las parejasque aparecen en la rejilla. Se considera que unapareja (a, b) aparece en la rejilla, si los números ay b son asignados en casillas vecinas. Dos casillasson vecinas si una está junta a la otra en cualquierfila, columna, o diagonal de la rejilla. Para el cálculoAlgorithm 1 Pseudocódigo de un ma1: Generar población inicial2: Evaluar individual de la población3: while (critero de parada no se cumpla) do4: Selección de padres5: Aplicar operador de crossover con probablidad p c6: Aplicar operador de mutación con probabilidad p m7: Aplicar el proceso de aprendizeje individual con probabilidadp l8: Evaluar los nuevos individuos9: Selección de supervivencia10: end whilede la función objetivo, el valor asociado a la apariciónde cada pareja sólo puede ser contabilizado una vez.De esta forma, el objetivo del problema es encontraruna rejilla G que maximice la función de fitness f.dondef =N∑a=0 b=0N∑v 2 (a, b){0 si (a, b) no son adyacentesv 2 (a, b) =v(a, b) si (a, b) son adyacentesIII. Esquema de OptimizaciónA. Algoritmos MeméticosLos algoritmos meméticos [9], [1] (mas) son unasinergia entre las estrategias poblacionales, y unmétodo de aprendizaje individual. Los mas hanmostrado un rendimiento muy superior a los algoritmosgenéticos tradicionales en varios dominios [10].Existen diferentes versiones de los mas, habiendosido aplicados tanto en entornos mono-objetivo [11],como multi-objetivo [12]. El Algoritmo 1 muestra unpseudocódigo de una estrategia memética integradaen un ea. La principal diferencia respecto a los eases la aplicación de un proceso de aprendizaje individual(línea 7). Existen dos formas principales deintegrar dicho proceso [13]. En el aprendizaje Lamarckianoel genotipo del individuo refleja los cambiosrealizados durante el aprendizaje. Por el contrario,en el aprendizaje de Baldwinian el contenidogenético permanece intacto. Ambos tipos de aprendizajehan aportado beneficios en múltiples campos[14].El proceso de aprendizaje es generalmente computacionalmentecostoso. Por ello, no se suele aplicaren todas las generaciones, sino con una cierta probabilidadp l . En el 2dpp se hace indispensable la aplicacióndel proceso de aprendizaje individual en todaslas generaciones para obtener soluciones de alta calidad.Por ello, en este trabajo se aplicó el proceso deaprendizaje individual en cada generación.En este trabajo se han comparado dos mas deprimera generación [15]. El primero de ellos (Var-PopEA), es la estrategia mono-objetiva presentadaen [4]. Concretamente es un ma que combina un algoritmoevolutivo modificado con selección de tipo(1 + 1), y un aprendizaje individual específicamentediseñado para el 2dpp. El algoritmo comienza comportándosecomo un algoritmo basado en trayecto-JP2011-40


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011ria, es decir, se genera una población inicial con unindividuo. Sin embargo, si se detecta que el algoritmoestá sufriendo estancamiento en mínimos locales,se añaden otros individuos a la población, comportándoseentonces como un algoritmo poblacional.El segundo ma analizado en este trabajo es unamodificación del algoritmo evolutivo multi-objetivoNon-Dominated Sorting Evolutionary Algorithm-II(nsga-ii). El único cambio realizado sobre el nsga-iiconsistió en integrar en cada generación la ejecucióndel procedimiento de aprendizaje individual. Esteprocedimiento es integrado tras la fase de variacióngenética. En ambas versiones de los mas los individuoshan sido codificados utilizando un vector bidimensionalde número enteros, G, en donde G(x, y)representa el número asignado a la celda (x, y).B. Aprendizaje Individual para el 2DPPEn general, los mas multi-objetivo hacen usode técnicas de aprendizaje individual multiobjetivo[16]. Sin embargo, dado que el 2dpp ha sidomultiobjetivizado, el interés final es optimizar sólo elobjetivo original. Por ello, se decidió aplicar un procesode aprendizaje mono-objetivo. El proceso deaprendizaje aplicado es de tipo Lamarckiano. Concretamente,se ha realizado utilizando una variantede búsqueda local por escalada. En la misma, el ordenen que los vecinos son explorados es aleatorio,y se acepta cualquier movimiento que mejore a lasolución actual. Finalmente, cuando no existan vecinosque mejoren la puntuación actual, se da porterminado el proceso de aprendizaje individual.El número de vecinos de las soluciones candidatasviene determinado por el número de casillas vecinasde la rejilla. Específicamente, para cada parde celdas vecinas (i, j) y (k, l), se determina cuál esla mejor asignación posible que se podría hacer adichas celdas, considerando que no se pueden modificarlas asignaciones realizadas en el resto de casillas.Para obtener dicha asignación se diseñó un métodoque evita enumerar todas las posibles opciones. Enprimer lugar, se consideran todas las posibles asignacionesn ∈ [0, N] de valores a la casilla (i, j), calculándosela contribución de cada asignación v ij (n).Para el cálculo de este valor se asume que la casilla(k, l) no está asignada. Posteriormente, se realizael mismo proceso para la casilla (k, l), calculándosev kl (n). En este caso se considera que la casilla (i, j)no está asignada. La contribución de fitness que seobtiene al asignar el valor a a la celda (i, j), y el valorb a la celda (k, l), viene dado por:v ij (a) + v kl (b) + v ′ (a, b) − v repdonde v ′ (a, b) es v(a, b) + v(b, a) si la pareja (a, b) noaparece en otra parte de la rejilla, o 0 en caso contrario,y v rep es el valor asociado a aquellas parejasque se produjeron tanto por la asignación de a en(i, j), como de b en (k, l). Un límite superior de lacontribución de fitness viene dado por:v ij (a) + v kl (b) + min(bestV (a), bestV (b))donde bestV (n) es el máximo valor asociado acualquier pareja (n, m), m ∈ [0, N], es decir,max{(v(n, m) + v(m, n)}. Siendo bestF it la mayorpuntuación encontrada para una asignación de lasposiciones (i, j), y (k, l), los únicos valores a ′ , b ′que tienen que ser considerados, son aquellos enlos que se cumple la relación v ij (a ′ ) + v kl (b ′ ) +min(bestV (a ′ ), bestV (b ′ )) > bestF it. El coste computacionalasociado a la generación de individuosse redujo drásticamente descartando aquellas asignacionesen las que la relación anterior no se cumplía.C. Operadores GenéticosEn cada generación del algoritmo descrito se aplicauna fase de variación. En [4] se analizó el comportamientode varios operadores genéticos. En estetrabajo se han aplicado aquellos que obtuvieron losmejores resultados. El operador de cruce es el operadorbidimensional de cruce de subcadenas (ssx- Two-dimensional Sub-string Crossover) propuestoen [17]. Es una extensión del cruce de un punto acromosomas bidimensionales. En primer lugar, se seleccionade forma aleatoria una celda de la rejilla queactuará como celda de división. A continuación, conigual probabilidad, se linealiza el cromosoma por filaso por columnas, y se aplica el operador de cruce deun punto, considerando la celda de división elegida.El operador de mutación utilizado consiste en unamutación uniforme, que incluye información de dominio(umd - Uniform Mutation with Domain Information).En umd inicialmente se genera un númeroaleatorio entre min p m y max p m . A continuación,cada gen es mutado con una probabilidad igual alnúmero generado. El nuevo valor asignado a cadagen es elegido de forma aleatoria entre aquellos valorescuyo fitness asociado - puntuación obtenida porrealizar dicha asignación - no sea cero.D. MultiobjetivizacionesEn este trabajo se han analizado varias formasde multiobjetivizar el 2dpp. Concretamente, hansido multiobjetivizaciones por agregación, en las queademás de utilizar el objetivo original del 2dpp, seha añadido un objetivo alternativo. Tres de las funcionesalternativas hacen uso de la distancia Euclídeaen el espacio de decisión. En estos casos, se intentamaximizar dicha función. El cálculo de la funciónalternativa es realizado de la siguiente forma:• dcn - Distance to the closest neighbour: distanciaal individuo más cercano.• adi - Average distance to all population individuals:distancia media al resto de individuos enla población.• dbi - Distance to the best population individual:distancia al mejor individuo de la población.Además, se analizaron otras dos funciones:• Random: la función alternativa se calcula deforma aleatoria, y se intenta minimizar.• Reverse: se considera la función inversa a lafunción de fitness.JP2011-41


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Primera InstanciaSegunda Instancia5.13e+081.01e+095.12e+081e+09Fitness5.11e+085.1e+085.09e+085.08e+08ADIDBI_THRDCNDBIVarPopEAReverseRandom0 15000 30000 45000 60000 75000Tiempo (s)Fitness9.9e+089.8e+08VarPopEADBI_THRDCN9.7e+08DBIADIRandomReverse9.6e+080 15000 30000 45000 60000 75000Tiempo (s)Fig. 1.Evolución del Fitness para la Primer InstanciaFig. 2.Evolución del Fitness para la Segunda InstanciaAdemás, también se analizó una variante de dbi(dbi thr), consistente en añadir un valor umbralpara penalizar a las soluciones que no cumplanunos requisitos mínimos de calidad. Concretamente,se utiliza un parámetro p, y se penaliza a aquellassoluciones cuyo valor de fitness sea inferior ap∗bestCurrentF it, siendo bestCurrentF it el fitnessdel mejor individuo de la población. La penalizaciónconsiste en asignar el valor 0 a la función alternativa.IV. Modelos Basados en IslasLos modelos basados en islas dividen la poblaciónoriginal en un conjunto de subpoblaciones independientes.Sobre cada subpoblación se aplica una configuraciónde un ma, constituyendo una isla. Generalmente,cada isla es evolucionada de forma independientedurante un cierto tiempo. Sin embargo,dado que los esquemas colaborativos suelen alcanzarmejores resultados, se incluye una fase de migraciónque permite el intercambio de individuos entre islas.Existen diversos tipos de modelos basados en islas[3]. En este trabajo se analiza el modelo homogéneo.En este modelo todas las islas ejecutanuna misma configuración de un ma. La migraciónes uno de los pasos más importantes en este modelo.En este proceso se debe fijar la topología, el númerode individuos a migrar, la probabilidad de migración,y las estrategias de selección y reemplazo.En [4] se aplicó un modelo basado en islas al 2dppmono-objetivo. En dicho caso, las islas ejecutabanconfiguraciones de VarPopEA. La migración se configurócon una topología totalmente conectada, y sehizo uso de esquemas de selección y reemplazo elitistas.Concretamente, sólo se producían migracionescuando se generaban individuos hijos mejores quecualquiera de los individuos de la población padre.En la isla destino, se producía un reemplazamientosi dicho individuo era mejor que todos los individuosde la isla destino. En tal caso, se reemplazaba alindividuo con menor valor de fitness. En este trabajose utiliza una fase de migración similar. Sólose diferencia en que el reemplazamiento es realizadomediante el esquema Elitist Ranking [18]. Este esquemautiliza el operador de crowding del nsga-iipara separar el frente original en subfrentes. Finalmente,se reemplaza un individuo del peor subfrente.V. Resultados ComputacionalesEn esta sección se describen los experimentos realizadospara validar las multiobjetivizaciones y el modelobasado en islas previamente descrito. Los resultadosobtenidos con estas propuestas han sido comparadoscon los obtenidos por sus correspondientesversiones mono-objetivas. Los experimentos han sidoejecutados en una máquina de 4 procesadores amdR○ Opteron TM (modelo 6164HE) a 1.7 GHz, y conuna memoria RAM de 64 GB. Los compiladores utilizadoshan sido gcc 4.4.5, y OpenMPI 1.4.2. Toda lacomparativa ha sido realizada considerando dos instanciasdel 2dpp. La primera viene caracterizada porlos siguientes parámetros: X = 10, Y = 10, N = 99,y contiene 9032 posibles parejas. La segunda es laque se propuso para la competición. Sus parámetrosson los siguientes: X = 20, Y = 20, N = 399, ycontiene 15962 posibles parejas.Dado que los algoritmos considerados en este trabajono son deterministas, cada ejecución se harepetido 30 veces, y las comparativas han sido realizadasaplicando test estadísticos. Primero, se llevaa cabo el test de Shapiro-Wilk para comprobar silos resultados siguen una distribución normal. Encaso afirmativo, se lleva a cabo el test de Levenepara comprobar la homogeneidad de las varianzas.Si los resultados tienen igual varianza, se comparanlos datos con el test anova. En los casos en que losdatos no cumplen con una distribución normal, selleva a cabo el test de Welch. Los test se han llevadoa cabo con un nivel de confianza del 95%.En el primer experimento se analizan el comportamientode las diferentes multiobjetivizacionespropuestas. Se han analizado los resultadosobtenidos con el algoritmo memético multi-objetivoal utilizar las 7 multiobjetivizaciones propuestas enla Sección III-D. En el caso de dbi thr el valorp se fijo a 0.99. Los resultados han sido comparadoscon los obtenidos con la versión mono-objetivadel 2dpp. En dicho caso el algoritmo utilizado esVarPopEA. En todos los casos los algoritmos fueronejecutados durante 24 horas. En los casos multiobjetivizadosse utilizado una población de tamaño 10.El resto de parámetros han sido comunes para todaslas configuraciones. En concreto se utilizaron lasmejores parametrizaciones de VarPopEA publicadasJP2011-42


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fitness5.10e+08 5.13e+08 5.16e+08Primera InstanciaFitness1.000e+09 1.010e+09 1.020e+09Segunda InstanciaMultiIsland MonoIsland ADI VarPopEAMonoIsland MultiIsland VarPopEA DBI_THRFig. 3.Boxplots de la Primera Instancia (12 Horas)Fig. 5.Boxplots de la Segunda Instancia (12 Horas)Primera InstanciaSegunda Instancia11Ratio de Exito0.80.60.40.2MultiIslandMonoIslandADIVarPopEARatio de Exito0.80.60.40.2MonoIslandMultiIslandVarPopEADBI_THR00 5000 10000 15000 20000 25000 30000 35000 40000Tiempo (s)00 5000 10000 15000 20000 25000 30000 35000 40000Tiempo (s)Fig. 4.RLD de la Primer InstanciaFig. 6.RLD de la Segunda Instanciaen [4]. En el operador umd se fijo min p m = 0.1 ymax p m = 0.15. En el operador ssx se utilizó p c = 1.La Figura 1 muestra, para la primera instancia,la evolución del fitness medio de los distintos esquemas.Se puede apreciar que cuatro modelos multiobjetivizadoshan sido capaces de superar a VarPopEA.Los test estadísticos revelan que las diferencias entrelas tres mejores configuraciones multiobjetivizadas yVarPopEA son significativas. La Figura 2 muestrala evolución para la segunda instancia. En este casoVarPopEA es el algoritmo que mejores resultadosobtuvo. Además, las diferencias con respecto a todaslas versiones multiobjetivizadas se confirman estadísticamente.De esta forma, con las parametrizacionesrealizadas, la adecuación o no de las multiobjetivizacionesdepende de la instancia a resolver. Taly como se había mencionado anteriormente, la utilidadde las multiobjetivizaciones es dependiente delproblema e incluso instancia, lo que se ha confirmadocon los resultados obtenidos para el 2dpp.Se hizo además, un segundo experimento, con el finde validar la utilización del modelo basado en islaspara paralelizar el método anterior. Concretamentese hizo uso una comparativa entre dos modelos homogéneos.En el primer de ellos (Mono-Island), encada isla se utilizó la definición original del 2dpp,junto con el VarPopEA. En el otro (Multi-Island),se utilizó en cada isla la multiobjetivización quemejores resultados obtuvo en el primer experimentopara cada instancia. Ambos modelos fueron ejecutadoscon cuatro islas, estableciendo un criterio deparada de 12 horas. La Figura 3 muestra, parala primera instancia, los boxplots de los resultadosobtenidos por las estrategias secuenciales y paralelasa las 12 horas de ejecución. Se puede apreciar queambos modelos paralelos fueron capaces de obtenermejores resultados que los correspondientes secuenciales.Además, también se aprecian las ventajasde utilizar la multiobjetivización para esta instancia.La Figura 5 muestra la misma información parala segunda instancia. Al igual que en la primer instanciala ventaja de los modelos paralelos es clara.Sin embargo, en este caso, los mejores resultadosson obtenidos con los modelos mono-objetivo. Esteanálisis ha demostrado la utilidad de los modelos paralelosen términos de la calidad obtenida al final delas ejecuciones. Sin embargo, es importante cuantificarla ganancia que cada modelo ha conseguidoen relación a su versión secuencial. Para ello se hanutilizado las Run-length Distributions (rld). Lasrld muestran la relación entre el tiempo y el porcentajede veces que un determinado modelo es capazde alcanzar una determinada calidad de soluciones(fitness objetivo). Se calcularon las rld paralos mejores modelos mono-objetivo y multi-objetivo,así como para sus parelizaciones. El fitness objetivose fijó al fitness medio alcanzado por el peor de losmodelos anteriores. La Figura 4 muestra la rld parala primera instancia. Muestra la clara superioridadde los modelos paralelos. Considerando el tiempo requeridopara obtener un 50% de porcentaje de éxitose han obtenido aceleraciones superlineales en amboscasos. Los modelos paralelos han sido capaces deevitar mínimos locales en los que los modelos secuen-JP2011-43


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011ciales se estancaban. En la Figura 6 se muestran lasrld de la segunda instancia. En este caso, al considerarun porcentaje de éxito del 50% se han obtenidoaceleraciones de 1.95 para Mono-Island, y de 2.42en Multi-Island. Al considerar otros porcentajes deéxito la aceleración ha variado ligeramente. Concretamente,al utilizar porcentajes entre el 25% y el75%, la aceleración ha variado entre 1.95 y 2.13 paralas versiones mono-objetivas y entre 1.89 y 2.13 enlas versiones multi-objetivas.VI. Conclusiones y Trabajos FuturosEl problema de empaquetado es un problema deoptimización np-completo con múltiple aplicacionesprácticas. En este trabajo se ha abordado una variantedel mismo (2dpp) que fue propuesta en lasesión de competiciones del gecco 2008. Hastael momento, los mejores resultados para el mismohabían sido obtenidos por un algoritmo meméticomono-objetivo denominando VarPopEA. Sin embargo,se sabía que este esquema en ocasiones sufríade estancamiento en mínimos locales. En esteartículo se ha analizado la utilización de la técnicadenominada multiobjetivización, como una estrategiapara facilitar el escape de mínimo locales. Sehan analizado varias multiobjetivizaciones, a las quese les ha aplicado un algoritmo memético basado enel nsga-ii. Los resultados obtenidos han mostradoque multiobjetivizar el 2dpp es útil para algunas instancias,pero no para todas. Por tanto, la técnicamás adecuada depende de la instancia a resolver.Debido a esto, la aplicación de hiperheurística al2dpp parece muy prometedor. Dado que éstas suelenser utilizadas junto con el modelo de paralelizaciónbasado en islas, se ha analizado la adaptación del modelobasado en islas al 2dpp. Concretamente, se haanalizado el modelo homogéneo tanto mono-objetivo,como multiobjetivizado. Los resultados computacioneshan mostrado que esta paralelización ha aportadobeneficios en términos de calidad de solucionesy ahorro de tiempo.El trabajo futuro se enfocará en la aplicaciónde hiperheurísticas paralelas multiobjetivizadas al2dpp. Por ello, sería interesante realizar un estudiode la escalabilidad del modelo basado en islas.Además, dado que los modelos mono-objetivose comportan mejor que los multiobjetivizados paraalgunas instancias, sería interesante desarrollar unahiperheurística que pueda combinar esquemas de optimizaciónmono-objetivos y multi-objetivos.AgradecimientosEste trabajo ha sido financiado con fondos ec(feder) y del Ministerio de Ciencia e Innovación,dentro del ‘Plan Nacional de i+d+i’ con el proyectocon número de referencia tin2008-06491-c04-02.Parte del trabajo también ha sido financiado confondos del Gobierno de Canarias correspondientes alproyecto pi2007/015. El trabajo de Carlos Segura yde Eduardo Segredo ha sido financiado con las becasfpu-ap2008-03213 y fpu-ap2009-0457.Referencias[1] Yew-Soon Ong, Meng-Hiot Lim, Ning Zhu, and Kok WaiWong, “Classification of adaptive memetic algorithms: acomparative study,” IEEE Trans. on Systems, Man, andCybernetics, Part B, vol. 36, no. 1, pp. 141–152, 2006.[2] Enrique Alba, Parallel Metaheuristics: A New Class ofAlgorithms, Wiley-Interscience, 2005.[3] C. A. Coello, G. B. Lamont, and D. A. Van Veldhuizen,Evolutionary Algorithms for Solving Multi-Objective Problems, Genetic and Evolutionary Computation.Springer, 2007.[4] Coromoto Leon, Gara Miranda, and Carlos Segura, “Amemetic algorithm and a parallel hyperheuristic islandbasedmodel for a 2d packing problem,” in Proceedings ofthe 11th Annual conference on Genetic and evolutionarycomputation, New York, NY, USA, 2009, GECCO ’09,pp. 1371–1378, ACM.[5] Fred W. Glover and Gary A. Kochenberger, Handbook ofMetaheuristics (International Series in Operations Research& Management Science), Springer, January 2003.[6] Joshua D. Knowles, Richard A. Watson, and DavidCorne, “Reducing local optima in single-objective problemsby multi-objectivization,” in Proceedings of theFirst International Conference on Evolutionary Multi-Criterion Optimization, London, UK, 2001, EMO ’01,pp. 269–283, Springer-Verlag.[7] Dimo Brockhoff, Tobias Friedrich, Nils Hebbinghaus,Christian Klein, Frank Neumann, and Eckart Zitzler,“Do additional objectives make a problem harder?,” inProceedings of the 9th annual conference on Genetic andevolutionary computation, New York, NY, USA, 2007,GECCO ’07, pp. 765–772, ACM.[8] Carlos Segura, Gara Miranda, and Coromoto León, “Parallelhyperheuristics for the frequency assignment problem,”Memetic Computing, pp. 1–17, 2010.[9] Minh Nghia Le, Yew-Soon Ong, Yaochu Jin, and BernhardSendhoff, “Lamarckian memetic algorithms: localoptimum and connectivity structure analysis,” MemeticComputing, vol. 1, no. 3, pp. 175–190, 2009.[10] Poonam Garg, “A comparison between memetic algorithmand genetic algorithm for the cryptanalysis of simplifieddata encryption standard algorithm,” InternationalJournal of Network Security & Its Applications,vol. 1, no. 1, pp. 34 – 42, April 2009.[11] Q. H. Nguyen, Y. S. Ong, and M. H. Lim, “A ProbabilisticMemetic Framework,” IEEE Trans. EvolutionaryComputation, vol. 13, no. 3, pp. 604–623, 2009.[12] Karthik Sindhya, Ankur Sinha, Kalyanmoy Deb, andKaisa Miettinen, “Local search based evolutionary multiobjectiveoptimization algorithm for constrained and unconstrainedproblems,” in Proceedings of the Eleventhconference on Congress on Evolutionary Computation,Piscataway, NJ, USA, 2009, CEC’09, pp. 2919–2926,IEEE Press.[13] L. Darrell Whitley, V. Scott Gordon, and Keith E. Mathias,“Lamarckian evolution, the baldwin effect and functionoptimization,” in Proceedings of the InternationalConference on Evolutionary Computation. The ThirdConference on Parallel Problem Solving from Nature:Parallel Problem Solving from Nature, London, UK,1994, PPSN III, pp. 6–15, Springer-Verlag.[14] Zhan-fang Zhao Li-xiao Ma, Kun-qi Liu and Ning Li,“Exploring the effects of lamarckian evolution and baldwineffect in differential evolution,” in Communicationsin Computer and Information Science. 2010, vol. 107 ofComputational Intelligence and Intelligent Systems, pp.127–136, Springer.[15] Quang Huy Nguyen, Yew Soon Ong, and Meng Hiot Lim,“Non-genetic transmission of memes by diffusion,” inProceedings of the 10th annual conference on Geneticand evolutionary computation, New York, NY, USA,2008, GECCO ’08, pp. 1017–1024, ACM.[16] Andrzej Jaszkiewicz, “Genetic local search for multiobjectivecombinatorial optimization,” European Journalof Operational Research, vol. 137, no. 1, pp. 50 – 71,2002.[17] Tzung-Pei Hong, Ming-Wen Tsai, and Tung-Kuan Liu,“Two-dimentional encoding schema and genetic operators,”in JCIS. 2006, Atlantis Press.[18] David A. Van Veldhuizen, Jesse B. Zydallis, and Gary B.Lamont, “Considerations in engineering parallel multiobjectiveevolutionary algorithms,” IEEE Trans. EvolutionaryComputation, vol. 7, no. 2, pp. 144–173, 2003.JP2011-44


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Diseño de Filtros con Técnicas Evolutivas parala Clasificación de Señales de EncefalogramaCoromoto León, Yanira González y Carlos Segura 1Resumen— Las interfaces cerebro-máquina (bci,Brain Computer Interface) permiten crear un canalde comunicación directo entre el cerebro humano y uncomputador. En este campo, uno de los principalesproblemas es la clasificación de las señales de encefalograma(eeg) capturadas. Investigaciones previashan demostrado que las técnicas de clasificación mejoransi la señal eeg es preprocesada. Generalmente, elpreproceso se realiza a través de la aplicación de unconjunto de filtros. En este trabajo se han usado algoritmosevolutivos para generar filtros de preprocesadoque optimicen la clasificación. Este esquema hahecho uso de una formulación multi-objetiva del problema.En primer lugar, se ha analizado la influenciade los operadores genéticos en el correcto desempeñode las técnicas. Además, con el objetivo de acelerarla generación de los filtros se ha aplicado un modeloparalelo basado en islas. Los resultados computacionaleshan mostrado la importancia de utilizaruna variación genética adecuada. Además, se ha comprobadola importancia de configurar correctamenteel modelo basado en islas para conseguir reducir eltiempo requerido para obtener filtros adecuados.Palabras clave— Interfaz Cerebro-Máquina, Clasificación,Modelos Paralelos basados en Islas.I. IntroducciónUNA interfaz cerebro-máquina o bci (BrainComputer Interface) es un canal de comunicacióndirecto entre el cerebro humano y un computador[1], [2]. Este tipo de sistemas tienen aplicacionesprácticas en múltiples campos, como en eldiseño de sistemas robóticos [3], en la asistencia a pacienteincapacitados [4], o en la eleboración de videojuegos[5], [6]. Atendiendo a su nivel de intrusismolos sistemas bci se pueden clasificar en invasivos, parcialmenteinvasivos, y no invasivos [7]. Los bcis noinvasivos son los más empleados ya que no requierende cirugía para su utilización. En este grupo de interfaces,los más comunes están basados en el uso delas señales de electro-encefalograma (eeg) emitidaspor las células nerviosas del córtex cerebral. Estossistemas tratan de explotar la relación existente entrelos pensamientos y las señales eeg. Las señaleseeg se capturan mediante la utilización de un conjuntode electrodos dispuestos sobre el cuero cabelludo.Existen estudios que han analizado [8] cómodeben ubicarse estos electrodos, así como su relacióncon los patrones generados. Existen otras señales quetambién pueden ser empleadas por los sistemas bci.Cabe destacar las señales basadas en la magnetoencefalografía(meg) o las imágenes por resonanciamagnética funcional (firm, functional magnetic resonanceimaging).1 Dpto. de Estadística, I.O y Computación, Universidadde La Laguna, Edificio de Física y Matemáticas, Avda. AstrofísicoFco. Sánchez s/n, 38271 La Laguna, Tenerife, e-mail:(cleon|ygonzalez|csegura)@ull.es.El principal reto en los sistemas bci basados eneeg es diseñar un sistema de clasificación que, dadauna señal eeg, permita discriminar entre un conjuntode pensamientos. Dado que la relación entrepensamiento y señales eeg difiere entre personas, lossistemas de clasificación se deben personalizar paracada sujeto. Por este motivo, se suelen empleartécnicas de aprendizaje automático [9], cuyo fin esdiseñar sistemas de clasificación de señales eeg paraun individuo concreto. Estos clasificadores son entrenadosa partir de datos generados por el sujeto através de un aprendizaje supervisado.Generalmente, los datos capturadas por los electrodosson preprocesados con el fin de facilitar laclasificación. Existen tres clases de transformacionescomúnmente usadas: el filtro espacial (L), la transformadade Fourier (FFT, Fast Fourier Transform)y el filtro pasa banda (B). El filtro espacial seaplica sobre la señal en bruto, realizando transformacionesen el dominio del tiempo. La transformada deFourier transforma la señal al dominio de la frecuencia.Finalmente, el filtro pasa banda (B), seleccionalas bandas de frecuencia que van a ser consideradaspor el sistema de clasificación. Generalmente, sólo seconsideran frecuencias entre los 8 y 30Hz.En [10] se aplicó un algoritmo basado en estrategiasevolutivas al diseño automático del filtro espacialy el filtro pasa-banda. Una vez aplicado el filtro,se hacía uso del clasificador lineal de Fisher (fd,Fisher Discriminant). El estudio fue realizado conlas señales eeg publicadas en [11]. A partir de losdatos obtenidos por 32 sensores se debía clasificar laseñal en 3 clases diferentes. Las estrategias diseñadasfueron capaces de generar filtros que alcanzaron tasasde error similares a las obtenidas por filtros generadospor expertos. En este trabajo se analiza laaplicación de un Algoritmo Evolutivo Multi-Objetivo(moea - Multi-objective Evolutionary Algorithms) auna formulación multiobjetiva del bci. El propósitoes diseñar un método que sea capaz de alcanzar erroressimilares o mejores que los ya publicados, y queevite el estancamiento en mínimos locales. En laformulación aplicada se intentan minimizar la tasade error del clasificador y el número de bandas defrecuencia consideradas. La utilización del segundoobjetivo tiene como propósito posibilitar el escape demínimos locales. Sin embargo, dado que el objetivofinal sigue siendo minimizar la tasa de error, los resultadosse han analizado considerando como únicoobjetivo la minimización de dicha tasa. Se ha realizadoun análisis sobre la influencia de los operadoresgenéticos en el correcto desempeño de estas técnicas.La obtención de filtros de alta calidad con laJP2011-45


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011técnica propuesta conlleva realizar ejecuciones delarga duración. Con el fin de reducir el tiempo de ejecuciónde los algoritmos evolutivos (eas), se han propuestovarios modelos paralelos [12]. Entre los modelosexistentes, el modelo basado en islas [13] aportavarios beneficios notables: se adapta fácilmente alas arquitecturas paralelas, permite extender el espaciode búsqueda de soluciones pudiendo evitar lacaída en óptimos locales, y puede ser utilizado juntoa las hiperheurísticas para diseñar métodos de optimizaciónmás generales. Además, han mostradobuen rendimiento y estabilidad en muchas áreas [12].En este trabajo, se ha analizado la adecuación delmodelo paralelo basado en islas para el bci.El resto del artículo se estructura de la siguientemanera: en la Sección II se da una visión de comose realiza el preprocesamiento de la señal eeg. En laSección III se detalla la evolución de los filtros L yB. En la Sección IV se describen los algoritmos evolutivosy operadores géneticos empleados. El modeloparalelo basado en islas se detalla en la Sección V.En la Sección VI se definen los experimentos realizados,y se analizan los resultados computacionalesobtenidos con las técnicas descritas. Finalmente, enla Sección VII se presentan las conclusiones y algunasposibles líneas de trabajo futuro.II. Preprocesamiento Señales eegCon el objetivo de entrenar un clasificador dependientedel usuario, es necesario almacenar los datoseeg generados durante las sesiones de adquisición.Los datos eeg en bruto no se suelen usar directamentepara el entrenamiento, sino que se preprocesancon un conjunto de filtros. Finalmente, se procedecon la fase de aprendizaje del clasificador. Esteproceso se lleva a cabo en modo off-line. Los filtrosobtenidos junto con el clasificador podrán ser usadosmás tarde de forma on-line por el sujeto. Durantela etapa on-line, los datos eeg son primeropreprocesados, luego clasificados, y finalmente usadospara el control de periféricos o dispositivos. Enprácticamente todos los casos de bcis existe un modelode retroalimentación, donde el sujeto observa larespuesta del sistema a las señales producidas porel cerebro. Este circuito cerrado exige un aprendizajemutuo donde la máquina aprende de los datosobtenidos, y el sujeto de la respuesta obtenida.En este trabajo, el preprocesamiento se inicia aplicandoun filtro espacial sobre los datos almacenadosen la sesión de adquisición de datos. A los datosresultantes de este proceso se le aplica la TransformadaRápida de Fourier (fft), transformando laseñal al dominio frecuencial, donde es posible detectarmás fácilmente algunas características, como lasSMR (sensorimotor rythm). Finalmente, se seleccionanlas bandas de frecuencia más relevantes con elfiltro pasabanda. En esta sección, se explica cómo seproduce el preprocesado de la señal asumiendo queel filtro espacial ya ha sido ajustado, y que el filtropasabanda ya ha sido seleccionado. Eliminando,con este último, las frecuencias que no interesan yal mismo tiempo intentando reducir la información aextraer para simplificar la tarea del clasificador.Inicialmente, la señal eeg recogida a partir dec electrodos es discretizada usando una frecuenciade muestreo f, que representa el número de muestrasrecogidas por segundo (Hz). Si la sesión deadquisición dura n segundos, se genera una serie temporalde f ∗ n puntos. En cada instante, sólo unaparte de la señal eeg es considerada. Se denota comoS n a la enésima parte de la eeg. S n es una matriz t xc, donde t = s∗f, siendo s la duración del fragmentode señal seleccionado, y f la frecuencia de muestreo.La primera fase de la etapa de preprocesamiento(filtro espacial) se representa a través de laecuación 1. El filtro espacial L es una matriz c xc ′ . Si c ′ = c entonces, S ′ n tiene el mismo númerode columnas (canales) que la matriz original S n . Elnúmero de canales de S ′ n se reduce en el caso quec ′ < c. En cierto sentido, el filtro espacial L transformael número de canales c original a c ′ .S ′ n = S n ∗ L (1)La segunda fase en el preprocesamiento de la señaleeg consiste en transformar la señal desde el dominiotemporal al dominio frecuencial aplicando lafft. Puesto que la fft es aplicada sobre una parteS ′ n de la señal se ha optado por usar la transformadade Fourier de corta duración (stft, Short Time FastFourier). La aplicación de la stft sobre S ′ n vienerepresentada en la ecuación 2.S ′′n = |F F T (S′ n )| (2)donde el operador || computa el módulo de cadauno de los componentes de la matriz resultante dela fft. La fft devuelve un número complejo, confase y módulo, pero muchas investigaciones realizadassobre el bci tratan únicamente el módulo [14],por lo que en este caso se ha ignorando la fase. S ′′nen la ecuación 2 es igualmente una matriz de t xc ′ , pero ahora las filas de la matriz pertenecen aldominio de la frecuencia. Tras aplicar la transformaciónfft, las filas desde la 1 hasta la t/2 de lamatriz S ′′n representan el conjunto de bandas de frecuencias[0 − f/2]Hz (donde f es la frecuencia demuestreo y t el tamaño de la ventana), con una resoluciónδf = (f/t)Hz. Las bandas de frecuenciascontenidas en la matriz son [0 − δf], [δf − 2 ∗ δf],etc. En ocasiones, la resolución δt es más pequeñade lo necesario, así que es conveniente trabajar conunas bandas de frecuencias más amplias. Es conocido,que las frecuencias fuera del rango [8 − 30]Hzno contienen información fisiológica de interés para elbci. Por lo tanto, únicamente se seleccionan las filasque se encuentran desde ⌈8/δf⌉+1 hasta ⌈30/δf⌉+1.Con el propósito de simplificar la notación, se asumeque S ′ n está compuesta únicamente por aquellas bandasde frecuencias en la que existe información fisiológica.El número de filas restantes en S ′′n est ′ = ⌈8/δf⌉ − ⌈30/δf⌉ + 1.JP2011-46


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011La última fase del preprocesado de la señal eegselecciona el conjunto de bandas de frecuencias másrelevantes para un usuario en particular. Este pasoes representado por el filtro B en la ecuación 3. Bes una matriz con dimensiones iguales a S ′′n , perocompuesta sólo por valores binarios (0 ó 1). Así,si la componente B(i, j) = 0 entonces, S ′′n (i, j)será eliminada del conjunto de bandas de frecuenciasdisponibles. Solamente aquellas componentes de(i, j) con B(i, j) = 1 permanecen intactas.S ′′nS ′′′n= S′′ n ⊗ B (3)La ecuación 4 resume las fases del preprocesadosobre la matriz S n para generar una instancia de entrenamiento.Algorithm 1 Pseudocódigo de un ea1: Generar población inicial2: Evaluar individual de la población3: while (criterio de parada no se cumpla) do4: Selección de padres5: Aplicar operador de crossover con probabilidad p c6: Aplicar operador de mutación con probabilidad p m7: Evaluar los nuevos individuos8: Selección de supervivencia9: end whilesi i pertenece al resto de clases. Cada F D i (x) es unhiperplano representado por F D i (x) = w i ∗ x + b i .La ecuación 5 presenta cómo se clasifica una instanciax empleando el enfoque uno contra todos en elclasificador lineal fd. Se elige el valor i tal que F D ies máximo.F D(x) = arg max i (F D i (x)) = arg max i (w i ∗ x + b i ) (5)I n = flatten(|(F F T (S n ∗ L))| ⊗ B) (4)donde flatten construye una lista con todas componentesde la matriz.III. Evolución del Filtro Espacial ySelección de FrecuenciasEl objetivo de este trabajo es evolucionar el filtroespacial L y seleccionar el conjunto de bandasde frecuencias B, que optimicen la operación de unclasificador C. Ambos filtros son evolucionados deforma conjunta. Con el propósito de resolver elproblema haciendo uso de algoritmos evolutivos sedeben definir, la representación de las soluciones candidatas(cromosoma) y las función de optimización.El cromosoma contiene los parámetros que seránoptimizados, es decir, la matriz de filtro espacial Ly el filtro de selección de frecuencias B. Ambas matricesse codifican de forma directa en el cromosoma.La matriz L está compuesta por número reales, mientrasque la matriz B es un vector de números binarios.Con el fin de evaluar la calidad de los filtrosL y B codificados en el cromosoma, un clasificadorC es construido sobre el conjunto de datos de entrenamientoI n generados a partir de los datos eeg deentrenamiento. El objetivo de la clasificación consisteen identificar a qué clase pertenece un determinadoobjeto (señal en el caso considerado). Unclasificador lineal logra esto tomando una decisión declasificación basada en el valor de una combinaciónlineal de sus características. En este trabajo, se hautilizado el clasificador lineal de Fisher (fd, FisherDiscriminant). Se ha elegido el fd porque estudiosprevios han demostrado que el mismo puede ser unabuena opción para esta área.Con el fin de hacer frente a problemas multiclases,el enfoque de uno contra todos es aplicado para elfd. Un problema de clasificación de N c clases estransformado a N c problemas de clasificación binarios,donde el objetivo es separar la clase i del restode clases. Los clasificadores binarios tienen comoobjetivo diseñar una función de clasificación tal queF D i (x) > 0 si x pertenece a la clase i y F D i (x) < 0En el presente trabajo, las soluciones candidatasson evaluadas acorde a dos objetivos: el error de entrenamientodel clasificador fd y el número de bandasde frecuencias seleccionadas. El error de entrenamientoes el error que se comete al clasificar lasinstancias I n , tras aplicar un determinado preprocesamientoy el discriminante de Fisher. El número debandas de frecuencias seleccionadas es dado por elnúmero de componentes con valor 1 en B. Ambosobjetivos son a minimizar.IV. Algoritmos Evolutivos yOperadores GenéticosLas técnicas de optimización multi-objetivo tratande obtener un conjunto de individuos no dominados,lo más cercano posible al Frente de Pareto.Entre estas estrategias cabe destacar los algoritmosevolutivos multi-objetivo (Multi-Objective OptimizationEvolutionary Algorithms - moeas). Se tratade técnicas que se inspiran en la evolución de lanaturaleza para realizar la optimización. El Algoritmo1 muestra un pseudocódigo de un ea. Losmoeas han demostrado ser métodos adecuados paraabordar problemas de optimización complejos. Estetipo de estrategias se basan en mantener de formaparalela un conjunto de soluciones candidatas queluchan y cooperan entre ellas para mejorar las solucionesobtenidas. La codificación de los individuosconsiste en un string real/binario, con tantos genescomo valores en los filtros L y B. Cada gen binariorepresenta si se selecciona o no una determinadabanda de frecuencia, mientras que los valores realesdeterminan los valores del filtro espacial.Los moeas están basados en unos patrones comunes.Sin embargo, existen diversas formas de llevarestas ideas a la práctica. Por ello han surgido enla literatura una gran cantidad de moeas. Con el finde comprobar la adaptación de estas estrategias albci se escogió Non-Dominated Sorting Genetic AlgorithmII [15] (nsga2), uno de los algoritmos evolutivosmulti-objetivo más populares.Los moeas están basados en una fase de variaciónen la se deben aplicar operadores de cruce y mutaciónJP2011-47


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011a un conjunto de individuos que son seleccionadospor cada estrategia. Tal y como se puede observaren el Algoritmo 1 estos operadores son aplicados conuna probabilidad p c y p m , respectivamente. El funcionamientode estos operadores no viene determinadopor cada algoritmo, sino que se deben escogerde forma independiente. En este trabajo se analizael comportamiento de los algoritmos anteriores haciendouso de diversos operadores de variación. Dadoque el cromosoma está formado por una parte real yotra binaria se han empleado operadores de variaciónde ambos tipos. En el cruce de individuos se hantesteado los operadores de cruce de un punto (opc -One Point Crossover) y el cruce uniforme (ux) parala parte binaria. El cruce en la parte real siempreha sido realizado utilizando el cruce uniforme (ux -Uniform Crossover). En la proceso de mutación deindividuos se ha testeado la mutación uniforme (um)y la mutación polinomial (pol - Polynomial Mutation)para la parte real. En la parte binaria en todocaso se ha aplicado el operador Binary Flip Mutation.V. Modelos Basados en islasLos modelos basados en islas dividen la poblaciónoriginal en un conjunto de sub-poblaciones independientes.Cada sub-población es asociada a unaisla, y sobre cada isla se ejecuta una configuraciónde moea de forma independiente durante un ciertotiempo. Una configuración está constituida porun algoritmo de optimización con sus respectivosparámetros. Generalmente, cada procesador constituyeuna isla, de forma que cada isla evolucionaen paralelo de forma independiente. Sin embargo,dado que los esquemas colaborativos suelen alcanzarmejores resultados, se incluye una fase de migraciónque permite el intercambio de individuos entre islas.Este comportamiento colaborativo añade al esquemabasado en islas la posibilidad de obtener un mejorcomportamiento. Existen cuatro modelos basados enislas diferentes [13]: todas las islas ejecutan la mismaconfiguración (homogéneo), todas las islas ejecutanuna configuración diferente (heterogéneo), cada islaevalúa un subconjunto diferente de funciones objetivoy cada isla representa una región distinta en losdominios del fenotipo o del genotipo. En este trabajose analiza el modelo de islas homogéneo. En este modelotodas las islas ejecutan la misma configuraciónde un moea. En esta clase de modelo paralelo, elproceso de migración que permite el intercambio deindividuos entre islas es esencial. Dado que cadaalgoritmo evolutivo podría explorar regiones del espaciodiferentes, este mecanismo puede permitir enriquecerlas soluciones locales de cada isla, pudiendoobtenerse a la larga una mayor eficiencia en el esquema[16]. Para definir el esquema de migraciónse deben especificar una serie de componentes: latopología de migración (identifica hacía donde migranlos individuos), el ratio de migración (númerode individuos a migrar), el porcentaje de migración(determina con qué frecuencia se migra), la estrate-Error de Entrenamiento (%)Fig. 1.0.380.360.340.320.30.280.26UX_POLUX_UMOPC_POLOPC_UM0.240 1000 2000 3000 4000 5000 6000 7000EvaluacionesEvolución del Porcentaje de Error de Entrenamientogia de selección de individuos a migrar y la estrategiade reemplazamiento en la isla destino. Otra decisiónque puede influir enormemente en los resultados finaleses el tamaño de las subpoblaciones [16]. Algunosautores dividen la población original usada enlos esquemas secuenciales, de forma que la suma delas subpoblaciones sea igual a dicha población original.En otros casos se usan poblaciones tan grandescomo en el esquema secuencial. Cada uno de estosesquemas tiene ventajas y desventajas.VI. Resultados ComputacionalesEn esta Sección se describen los experimentos llevadosa cabo con los diferentes esquemas de optimizaciónpresentados en la Sección IV, así comosus paralelizaciones. Las pruebas se han lanzadoen una máquina con sistema operativo DebianGNU/Linux, 4 procesadores amd R○ Opteron TM(modelo 6164HE) que corren a 1.7 GHz, y con unamemoria RAM de 64 GB. El compilador utilizadoha sido gcc 4.4.5. El compilador mpi ha sido Open-MPI 1.4.2. La validación ha sido realizada utilizandolos datos proporcionados por el instituto de investigaciónIDIAP [11]. Concretamente se ha utilizado elSujeto 1 del conjunto de datos V. Para este sujeto sedisponen de 4 sesiones. Las 3 primeras han sido utilizadascomo conjunto de entrenamiento, mientrasque la última fue utilizada como conjunto de validación.Se han analizado los resultados tanto parael conjunto de entrenamiento como para el conjuntode validación. Ambos análisis han llevado a similaresconclusiones. Por ello, sólo se presentan resultadoshaciendo uso del conjunto de entrenamiento.Dado que los algoritmos considerados en este trabajono son deterministas, cada ejecución se harepetido 30 veces, y las comparativas han sido realizadasutilizando los siguientes test estadísticos [17].Primero, se aplica el test de Shapiro-Wilk para comprobarsi los resultados siguen una distribución normal.En caso afirmativo, se lleva a cabo el test deLevene para comprobar la homogeneidad de las varianzas.Si los resultados tienen igual varianza, secomparan los datos con el test anova. En los casosen que los datos no cumplen con una distribuciónnormal, el test de Welch es aplicado. Los test se hanllevado a cabo con un nivel de confianza del 95%.JP2011-48


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IComparativa Estadística de los Modelos SecuencialesOPC UM OPC POL UX UM UX POLOPC UM ↔ ↑ ↑ ↑OPC POL ↓ ↔ ↔ ↔UX UM ↓ ↔ ↔ ↑UX POL ↓ ↔ ↓ ↔TABLA IIAceleración del Modelo Paralelo Basado en IslasSubPop = 8 SubPop = 30p m = 0.1 1.38 1.30p m = 0.5 1.63 1.44p m = 1 1.7 1.441.21Island-Model (SubP 8)Island-Model (SubP 30)OPC_UMRatio de Exito0.80.60.40.205000 10000 15000 20000 25000 30000 35000 40000 45000Tiempo (s)Fig. 2.Errores de entrenamiento en 22000 sFig. 3.RLD de los mejores modelos secuenciales y paralelosEn el primer experimento se ha analizado el comportamientode los algoritmos evolutivos al ser aplicadosde forma secuencial. Se ha utilizado el algoritmoevolutivo multi-objetivo Non-Dominated SortingEvolutionary Algorithm-II (nsga2). Con el finde analizar la influencia de los operadores genéticosen el correcto desempeño de las técnicas, éste hasido ejecutado con los operadores genéticos previamentepresentados. Concretamente, se han ejecutados4 configuraciones que combinan los operadoresde cruce binario opc y ux, con los operadores demutación real um y pol. El valor p c fue fijado a 1 entodo caso. Por su parte, p m fue fijado a 1 Men para losoperadores de mutación binaria, siendo M el númerode genes de la parte binario, y a 1 Npara los operadoresde mutación real, siendo N el número de genesde la parte real. Estas configuraciones serán referenciadascon la forma X Y , en donde X es el crucebinario utilizado, e Y es la mutación real aplicada.Las configuraciones fueron ejecutadas estableciendocomo criterio de parada la ejecución de 7000 evaluaciones.La Figura 1 muestra la evolución del error deentrenamiento para cada configuración. En la mismapodemos observar que los resultados obtenidos por laconfiguración con mutación um y cruce opc superanal resto de configuraciones. La Tabla I muestra losresultados de los tests estadísticos realizados para estasconfiguraciones con los resultados obtenidos alfinal de las ejecuciones. En cada celda se indicasi la configuración correspondiente a dicha fila esestadísticamente superior (↑), no diferente (↔), opeor (↓), que la configuración correspondiente a lacolumna. Los test estadísticos confirman la superioridaddel modelo opc um, mostrando la importanciade seleccionar correctamente la variación genética.Se hizo además, un segundo experimento, con elfin de validar la utilización del modelo basado enislas para paralelizar el método anterior. Concretamentese aplicó el modelo basado en islas ho-mogéneo, utilizando la mejor configuración encontradaen el primer experimento. Los tests fueron realizadosutilizando cuatro islas. Se ejecutaron seisconfiguraciones diferentes de este modelo, combinandotres valores diferentes de probabilidades demigración, con dos valores diferentes de tamaños delas subpoblaciones. Las probabilidades de migracióntesteadas fueron: 0.1, 0.5 y 1. Los tamaños de lassubpoblaciones fueron 8 y 30. De esta forma, al utilizarel valor 8, la población del método secuencialoriginal se está distribuyendo entre las islas, mientrasque al utilizar el valor 30 se está haciendo crecerla población original. La migración se configuró conuna topología en anillo, y se hizo uso de esquemasde selección y reemplazo elitistas. Concretamente,sólo se producían migraciones cuando se generabanindividuos hijos mejores que cualquiera de los individuosde la población padre. El reemplazamiento enlas islas destino, es realizado mediante el esquemaElitist Ranking [16]. Este esquema utiliza el operadorde crowding del nsga2 para separar el frenteoriginal en subfrentes. Finalmente, se reemplaza unindividuo del peor subfrente. La Figura 2 muestralos boxplots del error de entrenamiento alcanzado en2200 segundos por la mejor configuración secuencial(opc um), y por las cuatro mejores configuracionesparalelas. Se aprecia que las configuraciones paralelasson capaces de alcanzar errores menores que laconfiguración secuencial. Además, los modelos queutilizan tamaños de subpoblación 8 han obtenidoserror ligeramente menores que los que han utilizadosubpoblaciones de tamaño 30. Estos resultados indicanque los modelos paralelos son capaces de acelerarla convergencia a filtros de alta calidad. Sinembargo, dado que éstos están usado más recursoscomputaciones, dicha mejora debe ser cuantificada.Para ello se han utilizado las Run-length Distributions[18] (rld). Las rld muestran la relación entreel tiempo y el porcentaje de veces que un determinadomodelo es capaz de alcanzar una determinadaJP2011-49


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011calidad de soluciones (porcentaje de error). Se calcularonlas rld para la mejor configuración secuencialy para todos los modelos paralelos. El error objetivose fijó al 27, 5%. La Tabla II muestra la aceleraciónde los modelos paralelos respecto al secuencial,considerando el tiempo requerido para obtenerun 50% de éxito. La Figura 3 muestra la rld para elmejor modelo secuencial, y los mejores modelos paralelosfijando los tamaños de subpoblación a 8 y 30.Se puede apreciar que, aunque los modelos paraleloshan permitido acelerar la convergencia a solucionesde alta calidad, dicha aceleración está bastante limitada.Por ello, se hace necesario seguir analizandomás a fondo este modelo, con el fin de hacer un mejoruso de los recursos computacionales.VII. Conclusiones y Trabajos FuturosLas interfaces cerebro-máquina (bci, Brain ComputerInterface) permiten crear un canal de comunicacióndirecto entre el cerebro humano y un computador.En este campo uno de los principales retoses el diseño de algoritmos, capaces de clasificarlas señales eeg en un conjunto de pensamientos delsujeto. Generalmente, antes de aplicar los clasificadores,se preprocesan las señales eeg mediante unconjunto de filtros. En este trabajo, se ha aplicael algoritmo evolutivo multi-objetivo nsga2 paragenerar de forma automática estos filtros. nsga2ha sido aplicado utilizando varias configuraciones devariación genética. Los resultados computacionaleshan mostrado la importancia de seleccionar de formaadecuada los operadores genéticos. Los resultadosobtenidos son similares a los mejores publicadoshasta el momento, de entre aquellas técnicas queusan como entrada directa las señales eeg. Dado elalto coste computacional asociado a cada ejecuciónse ha explorado la posibilidad de utilizar el modeloevolutivo basado en islas. Se escogió este modeloporque se puede hibridizar fácilmente con las hiperheurísticas,con las ventajas que ello conlleva. Serealizó un análisis utilizando diferentes tamaños desubpoblaciones, así como diferentes porcentajes demigración. Los resultados computacionales muestranque se ha conseguido acelerar la generación defiltros de alta calidad. Sin embargo, se hace patenteque el aprovechamiento de los recursos computacionesno ha sido máximo.Los trabajos futuros se centrarán en analizar mása fondo el modelo basado en islas, con el fin deacelerar aún más la computación. Concretamente,se quieren explorar otros esquemas de migración yaque éste generalmente tiene una gran influencia sobrelos resultados obtenidos. Además, sería interesanteanalizar los resultados obtenidos con otros sujetos.Dado que con alta probabilidad, la variacióngenética adecuada depende del sujeto al que se aplicael esquema, utilizar algunos esquemas que hibridizanlos modelos basados en islas con las hiperheurísticasparece prometedor. Esto permitiría disponer de unesquema que de forma automática seleccione la fasede variación genética adecuada.AgradecimientosEste trabajo ha sido financiado con fondos ec(feder) y del Ministerio de Ciencia e Innovación,dentro del ‘Plan Nacional de i+d+i’ con el proyectotin2008-06491-c04-02. Parte del trabajo tambiénha sido financiado con fondos del Gobierno de Canariascorrespondientes al proyecto pi2007/015. Eltrabajo de Carlos Segura ha sido financiado graciasa las beca fpu-ap2008-03213.Referencias[1] Wolpaw JR, Birbaumer N, McFarland DJ, PfurtschellerG, and Vaughan TM, “Brain-computer interfaces forcommunications and control,” Neurophys, pp. 767–791,2002.[2] E.A. Curran and M.J. Stokes, “Learning to control brainactivity: a review of the production and control of eggcomponents for driving braincomputer interface (bci) systems,”Brain Cognition, 51, 2003.[3] Mourino J Millan J del R, Renkens F, and W. Gerstner,“Noninvasive brain-actuated control of a mobile robot byhuman eeg,” IEEE Trans Biomed Eng,51, 2004.[4] R. Singla, R. Pahuja, and S. Pahuja, “Environment controlusing bci,” in Bioinformatics and Biomedical Engineering,2007. ICBBE 2007. The 1st International Conferenceon, july 2007, pp. 1293 –1295.[5] D.P.O. Bos, B. Reuderink, B. Laar, H. Gurkok, C. Muhl,M. Poel, D. Heylen, and A. Nijholt, “Human-computerinteraction for bci games: Usability and user experience,”in Cyberworlds (CW). 2010 International Conference on,pp. 277–281, IEEE.[6] D.P.O. Bos, B. Reuderink, B. Laar, H. Gurkok, C. Muhl,M. Poel, A. Nijholt, and D. Heylen, “Brain-ComputerInterfacing and Games,” Brain-Computer Interfaces, pp.149–178, 2010.[7] Andrea Kubler and Klaus Robert Muller, Toward Brain-Computer Interfacing, MIT Press, 2007.[8] G. Pfurtscheller and F.H.L. da Silva, “Event-related synchronizationof mu rhythm in the egg over the corticalhand area in man,” NeuroScience Letters,174, 1994.[9] G. Dornhege, B. Blankertz, M. Krauledat, F. Losch,G. Curio, and K. R. Muller, “Combined Optimizationof Spatial and Temporal Filters for Improving Brain-Computer Interfacing,” IEEE Transactions on BiomedicalEngineering, vol. 53, no. 11, pp. 2274–2281, Nov.2006.[10] R. Aler, I.M. Galván, and J.M. Valls, “Evolving spatialand frequency selection filters for brain-computer interfaces,”in IEEE Congress on Evolutionary Computation,2010, pp. 1–7.[11] J. del R. Millán, “On the need for on-lin learning in braincomputerinterfaces.,” in Proceedings of the InternationalJoint Conference on Neural Networks, Budapest, Hungary,July, 2004, IDIAP-RR 03-30.[12] Enrique Alba, Parallel Metaheuristics: A New Class ofAlgorithms, Wiley-Interscience, 2005.[13] C. A. Coello, G. B. Lamont, and D. A. Van Veldhuizen,Evolutionary Algorithms for Solving Multi-Objective Problems, Genetic and Evolutionary Computation.Springer, 2007.[14] Guido Dornhege et al. (eds), Towards Brian-ComputerInterfacing, chapter General Signal Processing and MachineLearning Tools for BCI Analysis, MIT Press, 2007.[15] Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, andT. Meyarivan, “A fast and elitist multiobjective geneticalgorithm: NSGA-II,” IEEE Transactions on EvolutionaryComputation, vol. 6, pp. 182–197, 2002.[16] David A. Van Veldhuizen, Jesse B. Zydallis, and Gary B.Lamont, “Considerations in engineering parallel multiobjectiveevolutionary algorithms,” IEEE Trans. EvolutionaryComputation, vol. 7, no. 2, pp. 144–173, 2003.[17] Janez Demšar, “Statistical comparisons of classifiers overmultiple data sets,” Journal of Machine Learning Research,vol. 7, pp. 1–30, 2006.[18] Holger Hoos, Fachbereich Informatik, Holger H. Hoos,Thomas Stutzle, Thomas Stutzle, Fachgebiet Intellektik,and Fachgebiet Intellektik, “On the run-time behaviorof stochastic local search algorithms for sat,” in In ProceedingsAAAI99, 1999, pp. 661–666.JP2011-50


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Ranking de listas enlazadas en procesadoresmulticoreHugo María Vegas 1 , Thierry Gautier 2 , Carlos García 3 y Manuel Prieto 4Resumen— En este estudio hemos revisado la implementaciónde algoritmos paralelos para el ranking delistas enlazadas en procesadores multicore. Este tipode algoritmos exhibe patrones de acceso a memoriafuertemente irregulares que no se benefician de losmecanismos agresivos que integran las arquitecturasactuales para ocultar los costosos accesos a memoria(caches, mecanismos de prebúsqueda, ...). Debidoa esta característica intrínseca, el rendimiento decualquier algoritmo para el ranking de listas esta limitadopor los accesos a memoria no consecutivos. Enlos algoritmos paralelos los problemas de rendimientose agravan ya que los patrones de acceso irregular suelenprovocar mayor contención por recursos compartidosy por lo tanto, continua siendo un importantedesafío diseñar algoritmos eficientes para esta aplicación.Tras explorar distintas alternativas, nos hemos centradoen el algoritmo de Helman y Jájá. Comoplataforma experimental hemos seleccionado un servidorde memoria compartida con dos procesadores IntelWestmere de seis cores. Se han analizado dosimplementaciones, una de ellas siguiendo el modelode ejecución convencional fork-join soportado por elestándar OpenMP, y otra que utiliza la librería TBB(Threading Building Blocks) de Intel, con la que es posiblerepartir trabajo utilizando work stealing. Comoprincipal aportación mostramos como es posible mejorarla implementación estándar de Helman y Jájá reduciendoel número de accesos a memoria no consecutivos.Las mejoras son notables con ambos modelos,aunque son especialmente significativas para laversión basada en Intel TBB, cuya implementaciónestándar no consigue aceleraciones respecto al algoritmosecuencial.Palabras clave— List Ranking, Helman y Jájá, Algoritmosirregulares, OpenMP, Intel TBB, Workstealing.I. IntroducciónEn este estudio hemos revisado la implementacióndel algoritmo irregular de list ranking en multiprocesadoresde memoria compartida basados en procesadoresmulticore. Los últimos estudios que se hanpublicado sobre este problema se han realizado utilizandoGPUs como plataforma hardware [1]. Sinembargo, a pesar del auge de este tipo de aceleradores,el mercado técnico y comercial en el que encajaeste tipo de algoritmos irregulares, sigue estandodominado por servidores basados en procesadoresmulticore y es útil una revisión de los trabajos previosen sistemas tipo SMP.Después de explorar varias alternativas, nos centramosen el algoritmo de Helman y JáJá [2].1 Grupo ArTeCS, Universidad Complutense de Madrid, e-mail: hugovegas@fdi.ucm.es2 INRIA Rennes, IRISA, e-mail:thierry.gautier@inrialpes.fr3 Grupo ArTeCS, Universidad Complutense de Madrid, e-mail: garsanca@dacya.ucm.es4 Grupo ArTeCS, Universidad Complutense de Madrid, e-mail: mpmatias@dacya.ucm.esExisten estudios previos sobre dicho algoritmo enmúltiples arquitecturas y con diferentes propósitos[3][2][4][5],[6][7][8]. En multiprocesadores de memoriacompartida tipo SMP [4][6], las aceleraciones conseguidashan sido francamente buenas. Sin embargo,nuestros primeros resultados con procesadores multicorede la familia Intel Xeon no fueron tan satisfactorios.La raíz del problema, que es inherente almismo, y que limita la escalabilidad de cualquier algoritmoparalelo de list ranking está en la naturalezairregular del mismo. Como propuesta presentamosoptimizaciones que permiten reducir los accesos noconsecutivos a memoria, mejorando de este modo lalocalidad espacial, lo que permite alcanzar mayoresaceleraciones.Nuestras implementaciones se han desarrolladocon dos tecnologías de paralelización diferentes:OpenMP e Intel TBB. Con la primera exploramos elmodelo de ejecución fork-join y las estrategias convencionalesde paralelización de bucles. Con la segundaanalizamos las posibilidades que nos ofrece elparalelismo dinámico basado en tareas [9]. En amboscasos, las mejoras que hemos conseguido respecto a laimplementación estándar del algoritmo, han sido significativas.La versión basada en OpenMP es la queconsigue mejores prestaciones frente al algoritmo secuencialpero comparativamente, es la versión basadaen Intel TBB la que más se beneficia de nuestraspropuestas.El resto del artículo se compone de las siguientessecciones. El problema de list ranking y el entornoexperimental utilizado se describen con más detallesen las secciones II y III respectivamente. Las estrategiasde implementación que mejores resultadosnos han ofrecido se presentan en la sección IV.Losresultados obtenidos se presentan y analizan en lasección V. Finalmente, concluimos en la sección VIcon un resumen e ideas de trabajo futuro.II. El problema de List RankingLos algoritmos utilizados para resolver el problemade list ranking son ejemplos muy conocidos de algoritmosirregulares cuyas implementaciones paralelaspresentan serias dificultades para conseguir aceleracionessatisfactorias en los multiprocesadores actuales.Entre otros motivos podemos destacar lossiguientes:• Al igual que ocurre en otros algoritmos de naturalezairregular, su escalabilidad está limitadapor patrones de acceso a memoria con poca localidadespacial y por la existencia de dependenciasque sólo pueden revelarse en tiempo deejecución.JP2011-51


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011• La versión secuencial del algoritmo es extremadamentesimple y aunque también exhibelos problemas de localidad espacial inherentes almismo, requiere menos sobrecargas que los algoritmosparalelos.En la Figura 1 ilustramos gráficamente el problema.Dada una lista formada por enlaces arbitrariosalmacenada en un área contigua de memoria,se debe determinar, para cada nodo de la lista,la distancia (número de enlaces) que le separa delprimer elemento (nodo cabecera) de la misma [10].Dado que los nodos sucesores pueden encontrarse encualquier posición del rango de memoria en el quese almacena la lista, el recorrido de la misma requiereaccesos a memoria con escasa localidad, queno se benefician de los típicos mecanismos agresivosque integran las arquitecturas actuales para reducirlas crecientes latencias de acceso a memoria principal(jerarquías de memoria agresivas, mecanismos depre-búsqueda hardware, ...).(1)FirstFirstNULLLa propuesta de Helman y Jájá para resolver enparalelo el problema de list ranking de forma eficientese basa en reducir el tamaño de la lista aO( nlog n) nodos usando para ello un número linealde operaciones. El Algoritmo 1 y la Figura 2 describenla propuesta. Si se asume que el elementocabecera de la lista es desconocido (es el caso quehemos considerado en este trabajo), es necesario unaetapa preliminar que recorre todo el vector en elque se encuantra almacenada la lista, acumulandolos valores nS de todos los nodos, ya que se puededemostrar que el índice del nodo cabecera viene dadopor 1 2n(n − 1) − Z, donde Z es la suma de todos losvalores de los sucesores nS de la lista [2]. Es importantedestacar que este primer recorrido del vectorpuede hacerse con localidad espacial, sin necesidadde recorrer en orden los elementos de la lista.Algorithm 1 Algoritmo de list ranking de Helmany Jáján1: Distribuir la lista de entrada enlog nbloques{Bi}, cada uno con O(log n) nodos seleccionandonlog n − 1 divisores.2: Calcular (en paralelo) el rango de cada uno de losnodos dentro de su bloque (rango local) medianteun algoritmo secuencial óptimo.3: Combinar los rangos locales con un algoritmoparalelo con complejidad O(log n).(2)NULLFig. 1. El problema del list ranking para una lista cuyoselementos están almacenados de forma ordenada en posicionesconsecutivas de memoria (1) y para el caso generalen el que los nodos se encuentran en posiciones arbitrariasde la misma (2)Existen múltiples variantes del problema enfunción del los tipos de datos utilizados. La instanciahabitual que suele estudiarse en la mayoría delos trabajos asume que la lista L esta representadamediante un vector de nodos de tamaño n cuyos elementoscontienen al menos los siguientes campos:struct node{index nS ;index R;} ;siendo nS el índice del nodo sucesor en el vector Ly R el rango del nodo. Inicialmente puede asumirseque el rango de todos los elementos es el mismo exceptopara el último nodo, que puede contener unvalor especial (por ejemplo R = 0 para el primernodo y R = 1 para el resto). Puede asumirse tambiénque para distinguir el final de la lista, el sucesor delúltimo nodo toma el valor nS = -n, mientras que parael resto nS es ≥ 0. Por simplicidad y para facilitarcomparaciones con trabajos previos y futuros, estaes también la instancia del problema de list rankingque hemos estudiado.En [2] se demuestra que en términos de complejidad,el algoritmo es “eficiente”: el número de operacionesque son necesarias para resolver el problemaes, por encima de una constante, el mismo que enel algoritmo secuencial y además el tiempo paraleloesperado viene dado por O( Tseqp), siendo Tseq eltiempo secuencial.En multiprocesadores de memoria compartida,el número de divisores suele ser considerablementemayor que el número de hilos de ejecucióndisponibles p y la opción habitual de implementaciónse muestra en el Algoritmo 2.El algoritmo de list ranking de Helman y JájáFig. 2.Algoritmo de list ranking de Helman y JájáJP2011-52


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algorithm 2 Implementación estándar del algoritmode Helman y Jájá en multiprocesadores dememoria compartida1: Recorrer el vector en el que se almacena la listapara acumular en Z los valores de nS y conocer elnodo cabecera según la expresión 1 2n(n − 1) − Z.2: Distribuir la lista en nlog n sublistas S i escogiendolos correspondientes divisores3: En paralelo y mientras haya sublistas sin procesador,cada uno de los hilos p i disponibles recorrede forma secuencial (e independientemente de losotros hilos), los elementos de la sublista S j paracalcular sus rangos locales (los rangos respectoa la cabecera de la sublista). Provisionalmente,dichos rangos locales se almacenan en los camposL[i].R.4: Calcular de forma secuencial el prefijo de cadauna de las sublistas. El prefijo de cada sublista esel tamaño acumulado de las sublistas anteriores,siendo cero para la sublista que incluye al nodocabecera global de la lista.5: En paralelo y mientras haya sublistas sin procesador,cada uno de los hilos p i disponibles recorrede forma secuencial e independientemente de losotros hilos, los elementos de una sublista S j ,añadiendo el correspondiente prefijo S j .pref alos rangos locales, almacenándose el rango finalen L[i].R.III. Entorno ExperimentalLas características de la máquina que hemos utilizadopara llevar a cabo nuestros experimentos asícomo el compilador y las opciones de optimizaciónutilizadas vienen descritos en la tabla I. Para estudiarel comportamiento de las diferentes implementacionesse utilizó la herramienta oprofile, con la quees posible monitorizar los distintos contadores hardwaredel procesador, y en particular los fallos decache de último nivel.Xeon X5670 2 chips (2,93 GHz)Procesadorx 6 coresL1 Cache (per Core) 32KBL2 Unified Cache 256KBL3 Unified Cache 12MBMemoria 48 GB, 32 GB/s, 3xDDR3-1333Sistema Operativo GNU/Linux 2.6.32-5-amd64Compilador -O3 -openmp -std=c++0xIntel icc 11.0Intel TBB Version 3.0ProfilingoprofileAfinidadsched getaffinityTABLA IInformación del entorno experimentalIntel (TBB) [11] es una librería desarrollada porIntel que ofrece la posibilidad de expresar paralelismoen programas C++ a programadores con poca experienciaen la programación con hilos. El objetivo esmejorar la productividad de los programadores medianteun modelo en el que el paralelismo puede expresarseen alto nivel mediante la definición de tareasque permiten abstraer los detalles de la plataformaen la que trabajamos. La responsabilidad de asignartareas a hilos de ejecución es transparente al programadory reside en la librería. Adicionalmente soportaparalelismo anidado, permite construir componentesparalelos a partir de otros componentes.La arquitectura Westmere del procesador XeonX5670 soporta multithreading simultaneo (hyperthreading).En los experimentos hasta 12 hiloshemos fijado los hilos a cores diferentes y por lotanto no se aprovecha esta capacidad. No obstante,para evaluar los beneficios que reporta, se han hechoexperimentos con 24 hilos en los que se aprovechatoda la capacidad de la plataforma. Para controlarla afininidad hemos usado la llamada al sistemasched getaffinity.IV. Mejorando la localidad en elalgoritmo de Helman y JájáEn esta sección describimos las dos estrategias quemejores resultados nos han dado para aumentar lalocalidad del algoritmo de Helman y Jájá. Ambasestrategias tratan de minimizar los accesos a posicionesde memoria no adyacentes, ya que éste es elproblema más serio (en términos de rendimiento) quepresenta este algoritmo. De hecho, los propios autoresen [2], presentan un modelo de memoria quetiene en cuenta el coste de acceder a posiciones noconsecutivas en memoria con el que derivan los tiemposde ejecución esperados.1. SLIndex: Durante el proceso de cálculo de losrangos locales (etapa 2 del Algoritmo 2), paracada nodo de la lista se registra en un arrayauxiliar (sLindex) el índice de la sublista en laque esta incluido. Guardando esta información,es posible transformar la etapa 4 del Algoritmo 2para que los accesos a la lista sean con localidadespacial. En este caso, cada hilo pi, en lugar derecorrer varias sublistas, actualiza el rango delos nodos consecutivos con índice global [ib, (i+ 1)b) con:L [ i ] . R += S [ sLindex [ i ] ] . pR ;Con esta transformación se puede acceder deforma consecutiva a la lista L. Además, el arrayS en el que se guarda la información de lasdiferentes sublistas estará almacenado en lacache con gran probabilidad ya que inclusopara listas grandes, el número de sublistas esrelativamente pequeño. Como contrapartida,esta implementación requiere un vector adicional(sLindex) para almacenar los ids de lassublistas y se aumentan los accesos totales.2. Rango acumulado: Actualizar provisionalmenteel rango local en la etapa 2 del Algoritmo2 implica n escrituras no consecutivas en L[i].R.En la etapa 4, este valor vuelve a actualizarse.Las escrituras de la etapa 2 puede eliminarse delsiguiente modo:JP2011-53


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011(a) Etapa 2: para cada sublista, el hilo correspondienterecorre sus nodos y devuelveúnicamente el último rango local acumulado,sin salvar en L[i].R el valor local de cadauno de sus nodos.(b) Etapa 3: sin cambios. Los prefijos de cadasublista se almacenan en sL[j].pR(c) Etapa 4: en lugar de actualizar los rangosprovisionales, se calcula directamente el rangosglobal de cada uno de los nodos a partirdel rango del nodo predecesor en la correspondientesublista según:L[i].R = sL[j].pR + L[pred(i)].R + 1De esta manera, eliminamos la necesidad de realizarlas n escrituras no contiguas en la segundaetapa y las n lecturas no contiguas en la cuartaetapa.V. ResultadosA. Impacto de la localidadEn primer lugar hemos evaluado cual es el impactode la localidad en el rendimiento final. En la Figura3 ilustramos como varía el tiempo de ejecución en laversión secuencial del algoritmo (un único recorridode la lista siguiendo los índices de los nodos sucesores)en función de como están emplazados los nodosde lista en memoria. Cuando los nodos adyacentesestán almacenados en posiciones consecutivas (listasordenadas), el tiempo de ejecución es un orden demagnitud inferior que cuando los nodos están localizadosen posiciones arbitrarias (listas aleatorias).Fig. 4.Fallos de L3 (miles) con listas ordenadas y aleatoriascon OpenMP para distintos tamaños de lista y denúmero de hilos (THS):Fig. 5. Variación del tiempo de ejecución con el número dedivisores para listas de 1 millón de nodos usando OpenMPFig. 3. Tiempos de ejecución del algoritmo secuencial paralistas ordenadas y aleatoriasLos resultados de la Figura 4 ponen de manifiestola causa de esta variación. El número de fallos decache de último nivel es muy inferior para listas ordenadas.Actualizar GraficaB. Elección del número de divisoresUn aspecto importante del algoritmo de Helman yJájá es la elección del número de sublistas necesariaspara alcanzar los tiempos de ejecución óptimos. Losautores postularon que el tamaño de sublista óptimonlog nes del orden de , siendo n el tamaño de la listaglobal. En las Figuras 5 y 6 exploramos la variacióndel tiempo de ejecución con el número de divisorespara la implementación estándar (los resultadosson similares para las otras versiones) del algoritmoFig. 6. Variación del tiempo de ejecución con el númerode divisores para listas de 64 millones de nodos usandoOpenMPCon Intel TBB el comportamiento es similar (Figuras7 y 8).En definitiva, los resultados obtenidos validan laestimación de Helman y Jájá. No obstante, el rangode valores óptimos es bastante amplio pudiendo trabajarcon una cantidad de posibles divisores válidosmucho mayor. Los resultados que mostramos enel resto del artículo corresponden siempre a valoresobtenidos con número de divisores óptimos.C. Ganancias de la implementación estándarLas Figuras 9 y 10 muestran las ganancias respectoal algoritmo secuencial que se obtienen con la implementaciónestándar del algoritmo de Helman yJájá utilizando OpenMP y la librería Intel TBB res-JP2011-54


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 7. Variación del tiempo de ejecución con el número dedivisores para listas de 1 millón de nodos usando IntelTBBFig. 9. Ganancias de la implementación estándar del algoritmode Helman y Jájá con listas aleatorias utilizandoOpenMPFig. 8. Variación del tiempo de ejecución con el número dedivisores para listas de 64 millones de nodos usando IntelTBBpectivamente. La paralelización con OpenMP establecedos zonas paralelas con #pragma omp parallelfor, una para la etapa de cálculo de los rangoslocales y otra para la fase final de cálculo delos rangos globales. En función del número de divisoresque se hayan seleccionado, las correspondientessublistas se distribuyen entre los hilos disponiblesdinámicamente. Se han explorado varias alternativas,pero en la Figura 9 sólo se indica los resultadosobtenidos utilizando la mejor granularidad (sedistribuyen sublistas individuales). En la versiónIntelTBB la manera de expresar el paralelismo essimilar con la primitiva parallel for(), aunque la notaciónes diferente ya que se utilizan expresionesLambda [12] que mejoran la expresividad. Al igualque OpenMP puede fijarse una granularidad para ladistribución, obteniéndose también los mejores resultadosdistribuyendo sublistas individuales.Con OpenMP las ganancias son razonables.Usando hyperthreading se consiguen ciertos beneficiosadicionales – comparando los tiempos de ejecuciónutilizando 12 y 24 hilos, las mejoras oscilanentre un 11% y un 14% –, aunque inferiores a losvalores reportados en otras aplicaciones en este tipode arquitectura. Es evidente que la competencia entrehilos dentro de un mismo core puede degradarel rendimiento al ejercerse una fuerte presión en lajerarquía de memoria.Con Intel TBB sin embargo, los resultados sonfrancamente malos y en el mejor de los casos solopodemos aproximarnos al tiempo secuencial.Fig. 10. Ganancias de la implementación estándar del algoritmode Helman y Jájá con listas aleatorias utilizando lalibrería Intel TBBD. Ganancias de la implementaciones SLIndex yRango AcumuladoLas Figuras 11 y 12 muestran las ganancias que seobtienen con las implementaciones SLIndex y RangoAcumulado utilizando OpenMP. La versión SLIndexes la que consigue mejores resultados y para listasgrandes supera a la implementación estándar entreun 20% y un 40%. Ambas versiones se beneficiandel hyperthreading, aunque el beneficio porcentual esmayor con Rango Acumulado.Utilizando la librería Intel TBB, los resultados sonequivalentes, es decir SLIndex es también la mejoropción. Pero además, como se muestra en la Figura13), las ganancias si son ahora más razonables y sepuede superar al algoritmo secuencial. No obstante,siguen siendo mejores los resultados con OpenMP.Fig. 11. Ganancias de la implementación SLIndex del algoritmode Helman y Jájá con listas aleatorias utilizandoOpenMPJP2011-55


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011de accesos a memoria y existen compromisos que esinteresante analizar. También pretendemos extenderel estudio a sistemas de mayor escala y analizar losposibles beneficios que podrían conseguirse en sistemasheterogéneos.AgradecimientosEl presente trabajo ha sido financiado por losproyectos TIN2008-00508 e Ingenio 2010 ConsoliderESP00C-07-20811.Fig. 12. Ganancias de la implementación Rango acumuladodel algoritmo de Helman y Jájá con listas aleatorias utilizandoOpenMPFig. 13.SpeedUps para listas desordenadas usando TBBVI. ConclusionesEn este trabajo hemos explorado distintas optimizacionesque permiten mejorar el rendimiento delalgoritmo de Helman y Jájá en sistemas multicore.De las distintas alternativas analizadas los mejoresresultados se han obtenido con la versión que denominamosSLIndex. Con esta versión se consiguenreducir los accesos no consecutivos a memoria en laetapa final del algoritmo, a cambio de añadir un vectoradicional y las correspondientes escrituras y lecturasadicionales a dicho vector. Se ha comprobadoque la elección del número de divisores es fundamentalpara conseguir tiempos de ejecución óptimos yque las estimaciones de Helman y Jájá son validas,aunque el rango de divisores óptimo es bastante másamplio. Los mejores resultados se han obtenido siempreutilizando OpenMP. De hecho, el rendimientode la implementación directa del algoritmo con IntelTBB es especialmente pobre y no consigue batir nia la implementación secuencial. Con las optimizacionespropuestas si se ha conseguido que las versionescon Intel TBB obtengan unos resultados razonables.Habilitando hyperthreading se consiguenbeneficios adicionales (entre un 10% y un 20%), perobastante inferiores a los que se consiguen en otrasaplicaciones.Como trabajo futuro pretendemos analizar cual esla mejor opción teniendo en cuenta los compromisosconsumo/rendimiento. Intuitivamente, reducir eltiempo de ejecución lleva asociado una reducción delconsumo debido al componente estático del mismo,pero las diferentes alternativas varían en el númeroReferencias[1] M. Suhail Rehman, Kishore Kothapalli, and P. J.Narayanan, “Fast and scalable list ranking on the GPU,”in ICS ’09: Proceedings of the 23rd international conferenceon Supercomputing, New York, NY, USA, 2009, pp.235–243, ACM.[2] David R. Helman and Joseph JáJá, “Designing practicalefficient algorithms for symmetric multiprocessors,” inSelected papers from the International Workshop on AlgorithmEngineering and Experimentation, London, UK,1999, ALENEX ’99, pp. 37–56, Springer-Verlag.[3] Margaret Reid-Miller, “List ranking and list scan on thecray c-90,” in Proceedings of the sixth annual ACM symposiumon Parallel algorithms and architectures, NewYork, NY, USA, 1994, SPAA ’94, pp. 104–113, ACM.[4] David A. Bader, Sukanya Sreshta, and Nina R. Weisse-Bernstein, “Evaluating arithmetic expressions using treecontraction: A fast and scalable parallel implementationfor symmetric multiprocessors (smps) (extended abstract),”in Proceedings of the 9th International Conferenceon High Performance Computing, London, UK,UK, 2002, HiPC ’02, pp. 63–78, Springer-Verlag.[5] Isabelle Guérin Lassous and Jens Gustedt, “Portable listranking: an experimental study,” J. Exp. Algorithmics,vol. 7, pp. 7–, December 2002.[6] David A. Bader and Guojing Cong, “A fast, parallelspanning tree algorithm for symmetric multiprocessors(smps),” J. Parallel Distrib. Comput., vol. 65, pp. 994–1006, September 2005.[7] David A. Bader, Guojing Cong, and John Feo, “Onthe architectural requirements for efficient execution ofgraph algorithms,” in Proceedings of the 2005 InternationalConference on Parallel Processing, Washington,DC, USA, 2005, pp. 547–556, IEEE Computer Society.[8] David A. Bader, Guojing Cong, and John Feo, “Onthe architectural requirements for efficient execution ofgraph algorithms,” in Proceedings of the 2005 InternationalConference on Parallel Processing, Washington,DC, USA, 2005, pp. 547–556, IEEE Computer Society.[9] Robert D. Blumofe, Christopher F. Joerg, Bradley C.Kuszmaul, Charles E. Leiserson, Keith H. Randall, andYuli Zhou, “Cilk: An efficient multithreaded runtimesystem,” in Journal Of Parallel And Distributed Computing,1995, pp. 207–216.[10] Richard J. Anderson and Gary L. Miller, “A simple randomizedparallel algorithm for list-ranking,” InformationProcessing Letters, vol. 33, no. 5, pp. 269–273, January1990.[11] James Reinders, Intel threading building blocks; outfittingC++ for multi-core processor parallelism, O’ReillyMedia, July 2007.[12] James Reinders, “Parallel for is easier with lambdas,”Disponible online en software.intel.com/enus/blogs/author/james-reinders/,August 2009.JP2011-56


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Parallelizing Biblio-MetReS, a data mining toolOussama Abdelli 1 , Anabel Usié 1,2 , Hiren Karathia 2 , Jordi Vilaplana 1 , Francesc Solsona 1 and Rui Alves 2Abstract—Biblio-MetReS is a single-thread data miningapplication that facilitates the reconstruction ofbiomolecular networks based on automated text miningand analysis of published scientific literature. Thisapplication is very CPU-intensive and, due to the amountof execution tasks, it can be quite slow. Those tasks arerepetitive, and consist in mining the information fromlarge sets of scientific documents, a situation where thetime performance of the application could be improvedthrough paralellization. This paper presents an applicationthat paralelizes Biblio-MetReS. The multithreadingapplication P(aralell)-Biblio-MetReS, splits the workamong copies of the same Java class, each mining acollection of documents obtained in a previous searchphase from different literature sources of Internet.Through this article, we bring to light the performance andscalability topics of multithreaded Java applications onmulti-threading systems in the context of this application.Experimental results corroborate the good performance ofP-Biblio-MetReS, pinpointing specific aspects that stillneed to be improved.Index terms—Multithreading, Scalability, parallelization,pathway reconstruction, data mining.RI. INTRODUCTIONeconstructing molecular networks that areresponsible for regulating biological processes is afundamental task in molecular biology [11]. In recentyears many alternative methods have been proposed toachieve such a reconstruction [1, 2]. One type of methodrelies on the automated analysis of published scientificliterature that is available in public databases over theInternet to identify genes and proteins that co-occur inthe same document(s) [3-10].Given the large number of available documents(included in web pages, databases, journals, etc), it isimpossible for one person to mine all the availableinformation in order to reconstruct networks and circuitsof interest. This justifies the need for a tool such asBiblio-MetReS [14], a data mining application forreconstructing gene/protein networks.Biblio-MetReS is a user-friendly tool implemented inJava, which does on-the-fly analyses of full textscientific documents that are freely available on theInternet, and uses that analysis for automatedreconstruction of literature gene/protein networks. Indoing so, it identifies if genes co-occur in sentences,paragraphs and/or documents. Results showing theobtained networks are depicted in both, graphical andtabular form.1 Dept. d’Informàtica i Enginyeria Industrial, Av. Jaume II 32, 25001Lleida, Universitat de Lleida (UdL), Spain. e-mails:{abdelli.oussama3@gmail.com, jvilaplana@alumnes.udl.cat,francesc@diei.udl.cat}2 Dept de Ciències Mediques Bàsiques & Institut de RecercaBiomèdica de Lleida (IRBLleida), Montserrat Roig 2, 25008 Lleida,Universitat de Lleida (UdL), Spain. e-mails: {ausie@diei.udl.cat,hiren@cmb.udl.cat, ralves@cmb.udl.cat}The on-the-fly feature of Biblio-MetReS permits theaccess to a wide range of documents that is always up todate. This is an advantage with respect to other wellknown data mining tools (iHOP [3], STRING[4,5] andLaitor [6]), which only have access to pre-processed listsof documents, saved in a precompiled database. Themain drawback of Biblio-MetReS is the elevatedexecution time of a reconstruction in Biblio-MetReSwhen compared to applications that pre-process thedocuments.There are two strategies to improve this executiontime. First, one can combine on-the-fly analysis of newdocuments with pre-processed analysis of documentsthat have already been previously mined. This is astrategy that is already being pursued. Second, and dueto the nature of the processes in Biblio-MetReS, it islikely that parallelization of the application willsignificantly improve the on-the-fly processing time.Thus, the main goal of this work is to start theimplementation of the second strategy and reduce theserial execution time of network reconstruction inBiblio-MetReS.Parallel computing is a form of computation in whichmany calculations are carried out simultaneously,operating on the principle that large problems can oftenbe divided into smaller ones, which are then solvedconcurrently ("in parallel"). Parallelism has beenemployed for many years in computer programs, mainlyin high-performance computing. Interest in this strategyhas grown lately due to many factors, such as theincreasing number of multiprocessing computers, theemergence of cloud computing, and the physicalconstraints preventing frequency scaling of serialcomputations.Parallel computer programs are more difficult to writethan sequential ones, because concurrency introducesseveral new classes of potential software bugs, of whichrace conditions are the most common. Communicationand synchronization between the different subtasks aretypically one of the greatest obstacles to getting goodparallel program performance.There are no conceptual differences between a Javaprogram running on a machine with one processor andthe same program running in a machine with two ormore processors; the threads behave exactly the same inboth cases. However, the key difference between singleprocessorand multiprocessor systems is that the first canonly run one thread at a time while the latter cansimultaneously run multiple threads. A workstation canhave multiple, multicore, processors. In this case,several threads can simultaneously be distributed amongthe many processors, and, within each processor, amongthe different cores, that can also be multithreading. Forexample a bi-processor machine with four two-threadingcores can execute an amount of 16 threads in parallel.From now on, we simply refer the multithreadingmachines, without distinguishing what type ofmultithreading that machine can do.JP2011-57


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011There are several different forms of parallelcomputing: bit-level, instruction level, data, andfunctional parallelism. In this work, we mainly exploreddata parallelism.As power consumption (and consequently heatgeneration) by computers has become a concern inrecent years, parallel computing has become thedominant paradigm in computer architecture, mainly inthe form of cluster, grid and multi-core processors. Inthis work we explore the latest, also calledmultiprocessor systems.Our challenge is to profit as much as possible thefeatures of multithreading computers in the execution ofP-Biblio-MetReS, the parallel version of Biblio-MetReS. P-Biblo-MetReS follows a data parallelphilosophy, that is, multiple copies of the same functionprocesses different input data.This paper presents the first results of thisparallelization. Section II introduces the Biblio-MetReSmode of operation and its main features. Section III andIV explains the design and implementation decisions ofP-Biblio-MetReS respectively. A comparison of thecomputational aspects of P-Biblio-MetReS with respectto its serial version is presented and analyzed in sectionV. Finally, section VI presents the conclusions of theanalysis, and section VII discusses future work.Fig. 1. Flowchart of Biblo-MetReS.II. BIBLIO-METRESBiblio-MetReS was implemented in JAVA. Itsworkings are explained in the following (see Fig. 1).First of all, users must register to login into Biblio-MetReS (Fig. 1.1). Next (Fig. 1.2), users must choose anorganism to work with. The application loads all genesfrom this organism that are present in the centraldatabase that contains lists of all annotated genes oforganisms with fully sequenced genomes. The databaseof gene names was built by matching the KEGG [12]gene names to their NCBI [13] names and synonyms.Once the loading is finished, the user is presented withthe main window (see Fig. 1.3), where s/he has to selectthe data sources as well as the genes to be analyzed. Thedata sources are (see Fig. 1 for a detailed list): GeneralEngines (Yahoo, Live Search, Altavista, etc.), LiteratureDatabase (Medline, Pubmed, Biomed Central, etc.) andJournals (Nature, Science, etc.).Once the choices are made and the search is started,the tool identifies and downloads the documents thatcontain the gene names and its synonyms from theselected data sources.Then, Biblio-MetReS parses each document, andanalyses the co-occurrence of genes by identifying theoccurrence in the text of genes that are present in thedatabase. The parsing results are represented as twographs. One of the graphs presents the co-occurrence ofgenes in sentences (Fig. 1.4A) and the other representsthe co-occurrence of genes in paragraphs and documentsJP2011-58


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011(Fig. 1.4B). Biblio-MetReS implements parsers forHTM, PDF and ASCII documents.Each node or vertex in the graphs is a gene/proteinand each edge refers to an instance of co-occurrencebetween different genes in sentences, paragraphs, ordocuments. The thickness of the edge is proportional tothe mutual information between two genes and the colorof the edge is proportional to a p-value that measureshow much more enriched is the co-occurrence betweentwo genes in sentences or paragraphs with respect todocuments. See [14] for more details.The whole process described above is done on the fly.The serial time in executing all the Biblio-MetReSprocesses can be very high, and it would strongly benefitfrom parallelization.III. P-BIBLIO-METRESIn this section we describe the main decisions taken inthe design of the parallel version of Biblio-MetReS, P-Biblio-MetReS.As was pointed out in the Introduction, there areseveral forms of parallel computing: bit-level,instruction level, data, and functional parallelism.Biblio-MetReS is written in a high-level language, Java.Parallelization in the bit or instruction level will bealmost impossible. Instead, parallelism was performedin an upper level, at the Java code.As P-Bilbio-MetReS is designed to be executed on amultithreading machine, the following aspects must betaken into account:• We cannot assume that any running thread has thehighest priority. A higher-priority thread may berunning on a different processor.• We cannot assume that a low-priority thread willnot run. There may be enough processors to give ita chance at execution.• We cannot assume that threads of differentpriorities will not be running at the same time.• We cannot assume that a given race conditions canbe ignored, just because it is unlikely to occur. Raceconditions in a multiprocessor system present a realproblem, whereas race conditions in a singleprocessorsystem are more dependent on thescheduling engine of the Java virtual machine.Taking these issues into account, the key question ofthe parallelization problem at hand is a) theidentification of the Java code to be executed in paralleland b) implementing this code in one class (or object)that can be run in multiple threads. Multiple threads arecreated, one for each copy of the object, and then theyare executed in parallel. As all the threads are executedin the same machine, our parallel implementationrequires defining an optimal multithreading policy.Without redesigning a program, the parts of the codewhose execution is most likely to benefit fromparallelization are those where the application is CPUbound - that is, the sets of instructions where theprogram is mainly using processing cycles, and at thesame time E/S resources (network and secondarystorage) are idle -.We discard the parallelization of E/S parts of codebecause Biblio-MetReS does not deal with an amount ofinformation that makes it necessary to increase the speedof access to the secondary storage. If we would want toincrease the network bandwidth, P-Biblio-MetReS couldalso be simultaneously executed in different machines,each with an individual IP. Distributed environments(for example Grid, Volunteer, Cloud or P2P computing)could be considered for such an execution.Thus, first and foremost, we are interested indetermining the CPU bound objects in Biblio-MetReS.By taking into account the class architecture of Biblio-MetReS (see Fig. 2), we identified the objects where a)documents are obtained from different data sources, andb) the parsing of those documents is made as thosewhere the application is CPU-bounded. These objectsare thus the natural candidates to be executedconcurrently in multiple threads.Fig. 2. Class diagram representing relationships betweenclasses used in the parallelization.Second, we must also consider that there is no reasonto execute the serial program ‘Biblio-MetReS’ CPUboundobjects in parallel if, during its run, the programdoes not use 100% of the available single physicalthreads. We should control for this possibility whenchoosing a parallelization policy to execute P-Biblio-MetReS.Third, we are interested in getting the appropriatenumber of threads to be created and executed in parallel,so that an optimal run time is obtained. More precisely,we are interested in understanding the relationshipbetween the available processing power (the number ofhardware threads) and the number of logical threads wecan create at once in order to identify the ratio R optimalbetween the two quantities that optimizes execution timeof the program. Identifying this ratio will allow us tocreate an application that scales well.Because there is, to our knowledge, no systematicmethod to identify R optimal , we test three heuristicpolicies to determine which of these gives the bestperformance:1. The first method (S1) consists in creating a threadfor every search engine. Each thread handles thelinks returned by the search engine. Then, it parsesthe returned documents. The various threads areJP2011-59


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011properly synchronized. Once all the results havebeen collected and processed, information about theco-occurrence of genes is obtained, as well as thecreation of graphs that illustrate the variousrelations between them.2. In the second method (S2), each thread that iscreated parses a number of documents given by theratio between the total number of documents andthe number of physical threads.3. In the third method (S3), the parsing of documentsis divided into synchronized subphases. In eachsubphase, P-Biblio-MeteS creates as many localthreads as physical threads in the system. Eachthread is assigned with one document to beprocessed. This process continues until the overalldocuments are processed.In our case, P-Biblio-MetReS scaling depends onmany factors: the operating system, the Java virtualmachine implementation, the application server, the Javaengine of the virtual machine and the Java applicationitself. We will analyse this in depth in the next section.The procedure for creating threads based on theRunnable interface is as follows:• The RunnableDistributer class implements therunnable interface, providing the run() methodthat will be executed by the thread. This methodcontains the main task that we are executing. Inour case the run method launches the procedure ofparsing documents and returns the results of theanalysis.• We create an object of the Thread class by passingan instance of the class RunnableDistributer asargument to the Thread constructor. The Threadobject now has a Runnable object that implementsthe run() method.• To begin the execution of the thread, we call themethod start(). This method allows the JavaVirtual Machine to call the run method of thethread.V. EXPERIMENTAL RESULTSIV. IMPLEMENTATIONIn this section, the methodologies used inimplementing P-BiblioMetReS are described.P-Biblio-MetReS is implemented in Java. Every threadin Java is created and controlled by the java.lang.Threadclass. A Java program can have many threads, and thesethreads can run concurrently, either synchronously orasynchronously.There are two ways to create threads in java. One is byimplementing the Runnable interface provided by thepackage java.lang.Runnable. The other is by Extendingthe Thread class defined in java.lang.Thread. (seefugure 3)Fig. 3. Classes and methods in the creation of a thread.We implemented the interface java.lang.Runnablebecause it allows for multiple inheritance. This enablessimultaneous creation of threads and facilitates theirmanagement.The experiments have been carried out on a serverwith eight cores and 16GB of Memory (machine 8c), alaptop with a CPU Intel i7 with 4 cores (machine 4c)and 6GB of Memory, and finally a laptop with 2 coresand 4GB of Memory (machine 2c). Windows 7 x64 isused as an OS. In order to avoid miscellaneous influenceskewing the results, the single user mode of OS is used.We have chosen the organism Saccharomyces cerevisiae(budding yeast) to perform our experiments. Theseexperiments consist in reconstructing the network ofgenes that co-occur with the genes FBA1, PGM1,CDC19, which are involved in glycolysis.Concerning the first series of experiments (1), Fig. 4shows the run time of the serial execution of Biblio-MetReS, when executed in just a single threaded mannerin a single core laptop with 2GB of Memory. Fig. 5shows the comparable results for running theparallelized P-Biblio-MetReS, following strategy S1 andcreating a thread for every search engine. This run usedthe 2c machine. A comparison of the two figures showsthat the parallel version obtains moderate gains. This islikely to be due to the fact that each search enginereturns a different number of documents, which areanalyzed in serial manner within that search engines’dedicated thread. Thus, the search engine with theslowest processing time would dominate run time andcause run-time differences between the serial andparallel versions of the program to be smaller than theycould. Nevertheless, further analysis is required to betterunderstand these results.The second series of experiments implement P-Biblio-MetReS using the two remaining strategies describedabove (S2 and S3). Results are shown in Figs 6, 7, and8.One immediate inference that can be drawn is that theoptimal runtime depends on the number of threads anddocuments, independently on the Internet sources used.Above an amount of documents to be parsed, beyond theJP2011-60


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Main Memory limit, the performance decreased in allthe situations (by varying the Internet sources).Fig. 4. Time of execution in single threaded.Fig. 7. Execution times for Biomed Central,Cell and Systems Biology.Fig 5. Time of execution in multi-threaded.The key objective is the finding for the optimalnumber of threads that returns as many documents aspossible that fits in Main Memory. It can be seen in theexperiments as there is an optimal range for the numberof threads that can be launched. This optimal range wasbetween 8 and 16 threads, with 16 being the number ofthreads that provided the fastest runtime in mostexperiments. However, this range of optimality wasalmost flat and differences in runtime using a number ofthreads between 8 and 16 were small.Fig. 8. Execution times for Lycos, Ask andPubmed.Fig. 9. Comparison of execution times between theserial version and the parallel one.Fig. 6. Times for Medline (Database)In other experiment we compare the results obtained inFig. 8 with 16 threads with those for the serial version ofBiblio-MetReS. The gains in run-time by P-Biblio-MetRes with respect to Biblio-MetReS are significant(Fig. 9).Finally, we analyzed the effect of Memory usage onrun-time by varying the number of search enginesbetween 5 and 20,while using policy S3. The number ofdocuments was very high and increased rapidly with thenumber of search engines. The results are shown in Fig.10. At a given point, the increasing in the number ofsearch engines led to the creation of a number of threadsthat was too high. The application ran into out ofmemory errors and crashed, making it clear that it isnecessary to consider hardware memory specificationsJP2011-61


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011to limit the number of threads that can be created inpolicy S3. Thus, policy S3 must be redesigned.Fig. 10. Execution times incrementing the number ofsearching engines.VI. CONCLUSIONSThe essential objective of this study was to decreasethe run time of the application Biblio-MetReS byparallelizing the parsing and analysis of the documentsby the application. In doing so, we wanted to establish astrategy that would be close to optimal in creating theadequate number of threads for decreasing the run timeof the application. Our preliminary results suggest that astrategy that fairly divides the number of documents tobe analyzed by the number of physical hardware threadsthat are available in the machine is, in most cases, thebest policy.VII. FUTURE WORKWe are now planning the design of new efficientscheduling algorithms to distribute the parser phasebetween cores of one node. Once this is accomplished,we will consider clusters of workstations. In doing so,we want to classify documents according to their types(pdf, text or HTML) and sizes. Then schedulingdecisions will try to balance the load between thethreads assigned to the cores according to such aclassification.Future challenges will go in the direction of alsoparallelize the search phase, which is another step that ishighly amenable to parallelization. We will analyze thebest policy for distributing the bandwidth worldwidebetween nodes located in Internet.ACKNOWLEDGEMENTSThis work was supported by the MEyC-Spain undercontracts BFU2007-62772/BMC, BFU2010-17704,TIN2008-05913 and CSD-2007-00050, by Generalitatde Catalunya, through research groups 2009SGR809 and2009SGR145 and the CUR of DIUE of GENCAT, andby the European Social Fund.REFERENCES1. Alves R, Sorribas A: In silico pathwayreconstruction: Iron-sulfur cluster biogenesis inSaccharomyces cerevisiae. BMC Syst Biol 2007,1:10.2. Markowetz F, Spang R: Inferring cellular networks--a review. BMC Bioinformatics 2007, 8 Suppl 6:S5.3. Hoffmann R, Valencia A: Implementing the iHOPconcept for navigation of biomedical literature.Bioinformatics 2005, 21 Suppl 2:ii252-258.4. Hoffmann R, Valencia A: A gene network fornavigating the literature. Nat Genet 2004,36(7):664.5. von Mering C, Jensen LJ, Kuhn M, Chaffron S,Doerks T, Kruger B, Snel B, Bork P: STRING 7--recent developments in the integration andprediction of protein interactions. Nucleic Acids Res2007, 35(Database issue):D358-362.6. Barbosa-Silva A, Soldatos TG, Magalhaes IL,Pavlopoulos GA, Fontaine JF, Andrade-NavarroMA, Schneider R, Ortega JM: LAITOR--LiteratureAssistant for Identification of Terms co-Occurrences and Relationships. BMCBioinformatics 2010, 11:70.7. Kemper B, Matsuzaki T, Matsuoka Y, Tsuruoka Y,Kitano H, Ananiadou S, Tsujii J: PathText: a textmining integrator for biological pathwayvisualizations. Bioinformatics 2010, 26(12):i374-381.8. Krallinger M, Leitner F, Valencia A: Analysis ofbiological processes and diseases using text miningapproaches. Methods Mol Biol 2010, 593:341-382.9. Krallinger M, Valencia A, Hirschman L: Linkinggenes to literature: text mining, informationextraction, and retrieval applications for biology.Genome Biol 2008, 9 Suppl 2:S8.10. Hahn U, Valencia A: Semantic Mining inBiomedicine (Introduction to the papers selectedfrom the SMBM 2005 Symposium, Hinxton, U.K.,April 2005). Bioinformatics 2006, 22(6):643-644.11. McIntosh T, Curran JR: Challenges forautomatically extracting molecular interactionsfrom full-text articles. BMC Bioinformatics 2009,10:311.12. Aoki KF, Kanehisa M: Using the KEGG databaseresource. Curr Protoc Bioinformatics 2005, Chapter1:Unit 1 12.13. Geer LY, Marchler-Bauer A, Geer RC, Han L, He J,He S, Liu C, Shi W, Bryant SH: The NCBIBioSystems database. Nucleic Acids Res 2010,38(Database issue):D492-496.14. Usié A, Karathia H, Solsona F, Alves R. Biblio-MetReS: A Bibliometric Reconstruction Server.ICMSB 2011.JP2011-62


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Paralelización de una Plataforma para laResolución de Problemas NP-completosMediante Algoritmos EvolutivosJosé M. Lanza-Gutiérrez 1 , Juan A. Gómez-Pulido 1 , Miguel A. Vega-Rodríguez 1 , Juan M. Sánchez 1Resumen— El avance científico en todas sus vertientesprovoca la continua aparición de problemas deoptimización NP-completos, los cuales requieren detécnicas específicas para su resolución. Entre lasmetodologías más habituales se encuentran los algoritmosevolutivos. Dado que la implementación de estos algoritmospuede resultar compleja, han surgido plataformas, comoPISA, que facilitan la resolución de problemas deoptimización suministrando algoritmos evolutivos yaimplementados por la comunidad científica. Laherramienta PISA posee una importante deficiencia, y esque no está preparada para ser ejecutada en un sistemaparalelo, algo muy importante hoy día cuando sedemandan grandes esfuerzos computacionales. En esteartículo se propone una metodología de paralelización dePISA, así como un caso de estudio en el que se ha resueltoun problema multi-objetivo para el diseño de redes decomunicaciones, comprobando las ventajas que aporta.Palabras clave—Algoritmos evolutivos, optimizaciónmultiobjetivo, framework PISA, paralelización, MPI,diseño de redes de comunicaciones.EI. INTRODUCCIÓNn muchas áreas científicas aparecen constantementeproblemas complejos de optimización, en los quehay que estudiar el comportamiento de múltiplesfactores de forma conjunta. La incorporación de unelevado número de incógnitas a un problema provocaque el número de posibles soluciones crezcaexponencialmente con respecto a los datos de entrada.Por este motivo, la ciencia de la computación trata deproporcionar técnicas que permitan la resolución de estetipo de problemas, denominados NP-completos [1].Estas técnicas tratan de evitar recorrer todo el espacio desoluciones posibles (como ocurre con las estrategias debúsqueda tradicionales) con el fin de reducir el tiempotomado en su resolución, obteniendo a cambio unasolución lo más cercana posible a la óptima.Una de las primeras técnicas utilizadas con estepropósito fueron las heurísticas. Las heurísticas secentran en la utilización de algoritmos que proporcionanbuenas soluciones en tiempos de ejecución razonables,para problemas concretos [2]. Estas técnicas no aseguran1 Dep. Tecnología de Computadores y Comunicaciones. EscuelaPolitécnica. Campus Universitario s/n, 10003 Cáceres.{jmlanza,jangomez, mavega,sanperez}@unex.es2 A Platform and Programming Language Independent Interface forSearch Algorithms (PISA), web: http://www.tik.ee.ethz.ch/pisa/.3A Framework for Multi-Objective Optimization (JMetal), web:http://jmetal.sourceforge.net/.que los resultados obtenidos sean realmente cercanos alos óptimos. Muchos autores las han utilizado endiversos campos, como por ejemplo Jan et al. [3](desarrollaron una técnica basada en branch and boundpara optimizar el coste de una red sobre unos valores deconfiabilidad concretos) y Ersoy et al. [4] (usaron unatécnica de optimización sobre el retardo medio para eldiseño de redes LAN y MAN interconectadas).Otra de las técnicas habituales son los algoritmosevolutivos, que resuelven problemas de optimizaciónmediante técnicas basadas en la evolución y selecciónnatural [5]. Estos algoritmos son muy populares porqueaportan, en general, buenos resultados. Pueden dividirseen dos tipos; por un lado, los que tratan de optimizar unúnico objetivo; por otro lado, los que tratan de optimizarmúltiples objetivos de forma simultánea. Por ejemplo, yen el ámbito de las telecomunicaciones, podemosencontrar un caso de optimización evolutiva monoobjetivoen Abuali et al. [6] (minimizaron el coste de lared a la vez que consideraban los valores máximos decapacidad) y de optimización evolutiva multi-objetivoen Barnerjee et al. [7] (estudiaron el diseño de redesbasadas en modelos de trafico habituales, mediante laoptimización del coste y el retardo). Los estudios sobreoptimización multi-objetivo están cobrando últimamentemucho interés dada la naturaleza de muchos problemasde optimización del mundo real.No todo son ventajas en la utilización de los algoritmosevolutivos; la principal dificultad es que suimplementación es a veces compleja, puesto quehabitualmente se centran en complejas teoríasmatemáticas. Esto provoca que su utilización quedehabitualmente relegada a ciertos sectores científicosmuy cualificados (informáticos, matemáticos…).Para facilitar el uso de estas técnicas han surgido unaserie de entornos, plataformas o frameworks, para quepersonas no expertas en programación de algoritmos deoptimización evolutivos puedan abordar la resolución deproblemas de optimización. Entre estas plataformas seencuentran PISA 2 y JMetal 3 . Estas plataformas tratan deseparar, por un lado, la implementación del algoritmo deselección (como el NSGA-II -Non-dominated SortingGenetic Algorithm II- [8] o el SPEA-II -Strength ParetoEvolutionary Algorithm II- [9]); y por otro, la definicióndel problema que se desea resolver. La estrategiaconsiste en que el algoritmo de selección seaimplementado por un experto en el ámbito científico delproblema, mientras que el resto de la aplicación puedeser implementada por cualquier persona conconocimientos básicos de programación.JP2011-63


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011En este artículo se ha optado por trabajar con el entornoPISA, debido al peso que tiene en la comunidadcientífica. Una vez estudiadas las características de estaplataforma, se observo cómo no tiene desarrollada unacompatibilidad con su ejecución en sistemas paralelos.Este fue el motivo para abordar la paralelización de laplataforma, y que mostramos en este artículo, con elobjetivo de aprovechar todo su potencial al poderejecutarse en clústeres de computadores paralelos.Como caso de estudio de la estrategia aquí expuesta, seresolvió un problema de optimización multi-objetivopara el diseño de redes de comunicaciones, utilizandopara ello dos algoritmos evolutivos proporcionados porla comunidad de la plataforma.El resto del artículo se estructura como sigue: en lasegunda sección se proporciona una breve descripciónde la plataforma PISA. En la tercera, la propuesta deparalelización del entorno para su utilización enclústeres de computadores paralelos. En la cuartasección se expone un caso de estudio y, por último,relatamos las conclusiones y trabajos futuros.II. DESCRIPCIÓN DE LA PLATAFORMA PISAEn esta sección proporcionamos una breve descripciónde la plataforma utilizada en este trabajo. Para unadescripción más completa, recomendamos consultar lareferencia [10].Como ya se ha mencionado anteriormente, PISA es unaplataforma diseñada para facilitar la resolución deproblemas de optimización mediante la utilización dealgoritmos evolutivos. La plataforma está compuesta portres elementos principales: el optimizador, el monitor yel evaluador de resultados (figura 1).El optimizador se encarga de resolver un determinadoproblema de optimización multi-objetivo mediante lautilización de técnicas evolutivas. Este elemento sedivide a su vez en dos módulos: por un lado, el módulovariator, que contiene detalles específicos del problemaque se desea resolver (representación de la informaciónen forma de cromosomas, funciones de fitness, estrategiaen mutaciones y cruces…); y por otro lado, eldenominado selector, que contiene un algoritmo deselección (como NSGA-II o SPEA-II), que determinarácómo se seleccionan los individuos en su evolución.Cada uno de estos módulos son aplicacionesindependientes que se comunican mediante archivos detexto. El formato de entrada/salida de cada uno de ellosse detalla perfectamente, lo que permite que todos losmódulos sean interoperables, independientemente dellenguaje de programación utilizado.Esta estrategia modular permite, además de lareusabilidad, facilitar la implementación, pues el usuariotan solo debe centrarse en la realización de, al menos, unalgoritmos. De este modo, al experto en algoritmosevolutivos le interesará implementar un nuevo móduloselector, sobre un problema ya desarrollado en lacomunidad, mientras que el experto en el área científicadel problema (biología, por ejemplo) implementará unnuevo problema mediante su correspondiente módulovariator, para así ejecutarlo contra los algoritmosselectores ya desarrollados.Cada uno de estos módulos tiene asociado un archivo deconfiguración que permite ajustar los parámetrosnecesarios, permitiendo definir múltiplesconfiguraciones para un mismo problema. Por ejemplo,para un módulo variator podría ajustarse la probabilidadde cruce, de mutación, el tamaño de la población, elnúmero de iteraciones, etc.A la hora de resolver un problema de optimización bastacon ejecutar cada uno de estos módulos variator yselector con una configuración asociada. Durante laejecución, el control va pasando de un módulo a otromediante la utilización de los archivos intermedios,dando la impresión de que ambos se ejecutan como sifueran un todo. Los pasos seguidos durante la ejecucióndel optimizador son los siguientes (figura 2):• Paso 1: El módulo variator genera la poblacióninicial y calcula los valores de fitness para cadaindividuo.• Paso 2: El módulo selector selecciona losindividuos candidatos a evolucionar en estaprimera iteración.• Paso 3: El módulo variator toma los individuosanteriormente seleccionados y procede arealizar sobre ellos mutaciones y cruces. Elnúmero de individuos en la población semantiene constante, para lo cual se eliminanaquellos no seleccionados previamente.• Paso 4: Una vez más, el módulo selector realizala selección de individuos, volviendo de nuevoal paso 3. El procedimiento finaliza cuando sellega a la condición de parada, normalmente unnúmero determinado de iteraciones.• Paso 5: Se genera el archivo de resultados conel correspondiente frente de Pareto (gráfico deresultado en las técnicas de optimización multiobjetivo).Se notifica al módulo selector que yase ha obtenido la solución y que por tantopuede finalizar su ejecución.Fig. 1. Elementos que conforman la plataforma PISA.Fig. 2. Diferentes estados por los que pasan los módulos queconforman el optimizador durante su ejecución.JP2011-64


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Otro componente importante de la plataforma es elevaluador de resultados (figura 1). Una vez obtenidoslos resultados experimentales, este módulo permitedeterminar si alguno de los algoritmos de selecciónutilizados ofrece un comportamiento significativamentesuperior al resto. Para ello se utilizan indicadoresestadísticos como el hipervolumen o el épsilon, y testsestadísticos (Wincoxon-Sign, Kruscal-Wallis, etc) [11].Por último, el componente denominado monitor (figura1) ejecuta los módulos selector y variator de formasimultánea, ofreciendo la posibilidad de repetir estaejecución repetidas veces, para dar validez estadística.Se profundizará un poco más en la siguiente sección.Como ya se ha comentado, la utilización de estaplataforma sigue una concepción mono-procesadora,evitando que pueda ser ejecutada en un clúster. Por estarazón decidimos ofrecer una alternativa paralela a estecomponente monitor, desarrollando un componente quepermita repartir el trabajo de optimación por todo elclúster, tal y como se explica a continuación.III. PROPUESTA DE PARALELIZACIÓN DEL ENTORNOEn este apartado se detalla la propuesta de paralelizaciónde la plataforma, consistente en sustituir la aplicaciónmonitor por una que funcione de forma paralela.Como puede observarse en el Algoritmo 1, el monitororiginal trata de resolver un problema de optimizaciónmediante la utilización de diversos algoritmos deselección, ejecutando cada uno de ellos en múltiplesocasiones (siempre con la misma configuración) para asíobtener validez estadística en los resultados. Laconcepción secuencial de PISA provoca que el tiempode cómputo necesario se presuma elevado. Nuestra ideaconsiste en aprovechar la capacidad de cálculo de unclúster para aligerar el tiempo de cómputo necesario,aumentando así la productividad del sistema.La estrategia que abordamos requiere de la utilizaciónde dos tecnologías: una librería de paso de mensajesMPI (Message Passing Interface) [20] para lacomunicación entre los procesos y un protocolo para elacceso a sistemas de archivos remotos de forma seguraSFTP (SSH File Transfer Protocol), para obtener losarchivos de resultados de los distintos nodos del clúster.El nuevo monitor se describe en el Algoritmo 2. Paracada módulo selector que se desee utilizar contra unmismo módulo variator se reparten (mediante MPI)desde el nodo principal todas las repeticiones entre cadauno de los nodos del clúster, permitiendo tantasejecuciones por nodo como cores tenga disponible. Unavez finalizada la ejecución en todos los nodos se recogenlos resultados mediante SFTP y se repite elprocedimiento de nuevo para otro algoritmo selector. Lasalida de este monitor es un archivo con las solucionesconcatenadas, al igual que el del monitor original.La forma en la que se reparten las ejecuciones por elclúster depende principalmente del número derepeticiones que se deseen obtener. En la figura 3 puedeobservarse un ejemplo de un clúster con 5 nodos, cadauno de ellos con 4 cores. Si se desean obtener 40repeticiones, deben utilizarse todos los cores del clústerrealizando cada uno de ellos dos ejecuciones. Si porejemplo se desean obtener 20 repeticiones, se utilizaríande nuevo todos los cores, realizando cada uno de ellosuna ejecución. Si fueran necesarias 10, se utilizarían los5 nodos, pero tan solo 2 cores de cada uno; y asísucesivamente.Algoritmo 1 Pseudocódigo Monitor de PISA1: para i toma valores de {selector1, selector2,…,selectorN} hacer2: para j=0 a MAX_REPETICIONES hacer3: Ejecutar módulo variator para una configuración dada4: Ejecutar módulo selector i para una configuración dada5: Esperar que finalicen los módulos6: Escribir el resultado en el archivo de salida i7: fin para8: fin paraAlgoritmo 2 Pseudocódigo del MONITOR propuesto1: Repartir los datos necesarios por el clúster: módulo variator yselector, archivos de configuración, datos del problema… (SFTP)2: para i toma valores de {selector1, selector2,…,selectorN} hacer3: para j=0 a NUM_NODOS hacer4: para k=0 a NUM_CORES hacer5: para z=0 a MAX_REPETICIONES/(NUM_NODOS*NUM_6: CORES) hacer //Repeticiones por core7: Lanzar módulo variator en nodo j (MPI)8: Lanza módulo selector i en nodo j (MPI)9: finpara10: finpara11: finpara12: para j=0 a NUM_NODOS hacer13: para k=0 a NUM_CORES hacer14: para z=0 a MAX_REPETICIONES/(NUM_NODOS*NUM_15: CORES) hacer //Repeticiones por core16: Esperar señal de finalización del nodo j (MPI)17: Obtener el archivo de resultado del nodo j (SFTP)18: Escribir el resultado en el archivo de salida i19: finpara20: finpara21: finpara22: finparaFig. 3. Ejemplo de una distribución de carga con el monitor propuestoComo cabría esperar, la productividad del sistemaaumenta, pues la ejecución de cada uno de estosprocesos de optimización requiere una gran cantidad deciclos de CPU, a cambio de un pequeño tiempo decomunicación entre las máquinas. Este aspecto se tratarádetenidamente en la siguiente sección, en la que,partiendo de un problema real, se analizarán las ventajasde utilizar esta estrategia.JP2011-65


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Las únicas modificaciones necesarias paracompatibilizar el monitor aquí planteado con losmódulos ya desarrollados son dos: la inclusión de lastípicas directivas de inicialización de MPI para ambosmódulos y el envío del mensaje de finalización hacia elnodo principal desde el estado 4 del módulo variator(ver Figs. 1 y 2), ambas muy sencillas.IV. CASO DE ESTUDIOEn esta sección se detalla un caso de éxito en el que seha resuelto un problema de optimización mediante lapropuesta aquí explicada.El problema resuelto consiste en el diseño de redes decomunicaciones para Internet. Es un problema queinvolucra una gran cantidad de factores; entre los máshabituales suelen encontrarse aquellos que afectan alcoste y a la calidad de red (retardo, confiabilidad, etc)[12]. Ambos factores (coste y calidad) son influyentesentre sí. En definitiva, estamos ante un problema deoptimización NP-completo que requiere de técnicasespecíficas que faciliten su resolución [1].Este problema ha sido abordado mediante diversasmetodologías, como por ejemplo heurísticas [3][4] yacitadas en la introducción. No obstante, estas heurísticasno permiten asegurar que las soluciones obtenidasrealmente sean las óptimas, por lo que surgen otrasalternativas: Usando algoritmos evolutivos monoobjetivo,Abuali et al. [6] y Ko et al. [14] optimizan elcoste de la red a la vez que mantienen valores constantesde retardo. Considerando algoritmos evolutivos multiobjegivo,Barnerjee et al. [7] y R. Kumar et al. [15]optimizan sobre el coste y el retardo usando el PCGA.Son precisamente los algoritmos multi-objetivo los quemejor de adaptan a este tipo de problemas [16].En la comunidad PISA existe una serie de algoritmosevolutivos implementados con sus correspondientesmódulos selectores, como por ejemplo: SPEA-II [9],NSGA-II [8], FEMO (Fair Evolutionary MultiobjetiveOptimizer) [17], IBEA (Indicator Based EvolutionaryAlgorithm) [17], etc. Para resolver este problema dediseño se han utilizado los módulos selectores queimplementan los algoritmos NSGA-II y SPEA-II, ambossobradamente conocidos.Como instancia (conjunto de datos que definen elproblema) de prueba se han utilizado únicamente losdatos procedentes de Ko et al. [14], que reproducen lacomunicación entre las diez ciudades chinas máspobladas, puesto que no se ha encontrado otra instanciasuficientemente detallada.A. Detalles de diseño del problemaEn este problema se optimizan los dos factores másimportantes en el diseño de redes de Internet: el coste deinstalación (no de mantenimiento) de la red y el retardode las comunicaciones [12].Una instancia particular de este problema se definemediante el número de nodos de la red (N), la distanciaentre los nodos (D, una matriz de NxN elementos), eltrafico estimado entre los nodos (T, una matriz de NxNelementos), el número de tipos de nodos disponibles (K,con sus características de coste y capacidad), el númerode tipos de enlaces existentes (M, con sus respectivosvalores de coste y capacidad), el coste de losamplificadores de señal (A) y la máxima distancia que laseñal puede viajar a través de la red sin necesidad deamplificación (L). Estos dos últimos parámetros (A y L)son debidos a que se trata de una red de fibra óptica.Las funciones objetivos son dos. Por un lado, el coste dedespliegue de la red y 1 ,, que es definido en base al costede los nodos, el coste de los amplificadores de señal y elcoste de los enlaces. Y, por otro lado, el retardo y 2 , quese establece en base al modelo de tráfico utilizado; eneste caso se ha decidido utilizar Poisson [18], un modelopara redes convencionales. Nótese que con Co NEi sequiere hacer referencia al coste de un determinado nodollamado i, con Co Linki,j al coste de el enlace entre losnodos i y j, y con Cp Linki,j a la capacidad de el enlaceentre los nodos i y j.Dijy Co(NECo )1Link A1ijii j i j L T _ acuij T_ acuiji j CpLinkijy2CpLinkijAmbas funciones objetivo han sido utilizadas en otrosestudios [7] [15].B. Implementación del módulo variatorPara la implementación del módulo variator que defineel problema aquí planteado, se ha seguido al pie de letrala especificación de la plataforma en [10], para asíasegurar la correcta comunicación del módulo con losselectores ya implementados. Se podría hablardetalladamente sobre la codificación de cada uno de losestados de módulo variator, pero debido al escasoespacio disponible tan solo se hablará de los aspectosbásicos de diseño en algoritmos evolutivos.1) Codificación utilizadaLos individuos han sido codificados en forma decromosomas. Cada uno representa una posibletopología-solución. Este cromosoma de longitud fija sedivide en dos partes, como se observa en la figura 4. Laprimera parte es la responsable de definir el tipo de cadauno de los nodos de la red. La segunda representa losenlaces existentes entre los nodos, donde uno indica laexistencia de un enlace y cero lo contrario.Fig. 4. Cromosoma de longitud fija que representa a los individuos delproblema.ijJP2011-66


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 20112) Generación de la población inicialLa población inicial es generada mediante una mezclade procesos aleatorios y deterministas. En primer lugar,se asigna de forma aleatoria el tipo a cada uno de losnodos. A continuación, se obtiene el árbol mínimo dedistancias entre todos los nodos, utilizando el algoritmode Prim [19]. Finalmente se añaden de forma aleatorianuevos enlaces al árbol generado. Una vez generado elindividuo, se comprueba que sea una topología válida(ver apartado B-3) y que no se encuentre repetido. Si escorrecto se almacena, en caso contrario, se descarta.3) Evaluación de los individuosPara cada individuo, además de obtener los valores desus correspondientes funciones objetivo, se determina siconforma una solución válida. Para ello se comprueba sicumple con las condiciones del problema: biconexidad(la red debe ser confiable, cada nodo accesible al menosdesde dos rutas diferentes), tipos de nodos válidos(podría haber tipos inexistentes producidos pormutaciones) y si la capacidad de cada enlace essuficiente para el tráfico generado en la red (se utiliza lapropuesta de Dijsktra [19] para obtener los requisitos decada enlace debido al tráfico total de red). Si unindividuo no es válido, su coste y retardo tomaránvalores infinitos, desechándose en iteraciones sucesivas.4) Estrategias en cruces y mutacionesLa recombinación se ha realizado atendiendo a que loscromosomas se encuentran divididos en dos partes biendiferenciadas. Se realiza el cruce entre las primeraspartes de los individuos seleccionando el punto de crucede forma que no modifique la codificación de los tiposde nodos. De este modo, la recombinación de dosindividuos dará lugar a un tercero en el que los tipos denodos posibles serán únicamente los de sus padres; encaso contrario generaría una gran cantidad de individuosinválidos. El punto de cruce en la segunda parte se sitúade forma completamente aleatoria. La mutación tambiénse ha realizado teniendo en cuenta esta mismacircunstancia, realizando un número de mutaciones quepuede ir desde 0 hasta el número de bits totales delcromosoma. El punto de cruce de la primera y segundaparte sigue criterios similares a los de la recombinación.C. Resultados experimentalesEn este apartado se exponen los datos obtenidos en laresolución del problema mediante el módulo variatorimplementado y un par de módulos selectores yaexistentes en la comunidad PISA: NSGA-II y SPEA-II.A la hora de ejecutar la plataforma se ha utilizado elmonitor paralelo propuesto en este artículo, realizandouna comparativa con el ya existente.Todos los experimentos han sido realizados en unclúster de procesadores paralelos compuesto por 5nodos, cada uno de ellos con cuatro procesadores Intel®Xeon a 3.0Ghz y 1 de GB memoria RAM.A la hora de realizar la experimentación se ha utilizadouna sencilla estrategia. Primero se determinan lasconfiguraciones con las que se obtienen los mejoresresultados para cada algoritmo. Después, y en base aestos resultados, se estudia si alguno de los dosalgoritmos ofrece un comportamiento superior al otro.Como se ha selñalado anteriormente, el primer paso dela experimentación consiste en ajustar los parámetrosmás habituales para determinar con qué configuración seobtienen los mejores resultados. Estos parámetros son:número de generaciones, tamaño de la población,probabilidad de cruce y probabilidad de mutación. Estametodología es similar a la propuesta por A. Rubio-Largo et al. [13], en la que, partiendo de unaconfiguración por defecto, se van fijando los valores delos parámetros uno a uno en su valor óptimo, hasta quese han ajustado todos.A la hora de establecer el grado de bondad que tienenlos frentes obtenidos para cada configuración, esnecesario utilizar algún tipo de medida. En este caso seha decidido utilizar una medida habitual en este tipo deestudios: el hipervolumen [11]. A mayor valor dehipervolumen, mejor es la solución. A la hora decalcular este valor de evaluación es necesario definir lospuntos de referencia máximo y mínimo. Así, essuficienet contar con los puntos {1.000.000, 0.9} comomáximo y {0, 0} como mínimo, para las tuplas {coste,retardo}, pues envuelven a todos los frentes obtenidos.TABLA ICONFIGURACIONES IDÓNEAS OBTENIDAS PARA CADA UNO DE LOSALGORITMOSAlgoritmos GeneracionesPoblaciónProb.CruceProb.MutaciónHipervolumenNSGA-II 800 250 0.8 0.5 0.975SPEA-II 800 250 0.6 0.5 0.976TABLA IITIEMPOS DE EJECUCIÓN EN LA UTILIZACIÓN DE AMBOS MONITORESPARA UN NÚMERO VARIABLE DE REPETICIONESTiempo de ejecución (s)SPEA-II NSGA-II Repeti Configuración delSec Par Sec Par ciones clúster480 100 690 150 5 5 nodos con 1 core1000 102 1320 152 10 5 nodos con 2 cores1970 105 2437 151 20 5 nodos con 4 cores2960 201 3658 261 30 5 nodos con 3 coresy 2 repeticiones4050 205 4925 263 40 5 nodos con 4 coresy 2 repeticionesFig. 5. Comparativa entre los tiempos obtenidos en la ejecución deambos monitores, para diferente número de repeticiones.Utilizando las configuraciones mostradas en la tabla 1.JP2011-67


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Siguiendo la metodología comentada, podemos afirmarque los algoritmos ofrecen sus mejores resultados conlas configuraciones expuestas en la Tabla 1, obteniendode media unos hipervolúmenes superiores el algoritmoSPEA-II frente al algoritmo NSGA-II.Este procedimiento se ha realizado utilizando ambosmonitores. Como es de esperar, las conclusionesobtenidas han sido las mismas, puesto que los resultadosobtenidos son exactamente iguales. Lo que sí se ha vistoafectado ha sido el tiempo necesario a la hora deejecutar todas estas pruebas, puesto que para cada unade las configuraciones probadas se han realizado un totalde 20 ejecuciones para obtener validez estadística.Para mostrar de forma sencilla la ventaja que aporta elmonitor propuesto con respecto al ya existente, se harealizado un sencillo experimento (Tabla 2): cadaconfiguración mostrada en la Tabla 1 se ejecuta unnúmero variable de ocasiones (Tabla 2: campoRepeticiones) utilizando ambos monitores (Tabla 2: sectiempo utilizando el monitor original y par para elmonitor propuesto). Dependiendo del número derepeticiones será necesario utilizar una determinadaconfiguración del clúster (como ya se comentó en laaanterior sección). Esta configuración del clúster seespecifica en el campo config.Cluster de la Tabla 2.Como puede observarse en la figura 5 los tiemposproporcionados por el monitor propuesto son muchomenores que los ofrecidos por el monitor original. Elaumento del número de repeticiones provoca una crecidalineal de los tiempos del monitor PISA, mientras quecon el propuesto los tiempos sufren un incrementomucho menor. Además, puede observase cómo paradiferente número de repeticiones (5, 10 y 20) lostiempos obtenidos son casi idénticos; esto se debe a querealmente para los dos primeros valores no se estáexprimiendo al máximo el potencial del clúster, mientrasque para el último sí (Tabla 2). Estas pequeñasvariaciones observadas son fruto de las comunicaciones:a mayor volumen de datos más tiempo de comunicación.Situación similar ocurre con 30 y 40 repeticiones.Como se ha demostrado experimentalmente, laalternativa propuesta en este trabajo supone una granventaja con respecto al sistema actualmente utilizado.V. CONCLUSIONES Y TRABAJOS FUTUROSEn este artículo se propone una paralelización de laplataforma PISA para adecuar su utilización a entornosde computación paralela. Se ha demostrado, mediante laresolución de un problema de optimización multiobjetivopara el diseño de redes, cómo esta propuestaaporta grandes ventajas en la productividad obtenida, alejecutar una determinada configuración del problema enmúltiples ocasiones, lo cual es necesario para dotar devalidez estadística a los resultados. Como línea detrabajo futuro pensamos que esta propuesta podría servalidada contra otros problemas de optimización(módulos variator) ya existentes en la comunidadcientífica, de forma que pueda ser finalmente puesta adisposición de los usuarios para que la utilicenlibremente. Además, podría estudiarse también laposibilidad de utilizar OpenMP [21] para paralelizar eltrabajo dentro de cada nodo directamente.VI. AGRADECIMIENTOSEl presente trabajo ha sido parcialmente financiado porel Ministerio de Ciencia e Innovación y el FEDER(Fondo Europeo de Desarrollo Regional), bajo elproyecto TIN2008-06491-C04-04 (proyecto MSTAR), ypor la Junta de Extremadura, a través de la ayudaGR10025 al grupo TIC015.VII. REFERENCIAS[1] B. Dengiz, F. Altiparmak, y A.E. Smith, Local searchgenetic algorithm for optimal design of reliable networks, IEEE Trans.on Evolutionary Computation, vol.1, Sep.1997, pp. 179-188.[2] A. Mucherino y O. Seref, Modeling and Solving Real-LifeGlobal Optimization Problems with Meta-heuristic Methods, inAdvances in Modeling Agricultural Systems, vol. 25, Boston, MA:Springer US, 2009, págs. 1-17.[3] Rong-Hong Jan, Fung-Jen Hwang, , y , Sheng-Tzong Chen,Topological optimization of a communication network subject to areliability constraint, IEEE Trans. on Reliability, 42, 1993, pp. 63-70.[4] Cem Ersoy and Shivendra S. Panwar, Topological design ofinterconnected LAN/MAN networks, IEEE Journal on Selected Areasin Communications, vol. 11, 1993, pág. 1172--1182[5] C. Coello Coello, Evolutionary algorithms for solvingmulti-objective problems, 2nd ed. New York: Springer, 2007.[6] F.N. Abuali, D.A. Schoenefeld, y R.L. Wainwright,Designing telecommunications networks using genetic algorithms andprobabilistic minimum spanning trees, Proc. 1994 ACM symposiumon Applied computing, Phoenix, Arizona, USA: 1994, págs. 242-246.[7] N. Banerjee y R. Kumar, Multiobjective network design forrealistic traffic models, Proceedings of the 9th annual conference onGenetic and evolutionary computation - GECCO ’07, London,England: 2007, pág. 1904.[8] Kalyanmoy Deb, Samir Agrawal y Amrit Pratap y TMeyarivan, A Fast Elitist Non-dominated Sorting Genetic Algorithmfor Multi-objective Optimization: NSGA-II, Parallel Problem Solvingfrom Nature PPSN VI, 2000.[9] E. Zitzler, M. Laumanns y L. Thiele, SPEA2: Improvingthe strength Pareto evolutionary algorithm, EUROGEN 2001.[10] Stefan Bleuler, Marco Laumanns, Lothar Thiele, EckartZitzler, PISA - A Platform and Programming Languaje IndependentInterface for Search Algorithms, Berlin: Springer, Evolutionary Multi-Criterion Optimization, 2003.[11] Carlos M.Fonseca, Joshua D.Knowles, Lothar Thiele andEckart Zitzler, A Tutorial on the Performance Assessment ofStochastic Multiobjetive Optimizer. Guanajuato, Mexico: EMO, 2005[12] Andrew S. Tanenbaum, Computer Networks, Prentice Hall,2003.[13] A. Rubio-Largo, M.A. Vega-Rodriguez, J.A. Gomez-Pulido, y J.M. Sanchez-Perez, A Differential Evolution with ParetoTournaments for solving the Routing and Wavelength Assignmentproblem in WDM networks, IEEE Congress on EvolutionaryComputation, Barcelona, Spain: 2010, págs. 1-8.[14] King-Tim Ko, Kit-Sang Tang y Cheung-Yau Chan y Kim-Fung Man, , y , Sam Kwong, Using genetic algorithms to design meshnetworks, Computer, vol. 30, Ago. 1997, págs. 56-61.[15] R. Kumar, P.P. Parida, y M. Gupta, Topological design ofcommunication networks using multiobjective genetic optimization,Proceedings of the 2002 Congress on Evolutionary Computation.CEC’02 (Cat. No.02TH8600), Honolulu, HI, USA: , págs. 425-430.[16] C. Coello Coello, Evolutionary algorithms for solvingmulti-objective problems, New York: Springer, 2007.[17] Marco Laumanns, Lothar Thiele, Eckart Zitzler, EmoWelzl y Kalyanmoy Deb Asdf, Running Time Analysis of MultiobjectiveEvolutionary Algorithms on a Simple Discrete OptimizationProblem, London, Springer, 2002.[18] Mohsen Guizani, Ammar Rayes, Bilal Khan and Ala Al-Fuqaha.,Network Modeling and Simulation: A Practical Perspective,Wiley-Interscience, 2010.[19] T. Cormen, Introduction to algorithms, Cambridge Mass.:The MIT Press, 2001.[20] W. Gropp, Using MPI: portable parallel programmingwith the message-passing interface, Cambridge Mass.: MIT Press,1999.[21] B. Chapman, Using OpenMP: portable shared memoryparallel programming. Cambridge Mass.: The MIT Press, 2007.JP2011-68


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Comparando Modelos Paralelos Basados enIslas para el Problema del Posicionamiento deAntenas MultiobjetivizadoCoromoto León, Eduardo Segredo y Carlos Segura 1Resumen— El Problema del Posicionamiento de Antenas– Antenna Positioning Problem (app), es un problemade optimización NP-completo enmarcado en elcampo de las telecomunicaciones. El objetivo es identificarlas infraestructuras necesarias para estableceruna red inalámbrica. En este artículo se ha utilizadouna versión mono-objetivo del mismo. El algoritmoque mejor se comporta actualmente para dicha versiónes una estrategia que incorpora información dependientedel problema. Sin embargo, también se handefinido otros métodos que minimizan el uso de informacióndependiente del problema. En particular, lamultiobjetivización proporciona soluciones de una calidadsimilar a las proporcionadas por estrategias queincorporan información dependiente del problema. Noobstante, se necesita una elevada cantidad de tiempopara converger a dichas soluciones de gran calidad. Elprincipal objetivo del presente trabajo se ha centradoen disminuir el tiempo empleado para resolver el appmediante el uso de técnicas de multiobjectivización.Para ello, se ha aplicado un modelo paralelo basado enislas a dos instancias del app. Además, se han probadodiferentes esquemas de migración para comprobarla robustez de la aproximación. Finalmente, se ha llevadoa cabo un estudio de escalabilidad junto con elmejor esquema de migración. Los resultados computacionaleshan demostrado la validez de la propuesta.Palabras clave— Multiobjetivización, Antenna PositioningProblem, Modelos Paralelos basados en Islas.I. IntroducciónEL Problema del Posicionamiento de Antenas –Antenna Positioning Problem (app) es uno delos principales problemas [1] de optimización queaparecen a la hora de establecer redes de telecomunicacionesmóviles. Consiste en identificar las infraestructurasnecesarias para establecer una red decomunicaciones inalámbrica. El app trata de identificarlas ubicaciones más prometedoras en las queposicionar un conjunto de Estaciones Base – BaseStations (bs) o antenas. Las ubicaciones se seleccionande un conjunto de candidatas. Dependiendo de laformulación del problema, se pueden tener en cuentadiferentes objetivos a optimizar. Los más típicos consistenen minimizar el número de antenas, maximizarla cantidad de tráfico soportado por la red, maximizarla calidad de servicio, y/o maximizar el área decubrimiento. Además, también se pueden considerardiferentes restricciones. Este problema desempeña unpapel muy importante en el ámbito de la industria,la ciencia y la ingeniería, debido a que las solucionesobtenidas afectan en gran medida a los costes, benefi-1 Dpto. de Estadística, I.O y Computación, Universidad deLa Laguna, Edificio de Física y Matemáticas, Avda. AstrofísicoFco. Sánchez s/n, 38271 La Laguna, Tenerife, e-mail:(cleon|esegredo|csegura)@ull.es.cios y otros indicadores relevantes para una empresao negocio. Por ello, se deben diseñar algoritmos de calidadpara resolver este tipo de problemas, dado quetienen un impacto directo sobre dichos indicadores.En el presente artículo, se trata el app. Este problematambién es conocido en la literatura como elproblema del Diseño de Redes de Radio – Radio NetworkDesign (rnd) o el Problema de la Localizaciónde Estaciones Base Transmisoras – Base StationTransmitters Location Problem (bst-l). El app es unproblema np-completo [2]. Varias formulaciones delproblema han sido propuestas [3], la mayoría de ellasmono-objetivo [4]. En [5], el app se trató como unproblema mono-objetivo, transformando el resto deobjetivos en restricciones. En [6], se trató una versióncon varios objetivos y se aplicaron estrategias multiobjetivo.En este trabajo, se ha utilizado la variantemono-objetivo presentada en [7], [8]. En esta versión,la función de fitness tiene en cuenta el cubrimientologrado en la red y el número de bs desplegadas.Se han aplicado muchas estrategias a versionesmono-objetivo y multi-objetivo del app. La mayoríade ellas incorporan información dependiente delproblema. Adaptar estas estrategias a otras variantesdel problema es uno de los principales inconvenientesde las mismas. Por otro lado, dichas aproximacionestienen un enorme coste de diseño asociado. En [9],[5], se diseñaron varias heurísticas a medida paratratar el app. En [7], [8], se aplicaron estrategiasevolutivas a este problema. En [8], se incorporó informacióndependiente del problema en los operadoresde mutación. Una amplia comparativa de técnicasmono-objetivo aplicadas a la versión del app tratadaen este artículo se expuso en [2]. En dicho trabajo,las técnicas que no incorporaban información dependientedel problema obtuvieron soluciones de peorcalidad que las obtenidas por las técnicas que usabaninformación dependiente del problema. No obstante,debido a los inconvenientes de usar aproximacionesbasadas en información dependiente del problema,también se han probado diferentes alternativas quepermiten minimizar la utilización de este tipo de información.En [3], se aplicaron Algoritmos EvolutivosMulti-objetivo – Multi-objective Evolutionary Algorithms(moeas) al app. En dicho artículo se utilizóla formulación matemática de este mismo trabajo,con la diferencia de que el cubrimiento y elnúmero de bs se consideraron como dos objetivos independientes.En este caso, se consiguió mejorar ladiversidad de las soluciones. Sin embargo, los moeasJP2011-69


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011no consiguieron alcanzar valores de fitness tan altoscomo los obtenidos por las técnicas dependientesdel problema. Otra posible alternativa para minimizarel uso de información dependiente del problemase puede encontrar en la multiobjetivización. Eltérmino multiobjetivización se introdujo en [10] parareferirse a la técnica de convertir un problema monoobjetivoen uno multi-objetivo. En [11], un conjuntode aproximaciones basadas en multiobjetivizaciónconvergieron más lentamente a la resolución del appque las técnicas dependientes del problema. No obstante,con ejecuciones más largas, fueron capaces dealcanzar soluciones de similar calidad.Para reducir el tiempo de cómputo, se han propuestonumerosos estudios que consideran la paralelizaciónde moeas [12]. Los Algoritmos EvolutivosMulti-objetivo Paralelos – Parallel MultiobjectiveEvolutionary Algorithms (pmoeas), teniendoen cuenta el paradigma de programación paralelopara el que han sido diseñados, se pueden clasificar[13] en: master-worker, basados en islas o difusión.Cuando se compara con otros modelos paralelos,la aproximación basada en islas aporta dos beneficiosnotables: primero, se adapta fácilmente a lasarquitecturas paralelas, y segundo, permite extenderel espacio de búsqueda de soluciones, tratando de evitarla caída en óptimos locales. Además, los modelosbasados en islas han demostrado su buen rendimientoy su escalabilidad en numerosas áreas [12]. Conceptualmente,la población total de un pmoea se divideen un número determinado de sub-poblaciones,o lo que es lo mismo, se aplica un moea a una subpoblaciónen cada isla de manera totalmente independiente.En cada isla, la población evoluciona demanera aislada la mayoría del tiempo, pero algunasveces, los individuos pueden migrar de una isla aotra. La migración es una operación esencial en estetipo de modelos paralelos, dado que fomenta la cooperaciónentre islas. De ahí que su diseño sea unfactor determinante para obtener un pmoea de altacalidad. En este artículo, se ha comprobado la validezde un modelo híbrido que combina un modelo paralelobasado en islas con técnicas de multiobjetivizaciónaplicadas al app. Para comprobar la robustez de lapropuesta, se ha llevado a cabo una comparativa entrediferentes esquemas de migración incorporadosal modelo. Además, se ha realizado un estudio de escalabilidadde la aproximación, junto con el mejoresquema de migración de la comparativa anterior.El principal objetivo del trabajo ha sido la disminucióndel tiempo empleado por las técnicas basadasen multiobjetivización en alcanzar el mismo nivel decalidad que el obtenido por las estrategias que incorporaninformación dependiente del problema.El resto del artículo se estructura tal y como sigue:la formulación matemática del app se expone en laSección II. En la Sección III se describe el métodode optimización utilizado. La estrategia secuencialse detalla en la Sección III-A. Específicamente, sedescriben los métodos de multiobjetivización y losoperadores genéticos utilizados. En la Sección III-B,se dan los detalles del modelo paralelo basado enislas. A continuación, la Sección IV presenta los resultadoscomputacionales obtenidos durante los experimentos.Por último, se comparten algunas conclusionesy líneas de trabajo futuro en la Sección V.II. Formulación Matemática del appEl app se define como el problema de identificar lasinfraestructuras necesarias para establecer una redde comunicaciones inalámbrica. Esta formulación delproblema trata de maximizar el cubrimiento de unárea geográfica dada, a la vez que trata de minimizarel número de bs desplegadas. Una bs es un dispositivode transmisión de señales de radio que siguenun modelo de onda determinado. La región del áreacubierta por una bs se conoce con el nombre de célula.En la definición del app aquí considerada, una bssólo puede posicionarse en una ubicación de entre unconjunto de potenciales ubicaciones. La formulaciónmatemática de esta versión del app fue propuestaen [7], [8]. La función de fitness viene dada por:f(solucion) = CubrimientoαT ransmisoresObservando la ecuación anterior, se debe seleccionarun valor para α, teniendo en cuenta la importanciaque se le desea dar al cubrimiento en comparacióncon el número de bs desplegadas. Tal y como se propusoen [7], [8], se ha utilizado un valor α = 2.El área geográfica G en la que se debe desplegar lared se discretiza en un número finito de puntos o localizaciones.T am x y T am y representan el número desub-divisiones verticales y horizontales, respectivamente.Expertos en comunicaciones son los encargadosde fijar estos parámetros en función de las característicasdel terreno y de las bs. U es el conjunto delocalizaciones donde puede desplegarse una bs: U ={(x 1 , y 1 ), (x 2 , y 2 ), ..., (x n , y n )}. U[i] hace referencia ala localización i. Las coordenadas x e y de una localizacióni utilizan la notación U[i] x y U[i] y , respectivamente.Se dice que una célula C[i] se encuentracubierta si una bs se encuentra desplegada en la localizacióni. En el presente trabajo, las bs irradianuna señal que sigue un modelo isotrópico. El conjuntoP determina las localizaciones cubiertas por unabs: P = {(∆x 1 , ∆y 1 ), (∆x 2 , ∆y 2 ), ..., (∆x m , ∆y m )}.Por ello, si se despliega la bs i, las localizacionescubiertas por la misma son las siguientes: C[i] ={(U[i] x + ∆x 1 , U[i] y + ∆y 1 ), (U[i] x + ∆x 2 , U[i] y +∆y 2 ), ..., (U[i] x + ∆x m , U[i] y + ∆y m )}. Siendo B =[b 0 , b 1 , ..., b n ] el vector binario que determina las bsdesplegadas, se obtienen las siguientes definiciones:Cubrimiento =T ransmisores = ∑ ni=0 b i∑ tamx∑ tamycubrir(i,j)i=0 j=0tam x×tam y× 100donde:{ 1 Si ∃ i/{(bi = 1) ∧ ((x, y) ∈ C[i])}cubrir(x, y) =0 En otro casoJP2011-70


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011III. Esquema de OptimizaciónA. Aproximación SecuencialEl esquema de optimización con mejor comportamientode [11] ha sido aplicado en este artículo.El esquema se basa en el algoritmo Non-dominatedSorting Genetic Algorithm II (nsga-ii). El app seha multiobjetivizado añadiendo una función objetivoartificial. La multiobjetivización modifica la formadel espacio de decisión de un problema, por loque puede ayudar a evitar la caída en óptimos locales[14]. No obstante, también puede provocar queel problema pase a ser más difícil de resolver [15].Existen dos vías diferentes a la hora de multiobjetivizarun problema. La primera de ellas se basa endescomponer la función objetivo original, mientrasque la segunda consiste en añadir nuevas funcionesobjetivo. La adición de nuevos objetivos se puedellevar a cabo teniendo en cuenta información dependienteo independiente del problema. Para multiobjetivizarel app, se escogió la función de fitness expuestaen la Sección II como primer objetivo, mientrasque para el segundo objetivo se utilizó una funciónartificial que trata de maximizar la diversidadde las soluciones. En [11], se comprobó el rendimientode diferentes funciones artificiales. La que obtuvolos mejores resultados se basa en obtener la distanciaEuclídea al mejor individuo de la población, es decir,aquel que posee el valor de fitness más prometedor.Gracias a que la presión de selección disminuye, algunosindividuos de baja calidad podrían sobrevivirdurante varias generaciones. No obstante, en ciertomomento, podrían ayudar a escapar de óptimos locales.De hecho, la mejor estrategia basada en multiobjetivizaciónpropuesta en [11] fue capaz de obtener,en ejecuciones largas, soluciones de una calidadsimilar a las obtenidas por las estrategias que incorporabaninformación dependiente del problema.El algoritmo nsga-ii hace uso de una fase devariación, la cual consiste en la aplicación de un operadorde cruce y de un operador de mutación. El esquemade optimización aplicado usa los operadoresgenéticos que mejor comportamiento demostraronen [3]. El operador de mutación aplicado ha sido elBit Inversión Mutation. Con este operador, cada gende un individuo se invierte con una probabilidad p m .Por otro lado, el operador de cruce utilizado ha sidoel Geographic Crossover y se ha aplicado con unaprobabilidad p c . Este operador intercambia las bsque se encuentran posicionadas a cierto radio r deuna bs seleccionada al azar. Por último, mencionarque los individuos se han codificado como cadenas binariasde n elementos, donde n representa el númerode posibles localizaciones donde ubicar una bs.B. Aproximación ParalelaSe ha considerado la paralelización para reducir eltiempo de ejecución empleado por la estrategia secuencialdescrita en la Sección III-A durante la obtenciónde soluciones de alta calidad. En concreto,se ha aplicado un modelo paralelo basado en islas.En este tipo de modelos, la población se divide enun número determinado de sub-poblaciones. Cadauna de estas sub-poblaciones se asocia con una isladeterminada, y sobre cada una de ellas se ejecutaun moea o configuración de manera independiente.Generalmente, en cada isla, la población evolucionade manera aislada la mayoría del tiempo. No obstante,añadir cierto comportamiento colaborativo alesquema podría llevar a obtener un mejor comportamiento.Es por ello que se suele incorporar con bastantefrecuencia un esquema de migración que permitetransferir individuos de unas islas a otras.Existen cuatro modelos basados en islas diferentes[13]: todas las islas ejecutan la misma configuración(homogéneo), todas las islas ejecutan una configuracióndiferente (heterogéneo), cada isla evalúaun subconjunto diferente de funciones objetivo y cadaisla representa una región distinta en los dominiosdel fenotipo o del genotipo. La aproximación paralelautilizada en el presente trabajo se basa en el modelode islas homogéneo, con cada isla ejecutando laestrategia expuesta en la Sección III-A.El esquema de migración es un componente esencialen este tipo de modelos paralelos debido a quefomentan la colaboración entre islas. De ahí que sudiseño sea un factor determinante para obtener unbuen rendimiento. Gracias a un buen esquema de migración,el espacio de búsqueda de soluciones se podríaexplorar con más profundidad, y se podrían obtenersoluciones de más alta calidad. Sin embargo, sino se aplica un esquema de migración o dicho esquemase encuentra mal diseñado, el efecto podría llegara ser similar, e incluso peor, al obtenido por un conjuntode moeas ejecutando de forma independienteen un número de procesadores determinado sinque exista ningún tipo de comunicación entre ellos.Los componentes que se deben definir a la hora dediseñar un esquema de migración son los siguientes:la topología de migración (dónde se migran los individuos),el índice de migración (el número máximode individuos que se migran y con qué frecuencia semigra), la estrategia de selección de individuos quese van a migrar desde la isla de origen y la estrategiade reemplazo de individuos en la isla de destino.Dependiendo del esquema de migración utilizado,la forma del espacio de decisión de un problema se veafectada [16]. Por ello, en este trabajo se ha comprobadoel funcionamiento del modelo basado en islascon cuatro esquemas de migración diferentes. Los esquemasse han obtenido gracias a la combinación dediferentes estrategias de selección con diferentes estrategiasde reemplazo. Se han probado dos estrategiasde selección: Elitista (eli) y Aleatoria (rnd).Con la estrategia eli, se selecciona un individuo amigrar si es mejor que cualquiera de los miembros dela población de la generación anterior. La estrategiarnd elige los individuos a migrar de manera aleatoria.Por otro lado, también se han analizado dosestrategias de reemplazo: Elitist Ranking (eli), yAleatoria (rnd). La estrategia eli agrupa los individuosde la población de la isla de destino en diferentesrankings haciendo uso del operador de crowdingJP2011-71


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011117.3Instancia ArtificialInstancia de Malaga117.2164117.1117162Fitness116.9116.8116.7ELI-RNDELI-ELI116.6RND-RNDRND-ELISEQ116.50 5000 10000 15000 20000Tiempo (s)Fitness160158156ELI-RNDELI-ELIRND-RNDRND-ELISEQ0 5000 10000 15000 20000Tiempo (s)Fig. 1. Evolución del Fitness - Modelos Paralelos con 4 IslasFig. 2. Evolución del Fitness - Modelos Paralelos con 4 Islasdel nsga-ii. A continuación, se reemplazan individuosseleccionados aleatoriamente del peor rankingdisponible. Con el esquema rnd, los individuos areemplazar se seleccionan aleatoriamente. Cada unode los cuatro esquemas de migración estudiados enel presente artículo siguen la siguiente nomenclaturapara su identificación: selección – reemplazo. Porejemplo, eli-rnd significa que se ha aplicado un esquemade migración con una estrategia de selecciónelitista y una estrategia de reemplazo aleatoria.IV. Resultados ComputacionalesEn esta Sección se describen los experimentos llevadosa cabo con los diferentes esquemas de optimizaciónpresentados en la Sección III. Las pruebasse han lanzado en una máquina con sistema operativoDebian GNU/Linux, 4 procesadores amd R○Opteron TM (modelo 6164HE) que corren a 1.7 GHz,y con una memoria RAM de 64 GB. El compiladorutilizado ha sido gcc 4.4.5. El compilador mpi ha sidoOpenMPI 1.4.2. Se han analizado dos instanciasdel app. La primera de ellas es una instancia realmodelando la ciudad de Málaga. Esta instancia representaun área urbana de 27.2 km 2 . El terreno seha modelado utilizando una matriz de 450 x 300,donde cada una de las casillas representa una superficiede aproximadamente 15 x 15 m 2 La instanciacuenta con n = 1000 posibles localizaciones paraubicar las bs. La segunda instancia se ha generadoartificialmente. En este caso, el terreno se ha modeladoutilizando una matriz de 287 x 287, y cuentacon n = 349 posibles localizaciones.Debido a la utilización de algoritmos estocásticos,cada ejecución se ha repetido 30 veces. Cada experimentose ha llevado a cabo para cada una de las dosinstancias analizadas. Para poder proporcionar losresultados con suficiente respaldo estadístico, se hanllevado a cabo las comparativas siguiendo el siguienteanálisis. Primero se lleva a cabo el test de Shapiro-Wilk para comprobar si los resultados siguen una distribuciónnormal (Gaussiana) o no. En caso afirmativo,se lleva a cabo el test de Levene para comprobarla homogeneidad de las varianzas. Si los resultadostienen igual varianza, se realiza el anova. En otrocaso, se lleva a cabo el test de Welch. Para distribucionesno Gaussianas, se utiliza el test no paramétricode Kruskal-Wallis que comprueba las medianas delos resultados. Todos los test se han llevado a cabocon un nivel de confianza del 95 %.Para todos los experimentos se ha utilizado la siguienteparametrización: r = 30, p c = 1, p m = 1 n .Los tamaños de población se han fijado a 50 y 100individuos para la instancia artificial y la instanciade Málaga, respectivamente.En el primer experimento se ha realizado un análisisde la robustez del modelo paralelo en términosdel esquema de migración utilizado. El modelo paralelobasado en islas ha incorporado 4 esquemasde migración diferentes, tal y como se ha descritoen la Sección III-B. El modelo paralelo, con cadauno de los esquemas de migración, ha sido ejecutadocon 4 islas y con un criterio de parada de 6 horas.Con todos los esquemas de migración se ha utilizadouna topología de migración totalmente conectada.Además, la probabilidad de migración se ha fijado a0.01, migrando un único individuo cada vez.Las Figuras 1 y 2 muestran la evolución del valorde fitness medio de las aproximaciones secuencial(seq) y paralelas, para la instancia artificial yla instancia de Málaga, respectivamente. El modeloparalelo ha mejorado claramente los resultadosobtenidos por la estrategia secuencial en ambas instancias.También se puede observar como los diferentesmodelos paralelos han obtenido valores de fitnesssimilares. De hecho, los análisis estadísticos han reveladoque las diferencias entre ellos no han sido significativas.No obstante, en ambas instancias, el valorde fitness medio más alto ha sido obtenido por el modeloparalelo que incorpora el esquema de migracióneli-rnd. Al haber obtenido soluciones de alta calidadcon el modelo paralelo, independientemente delesquema de migración utilizado, se ha demostrado larobustez de la propuesta.Debido a que los modelos paralelos han utilizadomás recursos computacionales que la estrategia secuencial,la mejora debe cuantificarse. La Run-lengthDistribution (rld) es una herramienta muy útil parallevar a cabo esta tarea. Una rld muestra la relaciónexistente entre el ratio de éxito y el tiempo. El ratiode éxito se define como la probabilidad de alcanzarcierto nivel de calidad. Las rld se han calculado paralos modelos paralelos y para la estrategia secuencial.En el caso de la instancia artificial, ya que cada modeloparalelo ha sido capaz de alcanzar el mejor valorJP2011-72


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Instancia ArtificialInstancia de Malaga110.80.8Ratio de Exito0.60.4ELI-RNDELI-ELI0.2RND-RNDRND-ELISEQ00 10000 20000 30000 40000 50000 60000 70000 80000Tiempo (s)Ratio de Exito0.60.4ELI-RNDELI-ELI0.2RND-RNDRND-ELISEQ00 10000 20000 30000 40000 50000 60000 70000 80000Tiempo (s)Fig. 3. RLD - Modelos Paralelos con 4 IslasFig. 5. RLD - Modelos Paralelos con 4 Islas1Instancia Artificial1Instancia de Malaga0.80.8Ratio de Exito0.60.4Ratio de Exito0.60.40.2PAR_16PAR_8PAR_400 5000 10000 15000 20000Tiempo (s)0.2PAR_16PAR_8PAR_400 5000 10000 15000 20000Tiempo (s)Fig. 4. RLD - Modelos Paralelos con 4, 8 y 16 IslasFig. 6. RLD - Modelos Paralelos con 4, 8 y 16 Islasde fitness conocido hasta la fecha, dicho valor ha sidoseleccionado como el nivel de calidad a alcanzar.En la instancia de Málaga la varianza de los resultadosha sido superior que en la instancia artificial.De este modo, si se eligiera el mejor valor de fitnessconocido como el nivel de calidad a alcanzar, se obtendríanratios de éxito bajos. Por ello, el nivel decalidad se ha fijado de modo que todos los modelosparalelos sean capaces de alcanzar un ratio de éxitodel 60 %. Las Figuras 3 y 5 muestran las rld de losmodelos paralelos y del modelo secuencial, para lainstancia artificial y la instancia de Málaga, respectivamente.En el caso de la estrategia secuencial, seha considerado un tiempo máximo de ejecución de 24horas. Para los modelos paralelos, el tiempo máximode ejecución considerado ha sido de 6 horas. Las rldhan confirmado la superioridad de los modelos paralelos.En algunos casos se han obtenido factores deaceleración superlineales. Esto se debe a la capacidadde los modelos paralelos para evitar la caída enóptimos locales. Las rld también han mostrado lassimilitudes entre los diferentes modelos paralelos. Apesar de estas similitudes, el modelo paralelo que incorporael esquema de migración eli-rnd ha sido elque mejor se ha comportado.El segundo experimento ha analizado la escalabilidaddel modelo paralelo propuesto. El modelo basadoen islas que incorpora el esquema de migraciónque mejor se ha comportado en el experimento anterior(eli-rnd, referenciado en este nuevo experimentocomo par4) se ha ejecutado con 8 (par8) y 16(par16) islas. Las Figuras 4 y 6 muestran sus rld,para la instancia artificial y la instancia de Málaga.Se ha considerado un tiempo máximo de ejecución de6 horas. Las rld muestran las ventajas de añadir unnúmero de procesadores mayor al modelo paralelo.Los factores de aceleración, tomando como referenciael modelo par4, se han calculado para ratios deéxito que varían entre un 25 % y un 75 %. En el casode la instancia artificial, el factor de aceleracióndel modelo par8 ha variado desde 1.57 a 1.88. Parael modelo par16, el factor de aceleración ha variadoentre 1.62 y 3.57. Para esta instancia se han detectadoproblemas de escalabilidad puntuales. De hecho,los modelos par8 y par16 han obtenido factores deaceleración similares para ciertos ratios de éxito. Noobstante, par16 ha obtenido factores de aceleraciónmás altos para otros ratios de éxito, lo que demuestralas ventajas de aplicarlo. Para la instancia de Málaga,también se han detectado algunos problemas deescalabilidad. El modelo par8 no ha demostrado obtenerninguna ventaja significativa respecto al modelopar4, ya que como puede observarse, las dosrld de estos modelos son muy similares. Sin embargo,los factores de aceleración han aumentado con laaplicación del modelo par16. Dichos factores de a-celeración, tomando como referencia el modelo par4han variado entre los valores 1.42 y 1.9.V. Conclusiones y Trabajo FuturoEl app es uno de los principales problemas de optimizaciónque surgen en el diseño de redes de telecomunicacionesmóviles. En el presente artículo, seha llevado a cabo el análisis de una estrategia híbridaque combina un modelo paralelo basado en islascon diferentes estrategias de multiobjectivizaciónJP2011-73


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011aplicadas al app. La multiobjetivización es una estrategiamás general que aquellas que hacen uso deinformación dependiente del problema. En [11], sepropusieron numerosas estrategias para multiobjetivizarel app. El esquema de optimización estababasado en el algoritmo nsga-ii. La mejor estrategiapara multiobjetivizar el app consistía en calcularla distancia Euclídea al mejor individuo de lapoblación, es decir, aquel con mayor valor de fitness.El peor inconveniente de esta estrategia era el aumentodel tiempo requerido para obtener solucionesde alta calidad, comparándola con las técnicas queincorporaban información dependiente del problema.Para disminuir el tiempo de convergencia, en estetrabajo se ha aplicado un modelo homogéneo basadoen islas. La configuración que se ha ejecutado en lasislas es la mejor encontrada para multiobjetivizar elapp [11]. Las migraciones son una operación esencialen este tipo de modelos paralelos. Por ello, seha llevado a cabo un análisis de la robustez del modeloconsiderando diferentes esquemas de migración.Los resultados computacionales han demostrado larobustez de la propuesta, independientemente del esquemade migración utilizado. Además, el modeloparalelo ha superado los resultados obtenidos porla correspondiente estrategia secuencial. De hecho,se han obtenido factores de aceleración superlinealescuando se ha aplicado el modelo con 4 islas. Tambiénse ha llevado a cabo un análisis de escalabilidaddel modelo paralelo con el esquema de migración quemejores resultados ha obtenido (eli-rnd), variandoel número de islas hasta un máximo de 16. Para ambasinstancias, se han detectado ciertos problemas deescalabilidad. El tiempo invertido en alcanzar solucionesde alta calidad ha disminuido gracias a la incorporaciónde más procesadores. No obstante, estadisminución no ha sido lineal.El trabajo futuro se centrará en la aplicación dehiperheurísticas paralelas al app. Ya que en general,el método de optimización adecuado depende de lainstancia que se desea resolver, la aplicación de hiperheurísticasparece una línea de investigación prometedora.Las hiperheurísticas, en combinación con elmodelo paralelo presentado, permitirían seleccionarde forma automática el método a aplicar en cadaisla. También sería interesante analizar otras instanciasdel app.AgradecimientosEste trabajo ha sido financiado con fondos ec(feder) y del Ministerio de Ciencia e Innovación,dentro del ‘Plan Nacional de i+d+i’ con el proyectocon número de referencia tin2008-06491-c04-02.Parte del trabajo también ha sido financiado confondos del Gobierno de Canarias correspondientes alproyecto pi2007/015. El trabajo de Eduardo Segredoy de Carlos Segura ha sido financiado gracias a lasbecas fpu-ap2009-0457 y fpu-ap2008-03213.Referencias[1] Hervé Meunier, El-Ghazali Talbi, and Philippe Reininger,“A Multiobjective Genetic Algorithm for Radio NetworkOptimization,” in In Proceedings of the 2000 Congresson Evolutionary Computation. 2000, pp. 317–324, IEEEPress.[2] S. P. Mendes, G. Molina, M. A. Vega-Rodríguez, J. A.Gómez-Pulido, Y. Sáez, G. Miranda, C. Segura, E. Alba,P. Isasi, C. León, and J. M. Sánchez-Pérez, “Benchmarkinga Wide Spectrum of Meta-Heuristic Techniques forthe Radio Network Design Problem,” IEEE Trans. Evol.Comput., pp. 1133–1150, 2009.[3] Carlos Segura, Yanira González, Gara Miranda, andCoromoto León, “A Multi-Objective Evolutionary Approachfor the Antenna Positioning Problem,” inKnowledge-Based and Intelligent Information and EngineeringSystems, Rossitza Setchi, Ivan Jordanov, RobertHowlett, and Lakhmi Jain, Eds., vol. 6276 of LectureNotes in Computer Science, pp. 51–60. Springer Berlin /Heidelberg, 2010.[4] Silvio Priem Mendes, Juan A. Gomez Pulido, MiguelA. Vega Rodriguez, Maria D. Jaraiz Simon, and JuanM. Sanchez Perez, “A Differential Evolution Based Algorithmto Optimize the Radio Network Design Problem,”in E-SCIENCE ’06: Proceedings of the SecondIEEE International Conference on e-Science and GridComputing, Washington, DC, USA, 2006, p. 119, IEEEComputer Society.[5] Dong wan Tcha, Young-Soo Myung, and June hyukKwon, “Base Station Location in a Cellular CDMA System,”Telecommunication Systems, vol. 14, no. 1-4, pp.163–173, 2000.[6] El-Ghazali Talbi and Hervé Meunier, “Hierarchical ParallelApproach for GSM Mobile Network Design,” J. ParallelDistrib. Comput., vol. 66, no. 2, pp. 274–290, 2006.[7] E. Alba, “Evolutionary Algorithms for Optimal Placementof Antennae in Radio Network Design,” InternationalParallel and Distributed Processing Symposium,vol. 7, pp. 168, 2004.[8] N. Weicker, G. Szabo, K. Weicker, and P. Widmayer,“Evolutionary Multiobjective Optimization for BaseStation Transmitter Placement with Frequency Assignment,”IEEE Trans. Evol. Comput., vol. 7, no. 2, pp.189–203, 2003.[9] Mohan R. Akella, Rajan Batta, Eric M. Delmelle, PeterA. Rogerson, Alan Blatt, and Glenn Wilson, “BaseStation Location and Channel Allocation in a CellularNetwork with Emergency Coverage Requirements,” EuropeanJournal of Operational Research, vol. 164, no. 2,pp. 301 – 323, 2005.[10] Joshua D. Knowles, Richard A. Watson, and DavidCorne, “Reducing Local Optima in Single-ObjectiveProblems by Multi-objectivization,” in Proceedings of theFirst International Conference on Evolutionary Multi-Criterion Optimization, London, UK, 2001, EMO ’01,pp. 269–283, Springer-Verlag.[11] Carlos Segura, Eduardo Segredo, Yanira González, andCoromoto León, “Multiobjectivisation of the AntennaPositioning Problem,” in International Symposium onDistributed Computing and Artificial Intelligence, AjithAbraham, Juan Corchado, Sara González, and JuanDe Paz Santana, Eds., vol. 91 of Advances in Intelligentand Soft Computing, pp. 319–327. Springer Berlin / Heidelberg,2011.[12] Enrique Alba, Parallel Metaheuristics: A New Class ofAlgorithms, Wiley-Interscience, 2005.[13] C. A. Coello, G. B. Lamont, and D. A. Van Veldhuizen,Evolutionary Algorithms for Solving Multi-Objective Problems, Genetic and Evolutionary Computation.2007.[14] Julia Handl, Simon C. Lovell, and Joshua Knowles, “Multiobjectivizationby Decomposition of Scalar Cost Functions,”in Proceedings of the 10th International Conferenceon Parallel Problem Solving from Nature: PPSN X,Berlin, Heidelberg, 2008, pp. 31–40, Springer-Verlag.[15] Dimo Brockhoff, Tobias Friedrich, Nils Hebbinghaus,Christian Klein, Frank Neumann, and Eckart Zitzler, “DoAdditional Objectives Make a Problem Harder?,” in Proceedingsof the 9th Annual Conference on Genetic andEvolutionary Computation, New York, NY, USA, 2007,GECCO ’07, pp. 765–772, ACM.[16] David A. Van Veldhuizen, Jesse B. Zydallis, and Gary B.Lamont, “Considerations in Engineering Parallel MultiobjectiveEvolutionary Algorithms,” IEEE Trans. Evol.Comput., vol. 7, no. 2, pp. 144–173, 2003.JP2011-74


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Exhaustive Program’s Robustness Analysisagainst Transient FaultsJoao Gramacho *,1 , Dolores Rexachs *,2 y Emilio Luque *,3Abstract — Computer chips implementation technologiesevolving to obtain more performance are increasing theprobability of transient faults. As this probability growsand on-chip solutions are expensive or tend to degradeprocessor performance, the efforts to deal with thesetransient faults in all levels (including the operating systemand even at the application level) are increasing. Softwarebased fault tolerance approaches against transient faultsoften use fault injection experiments to evaluate therobustness of applications with and without their faultdetection or fault tolerance proposals. Those fault injectionexperiments consumes lots of CPU time by running orsimulating the application being evaluated as many timesas necessary to obtain a reasonable valid statisticalapproximation. This paper presents the first step of ourpurpose of exhaustively analyzing program’s robustnessagainst transient faults. We use processor architectureinformation and a program trace to analyze the programrobustness in a one step evaluation without the need oftime consuming executions with fault injection.Keywords — Transient faults, robustness, reliability.TI. INTRODUCTIONhe ever growing die density of computer processorsis one of the great factors of the astonishingimprovements in processing power of the last decades.Computer chips are using smaller components, havingmore transistors, using those transistors with higherdensity and also operating at lower voltage. The sideeffect of such a scenario is that processors are lessrobust than ever against transient faults [1].Transient faults are those faults that might occur onlyonce in a system lifetime and never happen again thesame way. Transient faults in computer systems mayoccur in processors, memory, internal buses and devices,often resulting in an inversion of a bit state (i.e. singlebit flip) on the faulty location [2]. Cosmic radiation,high operating temperature and variations in the powersupply subsystem are the most common cause oftransient faults in computer systems.A transient fault may cause an application tomisbehave (e.g. write into an invalid memory position;attempt to execute an inexistent instruction). Suchmisbehaved applications will then be abruptlyinterrupted by the operating system fail-stop mechanism.Nevertheless, an undetected data corruption is thebiggest risk for applications. It happens when the flippedbit produced by the transient fault generates an incorrectfinal program result that might not be ever noticed.The errors that can be noticed by the transient faultseffect are called soft errors.We consider program’s robustness against transient* Computer Architecture and Operating Systems Department,Universitat Autònoma de Barcelona, Bellaterra (Barcelona), Spain.1 E-mail: joao.gramacho@caos.uab.es2 E-mail: dolores.rexachs@uab.es3 E-mail: emilio.luque@uab.esfaults as the ability of a program, one in presence of atransient fault, to keep running and give a correct resultwhen finish or to stop the execution when a soft error isdetected and inform about it.To evaluate a program robustness against transientfault, we consider that a program, running over andetermined architecture, will have a robustness againsttransient faults represented as a number that can varyfrom zero (0%) to one (100%), where zero implies norobustness at all (the program fail on every tested cases)and one implies the best robustness possible (theprogram gave the correct result or detected the transientfault on every tested cases).In order to test a program behavior in presence oftransient faults, it is common to put a program to betested in an environment designed to allow transient likefault injections. In this way, it is possible to evaluate ifthe program misbehaved in presence of a transient faultor if the program was robust and could finish properly ordetected the injected fault and stopped its executionavoiding the error propagation. These fault injections aremade often by flipping a bit of a processor register in agiven point during program execution.Using program execution in presence of faultinjections to evaluate its behavior can be a timeconsuming task. This is because of the need to executethe program in the fault injection environment as manytimes as needed (varying the fault injection point in timeand where to inject the fault) to have a result withsignificant statistical approximation, as we will show insection II.Our objective in this work is to propose a method tocalculate a program’s robustness, without any faultinjection execution. To do so, in section III we present amethod to calculate the amount of all possible unACEcases of a program running over a given processorarchitecture based a trace of the program execution overthe architecture and information about how thearchitecture instructions deal with processor registers.We want a method to have a precisely calculatedrobustness and also avoid the time consuming task ofdoing hundreds or thousands of program executions intransient fault injection environments.In section IV we present our experimental evaluationby comparing the result of fault injection campaignswith the results obtained using our analysis method andin section V we present our conclusion and explainabout the next steps of our method.II. ROBUSTNESS EVALUATION USING FAULT INJECTIONExperimental methods of injecting transient faults intoa program during its execution were proposed to testpurposed protection mechanisms against transient faults.On those methods, the program being evaluated isexecuted in an environment able to inject a fault in aJP2011-75


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011form of a bit flip on a program architectural state(usually a bit in a processor register). At the end of theprogram’s execution, its result is evaluated to check theeffect caused by the fault into the execution.When the program has finished correctly and haspresented the same result of a fault free execution theprogram’s architectural bit changed by the fault injectionis classified as unACE (unnecessary for anArchitecturally Correct Execution). On the other hand,when the program didn’t finished correctly, or haspresented a result different of the fault free execution,the program’s architectural bit changed by the faultinjection is classified as ACE (necessary for anArchitecturally Correct Execution).If the program being evaluated has some kind of faultdetection mechanism against transient faults theprogram architectural bits changed may trigger the faultdetection mechanism and lead the program to a fail stopavoiding the propagation of the fault effect in theprogram execution. On those cases, instead of beingclassified as ACE, as the execution finished doing a failstop and noticed that a fault happened the programarchitectural bit changed is classified as DUE (DetectedUnrecoverable Error).As changes in the ACE program architectural bits leadto an abnormal program behavior and also could lead toa result different of the obtained by a fault-freeexecution, it is common to classify those bits as SDC(Silent Data Corruption). = 1 (1)To evaluate how reliable a program is in presence oftransient faults with a sufficient large amount ofexecutions with fault injection, we can divide theamount of executions that didn’t failed (those in whichthe program architectural bit changed was classified asunACE or DUE) by total amount of executions withfault injection performed. Also, it is important to have agood distribution in which program architectural bit ischanged on each execution, since it is randomly chosen.The authors of [3] propose a soft error detectionmechanism based on source code transformation rules.The new program (compiled with the source codetransformed with the fault detection mechanism) has thesame functionality as the original program but is able todetect bit-flips in memory and processor registers duringan execution.Evaluating programs with and without their faultdetection mechanism, the authors of [3] performed a setof fault injection experiments where on each execution abit was flipped in processor registers, program codememory region or program data memory region. A totalof 52,728 executions with fault injection wereperformed to evaluate two programs (the original oneand the changed to detect soft errors), 26,364 executionsper program on average.In Error Detection by Duplicated Instructions (EDDI)[4], the authors reduced the amount of SDC cases ofprograms by, during program’s compilation, copyinginstructions but using different processor registers andadding verification for errors by comparing the value ofthe original processor register used by the program withthe value of the processor register used in the newgenerated instruction.Executing a total of four evaluations (the originalprogram, the program with EDDI and the program withthree source code based fault detection mechanisms) pereach of the eight benchmarks evaluated and executing500 simulations with fault injection per evaluation, theauthors of [4] have made a total of 16,000 simulations toaccomplish their work.On Software-Controlled Fault Tolerance [5], theauthors presented a set of transient fault detectiontechniques based on software and also hybrid (based onsoftware and hardware). Each of the proposedtechniques has a different cost/benefit relation byimproving reliability or performance.The first technique presented by [5] is SWIFT(Software Implemented Fault Tolerance) which reducesan application’s amount of SDC cases by changing theprogram during compilation time. The other techniquespresented are all hybrid. The set of those hybridtechniques is called CRAFT (Compiler-Assisted FaultTolerance). In general, reduces the amount of SDC caseseven more than SWIFT and also improve theperformance of the program in comparison withsoftware-only fault tolerance techniques.To evaluate the amount of SDC cases of an applicationwith and without the proposed fault tolerancemechanisms, the authors of [5] executed fault injectionexperiments in a simulator executing all programs to theend using a functional simulator and choosing when andwhere to inject the fault randomly. The authors classifiedthe fault injection simulation result as unACE if theflipped bit wasn’t necessary to the correct architecturalexecution, as DUE if the flipped bit triggered a faultdetection mechanism, or as SDC it the flipped bitgenerated a silence data corruption.The authors of [5] used a benchmark to evaluate howmany fault injections should be necessary to have asignificant statistical approximation of results. Theyexecuted 5,000 fault injection simulations with thebenchmark and observed that the confidence interval ofthe average of the SDC cases was ±2.0% after 946simulations, ±1.5% after 1,650 simulations and ±1.0%after 3,875 simulations.In a total of 10 sets of experiments, the authors of [5]evaluated the robustness of a set of benchmarks bysimulating 5,000 executions with fault injection (exceptfor two SWIFT variations that used 1,000 simulations).In each of 504,000 simulated executions with faultinjection a randomly chosen bit of one of 127 integerprocessor registers of IA64 processor architecture wasflipped.Because of the use of a simulator to execute deprogram with a fault injection, the authors of [5] couldsave some simulation time on the executions where thebit flipped was classified as unACE. On those cases, thesimulation could be interrupted when the simulatorobserved that the flipped bit was re-written with resultsfrom processor logical unit or with a write operationbefore having it content used.Continuing their research in fault tolerance fortransient faults, the authors of [5] propose Spot [6], atechnique to dynamically insert redundant instructions todetect errors generated by transient faults. This insertionwas made in runtime using instrumentation.JP2011-76


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Besides using a different architecture from previouswork (in [6] they used IA32 and protected only the eightgeneral purpose 32 bit registers of the architecture), theauthors didn’t use simulators. All the analysis and faultinjections were made using an instrumentation tool. Theauthors of [6] evaluated 16 benchmarks and executed atotal of 1.03 million fault injections to obtain theirresults (keeping 5,000 executions with fault injection perbenchmark and configuration evaluated).In all related work studied, the execution of a programin a transient fault injection environment could beclassified in terms of basically three labels: unACE,DUE and SDC.To compute a program’s robustness against transientfaults using fault injection we only need to divide theamount of unACE cases, plus the amount of DUE cases,by the amount of executions made in the experiment. = = 1 − (2) If all executions are classified as SDC, the robustnesswill be zero (the minimal robustness allowed). On theother hand, if all executions are classified as unACE orDUE, the robustness will be one (the maximumrobustness allowed).The robustness evaluation method using program’sexecutions with fault injection need a sufficient largeamount of executions varying the fault conditions (time,register and bit) to have a representative statisticalapproximation of the results.One aspect that must be took into account when usingfault injection to evaluate a program’s robustness is thatthis method is data dependent. Faults injected in specificbits of floating point registers can lead to almost nochange in its value depending on its original value. Also,as general purpose registers are often used as pointers tovectors or matrices of data, if this data is homogenous(e.g. a vector filled with ones) there are many changesthat can be done in registers that will make them point toa different memory position but with the same data,masking the fault injection result as unACE.Also, it is known that by using a fault injection basedevaluation of robustness, the amount of executions toevaluate a program will affect the precision ofrobustness obtained [5].Finally, using simulators or dynamicallyinstrumentation to inject fault on every programexecution will increase time needed on each executionin comparison with a time spent by the program runningdirectly in the architecture without instrumentation.III. ANALYZING A PROGRAM’S ROBUSTNESSOur objective is to evaluate a program’s robustnessexhaustively and faster than using fault injectionexecutions, even knowing that our method is based onthe evaluation of the possible effect of a single bit flipfault injection in processor registers of a givenarchitecture.To do so, we will evaluate in this first work the unACEbits of all possible execution points of the program (allpoints of program execution that a fault injection toolcould stop the program execution, perform the faultinjection and let the program finish its execution) for allprocessor registers.This evaluation will be equivalent to running as muchfault injection executions as necessary to test all bits ofall processor registers at any program execution pointbut, instead of performing all this executions, we willuse a program trace generated on a single programexecution and containing all processor instructionsexecuted by the program in the order of execution.At this point of our research we are only evaluating theunACE cases. So, by knowing all unACE bits of aprogram execution, we can calculate the minimalprogram robustness as shown in equation 3.unACE bits 0 = (3)bits evaluatedThe work we have to do is, then, to evaluate allunACE bits of a program prog execution in a givenarchitecture A.From the architecture, we need a set of processorregisters (ProcReg) and a finite non-numerical sequenceRegSize representing the register sizes in bits defined bythe f RegSize function. = , , ⋯ , (4) : ⟼ N = , , ⋯ , Also from architecture, we will need a set of processorinstructions (ProcIns) and a set ProcInsReg containingall ordered pairs of processor instructions and processorregisters of a given architecture. = , , ⋯ , (5) = , , ⋯ , , For each pair processor instruction and processorregister in ProcInsReg set, we will need two nonnumericalsequences: WrittenBits, defined by the f wbitsfunction and ReadBits, defined by the f rbits function.The f wbits function returns a vector of bits equivalent tosetting all bits of the processor register that are writtenby the processor instruction. : × ⟼ (6)The f rbits function returns a vector of bits equivalent tosetting all bits of a processor register that are read by aprocessor instruction. : × ⟼ (7)To know which processor instructions are used by theprogram being evaluated and in which sequence they areexecuted, we need a Trace prog×A as a finite sequencedefined by the function f prog that returns the processorinstruction executed by the program at given executionpoint. : N ⟼ (8) × = , , ⋯ , × Each instruction present on Trace prog×A is equivalent toa point in program execution in which is possible toinject a bit flip fault in a processor register.A. Robust state definitionLet’s consider now robust state a property of aprocessor register in a given point of a programexecution in a form of a vector of bits where all registerJP2011-77


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011bits that we can classify as unACE are set with 1 and allother register bits are cleared (with 0). The robust stateproperty can be defined also by the function f rstate that wewill detail later in this section. : × N ⟼ (9)To help us in the program robustness formula we needto define a function f abits that returns the amount of bitsset (with 1 as its value) in a given vector of bits. : ⟼ N (10)The robustness of a program prog executed over anarchitecture A can be calculated using the formula: × × = ∑ ∑ , × ∙∑ (11)In fact, the robustness of any contiguous part TPart ofthe Trace prog×A sequence (that is also a sequence),starting on point p begin until the point p end can becalculated using the formula: × =∑ ∑ , ∙∑ (12)With the robustness formula presented in equation 12we can calculate the robustness of a single instruction(by making p begin equals p end ) or the robustness of thewhole program (by making p begin equals one and p endequals the number of instructions executed by theprogram) as shown in equation 11.B. Calculating an instruction × register robust stateOur proposed method of calculating the robust state ofa single register in a given execution point of a programis based in the method proposed by the authors of [5] tosave time on those simulations where it was possible tointerrupt a simulation after the fault injection when thesimulator noticed that the flipped bit was classified asunACE.In the mentioned work, the importance of the flippedbit was checked by monitoring the use of the processorregister affected by the injection. The simulator kepttrack of the register after the fault injection.If the processor register was rewritten with resultsfrom processors logical unit (as a result of someoperation that didn’t depend on the processor registeraffected value) or with data from a read operation frommemory (that, also, didn’t depend on the processorregister affected value), the authors assumed that theflipped bit could be classified as unACE and there wasno need to keep running the simulation because they wassure of the fact that the bit flipped by the injectionwasn’t necessary to programs correct execution. Insummary, the unACE cases represent those faultinjections where the flipped bit was discarded beforeused.Besides the fact that we don’t use simulators in ourwork, to check the precedence use of processor registersvalues we have a trace of the executed program with allprocessor instructions in the order they are executed.By analyzing the trace backwards, we can, trace pointby trace point, evaluate the precedence use of processorregisters and then classify its bits (on each trace point)as unACE or no.We assume that all processor registers will have itsrobust state with all bits set (all bits unACE) after theexecution of the last program’s instruction in the trace.At this point, the program has finished its work and afault injected in any bit of any processor register won’taffect programs result. To this robust state just after thelast one present on the evaluated trace we will define thef endstate function. : ⟼ (13) = ∀: 1 ≤ ≤ → = 1Evaluating then the very last executed instruction inthe trace i, we will use the formula presented in equation14 to compute the robust state of processor registers atthis point. = × ; = (14) , = ∨ , ∧∼ , With the presented formula, if the instruction i don’tread from or write to a register reg, the values of f wbitsand f rbits will be zero and the resulting f rstate of theregister will be a copy of its f endstate .If the instruction i evaluated writes on a given registerreg, f wbits will have all its bits set to one. In this case, thevalue of the register in trace points with lower than theevaluated one will be discarded at this point and so wecan assume that at this point (before executing theinstruction i at trace point n) all register bits can beclassified as unACE.If the instruction i evaluated read from a given registerreg, f rbits will have all its bits set to one. In this case, thevalue of the register in trace points with lower than theevaluated one will be needed at this point and so we canassume that at this point (before executing theinstruction i at trace point n) all register bits can beclassified as ACE.We assume that if a processor instruction reads a valuefrom a register, compute and store a result in the sameregister, the order of the operations are first the read andthen the write. But, as we analyze the program tracebackwards, in our formula we first use the f wbits and thenuse the f rbits .All other program trace instructions in which we needto analyze the robust state of processor registers will usea formula that guarantee the order used on the analysis.1 ≤ < × ; = (15) , = , 1 ∨ , ∧∼ , At this point of our analysis we have all formulasneeded to compute the robustness of a program in agiven architecture.IV. EXPERIMENTAL EVALUATIONA. Proof of ConceptIn to check the idea presented in this work, we haveselected a simple example as a proof of concept.We developed a simple exponentiation program for the6502 processor architecture that solves the followingequation: = . The source code of theprogram is shown in Fig. 1.To evaluate the program using fault injection, we firstselected the program input parameters (three to the baseoperand and five to the exponent operand). Then, we ranthe program and stored what we consider a correctresult: 243 in the res memory position.JP2011-78


1Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011; exponentiation.65s.ORG $0200; Store machine code starting hereLDX exponent ; Load the exponent into X registerBEQ ONE ; If it is zero, the result is oneDEXLDA base ; Load the base into accumulator registerBEQ ZERO ; If it is zero, finish the operation with zero as resultSTA res ; Store the accumulator register intoMULT1: STA mul ; Store the accumulator into multiplication resultLDY base ; Load the base into Y registerDEYMULT2: ADC mul ; Add the multiplication result to the accumulatorDEY; Decrement Y registerBNE MULT2 ; Jump if is still multiplyingSTA res ; Store the accumulator into the resultDEX; Decrement X register (exponent)BNE MULT1 ; Jump if is still operating the exponentiationJMP FINISHONE: LDA #$01 ; The result is 1 (zero on exponent)JMP FINISHZERO: LDA #$00 ; The result is 0 (zero on base)FINISH: STA res ; Store the result in byte labelled resBRK; Stop running the programbase: .DB $03 ; Base operandexponent: .DB $05 ; Exponent operantres: .DB $00 ; Result of the operationmul: .DB $00 ; Auxiliar variable to multiplicationFig. 1. Simple exponentiation program source code.The 6502 processor architecture has 11 registers (fourwith eight bits and seven with one bit).The program executed 57 instructions to compute untilthe end. Thinking about a fault injection evaluation,there are 57 different fault injection points to thisprogram with the selected input parameters. On eachfault injection point the architecture has 39 different bitsto be flipped (32 from the four eight bit registers and therest from the seven one bit registers).In order to evaluate the robustness of the programrunning over the presented architecture exhaustively wewill need 2223 program executions with fault injection.Our fault injection experiment used a 6502 simulatorto run the program, pausing its execution at a givenrandomly chosen point and performing a random bit flipin an also randomly chosen processor register. In ourexperiment, we take care of avoid repeating a faultinjection with the same injection point, bit and register.As shown in Fig. 2, we scored a final robustness of49.44% with all 2223 fault injection results. We obtaineda standard deviation of 5% after 266 fault injections,2.5% after 1102 fault injections and 2% after 1738 faultinjections, all with a 95% of confidence.By generating a trace with all program’s instructionsexecuted and analyzing the trace with our methodology,we have built a graph with the program basic blocks andtheir repetition during program’s execution, as shown inFig. 3.100%90%80%70%60%Robustness-stddev+stddevFig. 3. Program source code and basic block execution graph.Evaluating our trace backwards, basic block by basicblock, calculating the robust state and the amount ofunACE bits for every basic clock instruction, weobtained a total of 1099 unACE bits, as show in Fig. 4.In order to compute the robustness using the formulapresented previously in equation 15 is necessary tocalculate the robust bits (unACE bits) of all register ofthe 6502 architecture in all 57 instruction of the programexecution trace.By dividing the amount of unACE bits of the programtrace evaluation (1099) by the amount programinstructions executed (57) multiplied by the sum of allprocessor registers sizes (39), we obtained therobustness evaluated with the analysis as 49.44%.This result was expected to be equal to the evaluationwith fault injection because, in this proof of concept, theevaluated program was sufficiently simple to allow us toperform an exhaustive fault injection campaign coveringall possible bits of all possible processor registers in allprogram execution points.Basic BlocksDescriptionInstructionA X Y N V B D I Z C SRegisters unACE bitsAll registers can be ignored. BREAK 8 8 8 1 1 1 1 1 1 1 8 39 1 39JRead from A: change its robustness to 0. STA $0232 0 8 8 1 1 1 1 1 1 1 8 31 1 31G (->J) Nothing changed. JMP $022B 0 8 8 1 1 1 1 1 1 1 8 31 1 31Read from Z: change its robustness to 0. BNE $020E 0 8 8 1 1 1 1 1 0 1 8 30 1 30Write on X, N and Z: change N and Z robustness to 1 and XF (->G) robustness to 8.DEX 0 0 8 1 1 1 1 1 1 1 8 23 1 23Read on X: change its robustness to 0.Read from A: change its robustness to 0. STA $0232 0 0 8 1 1 1 1 1 1 1 8 23 1 23Read from Z: change its robustness to 0. BNE $0215 0 0 8 1 1 1 1 1 0 1 8 22 4 88Write on Y, N and Z: change N and Z robustness to 1 and Yrobustness to 8.DEY 0 0 0 1 1 1 1 1 1 1 8 15 4 60E (->F) Read on Y: change its robustness to 0.Write on A, N, B, Z and C: change N, B, Z and C robustnessADC $0233 0 0 0 1 1 1 0 1 1 0 8 13 4 52to 1 and A robustness to 8.Read from A, C and D: change its robustness to 0.Read from Z: change its robustness to 0. BNE $0215 0 0 0 1 1 1 0 1 0 0 8 12 4 48Write on Y, N and Z: change N and Z robustness to 1 and Yrobustness to 8.DEY 0 0 0 1 1 1 0 1 1 0 8 13 4 52E (->E) Read from Y: change its robustness to 0.Write on A, N, B, Z and C: change N, B, Z and C robustnessADC $0233 0 0 0 1 1 1 0 1 1 0 8 13 4 52to 1 and A robustness to 8.Read from A, C and D: change its robustness to 0.Write on Y, N and Z: change N and Z robustness to 1 and YDEY 0 0 0 1 1 1 0 1 1 0 8 13 4 52robustness to 8.Read from Y: change its robustness to 0.D (->E) Write on Y, N and Z: change N and Z robustness to 1 and Yrobustness to 8. LDY $0230 0 0 8 1 1 1 0 1 1 0 8 21 4 84Read from A: change its robustness to 0. STA $0233 0 0 8 1 1 1 0 1 1 0 8 21 4 84Read from Z: change its robustness to 0. BNE $020E 0 0 8 1 1 1 0 1 0 0 8 20 3 60Write on X, N and Z: change N and Z robustness to 1 and XF (->D)DEX 0 0 8 1 1 1 0 1 1 0 8 21 3 63robustness to 8.Read from X: change its robustness to 0.Read from A: change its robustness to 0. STA $0232 0 0 8 1 1 1 0 1 1 0 8 21 3 63C (->D) Read from A: change its robustness to 0. STA $0232 0 0 8 1 1 1 0 1 1 0 8 21 1 21Read from Z: change its robustness to 0. BEQ $0229 0 0 8 1 1 1 0 1 0 0 8 20 1 20Write on A, N and Z: change N and Z robustness to 1 and Arobustness to 8. LDA $0230 8 0 8 1 1 1 0 1 1 0 8 29 1 29B (->C)Write on X, N and Z: change N and Z robustness to 1 and Xrobustness to 8.DEX 8 0 8 1 1 1 0 1 1 0 8 29 1 29Read from X: change its robustness to 0.Read from Z: change its robustness to 0. BEQ $0224 8 0 8 1 1 1 0 1 0 0 8 28 1 28A (->B) Write on X, N and Z: change N and Z robustness to 1 and Xrobustness to 8. LDX $0231 8 8 8 1 1 1 0 1 1 0 8 37 1 37unACE bitsRepetitionTotal unACE bitsTotal program unACE bits 109950%40%30%20%10%0%79157235313391469547625703781859937101510931171124913271405148315611639171717951873195120292107Fig. 2. Robustness chart using fault injection experiments.2185Fig. 4. Basic block analysis with the proposed methodology.B. Experimental EvaluationIn order to compare our methodology with a faultinjection campaign we designed a set of experiments tocalculate the robustness against transient faults of fiveprograms: NAS Parallel Benchmark (version 3.3) BT,CG, FT, LU and SP with their smallest class (S).JP2011-79


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011The fault injection environment used in this part f theexperimental evaluation uses a tool based on Intel PIN[7] to flip a single randomly chosen bit of a randomlychosen processor register in an also randomly chosenpoint of a program execution.In order to calculate the selected benchmarksprogram’s robustness against transient faults using themethodology proposed in this work we used a tool basedon Intel PIN [7] to store in a trace file the data collectedduring a program execution. In the stored data are theamount and the order of execution of every executedprogram’s basic block, and also all processorinstructions that compose all stored basic blocks.We also developed a program to read the storedprogram trace and, based on information about howprocessor instructions deal with registers, calculate theprogram’s robustness of each processor register byanalyzing the program trace backwards, as suggests thepresented methodology.As we present in Fig. 5, the calculated robustnessusing our methodology is always lower than thecalculated using fault injection executions or it can behigher (but almost the same) depending on the amountof executions done to calculate de robustness using faultinjection and the random number generator and seedused.Our methodology will score a lower robustnessbecause the approach of using fault injection is moredata dependent than our proposal and can mask possibleDUE and SDC as unACE.On the analysis of the CPU time spent during therobustness calculation using the proposed methodologyin Fig. 6, we used on average almost 60% of the timeneeded to run enough experiments using the besttheoretical fault injection method and achieve 2% ofstandard deviation in the statistical approximation.Also, comparing the CPU time spent during therobustness calculation using the proposed methodologywith a real fault injection environment used based ondynamic instrumentation to inject the faults, we neededon average only 1.22% of the time needed to achieve 2%of standard deviation in the fault injection statisticalapproximation.RobustnessTime (in seconds)100%90%80%70%60%50%40%30%20%10%0%100.000Fig. 5. Our methodology vs. fault injection robustness’s.10.0001.00010010129,88%420,6555,41%57,35%56,05%Fig. 6. Time spent on calculating robustness’s.49,71%BT CG FT LU SP1.205,7469.537,41Our Methodology251,11528,1618.877,20448,8362,34%Fault Injection687,68BT CG FT LU SPOur Methodology15.227,9628,93%143,38161,5239,14%Fault Injection theorical best time to achive 2% of standard deviationFault Injection using instrumentation to achive 2% of standard deviation21.590,25157,9439,18%268,0044,94%28.074,19V. CONCLUSION AND FUTURE WORKEvaluate a program’s robustness against transientfaults by using software based fault injectionenvironments and executing the evaluated program forhundreds or even thousands of times can be anexpensive task by the amount of CPU time needed toobtain a statistical approximation of the desired result,even using any type of parallelism.In this paper we proposed a methodology calculate aprogram’s robustness against transient faults based oninformation about the processor architecture used and onan execution trace of the program running over thearchitecture.The proposed methodology calculate the preciseamount of unACE bits by analyzing the execution tracebackwards and saving time by using the partial results ofrepetitions that happened during program execution.We were able to calculate the robustness almost 41%faster on average than running the programs evaluatedwith the fastest theoretical fault injection mechanismenough times to score 2% of standard deviation of theunACE cases.The next step of our work is to improve ourexperimental evaluation with more benchmarks used bythe referenced work, evaluating both the robustness andthe amount of time needed to do all experimentation.Also, as in this first step of our methodology we onlyclassify the unACE bits, in a next step of our work wewill divide the ACE bits in two classifications: DUE andSDC. By knowing precisely the amount of DUE bits of aprogram will improve even more our robustnessevaluation.ACKNOWLEDGESThis research has been supported by the MICINNSpain, under contract TIN2007-64974.REFERENCES[1] N. J. Wang, J. Quek, T. M. Rafacz, S. J. Patel, “Characterizingthe Effects of Transient Faults on a High-Performance ProcessorPipeline,” in Proceedings of the 2004 International Conferenceon Dependable Systems and Networks, pp. 61—70.[2] R. Baumann, “Soft errors in advanced computer systems,” inDesign & Test of Computers, 2005, vol. 22, pp. 258—266.[3] B. Nicolescu, R. Velazco, “Detecting soft errors by a purelysoftware approach: method, tools and experimental results,” inDesign, Automation and Test in Europe Conference andExhibition, 2003, pp. 57—62.[4] N. Oh, P. Shirvani, E. McCluskey, “Error detection by duplicatedinstructions in super-scalar processors,” in IEEE Transactions onReliability, 2002, vol. 51, pp. 63—75.[5] G. A. Reis, J. Chang, N. Vachharajani, R. Rangan, D. I. August,S. S. Mukherjee, “Software-controlled fault tolerance,” in ACMTransactions on Architecture and Code Optimization, 2005, vol.2, pp. 366—396.[6] G. A. Reis, J. Chang, D. I. August, R. Cohn, S. S. Mukherjee,“Configurable Transient Fault Detection via Dynamic BinaryTranslation,” in Proceedings of the 2nd Workshop onArchitectural Reliability (2006).[7] C. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S.Wallace, V. J. Reddi, K. Hazelwood. “Pin: building customizedprogram analysis tools with dynamic instrumentation” inProceedings of the 2005 ACM SIGPLAN conference onProgramming language design and implementation, pp. 190—200.JP2011-80


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Biblioteca de Altas Prestaciones para laResolución de Problemas MatricialesEstructuradosPedro Alonso-Jordá 1 , Pablo Martínez-Naredo 2 , F.J. Martínez-Zaldívar 3 , José Ranilla 4 yAntonio M. Vidal 5Resumen— Este artículo presenta StructPack, unabiblioteca o conjunto de subrutinas y programas queresuelven sistemas lineales estructurados, sobre arquitecturasde última generación, tanto secuenciales comoparalelas. Es un paquete de software en continuaevolución que actualmente contiene rutinas para laresolución de sistemas con matrices Toeplitz simétricastridiagonales y simétricas. StructPack puede serdescargado desde http://www.inco2.upv.es.Palabras clave— Biblioteca de software, matrices estructuradas,ToeplitzI. IntroducciónEn numerosos problemas de Ingeniería y Ciencia,la computación matricial es útil, esencial y necesaria.A menudo, los tipos de problemas matriciales queaparecen en muchos de ellos son problemas estándarbien conocidos. Las bibliotecas matriciales existentesson una útil herramienta que permiten al especialistade un campo concreto centrarse en resolver su problema,ahorrando horas de programación de rutinasnuméricas con las que éste no suele estar familiarizado.En la actualidad, existe un gran número de bibliotecasmatriciales que cubren un amplio abanicode aplicaciones científicas y tecnológicas. Por citaralgunas de ellas, nos encontramos con: LAPACK[1], ScaLAPACK [2], PETSc [3], SuperLU [4], AR-PACK [5],. . . o implementaciones comerciales comoMatlab [6], Mathematica [7], etc. Las más significativas,por ejemplo las descritas en [1], [2], [3] y[4], están diseñadas para obtener prestaciones óptimassobre computadores paralelos, bien con memoriacompartida o bien con memoria distribuida.Muchas de las bibliotecas matriciales están diseñadaspara una o más clases de matrices. Por ejemplo,LAPACK trabaja con matrices banda o densas ysus rutinas están optimizadas para este tipo de matrices.Similarmente, ARPACK está diseñada paratrabajar con matrices dispersas.Por otra parte, las matrices que surgen en muchosproblemas científicos o técnicos a menudo tie-1 Departamento de Sistemas Informáticos y Computación,Universitat Politècnica de València (Spain), email:palonso@dsic.uvp.es2 Departmento de Informática, Universidad de Oviedo(Spain), email: pmnaredo@gmail.com3 Departamento de Comunicaciones, Universitat Politècnicade València (Spain), email: fjmartin@dcom.upv.es4 Departmento de Informática, Universidad de Oviedo(Spain), email: ranilla@uniovi.es5 Departamento de Sistemas Informáticos y Computación,Universitat Politècnica de València (Spain), email:avidal@dsic.upv.esnen una estructura explícita (matrices estructuradas).Algunos ejemplos típicos de matrices estructuradasson las matrices Toeplitz, Hankel, Vandermonde,Cauchy, matrices circulantes, etc. Existen numerosasáreas en las que a menudo pueden verse estostipos de matrices. Sin ánimo de ser exhaustivospodemos citar: procesado de imágenes y señales engeneral, resolución de ecuaciones diferenciales e integrales,cálculo de funciones spline, análisis de seriestemporales, cadenas de Markov y Teoría de Colas,computación de series de potencias y polinómicas,etc. (véanse como ejemplos las referencias [8], [9],[10], [11], [12]).Existe un cierto vacío en el campo de las bibliotecasmatriciales: el de las matrices estructuradas. Escierto que ello representa un amplio y ambiguo conjuntode métodos de procesado que son dependientesdel tipo de matriz. Asimismo, es difícil concebiruna biblioteca eficiente para un gran número de casosy con cierta coherencia en el uso de la tecnologíacomputacional. En otras palabras, la creación de unabiblioteca de estas característias es un importantedesafío de trascendencia científica y tecnológica.Los precedentes más significativos para esta ideason los desarrollos presentados en Netlib [13] y SLI-COT [14]. El primero es un conjunto de rutinas queresuelven sistemas lineales de ecuaciones que datanprincipalmente de 1982 y llegan a formar parte deNetlib en los 90. El segundo precedente es un conjuntode subrutinas incluidas en el paquete SLICOTpara resolver sistemas de ecuaciones lineales con matricesToeplitz generales, matrices Toeplitz simétricasy definidas positivas y matrices Toeplitz a bloques.Hemos empezado la tarea de desarrollar una bibliotecapara el tratamiento de matrices estructuradas,motivados por su uso en numerosas aplicacionesde Procesado de Señal. La biblioteca, denominadaStructPack, tiene como objetivo la resoluciónde problemas matriciales computacionales típicoscon matrices estructuradas. Estos problemas sonfundamentalmente la resolución de sistemas linealesde ecuaciones lineales, resolución de problemas demínimos cuadrados, cálculo de autovalores y autovectores,y de la descomposición en valores singulares.Algunos de estos problemas han sido tratadospor algunos de los autores durante los últimos años[15], [16], [17], [18], [19]. La biblioteca está concebidapara que pueda ejecutarse sobre arquitecturasparalelas, tanto en entornos de memoria compartidaJP2011-81


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011como en entornos de memoria distribuida. A tal efectose están utilizando en su implementación entornoscomo OpenMP o MPI. También está previsto incorporarsubrutinas que permiten su utilización sobreGPU. Para ello se está utilizando el entorno CUDAde NVIDIA.Dada la amplia variedad de problemas queStructPack trata de abarcar, es inconcebible mostrarlocomo un producto cerrado y finalizado.Así pues, nuestros objetivos de diseño implican eldesarrollo progresivo de distintas rutinas. Esto tambiénpermitirá la retroalimentación necesaria paraasegurar la calidad en los desarrollos.En este artículo presentamos las ideas básicas quehan ayudado a diseñar la biblioteca y mostramosuna perspectiva general de su funcionalidad. Tambiéndescribimos el estado actual de los desarrollospresentes y cuáles son los siguientes a ser incluidos acorto plazo.El resto del artículo está organizado de la siguientemanera: la sección 2 describe algunas característicasgenerales de la biblioteca y algunos problemas que yahan sido resueltos por las rutinas de StructPack; lasección 3 muestra las principales características de lapágina web que permite acceder a la descarga de labiblioteca y a su descripción; la sección 4 presentalas capacidades de la biblioteca y algunos ejemplosde uso; por último, la sección 5 muestra las futuraslíneas de trabajo.II. Resolución de problemas estructuradoscon StructPackStructPack es una biblioteca de rutinas numéricasque resuelven problemas de Álgebra LinealNumérica con matrices estructuradas. Las rutinasestán escritas en Fortran 90/95, pero también puedenser llamadas desde C para lo que se han proporcionadolas interfaces adecuadas. Actualmente, laversión v0.1 está diseñada para un entorno Linuxy optimizada para su uso en CPU de tipo secuencialy multinúcleo, para lo cual se han utilizado lasAPI de OpenMP en su desarrollo. Las versiones paraotros sistemas operativos como Windows u otrosparadigmas de programación como memoria distribuidao para unidades aceleradoras gráficas (GPU),serán añadidas en sucesivas versiones.Los problemas a resolver con StructPack son losproblemas clásicos del Álgebra Lineal Numérica, estoes, la solucion de sistemas lineales de ecuaciones, solucióna los problemas de mínimos cuadrados, cálculode valores y vectores propios y de la descomposiciónen valores singulares. Los algoritmos implementadosen StructPack para resolver los problemas citadosanteriormente actúan sobre diferentes tipos de matrices,como matrices Toeplitz, Hankel, Vandermonde,matrices circulantes, . . . , y en general, sobre matricesque presentan estructura de desplazamiento [9]. Elloincluye casos específicos dentro de cada uno de lostipos previamente indicados, como matrices Toeplitztridiagonales, matrices simétricas definidas positivas,etc.StructPack ha sido diseñado utilizando algoritmoseficientes. Básicamente se utilizan algoritmosque usan las propiedades de desplazamiento de matricesestructuradas, siendo éstos optimizados paraarquitecturas multinúcleo. Para operaciones simplesde complejidad lineal o cuadrática, se han utilizadolos núcleos computacionales BLAS [20]. También seutilizan bibliotecas para el cálculo de la FFT, bien labiblioteca MKL de Intel [21] (si el usuario la proporciona),bien la biblioteca FFT Pack [22]. El códigofuente puede ser compilado bien utilizando compiladoresde dominio público, como GNU gcc [23], bienpor compiladores comerciales como los compiladoresde Intel.Una característica adicional e importante de la bibliotecaes que proporciona comandos para resolverproblemas directamente desde la línea de comandos.Esto proporciona una importante facilidad deuso inicial. StructPack también proporciona ficheros.mex permitiendo su uso en entornos de tipo Octave/Matlab.Actualmente, las rutinas incluidas en la bibliotecapueden ser utilizadas para:Resolver sistemas lineales con matrices de tipoToeplitz tridiagonales y simétricas.Calcular autosistemas y descomposición en valoressingulares de matrices Toeplitz tridiagonalessimétricas.Resolver sistemas lineales de ecuaciones de matricesToeplitz simétricas.Resolver sistemas lineales de ecuaciones de matricesToeplitz no simétricas.Próximamente, serán incorporadas rutinas para calcularvalores y vectores propios de matrices Toeplitzsimétricas.Toda la información sobre StructPack es de dominiopúblico y es accesible en [24]. Las siguientessecciones describen con detalle el contenido dela página web y las características principales deStructPack.III. Descripción de la página webLa estructura de la página web de Struct-Pack está organizada de manera convencional.Así pues, tiene una página “Principal” (“Main page”)y algunas pestañas para la “Instalación” (“Installation”),“Documentacion” (“Documentation”),“Test”, “FAQs”, etc.La página principal muestra una presentación delsitio web, la licencia de uso del software y las novedadesde la última versión. Además, también apareceuna breve descripción de los grupos de investigacióninvolucrados en el desarrollo del paquete, así comolos proyectos relacionados. Los siguientes ítems resumenlas pestañas más relevantes:“Documentation”: aquí se muestra un enlace ala documentación generada del software. En estadocumentación podremos encontrar toda la especificaciónde las API, así como los comandosdisponibles.JP2011-82


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011“Test”: en esta pestaña se muestra cómo ejecutarlos tests de rendimiento para obtener losresultados de tiempos de ejecución y precisióndel paquete instalado en la máquina.“Working Notes”: las notas de trabajo o workingnotes estarán almacenadas en esta pestaña. Estasección contendrá toda la información detalladarelacionada con el paquete completo, con algunassubrutinas, resultados de rendimiento, conclusiones,etc. El acrónimo escogido es SPAWNpor StructPAck Working Notes.“FAQs”: la pestaña de preguntas más frecuentesincluyen cuestiones generales, de instalación,cómo utilizar o programar con StructPack,cuestiones o problemas respecto a diferentes plataformaso sistemas operativos, así como asuntosvarios.“Third Party Software”: o software de terceros,conteniendo esta pestaña enlaces hacia los sitiosweb de todo el software utilizado para producirStructPack. El software está agrupado de lasiguiente manera:• Compiladores: gcc, gfortran, icc and ifort.• Software para el control de versiones:subversion.• Documentación del software generado:doxygen.• Edición de textos: vi (vim, gvim, ...)• Configuración del entorno: libtool, autoconf• Etc.“References”: en esta pestaña podemos encontrarreferencias bibliográficas utilizadas paraproducir StructPack. Se incluyen tanto el trabajoprevio propio en estos problemas algebraicoscomo otras publicaciones relacionadas.Además, se incluyen enlaces hacia otros sitiosweb con contenidos similares.“Installation”: conteniendo las tres típicas seccionesde “How to install” (“Cómo realizar lainstalación”), “Download” (“Descarga”) e “InstallationTest” (“Test de la instalación”). En lasección de “Download” cualquiera de las últimasversiones puede ser escogida y descargada. Lapestaña de “Installation Test” muestra la formade comprobar que la instalación ha sido correcta.En la sección de “How to Install” se muestran todoslos detalles sobre cómo obtener una instalacióncorrecta. Se utiliza un proceso típico de instalaciónbasado en tres pasos: $ ./configure,$ make y $ make install.En el paso de configure se chequea el sistemadonde el paquete va a ser instalado y se crean losoportunos ficheros Makefile para la construccióndel paquete. Algunas opciones, como por ejemplola ruta de instalación, compiladores y bibliotecas,etc., pueden ser especificadas en tiempode configuración si se desea modificar los valorespor defecto de la instalación. El paso Makeconsiste en la compilación y enlazado de todaslas bibliotecas y programas de StructPack. Seconstruyen tanto las versiones estáticas como lasdinámicas de las bibliotecas, a menos que se contraindiqueen el momento de la configuración.Finalmente, el paso de make install traslada elsoftware y la documentación hacia la carpetadestino deseada.Por defecto, los códigos fuente se compilan utilizandolos compiladores de GNU, aunque actualmentelos compiladores de Intel son igualmentesoportados.StructPack ha sido diseñado utilizando algoritmoseficientes que utilizan kernels computacionalesde tipo BLAS para operaciones de complejidadde orden cuadrático o lineal. Así pues, bienuna implementación genérica de BLAS (ésta esla opción por defecto), bien la biblioteca MKLde Intel, bien cualquier otro paquete compatibledebe estar de manera obligatoria previamenteinstalado. StructPack también incluye y utilizabibliotecas para el cálculo de la FFT. Labiblioteca FFT Pack [22] es parte de Struct-Pack, pero el usuario puede utilizar igualmentela solución provista por la biblioteca MKL deIntel.La figura 1 muestra parcialmente la informaciónque proporciona esta pestaña. Para una descripcióndetallada del proceso de instalación se sugiereexaminar [24].IV. Utilización de la biblioteca y de loscomandosActualmente StructPack ofrece la solución a sistemaslineales Toeplitz donde la matriz problemapuede ser simétrica tridiagonal o completamentesimétrica. El usuario tiene dos posibilidades en elmomento de utilizar el paquete para resolver esteproblema: puede implementar su propia aplicaciónutilizando los módulos de la biblioteca proporcionadospor StructPack o puede utilizar comandos disponiblesdesde la consola del sistema operativo pararesolver este problema.La manera más natural de utilizar nuestros móduloses mediante el diseño de una aplicación escritaen Fortran 90. Actualmente, el paquete proporcionalos módulos tpsysv_module (caso completamentesimétrico) y tpsytrid_module (caso tridiagonalsimétrico). Pueden ser utilizados tal y como se muestraen el siguiente ejemplo simplificado:program tpsysv_testuse tpsysv_moduleimplicit nonedouble precision, dimension(100) :: t, x, binteger :: nb = 20logical :: pivoting = .true.call random_number( t )call random_number( b )call tpsysv( t, x, b, nb, pivoting )end program tpsysv_testLa rutina tpsysv obtiene la solución x del sistemalineal Tx = b dada la primera columna (fila) t deJP2011-83


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 1. Installation instructionsT y el vector de la parte derecha de la igualdad b.La aplicación se obtiene enlazando con la bibliotecastructpack.a proporcionada por el paquete.Para su uso en una aplicación escrita en C,el paquete proporciona el fichero de cabeceratpsysv_module.h que debe ser incluido, y el módulode Fortran 90 ctpsysv_module.F90 con el quela aplicación debe ser enlazada. Cada módulo deStructPack que resuelve un problema dado tienesu contrapartida en el módulo correspondiente cuyonombre posee como prefijo la letra c. Este módulo hacede interfaz con C para que sea posible llamar a unarutina ó módulo de Fortran 90 desde la aplicaciónescrita en C. Utiliza el módulo iso_c_binding queproporciona interoperatividad entre C y Fortran. Porejemplo, la rutina ctpsysv puede ser llamada desdecódigo fuente escrito en C manteniendo el nombre,número y tipos de argumentos de la rutina driver allamar y descrita en el módulo, como sigue:subroutine ctpsysv(n, t, x, b, nb, piv ) bind(c)integer(kind=c_int), value, intent(in) :: nreal(c_double), dimension(n), intent(in) :: treal(c_double), dimension(n), intent(out) :: xreal(c_double), dimension(n), intent(inout) :: binteger(kind=c_int), value, intent(in) :: nbinteger(kind=c_int), value, intent(in) :: piv. . .end subroutine ctpsysvEn la actualidad, el paquete proporciona dos comandosque permiten al usuario resolver cada unode los problemas abordados: tpsysv y tpsytrid. Unejemplo de llamada podría ser: tpsysv -n 100 -p.En este ejemplo, el comando resuelve el problemacon una matriz Toeplitz simétrica de orden 100 generadaaleatoriamente. El comando retorna el tiempode ejecución. La opción --help muestra las opcionesdisponibles que permiten especificar al comando, porejemplo, los datos de entrada, guardar la solución enun fichero, etc. Otra información útil que puede retornarel comando es relativa a la precisión de losresultados. Por ejemplo, la siguiente llamada:tpsysv -n 100 -p --raw-results --raw-headers \--random-seed=123retorna algunas estadísticas sobre la precisión de losresultados:# n Time (sec.) Forward error Backward error#===================================================100 0.19 1.16e-13 3.02e-16V. El futuro de StructPackUno de los objetivos de los autores de este paquetees la difusión de su existencia dentro de la comunidadcientífica, así como su mantenimiento. Enel futuro, el equipo de trabajo irá consolidando losmétodos existentes, resolviendo problemas que puedensurgir de su uso por parte de otros investigadores.Respecto a la solución de sistemas lineales,estamos actualmente trabajando en sistemas linealesHermíticos complejos no simétricos de matricesToeplitz. La base matemática, que se utiliza parala implementación eficiente de la rutina que solucionael problema simétrico en sistemas multinúcleos,puede extenderse para la solución de un amplio rangode problemas de tipo Toeplitz, como problemascon estructura Toeplitz a bloques, bloques Toeplitz,Toeplitz+Hankel, etc. Más aún, el problema linealde mínimos cuadrados con matrices de tipo Toeplitztambién se puede resolver con técnicas similares, porlo que serán parte de nuestro software. La extensióna otras clases de matrices estructuradas (no de tipoToeplitz) como Vandermonde también son parte denuestros objetivos.La solución del problema de valores y vectores propiosy del problema de valores singulares involucran-JP2011-84


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011do matrices estructuradas, también es un objetivoimportante de nuestro proyecto. Algunas propuestasestán basadas en la solución de sistemas lineales comolos mencionados anteriormente, por lo que sóloresta incorporarlos a nuestro paquete.AgradecimientosEste trabajo ha sido financiado por el Ministerioespañol de Ciencia e Innovación y por FEDER(proyectos TIN2010-14971, TIN2008-06570-C04-02,TEC2009-13741 y CAPAP-H3 TIN2010-12011-E),Universitat Politècnica de València mediante el “Programade Apoyo a la Investigación y Desarrollo(PAID-05-10)” y la Generalitat Valenciana medianteel proyecto PROMETEO/2009/013.Referencias[1] “Lapack,” http://www.netlib.org/lapack/.[2] “Scalapack,” http://www.netlib.org/scalapack/.[3] “Petsc,” http://www.mcs.anl.gov/petsc/petsc-as/.[4] “SuperLU,” http://crd.lbl.gov/~xiaoye/SuperLU/.[5] “Arpack,” http://www.caam.rice.edu/software/ARPACK/.[6] “Matlab,” http://www.mathworks.com/products/matlab/.[7] “Mathematica,” http://www.wolfram.com/mathematica/.[8] J.R. Bunch., “Stability of methods for solving Toeplitzsystems of equations,” SIAM J. on Scientific and StatisticalComputing, vol. 6, no. 2, pp. 349–364, April 1985.[9] T.Kailath and A.H.Sayed, “Displacement structure:Theory and applications,” SIAM Review, vol. 37, no.3, pp. 297–386, September 1995.[10] T.Kailath and A.H.Sayed, Eds., Fast Reliable Algorithmsfor Matrices with Structure, SIAM, Philadelphia, PA,1999.[11] Dario Bini, “Toeplitz matrices, algorithms and applications,”ERCIM News, , no. 22, July 1995.[12] V.Olshevsky, Ed., Fast Algoritmhs for Structured Matrices:Theory and Applications, SIAM, Philadelphia, 2003.[13] “Netlib,” http://www.netlib.no/netlib/toeplitz/.[14] “Slicot,” http://www.slicot.org/.[15] L. Graciá, P. Alonso, and A.M. Vidal, “Solution of symmetricToeplitz linear systems in GPUs,” in CMMSE’09International Conference on Computational and MathematicalMethods in Science and Engineering, Gijón (Asturias),España, June 2009.[16] A.M. Vidal, V.M. García, P. Alonso, and M.O. Bernabeu,“Parallel computation of the eigenvalues of symmetricToeplitz matrices through iterative methods,” Journalof Parallel and Distributed Computing, vol. 68, pp. 1113–1121, August 2008.[17] M.O. Bernabeu, P. Alonso, and A.M. Vidal, “A multilevelparallel algorithm to solve symmetric Toeplitz linearsystems,” The Journal of Supercomputing, vol. 44, pp.237–256, June 2008.[18] P. Alonso and A.M. Vidal, “Cauchy-like system solutionon multicore platforms,” in PARA 2008 9th InternationalWorkshop on State-of-the-Art in Scientific andParallel Computing, Trondheim, Noruega, May 13 2008,Proceedings of PARA 2008, NTNU.[19] P. Alonso, J.M. Badía, and A.M. Vidal, “Solving theblock-Toeplitz least squares problem in parallel,” Concurrencyand Computation: Practice and Experience, vol.17, pp. 49–67, January 2005.[20] “Blas,” http://www.netlib.org/blas/.[21] “Intel MKL,” http://software.intel.com/en-us/articles/intel-mkl/.[22] “FFTPack,” http://www.netlib.org/fftpack/.[23] “GNU gcc,” http://gcc.gnu.org/.[24] “StructPack,” http://www.inco2.upv.es/structpack.php.[25] Alonso-Jordá P., P. Martínez-Naredo, F.J. Martínez-Zaldívar, J. Ranilla, and Vidal A.M., “Building a libraryfor solving structured matrix problemas,” in Proceedingsof the International Conference CMMSE, Benidorm,Spain, June 26–29 2011.JP2011-85


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-86


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011A translator framework for DynamicProgramming problemsAlejandro Acosta 1 , Francisco Almeida 2 and Ignacio Peláez 3Abstract— The advent of multicore systems, joinedto the potential acceleration of the graphics processingunits, has given us a low cost computation capabilityunprecedented. The new systems alleviatesome well known important architectural problems atthe expense of a considerable increment of the programmabilitywall. The heterogeneity, both at architecturaland programming level at the same time,raises the programming difficulties. As a contributionin this context, we propose a development methodologyfor the automatic source-to-source transformationon specific domains. This methodology is successfullyinstantiated as a framework to solve DynamicProgramming problems. As a result of applying ourframework, the end user (a physicist, a mathematicianor a biologist) can express her problem through alatex equation and automatically derive efficient parallelcodes for current homogeneous or heterogeneousarchitectures. The approach allows an easy portabilityto new potential emergent architectures.Keywords— Dynamic Programming problems,Source to source transformation.I. IntroductionCurrent generation of computers is based on architecturesbased on multiple identical processing unitscomposed of several cores (multicores) and it is expectedthat the number of cores per processor beincremented every year. It is also a well know factthat the current generation of compilers is not beingable to transfer automatically the capacity of the newprocessing units to the applications. The situationis further complicated given that current architecturesare of heterogeneous nature, where this multicoresystems can be combined, for example, withthe capabilities of using GPU system as general purposeprocessing architectures. This fact constitutesa severe difficulty that is appearing in the form of abarrier to the programmability.Many are the proposals to tackle with this problem.Leaving aside the proposals based on the developmentof new programming languages, due toinconvenience caused to the user (new learning effortand code reusability), many of the approachesare based in the source-to-source transformation ofsequential code into parallel code or in the transformationof parallel code designed for one architectureinto parallel code for a different one [1], [2],[3]. Another different approach is based in the use ofskeletons. The programmer is provided with a set ofpatterns already parallelized that constitute a frameto develop parallel code, just by supplying sequentialcode [4], [5]. It worth also to mention the reasearch1 e-mail: aacostad@ull.es.2 e-mail: falmeida@ull.es.3 e-mail: ignacio.pelaez@gmail.com.on frameworks devoted to build the former sourceto-sourcetransformers [6], [7].Although technologically impressive, none oftheprojects based in skeletal parallel programming haveachieved significant popularity in the wider parallelprogramming community. However, we claim thatmany of the developments made in the context ofskeletal programming may play an important rolein the automatic code generation based in sourceto-sourcetransformations. An important difficultyin the source-to-source transformation process is totransform sequential code sections into their parallelequivalent sections. That implies that the transformermust know in advance the sections to be parallelized,and how they should be translated, typicallythe user annotates the sections to be transformed.An interesting feature of parallel skeletons is thatthe parallelism is hidden to the end user and is encapsulatedinto parallel patterns. Usually, the user fillsgaps in the skeleton by providing sequential codes.New parallelizations (for new architectures for example)can be developed without any modificationof the sequential code supplied by the user.We have developed a source-to-source translatorbased in skeletons that generates code for many parallelarchitectures. The main goal is that the enduser may obtain parallel code, without any knowledgein programming, just by defining her problemusing a more natural language as the mathematics.An advantage of our approach is that, in general, asource-to-souce transformation from sequential codeto sequential code is semantically easier to developthat a transformation from sequential to parallelcode. That is one of the fundamentals of our project,we automatically fill the sequential gaps in a parallelskeleton starting from a very user friendly specification.The parallelism is automatically provided bythe skeleton and can be very easily extended. Sincemany parallel skeletons have been already developedand they work efficiently in current architectures,once the transformers have been developed, the levelof productivity in terms of parallel code generated ishighly increased.As a proof of concept we apply the methodologyto the dynamic programming technique. As a resultof this research it raises an specification languagefor Dynamic Programming problems that also constitutesa contribution of this work.This remaining of the paper has been structuredas follows: in section II we present the methodologythat we propose to broach the problem, in sectionIII we raise the framework developed in the contextJP2011-87


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011of Dynamic Programming problems and in sectionIV we include some computational results obtainedfrom our tool and point out the high productivityachieved by the approach while keeping the efficiencyat the same time. Finally we end the paper withsome concluding remarks and future lines of work.II. The methodologyUsually, source-to-source translators are used tomake easier the work of developers. The source languageuse to have a higher abstraction level than thetarget language. Many translator have been developedand they typically follow the common structurethat operates in two different phases, the Front-endand the Back-end. In the skeletal based translationwe propose to follow the same structure but introducingnew layers and providing an increased generalabstraction view (Figure 1). The proposal is close tothat presented in [7]. In this case, the code generatedby the Back-ends is the input code for a parallelskeleton. The input code in a parallel skeleton useto be a sequential code that is guarantied to be executedin parallel through the parallel patterns encapsulatedinto the skeleton. This patterns are adaptedto several platforms. New parallel patterns can bedeveloped for new architectures and also the skeletonsare suitable for static and dynamic optimizations.Note that we separate the source to sourcetransformation from the parallelization. The transformationsare only of sequential codes to sequentialcodes, while the parallelizations are abstracted intothe skeletons. The parallel code generated by ourBack-end is suitable to be executed in many parallelarchitectures in terms of the parallel skeleton to becombined for the execution.Using this model, we propose a design structurewhere each of the phases can be overviewed as sourceto-sourcetranslators (Figure 1). The Front-end maybe seen as a source-to-source translator that generatesan intermediate code, and the Back-end receivesas input this source intermediate code and generatethe output. By adding the skeletons the model allowsto develop a source translator, that generates intermediatecode independent from the architecture,and also a second target translator independent fromthe input intermediate language that generates anoutput code adapted and optimized for different architectures.This model is quite flexible since allows the use thesame target translator, and different source translators,to generate parallel code starting from variousinput languages. Or, at the same time, the use or thesame source translator, and different target translators,to produce output code for different skeletalsoftware platforms. The target code generated bythe target translator can be used in many differentparallel architectures just by combining the skeleton.New adapted skeletons can be developed fornew emergent architectures without any change nornew developments in the whole translation process.As a proof of concept we have implemented asource-to-source translator that follows this model(Figure 2). The translator is directed to solve DynamicProgramming problems on parallel architectures.Of course, although the specific developmentof this paper is oriented to the Dynamic Programmingtechnique, the same development model canbe applied to many other contexts.III. The dynamic programming technique: aproof of conceptDynamic Programming (DP) is an importantproblem-solving technique that has been widely usedin various fields such as control theory, operationsresearch, economy, biology and computer science [8],[9]. In DP an optimal sequence of decisions is arrivedat by making explicit appeal to the principle ofoptimality.For example [10], however most of the parallelizationspresented are for specific DP problems (see[11], [12]) or are restricted to limited classes of recurrences.A unified parallel general approach waspresented in [13] as an extension to the work of [14]but the strong theoretical effort introduced in somecases dissuades us from using it as a model for developingparallel tools.In conclusion, generic parallel approaches for DPare limited to classes of problems or they are notsuitable to be assumed by a software component. Itis worth mentioning that another source of difficultiesis the fact that the notation used changes substantiallyfrom one formalization to the other. Inmost of the cases, how to obtain the optimal policyproviding the optimal solution is left outside of theformalizations, and usually remains expressed as anon-formalized, sometimes intuitive, procedure.Analyzing the software approaches for DP, wefound a group of general libraries for combinatorialoptimization problems such as [15], [16]. They areused to supply interfaces for sequential and parallelexecutions but in most of the cases DP is not consideredat all. Next, we can find specific DP sequentiallibraries such as [17], and interesting software approachesderived from laboratories that apply solverssuch as LINGO [18] to DP problems, following particularmethodologies. In [19] we contributed withDPSKEL, a parallel skeleton where many efficientparallelizations for DP on different architectures areoffered to the end user. The end user fills gaps ona C++ sequential code and the parallelism is automaticallyprovided. In [20] we presented DPSPEC,a XML specification for DP problems that could beused as an alternative instead of the C++ interfacefor the DP parallel skeletons. Although for a scientist(a biologist, a physician, or an economist) XMLis easier to manage, it still remains as a non naturalapproach. By other side, the problem of finding theoptimal policy after the optimal value is computedremained unsolved at that moment.As a contribution of this paper, we propose a newspecification language for DP problems that integratesall the elements of the DP technique, includ-JP2011-88


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011… … ...IntermediateCodeOutputCodeInputCodeSourceTranslatorTargetTranslatorSkeletonLanguage DependentFig. 1.PlatformDependentModel for the proposed architectureArchitectureDependenting how to compute the optimal policy. DP problemsusing this specification can be transformed automaticallyinto our parallel skeletons through our intermediatelanguage DPSPEC. To achieve it, DPSPECand the parallel skeletons have been conveniently extended.The input defines a structure where the user candefine the DP problem without any knowledge ofprogramming, using a more natural language as themathematics. The code for this structure is definedusing the L A TEX processor, widely used by thescientific community. The use of LaTeX is just aproof of concept, however from the methodologicalpoint of view, any other language can be translateto the intermediate DPSPEC code, such as MatLab.We define a template where the user can define theproblem to be solved and its parameters. We illustratethis specification using the well known DP approachfor the Knapsack Problem(Table I). As wecan see the input data and solution or a problem aredescribed at the InputData and OutputData sectionsrespectively, the DP recurrence in the sectionDP Recurrence. Note that when this section is defined,the decisions d k,c are included so that the optimalpolicy can be obtained from the specificationpresented in section F ormerDecision.This L A TEX code will be transformed using thetransformer Tex2DPS to DPSPEC. These design issuesmake the subsequent parsing easier and allowfor a better semantic analysis to detect data dependencies,all while adhering as closely as possibleto the user defined equation. The semantic analysisdetermines the traversing mode of the DP table.DPSPEC brings together the elements to describepiecewise defined functions, simple variablesand vectors, arithmetic, logical, relational and maxminoperators, and iterators. DPSPEC is the inputof a second translator (XML2Cpp), which isthe responsible for translating the XML specificationto C++ code. This code supplies the structureof a state and its evaluation through the functionalequations and the DP table is abstracted as a tableof states. DPSKEL provides the table and severalmethods to traverse it during the evaluation ofthe states. These methods allow different traversingmodes (by rows, by columns, by diagonals) andthe user picks the best that doesn’t violate the dependencesof the functional equations. Some recurrencesadmit several traversing modes in terms ofdependences, but the running time may vary fromone mode to the other. In the sequential case, thetraversing mode indicates that the states of the row(column or diagonal respectively) will be processedin sequence, while in the parallel case, the semanticappeals to the evaluation of the row (column ordiagonal respectively) using the whole set of processorssimultaneously. This approach allows to introduceany of the parallelization strategies designed forDP algorithms. The dimensions of the DP table aredependent of the instance and should be given atrunning time. DPSKEL skeleton follows the modelof classes described in the Mallba library and addsthose particular elements related to DP, while keepingthe features of efficiency and easiness of use atthe same time. The concepts of State and Decisionare abstracted into C++ classes required (Requiredsections in Figure 2) to the user. The user describesthe problem and the solution, and the methods toevaluate a state (the functional equation) and to getthe optimal solution. These classes are generated bythe translator XML2Cpp. The classes provided (Providedsections in Figure 2) by DPSKEL will allocateand evaluate the DP table supplying the necessarymethods to return the solution. Implementation detailsare hidden to the user. The flexibility in our approachallows to develop new translators from XMLto another library of skeletons providing new or differentfunctionalities.Since skeletons are defined for different architectures,shared memory, message passing, hybridshared memory/message passing (see Figure 2), themethodology provides a huge portability, specially ifJP2011-89


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLE ILatex specification for the Knapsack Problem⎧n ∈ N ⎪⎨C ∈ NInputData ≡p k ∈ N; k ∈ {0 . . . n − 1}⎪⎩w k ∈ N; k ∈ {0 . . . n − 1}# T he number of objects# T he capacity of the Knapsack# T he profit of object k# T he weight of object k{xk ∈ {0, 1}; k ∈ {0 · · · n − 1} # T he solution vectorOutputData ≡n − 1, C# T he index solutionDecisionDef ≡ { d k,c ∈ {0, 1}; k ∈ {0 · · · n − 1}; c ∈ {0 · · · C}# T he decisionsDP Recurrence ⎧ ≡⎨ 0 ⇒ d k,c = 0 if c < w kf k,c = p k ⇒ d k,c = 1 if k = 0 and c ≥ w k⎩max{f k−1,c ⇒ d k,c = 0, f k−1,c−wk + p k ⇒ d k,c = 1} if k ≠ 0 and c ≥ w k⎧# Assign solution k⎪⎨xF ormerDecision ≡ k = d k,c if k ≥ 0 and c ≥ 0# Next decision to assign⎪⎩k − 1; c − (w k ∗ x k ); if k > 0 and c ≥ (w k ∗ x k )SeqOpenMPLatexInputCodeTex2DPSSourceTranslatorXMLIntermediateCodeXml2CppTargetTranslatorOpenCL...MPIHybridRequired ProvidedSkeletonOutputCodeLanguage Dependent Platform Dependent Architecture DependentFig. 2.The proposed software architectureone consider that extending the approach to a newemergent platform, just means to include a new parallelskeleton.IV. Computational ResultsTo validate our methodology and the frameworkthat we have developed, we tested with several DynamicProgramming problems (Table II). Five differentDP recurrences have been considered that arequite representative of wide class of problems. Notethat the data dependences are different in most of theformula considered. That means that different paralleltraverses of the DP table can be required. We justrepresented the DP problems using our L A TEX specificationlanguage and automatically generated theparallel codes. Four parallel skeletons have been considered,the sequential one and parallel versions onOpenMP, MPI and MPI/ULL CALIBRATE. Thislast version is a distributed memory MPI versioncombined with the ULL CALIBRATE library [21]to optimize in run time through dynamic load balancing.The parallel platform used to execute our experimentsis an AMD Opteron 6128 node (4 processors,each processor composed of 8 cores), with 32 coressharing the memory. We have used only 20 of them inour tests. To simplify the experience, the tests havebeen developed using squared matrices of sizes 1000,2000 and 5000. Note that according to the dependencesof problems on Table II, that are graphicallyrepresented in Figure IV, several traversing parallelapproaches can be used to obtain the solution. Theparallel skeletons used compute rows in parallel inthe case of the RAP and KP, the MPP and TCPare processed by computing the diagonals down-topin parallel and in the case of GCP the diagonals arecomputed in parallel top-down.Table III shows the running times of the sequentialexecutions for all the proposed problems. This tableprovides a general view on the granularity of eachJP2011-90


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLE IIDynamic Programming test problemsProblemRecurrence0/1 KnapsackKP f i,j = max{f i−1,j , f i−1,j−wi + p i }Resource Allocation f i,j = p 1,j if i = 1 and j > 0RAP f i,j = max 0≤k 1) and (j > 0)Matrix ParentizationMPP f i,j = min i≤k


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLE IVRunning times of the RAP for several SkeletonsSkeleton OpenMP MPI MPI+ULL CALIBRATESize# cores # cores # cores2 4 8 16 20 2 4 8 16 20 2 4 8 16 201000 15 9 4 2.4 2 14 9 4 2.4 2 11 5 3 1.7 1.52000 126 73 39 20 16 119 70 37 19 16 81 44 23 12 105000 1993 1153 616 311 257 1882 1093 591 311 255 1304 700 399 180 141TABLE VRunning times for MPP, TCP, KP and GCPProblem MPP TCPSize# cores # cores2 4 8 16 20 2 4 8 16 201000 17 8 3.9 1.9 1.6 18 9 3.7 1.9 1.52000 146 73 41 22 21 143 72 36 22 205000 2659 1358 669 349 386 2596 1344 669 349 373Problem KP GCPSize# cores # cores2 4 8 16 20 2 4 8 16 201000 0.22 0.11 0.06 0.08 0.07 57 32 17 7.3 7.52000 0.86 0.44 0.23 0.24 0.24 480 271 193 74 695000 5.7 2.7 1.4 1.3 1.1 8772 4858 2559 1309 1517References[1] Isaac Dooley, “Automated source-to-source translationsto assist parallel programmers,” M.S. thesis,Dept. of Computer Science, University of Illinois, 2006,http://charm.cs.uiuc.edu/papers/DooleyMSThesis06.shtml.[2] Sain zee Ueng, Melvin Lathara, Sara S. Baghsorkhi, andWen mei W. Hwu, “W.m.w.: Cuda-lite: Reducing gpuprogramming complexity,” in In: LCPC08. Volume 5335of LNCS. 2008, pp. 1–15, Springer.[3] Fred V. Lionetti, Andrew D. McCulloch, and Scott B.Baden, “Source-to-source optimization of cuda c for gpuaccelerated cardiac cell modeling,” in Proceedings of the16th international Euro-Par conference on Parallel processing:Part I, Berlin, Heidelberg, 2010, EuroPar’10,pp. 38–49, Springer-Verlag.[4] Kiminori Matsuzaki and Hideya Iwasaki, “A library ofconstructive skeletons for sequential style of parallel programming,”in In InfoScale 06: Proceedings of the 1st internationalconference on Scalable information systems,volume 152 of ACM International Conference ProceedingSeries. 2006, p. 13, ACM Press.[5] Horacio González-Vélez and Mario Leyton, “A survey ofalgorithmic skeleton frameworks: high-level structuredparallel programming enablers,” Softw. Pract. Exper.,vol. 40, pp. 1135–1160, November 2010.[6] ROSE, “www.rosecompiler.org,” .[7] Siegfried Benkner, Eduard Mehofer, and Sabri Pllana,“Towards an intelligent environment for programmingmulti-core computing systems,” in Proceedings of the2nd Workshop on Highly Parallel Processing on a Chip(HPPC 2008), in conjunction with Euro-Par 2008, August2008.[8] Juliana Nascimento and Warren Powell, “Dynamic programmingmodels and algorithms for the mutual fundcash balance problem,” Manage. Sci., vol. 56, pp. 801–815, May 2010.[9] Alexander Erdelyi and Huseyin Topaloglu, “A dynamicprogramming decomposition method for making overbookingdecisions over an airline network,” INFORMSJ. on Computing, vol. 22, pp. 443–456, July 2010.[10] O. de Moor, “Dynamic programming as a software component,”in Proc. 3rd WSEAS Int. Conf. Circuits, Systems,Communications and Computers, N. Mastorakis,Ed., 1999.JP2011-92[11] R. Andonov, S. Balev, S. Rajopadhye, and N. Yanev,“Otimal semi-oblique tiling and its application to sequencecomparison,” in 13th ACM Symposium on ParallelAlgorithms and Architectures (SPAA), 2001.[12] R. Andonov and S. Rajopadhye, “Optimal OrthogonalTiling of 2-D Iterations,” Journal of Parallel andDistributed Computing, vol. 45, pp. 159–165, September1997.[13] Morales D., ALmeida F., Rodríguez C., Roda J., andDelgado A. Coloma I., “Parallel dynamic programmingand automata theory,” Parallel Computing, 2000.[14] T. Ibaraki, Enumerative Approaches to CombinatorialOptimization, Part II, Annals of Operations Research.Volume 11, 1-4, 1988.[15] J. Eckstein, C. A. Phillips, and W. E. Hart, “PICO:An object-oriented framework for parallel branch andbound,” Tech. Rep., RUTCOR, 2000.[16] B. Le Cun, “Bob++ library illustrated by VRP,” in EuropeanOperational Research Conference (EURO’2001),Rotterdam, 2001, p. 157.[17] B. C. Lubow, “SDP: Generalized software for solvingstochastic dynamic optimization problems.,” Wildlife SocietyBulletin, vol. 23, pp. 738–742, September 1997.[18] P. Lohmander, “Deterministic andstochastic dynamic programming.,”www.sekon.slu.se/ PLO/diskreto/dynp.htm.[19] I. Peláez, F. Almeida, and F. Suárez, “Dpskel: A skeletonbased tool for parallel dynamic programming,” inSeventh International Conference on Parallel Processingand Applied Mathematics, PPAM2007, 2007.[20] Ignacio Peláez, Francisco Almeida, and Daniel González,“An xml specification for automatic parallel dynamicprogramming,” in International Conference on ComputationalScience (1), 2006, pp. 872–875.[21] I. Galindo, F. Almeida, V. Blanco, and J.M. Badía, “Dynamicload balancing on dedicated heterogeneous systems,”in Recent Advances in Parallel Virtual Machineand Message Passing Interface. EuroPVM/MPI 2009,Alexey Lastovetsky, Tahar Kechadi, and Jack Dongarra,Eds., Dublin, Ireland, Sept. 2008, vol. 5205 of LectureNotes in Computer Science, pp. 64–74, Springer Verlag.


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Aplicaciones de la computación de altas prestacionesJP2011-93


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-94


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Resolviendo el Diseño de Redes para Modelosde Tráfico Reales de Internet MedianteOptimización Multiobjetivo enMultiprocesadoresJosé M. Lanza-Gutiérrez 1 , Juan A. Gómez-Pulido 1 , Miguel A. Vega-Rodríguez,Juan M. Sánchez-Pérez 1Resumen—El diseño y optimización de una red decomunicaciones es una tarea compleja que involucra unagran cantidad de factores que son necesarios evaluar,habiéndose demostrado que es un problema NP-complejo.En este artículo se propone su resolución utilizando dosalgoritmos evolutivos: NSGA-II y SPEA-II y enfocando eltrabajo hacia un problema de optimización bi-objetivo(coste, retardo) ejecutado sobre datos reales. Laexperimentación se ha realizado sobre un clúster deprocesadores paralelos utilizando MPI como herramientade comunicación, con el objetivo de aumentar la velocidadde ejecución de las pruebas. Con los datos obtenidos se hapodido determinar, mediante test estadísticos, cómo elalgoritmo SPEA-II ofrece un comportamiento superior alNSGA-II para este determinado problema.Palabras clave—Redes de comunicaciones, optimizaciónmultiobjetivo, algoritmos evolutivos, multiprocesadores.EI. INTRODUCCIÓNL diseño y optimización de una red decomunicaciones es una tarea compleja, puesinvolucra una gran cantidad de factores que sonnecesarios evaluar para obtener una solución queconvenza tanto a usuarios finales (calidad de servicio dela red), como a las entidades que llevan a cabo suimplantación (costes de despliegue / mantenimiento) [1].Entre los factores de optimización más habituales suelentomarse aquellos que afecten al coste y a la calidad de lared (retardo, confiabilidad, disponibilidad…). Ambosfactores influyen entre sí, puesto que la variación encualquiera de ellos hace que el otro se vea afectado. Porejemplo, para reducir el retardo de una red es posibleaumentar la capacidad de algunos de sus enlaces; sinembargo, esto produciría un aumento en el coste total dela red. Por este motivo se hace necesario recorrer todo elespacio posible de soluciones en busca de la soluciónóptima. Al ser un problema de diseño NP-complejo, lasbúsquedas exhaustivas son descartadas, siendo necesarioutilizar otras técnicas que faciliten su resolución [2].Desde que este problema fue definido como unproblema NP-complejo, se han publicado muchostrabajos que tratan de solucionarlo. Comenzando por lasheurísticas, podemos citar los trabajos de Jan et al. [3]1 Dep. Tecnología de Computadores y Comunicaciones. EscuelaPolitécnica. Campus Universitario s/n, 10003 Cáceres.{jmlanza,jangomez, mavega,sanperez}@unex.es(desarrollaron una técnica basada en “branch andbound” para optimizar el coste de la red sobre unosvalores de confiabilidad concretos) y de Ersoy et al. [4](usaron una técnica de optimización sobre el retardomedio para el diseño de redes LAN y MANinterconectadas). Sin embargo, todas estas heurísticas noaseguran que las soluciones obtenidas sean las óptimas;además, la mayoría de ellas optimizan únicamente unobjetivo, por lo que se debe partir el problema en dos.Además de las heurísticas, otros muchos trabajos usanalgoritmos genéticos para optimización mono-objetivo.Así, Abuali et al. [5] minimizan el coste de la red a lavez que consideran los valores máximos de capacidad;Ko et al. [6] optimizan el coste de la red a la vez quemantienen valores constantes de retardo; y Kumar et al.[7] usan estos algoritmos para la expansión de redes decomputadores a la vez que optimizan su disponibilidad.También han sido utilizados los algoritmos genéticosmulti-objetivo, puesto que son los que mejor se adaptana este tipo de problemáticas [8]. Así, Barnerjee et al. [9]estudiaron el diseño de redes basadas en modelos detrafico habituales (self-similiar y Poisson), mediante laoptimización de coste y retardo utilizando el PCGA(Pareto Converging Genetic Algorithm), y R. Kumar etal. [10] trataron la optimización sobre el coste y elretardo usando este mismo algoritmo.Pese a ser la solución más utilizada, existe una grancantidad de algoritmos evolutivos multiobjetivo que aúnno se han usado para solucionar el problema, como porejemplo los conocidos NSGA2 [11] y SPEA2 [12]. Espor ello por lo que se utilizarán para resolver esteproblema de optimización bi-objetivo (coste y retardo).Aunque pudiera parecer extraño (debido al elevadonúmero de publicaciones en este problema),prácticamente no existen instancias públicas (datos quedefinan el problema) que se puedan utilizar a la hora devalidar los resultados, exceptuando una bien conocida:la de las diez ciudades chinas más pobladas [6], siendoésta la instancia utilizada en nuestro trabajo.El resto del artículo se estructura como sigue: la segundasección define el problema y las funciones de fitnessutilizadas. La tercera sección muestra la implementacióndel problema mediante los dos algoritmos mencionados.La cuarta sección expone los resultados obtenidos. En laquinta sección se discute la comparativa con otrostrabajos y, finalmente, en la quinta sección se detallanlas conclusiones y trabajos futuros.JP2011-95


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011II. DISEÑO DE UNA RED DE COMUNICACIONESA la hora de diseñar una red de comunicaciones, existeuna serie de factores que hay que evaluar para obteneruna red adecuada a cada necesidad, como por ejemplo:coste de la red, retardo de las comunicaciones, volumende tráfico, posibilidades de expansión, seguridad, etc.[1]. En este artículo se propone la optimización de la redbasada en los dos factores más importantes: el coste deinstalación (no del mantenimiento) de la red y el retardode las comunicaciones.A. Definición de una instancia del problemaUna instancia particular del problema vendrá definidapor el número de nodos de la red (N), la distancia entrelos nodos (D, una matriz de NxN elementos), el traficoestimado entre los nodos (T, una matriz de NxNelementos), el número de tipos de nodos disponibles (K,con sus características de coste y capacidad), el númerode tipos de enlaces existentes (M, con sus respectivosvalores de coste y capacidad), el coste de losamplificadores de señal (A) y la máxima distancia que laseñal puede viajar a través de la red sin necesidad deamplificación (L). Estos dos últimos parámetros (A y L)son debidos a que se trata de una red de fibra óptica.B. Política de enrutamientoLa matriz de tráfico (T) proporciona la cantidad detráfico estimado entre cada una de las ciudades de lainstancia, considerando que existe una topologíacompletamente conexa.En el caso real, una topología está compuesta por unsubconjunto de todos los posibles enlaces de la red, porlo que se hace necesario redefinir esta matriz de tráficoinicial con las nuevas necesidades surgidas al encaminarla información a través de los enlaces existentes. Estanueva matriz se denomina T_acu. Para esta tarea seutiliza el algoritmo de camino mínimo de Dijsktra [14].La métrica utilizada es la longitud del enlace.C. Funciones objetivoEl coste de despliege de la red y 1 es definido mediante elcoste de los nodos, el coste de los amplificadores deseñal y el coste de los enlaces.El retardo y 2 se establece en base al modelo de tráficoutilizado; en este caso se ha decidido utilizar Poisson, unmodelo para redes convencionales. De este modo, elretardo se mide en base al tamaño de las colas de tráficogenerado en los nodos intermedios de la red [13], puestoque se considera que el retardo generado por los enlacesen la transmisión tiene un valor despreciable. Nótese quecon Co NEi se quiere hacer referencia al coste de undeterminado nodo llamado i, con Co Linki,j al coste de elenlace entre los nodos i y j, y con Cp Linki,j a la capacidadde el enlace entre los nodos i y j.Dijy Co(NECo )1Link A1ij ii j i j L T _ acuij T_ acuiji j CpLinkijy2CpLinkijAmbas funciones objetivo han sido utilizadas en otraspublicaciones [9] [10].ijD. LimitacionesPara que una determinada topología-solución pueda serconsiderada válida debe cumplir una serie derestricciones:• El flujo que atraviesa un enlace no puede sersuperior a la capacidad de dicho enlace. Paraello es necesario tener en cuenta todo el tráficoque atravesará dicho enlace debido al resto denodos de la red.• La red obtenida debe ser confiable. Por ello esnecesario que al menos sea bi-conexa, es decir,que todos los nodos deben ser accesiblesmediante dos rutas alternativas.III. IMPLEMENTACIÓNA. Codificación utilizadaComo es habitual en los algoritmos genéticos, cadaindividuo se definido mediante un cromosoma. Cadaindividuo representa una determinada topología. Elcromosoma, de longitud fija, se divide en dos partes, taly como puede observarse en la figura 1:• La primera parte es la responsable de definir eltipo de cada uno de los nodos de la red (verapartado II-A).• La segunda representa los enlaces existentesentre los nodos, donde uno indica la existenciade un enlace y cero lo opuesto. A la hora derepresentar la topología se ha considerado quelas comunicaciones son bidireccionales, por loque la matriz de adyacencia que define la red essimétrica, permitiendo reducir la cantidad debits a almacenar de NxX a N(N-1)/2.En total se necesitan Nlog 2 K+N(N-1)/2 bits paraalmacenar un individuo.Fig. 1. Cromosoma de longitud fija que representa a los individuos delproblema.B. Población inicialLa población inicial es generada mediante una mezclade procesos aleatorios y deterministas. En primer lugar,se asignan de forma aleatoria el tipo a cada uno de losnodos. A continuación, se obtiene el árbol mínimo dedistancias entre todos los nodos, utilizando el algoritmode Prim [14]. Finalmente se añaden de forma aleatorianuevos enlaces al árbol generado.Una vez generado, el individuo se evalúa paracomprobar si es una topología válida; en caso afirmativose inserta, en caso negativo se descartaría y se volvería arepetir el proceso. Además, se verifica que el individuoJP2011-96


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011no se encuentre duplicado. Estas comprobaciones serealizan con el objetivo de aumentar la velocidad deconvergencia de los algoritmos.C. Evaluación de los individuosCada individuo de la población es sometido a un procesode evaluación en el que, además de determinar el valorde las correspondientes funciones objetivo, se evalúa siel individuo cumple con las limitaciones (Apartado II-Dde este artículo) impuestas al problema.Para ello, primero se comprueba la biconexidad de lared, para que cada nodo sea accesible desde dos rutasalternativas. A continuación se calcula la nueva matrizde tráfico estimado mediante la política de enrutamientoya expuesta (Apartado II-B). Se comprueba que los tiposde nodos asignados a la topología (primera parte delcromosoma) existan y no sean producto de unamodificación producida por una mutación.A continuación se calcula el coste y retardo de la red.Para ello hay que tener en cuenta que la capacidad de undeterminado enlace es la de la menor capacidad de losnodos que une. De este modo, si la capacidad es inferiora la requerida por la matriz de tráfico estimado (T_acu)la solución será inválida. Con esta capacidad seselecciona como enlace el que sea inmediatamentesuperior a este valor; en caso de que no exista, lasolución será considerada una vez más inválida.A las soluciones consideradas inválidas se les asignanvalores infinitos, tanto al coste como al retardo, por loque serán desechadas en iteraciones sucesivas.D. CruceLa recombinación de dos individuos permite laformación de nuevos individuos partiendo del materialgenético de estos progenitores.Puesto que los cromosomas están compuestos por dospartes bien diferenciadas, se ha decidido realizar larecombinación atendiendo a estos criterios:• Cruce en la primera parte. El punto de crucepodría seleccionarse de forma completamentealeatoria, pero entonces se produciría un grannúmero de individuos con tipos de nodosinexistentes que posteriormente seríandescartados. Por ello se ha decidido situar elpunto de corte de forma que no se modifique lacodificación de los individuos. De este modo,la recombinación de dos individuos dará lugar aun tercer individuo en el que los tipos de nodosposibles serán únicamente los de sus padres.• Cruce en la segunda parte: El punto de cruce sesitúa de forma completamente aleatoria.E. MutaciónLa mutación permite facilitar una amplia exploración delespacio de soluciones, evitando que los algoritmosentren en mínimos locales.Al igual que en el cruce, la mutación se realizaatendiendo a la división del cromosoma, realizando unnúmero aleatorio de mutaciones que va desde cero hastael número de bits totales del cromosoma.• Mutación en la primera parte: Si la mutación serealiza sobre la primera parte del cromosoma,no se muta un único bit, puesto que podría darlugar a individuos con tipos de nodosinexistentes que serían descartados. Por ello seha decidido mutar el tipo de nodo porcompleto, generando un número aleatorio entretodos los tipos de nodos existentes.• Mutación en la segunda parte: La mutación escompletamente aleatoria.F. Algoritmos utilizadosPara la resolución del problema aquí propuesto se hanimplementado dos algoritmos evolutivos bienconocidos: NSGA-II y SPEA-II.El algoritmo NSGA-II (Non-dominated Sorting GeneticAlgorithm) se basa en la clasificación de individuos envarias capas o frentes. La clasificación consiste enagrupar a todos los individuos no dominados en unfrente, con un valor de fitness (o adaptabilidad) igualpara todos los individuos. Este valor es proporcional altamaño de la población, para así proporcionar unpotencial reproductivo igual para todos los individuos deeste frente. De esta forma el grupo de individuosclasificados es ignorado y otro frente de individuos nodominados es considerado. El proceso continúa hastaque se clasifican todos los individuos en la población.Esta definición es similar a la del algoritmo NSGA,puesto que el NSGA-II no es más que una evolución delprimero, siendo computacionalmente más eficiente yutilizando un mecanismo elitista consistente enseleccionar los mejores individuos de la unión de laspoblaciones de padre e hijo. El pseudocódigo es elmostrado en la figura 2; para más detalles consultar lareferencia [11].Algoritmo 1 Pseudocódigo NSGA-II1: Inicializar población, P2: Ordenar P, considerando dominancia3: Evaluar individuos de P.4: Aplicar operadores genéticos a P, para tener Q5: para i=0 a MAX_GENERACIONES hacer6: R = P U Q7: Ordenar R, considerando dominancia y obtener frentes, F I8: I = 19: mientras |P i+1 | < N entonces //N, número de individuos en P10: Calcular adaptabilidad de cada individuo en F I11: P t+1 = P t+1 U F I12: I = I + 113: fin mientras14: Ordenar P i+1 , considerando dominancia15: Elegir los primeros N elementos de P i+116: Aplicar operadores genéticos a P i+1 , para tener Q i+117: fin paraEl algoritmo SPEA-II (Strength Pareto EvolutionaryAlgorithm) se caracteriza por la utilización de unamemoria externa (un fichero de texto), a diferencia delanterior, que contiene las soluciones no dominadasencontradas (población externa de no dominados P nd ).En cada generación, se copian los individuos nodominados de P en P nd y se borra de éste las solucionesdominadas. Para cada individuo en el sistema externo, secomputa su valor de fitness mediante una estrategia deasignación fina: considera, para cada individuo, elnúmero de individuos que lo dominan y el número deindividuos por los cuales es dominado. Otra aspectorelevante del algoritmo es la utilización de la técnica del“vecino más cercano” para valorar la densidad,dirigiendo la búsqueda de forma más eficiente. En elJP2011-97


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011algoritmo 2 puede verse el pseudocódigo del SPEA-II;para más detalles consultar la referencia [12].Algoritmo 2 Pseudocódigo SPEA-II1: Inicializar población, P2: para i=0 a MAX_GENERACIONES hacer3: Evaluar individuos de P4: Marcar soluciones no dominadas de P5: Actualizar el conjunto de soluciones no dominadas: P N6: Calcular la adaptabilidad de los individuos de P y P N7: Seleccionar individuos del conjunto P V P N8: Aplicar los operadores de cruzamiento y mutación9: fin paraIV. RESULTADOSEn este artículo se ha resuelto el problema decomunicación entre las diez ciudades chinas máspobladas [6], mediante la utilización de dos algoritmosevolutivos: NSGA-II y SPEA-II.Todos los experimentos han sido realizadas en un clústerde procesadores paralelos compuesto por 5 nodos, cadauno de ellos con cuatro procesadores Intel® Xeon a3.0Ghz y 1 de GB memoria RAM. Para aprovechar estacapacidad de procesamiento se ha desarrollado unsistema paralelo basado en MPI [22] que permite laejecución de múltiples instancias del problemasimultáneamente. De esta forma, si se desea llevar acabo 20 ejecuciones de una misma configuración, selanzan 4 ejecuciones en cada nodo (una por procesador)recogiendo los resultados de cada una a su finalización.Con esta sencilla operación se consigue reducir eltiempo de ejecución casi 20 veces, puesto que el tiempode CPU de una ejecución es muy elevado encomparación con el tiempo de comunicación necesario.A la hora de realizar la experimentación se ha utilizadouna sencilla estrategia: en primer lugar, se handeterminado las configuraciones con las que se obtienenlos mejores resultados para cada algoritmo. Una vezobtenidos, se trata de estudiar estadísticamente si algunode los dos ofrece un comportamiento superior al otro.Como se ha dicho, el primer paso de la experimentaciónconsiste en ajustar los parámetros más habituales paradeterminar con qué configuración se obtienen losmejores resultados. Estos parámetros son: número degeneraciones, tamaño de la población, probabilidad decruce y probabilidad de mutación. Esta metodología essimilar a la de A. Rubio-Largo et al. [15], en la que,partiendo de una configuración por defecto, se vanfijando los valores de los parámetros uno a uno en suvalor óptimo, hasta que se han ajustado todos.A la hora de establecer el grado de bondad que tienenlos frentes obtenidos para cada configuración, esnecesario utilizar algún tipo de medida. En este caso, seha decidido utilizar una medida habitual como es elhipervolumen [16]: a mayor valor, mejor es la solución.Para cada configuración probada se han realizado untotal de veinte repeticiones con el fin de dar validezestadística, obteniendo para cada una de ellas undeterminado frente y por consiguiente un hipervolumen.El valor del campo hipervolumen en las tablas I-II-III-IV no es más que el valor promedio de todos estoshipervolúmenes para una determinada configuración.A la hora de calcular un hipervolumen es necesariodefinir los puntos de referencia máximo y mínimo [16].De forma experimental, se determinó que es suficientecon los puntos {1.000.000, 0.9} como máximo y {0, 0}como mínimo, para las tuplas {coste, retardo}, pues asíse envuelven todos los frentes obtenidos.El procedimiento de ajuste es como sigue:• En primer lugar, se trata de obtener el númerode generaciones idóneo, partiendo de unosvalores por defecto de: población igual a 100,probabilidad de cruce del 50% y de mutacióndel 50%. Este parámetro debe ser el primero enser ajustado, pues tiene una influencia clara enel tiempo de ejecución. En la tabla I puedeobservarse cómo con un valor de 800 es másque suficiente, pues su aumento no supondríauna clara mejoría del hipervolumen obtenido ysí del tiempo de ejecución del experimento. Portanto, se busca balancear el tiempo de ejecucióny la calidad de los resultados.• Una vez ajustado el número de generaciones, elsiguiente parámetro a ajustar es el tamaño de lapoblación (ver tabla II). Este parámetro es elúltimo de los ajustados que incide en el tiempode ejecución. Como puede observarse, paraambos se obtiene el mejor comportamiento conun total de 250 individuos.• A continuación se ajusta la probabilidad decruce, que determinará la probabilidad con laque los individuos serán cruzados. Los mejoresvalores para el NSGA-II y el SPEA-II seobtienen con una probabilidad del 80% y del60% respectivamente (ver tabla III).• Finalmente, se ajusta la probabilidad demutación, que determina la probabilidad con laque los nuevos individuos recibirán mutacionesen sus cromosomas. Ambos algoritmosobtienen sus mejores resultados con un valordel 50% (ver tabla IV).Mediante el procedimiento descrito se han podidodeterminar las configuraciones óptimas para cada uno delos algoritmos (tabla V).Se podría haber incorporado una figura ilustrativa sobrelos frentes de Pareto obtenidos para ambasconfiguraciones, pero la cercanía de ambos frentesrequiere una gran resolución para una visualizaciónaceptable y el tamaño de este documento lo impide.A partir de estas dos configuraciones obtenidas, elsiguiente paso es determinar si, como parece ser, elalgoritmo SPEA-II obtiene mejores resultados que elNSGA-II. Para ello es necesario realizar un estudioestadístico que compruebe si la mejoría lograda por elSPEA-II es significativa.El modo de proceder a la hora de realizar el estudioestadístico es el mostrado en la figura 3 [17]. Para ello,el primer paso consiste en determinar si los datosprocedentes de las treinta ejecuciones, para ambasconfiguraciones, siguen una distribución normal. Paraello utilizamos los test de Shapiro-Wilk [18] yKolmogorov-Smirnov-Lilliefors(K-S) [19]. En ambostest se contrastan las siguientes hipótesis:H 0 : El modelo subyacente a los datos es normal.H 1 : El modelo subyacente a los datos no es normal.JP2011-98


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IAJUSTE DE PARÁMETROS PARA LA OBTENCIÓN DEL NÚMERO DEGENERACIONES IDÓNEOHipervolumen Generaciones Población Prob. Prob.NSGA SPEACruce MutacionII II0.94176 0.93698 100 100 0.5 0.50.94542 0.94674 200 100 0.5 0.50.95160 0.95382 300 100 0.5 0.50.95737 0.95403 400 100 0.5 0.50.95757 0.95493 600 100 0.5 0.50.95753 0.95965 700 100 0.5 0.50.95853 0.96005 800 100 0.5 0.50.95871 0.96028 900 100 0.5 0.50.95871 0.96028 1000 100 0.5 0.5Fig. 3. Modo de proceder a la hora de seleccionar el test estadísticoadecuado a la naturaleza de las muestras.TABLA IIAJUSTE DE PARÁMETROS PARA LA OBTENCIÓN DEL TAMAÑO DE LAPOBLACIÓN IDÓNEOHipervolumen Generaciones Población Prob. Prob.NSGA SPEACruce MutaciónII II0.94728 0.96114 800 50 0.5 0.50.95853 0.96005 800 100 0.5 0.50.96408 0.96067 800 150 0.5 0.50.96081 0.95914 800 200 0.5 0.50.97345 0.97443 800 250 0.5 0.50.96692 0.96822 800 300 0.5 0.50.97047 0.97217 800 350 0.5 0.5TABLA IIIAJUSTE DE PARÁMETROS PARA LA OBTENCIÓN DE LA PROBABILIDADDE CRUCE IDÓNEAHipervolumen Generaciones Población Prob. Prob.NSGA SPEACruce MutaciónII II0.97169 0.97299 800 250 0.01 0.50.97506 0.96807 800 250 0.1 0.50.96985 0.97323 800 250 0.2 0.50.97362 0.96402 800 250 0.3 0.50.97410 0.96645 800 250 0.4 0.50.97345 0.97443 800 250 0.5 0.50.97363 0.97594 800 250 0.6 0.50.97213 0.97434 800 250 0.7 0.50.97516 0.97289 800 250 0.8 0.50.96762 0.96517 800 250 0.9 0.5TABLA IVAJUSTE DE PARÁMETROS PARA LA OBTENCIÓN DE LA PROBABILIDADDE MUTACIÓN IDÓNEAHipervolumen Generacio Población Prob. Prob.NSGA SPEA nesCruce MutaciónII IINSGA-II/ SPEA-II0.96722 0.96802 800 250 0.8 /0.6 0.010.96367 0.96447 800 250 0.8 /0.6 0.030.95990 0.96909 800 250 0.8 /0.6 0.060.96753 0.96593 800 250 0.8 /0.6 0.080.96684 0.97065 800 250 0.8 /0.6 0.10.97060 0.96892 800 250 0.8 /0.6 0.20.96281 0.97299 800 250 0.8 /0.6 0.30.97230 0.96555 800 250 0.8 /0.6 0.40.97516 0.97594 800 250 0.8 /0.6 0.50.97196 0.97027 800 250 0.8 /0.6 0.60.97133 0.97380 800 250 0.8 /0.6 0.70.96669 0.97115 800 250 0.8 /0.6 0.80.97095 0.97513 800 250 0.8 /0.6 0.9TABLA VCONFIGURACIONES IDÓNEAS OBTENIDAS PARA CADA UNO DE LOSALGORITMOSAlgoritmos Generaciones Población Prob. Prob. MutaciónCruceNSGA-II 800 250 0.8 0.5SPEA-II 800 250 0.6 0.5Fig. 4. Gráfico de cajas procedentes del estudio estadístico de lasmuestras procedentes de los algoritmos NSGA-II y SPEA-II.Para ambas pruebas se obtiene un valor-p inferior a 0.05,por lo que hay una fuerte evidencia en contra de lahipótesis nula. Por ello, no podemos asumir que losdatos procedan de un modelo normal.Si se observa el gráfico de cajas expuesto en la figura 4,puede comprobarse cómo existen diferencias entre lasmedianas (marcadas en negro) de ambos algoritmos,siendo superior el SPEA-II al NSGA-II. Pero, ¿es estadiferencia significativa? Para comprobarlo, y dado queno se puede asumir una distribución normal en ningúncaso, como se ha comprobado anteriormente, se utilizaráuna prueba no paramétrica. En este caso se aplica el Testde Wilcoxon [20] puesto que se dispone de dos muestrasrelacionadas (figura 3), en el que se contrastan lassiguientes hipótesis:H 0 : Las dos muestras proceden de poblaciones con lamisma distribución (igual mediana).H 1 : Las dos muestras proceden de poblaciones dedistribuciones diferentes en la tendencia central(diferente mediana).El resultado del Test es un valor-p de 0.001, inferior a0.05, por lo que hay una fuerte evidencia en los datos encontra de la hipótesis nula. Es decir, las dos muestras noproceden de poblaciones con igual mediana, o lo que eslo mismo, existen diferencias significativas entre las dosmuestras.Concluido lo anterior, se hace necesaria la utilización deun test unilateral, que permita concluir cuál de los dosalgoritmos tiene un mejor comportamiento. Para ello seintentará demostrar si el algoritmo NSGA-II es superioral SPEA-II, contrastando las siguientes hipótesis:H 0 : Las muestras procedentes del algoritmo NSGA-II tienen una media superior o igual a la delalgoritmo SPEA-II.JP2011-99


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011H 1 : Las muestras procedentes del algoritmo NSGA-II tienen una media inferior a la del SPEA-II.El resultado del Test es un valor-p de 0.001; al sermenor que 0.05 hay evidencias para rechazar la hipótesisnula. Es decir, se puede concluir con relevanciaestadística que el algoritmo NSGA-II tiene uncomportamiento inferior, en media, al SPEA-II, o lo quees lo mismo, el SPEA-II produce los mejores resultados.V. COMPARATIVAS CON OTROS AUTORESComo ya se ha comentado en la primera sección, elnúmero de instancias públicas para este problema es casiinexistente; tan solo existe una que se encuentre biendescrita, por lo que ha sido la utilizada en este trabajo.La escasez de instancias reales supone un problema a lahora de poder validar nuestras metodologías al compararlos resultados obtenidos con los de otros autores.Además, hay algunos autores que utilizan otrasinstancias no documentadas o bien topologías generadasaleatoriamente. No obstante existen otros trabajos queutilizan la misma instancia que la que hemos adoptado.Así, Ko et al. [6] proporcionan un único valor del par{coste, retardo} como resultado, (obteniéndose mejoresresultados en este artículo). Barnerjee et al [9] y R.Kumar et al [10] ofrecen como resultados unos frentesde Pareto sin especificar ningún tipo de medida decalidad, como el hipervolumen utilizado en por nosotros.VI. CONCLUSIONES Y TRABAJO FUTUROEn este artículo se ha resuelto el problema del diseño deredes para modelos de tráfico de Internet entre las diezciudades chinas más pobladas, utilizando dos conocidosalgoritmos evolutivos: el NSGA-II y el SPEA-II. A suvez, se ha realizado un completo estudio estadístico queha permitido determinar la superioridad del algoritmoSPEA-II sobre el NSGA-II, para esta definición delproblema e instancia concreta. Además, se ha utilizadoeficientemente una estrategia paralela basada en MPI,que permite acelerar la ejecución de las pruebas.Como trabajo futuro planteamos la utilización de unamayor cantidad de instancias, otros modelos de traficoactuales (como Self-Similar[21]) así como otrosalgoritmos evolutivos (como por ejemplo DEPT,Differential Evolution with Pareto Tournaments [15]).VII. AGRADECIMIENTOSEl presente trabajo ha sido parcialmente financiado porel Ministerio de Ciencia e Innovación y el FEDER(Fondo Europeo de Desarrollo Regional), bajo elproyecto TIN2008-06491-C04-04 (proyecto MSTAR), ypor la Junta de Extremadura, a través de la ayudaGR10025 al grupo TIC015.reliability constraint, IEEE Transactions on Reliability, vol. 42, 1993,págs. 63-70.[4] Cem Ersoy and Shivendra S. Panwar, Topological design ofinterconnected LAN/MAN networks, IEEE Journal on Selected Areasin Communications, vol. 11, 1993, pág. 1172--1182.[5] F.N. Abuali, D.A. Schoenefeld, y R.L. Wainwright,Designing telecommunications networks using genetic algorithms andprobabilistic minimum spanning trees, Proceedings of the 1994 ACMsymposium on Applied computing - SAC ’94, Phoenix, Arizona,United States: 1994, págs. 242-246.[6] King-Tim Ko, Kit-Sang Tang y Cheung-Yau Chan y Kim-Fung Man, , y , Sam Kwong, Using genetic algorithms to design meshnetworks, Computer, vol. 30, Ago. 1997, págs. 56-61.[7] A. Kumar, R.M. Pathak, y Y.P. Gupta, Genetic-algorithmbasedreliability optimization for computer network expansion, IEEETransactions on Reliability, vol. 44, 1995, págs. 63-72.[8] C. Coello Coello, Evolutionary algorithms for solvingmulti-objective problems, New York: Springer, 2007.[9] N. Banerjee y R. Kumar, Multiobjective network design forrealistic traffic models, Proceedings of the 9th annual conference onGenetic and evolutionary computation - GECCO ’07, London,England: 2007, pág. 1904.[10] R. Kumar, P.P. Parida, y M. Gupta, Topological design ofcommunication networks using multiobjective genetic optimization,Proceedings of the 2002 Congress on Evolutionary Computation.CEC’02 (Cat. No.02TH8600), Honolulu, HI, USA: , págs. 425-430.[11] Kalyanmoy Deb, Samir Agrawal y Amrit Pratap y TMeyarivan, A Fast Elitist Non-dominated Sorting Genetic Algorithmfor Multi-objective Optimization: NSGA-II, Parallel Problem Solvingfrom Nature PPSN VI, 2000.[12] E. Zitzler, M. Laumanns y L. Thiele, SPEA2: Improvingthe strength Pareto evolutionary algorithm, EUROGEN 2001.[13] Mohsen Guizani, Ammar Rayes, Bilal Khan and Ala Al-Fuqaha.,Network Modeling and Simulation: A Practical Perspective,Wiley-Interscience, 2010.[14] T. Cormen, Introduction to algorithms, Cambridge Mass.:The MIT Press, 2001.[15] A. Rubio-Largo, M.A. Vega-Rodriguez, J.A. Gomez-Pulido, y J.M. Sanchez-Perez, A Differential Evolution with ParetoTournaments for solving the Routing and Wavelength Assignmentproblem in WDM networks, IEEE Congress on EvolutionaryComputation, Barcelona, Spain: 2010, págs. 1-8.[16] Fonseca, C., Knowles, J., Thiele, L., Zitzler, E. , A Tutorialon the Performance Assessment of Stochastic MultiobjectiveOptimizers, EMO 2005.[17] José Otero, Luciano Sánchez Diseños Experimentales yTests Estadísticos, Tendencias Actuales en Machine Learning VCongreso Español sobre Metaheurísticas, Algoritmos Evolutivos yBioinspirados, MAEB 07 Tenerife, Spain 2007[18] Shapiro, S. S. and Wilk, M. B, An analysis of variance testfor normality (complete samples), Biometrika, 52, 3 and 4, (1965) 591-611[19] Chakravarti, Laha, and Roy, Handbook of Methods ofApplied Statistics, Volume I, John Wiley and Sons, (1967). 392-394.[20] Wilcoxon, F. Individual Comparisons by RankingMethods. Bio-metrics 1, (1945) 80-83[21] Sahinoglu Z, Tekinay S, On multimedia networks: selfsimilartraffic and network performance", IEEE CommunicationsMagazine, vol.37, no.1, Jan. 1999, pp.48-52. Publisher: IEEE, USA.[22] W. Gropp, Using MPI : portable parallel programming withthe message-passing interface, Cambridge Mass.: MIT Press, 1999.VIII. REFERENCIAS[1] Andrew S. Tanenbaum, Computer Networks, Prentice Hall,2003.[2] B. Dengiz, F. Altiparmak, y A.E. Smith, Local searchgenetic algorithm for optimal design of reliable networks, IEEETransactions on Evolutionary Computation, vol. 1, Sep. 1997, págs.179-188.[3] Rong-Hong Jan, Fung-Jen Hwang, , y , Sheng-Tzong Chen,Topological optimization of a communication network subject to aJP2011-100


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011A New Tool for Classification of SatelliteImages Available from Google Maps: EfficientImplementation in Graphics Processing UnitsSergio Bernabé a and Antonio Plaza aAbstract—In this work, we develop a new parallelimplementation of the k-means unsupervised clusteringalgorithm for commodity graphic processing units (GPUs),and further evaluate the performance of this newlydeveloped algorithm in the task of classifying (inunsupervised fashion) satellite imagery available fromGoogle Maps engine. With the ultimate goal of evaluatingthe classification precision of the newly developedalgorithm, we have analyzed the consensus or agreement inthe classification achieved by our implementation and analternative implementation of the algorithm available incommercial software. Our experimental results, conductedusing satellite images obtained from Google Maps engineover different locations around the Earth, indicate that theclassification agreement between our parallel version andthe k-means algorithm available in commercial software isvery high. In addition, the GPU version (developed usingthe CUDA language available from NVidia TM ) is muchfaster that the serial one (speedup above 30), thusindicating that our proposed implementation allows forlarger scale processing of high-dimensional imagedatabases such as those available in the Google Mapsengine.Keywords—K-means clustering, satellite imagery, GoogleMaps, GPUs, CUDA.TI. INTRODUCTIONHE wealth of satellite imagery [1] available inweb mapping service applications such as GoogleMaps 1 , which now provides high-resolutionsatellite images from many locations around the Earth,has opened the appealing perspective of performingclassification and retrieval tasks via programminglibraries such as SwingX-WS 2 . In fact, the introductionof Google’s mapping engine prompted a worldwideinterest in satellite imagery exploitation [2-4]. Thecombination of an easily pannable and searchablemapping and satellite imagery tool such as Google Mapswith advanced image classification and retrieval featureshas the potential to significantly expand thefunctionalities of the tool and also to allow end-users toextract relevant information from a massive and widelyavailable database of satellite images (the Google Mapsservice is free for non-commercial use).In this paper, we describe a new tool [5] which allowsan unexperienced user to perform unsupervisedclassification of satellite images obtained via Googlea Hyperspectral Computing LaboratoryDepartment of Technology of Computers and CommunicationsUniversity of Extremadura, Avda. de la Universidad s/n, E-10071 Cáceres, Spaine-mail: {sergiobenabe,aplaza}@unex.es.1 http://maps.google.com2 https://swingx-ws.dev.java.netMaps by means of the well-known k-means clusteringalgorithm [6], which can be followed by spatial postprocessingbased on majority voting. The classificationstage has been implemented in parallel using commoditygraphic processing units (GPUs) [7-8], which arespecialized hardware cards that are nowadays widelyavailable in standard PCs. It is important to emphasizethat GPUs offer important advantages in the context ofremote sensing image processing applications. Forinstance, while the price of a next-generation GPUstands at around 400€ (∼600 USD), the price of a clustercan be much higher. At the same time, using a clusterresults in a series of unfavorable conditions from thepoint of view of its implementation as a processingmodule onboard the remote sensing instruments, withcritical issues that can negatively affect the missionpayload (weight, power consumption, heating,maintenance, etc.). In turn, GPUs offer a much morecompact solution, although it is also important to bear inmind the conditions of tolerance of GPUs to extremerequirements in terms of consumption and sensitivity toradiation in space. However, we believe that the GPUsolutions offered in this work will soon exhibit thepotential to be incorporated into remote sensingmissions for onboard processing.Specifically, the GPU implementations reported in thiswork include analyses of consensus or agreement in theclassification achieved by our GPU implementation withregards to an alternative implementation of the k-meansclustering algorithm available in commercial software(ITT Visual Information Solutions ENVI 3 ). In addition,our parallel version of the k-means algorithm–implemented in NVidia TM GPUs using the computeunified device architecture (CUDA) 4 – is shown to bemore than 30 times faster than the serial version. Thisopens the way for exciting new developments andpotentials in efficient processing of large databases ofsatellite images, such as those available from GoogleMaps engine and used in this work for demonstration.The remainder of the paper is organized as follows.Section II describes the classification system that wehave developed for satellite images available in GoogleMaps engine. Section III describes the GPUimplementation. Section IV provides experimentalresults from the viewpoint of classification agreementand parallel performance on an NVidia Tesla C1060GPU. Finally, Section V concludes with some remarksand hints at plausible future research lines.3 http://www.ittvis.com/ProductServices/ENVI.aspx4 http://www.nvidia.com/object/cuda home new.htmlJP2011-101


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011II.CLASSIFICATION SYSTEM FOR SATELLITE IMAGESIN GOOGLE MAPS ENGINEOur classification system for Google Maps imagesconsists of the integration of the different softwaremodules developed (unsupervised classifiers) with thefunctionalities provided by the SwingX-WS libraries, inthe form of a general-purpose desktop application [2].For this purpose, we have resorted to the Javaprogramming language (see Fig. 1), which is a multiplatformenvironment that simplifies porting of our toolto different environments. Specifically, we have resortedto the NetBeans platform 5 , which allows applications tobe developed from a set of modular softwarecomponents called modules. In this framework,applications can install modules dynamically and anyapplication can include the update center module toallow users of the application to download digitallysignedupgrades and new features directly into therunning application. Reinstalling an upgrade or a newrelease does not force users to download the entireapplication again. The platform offers reusable servicescommon to desktop applications, allowing developers tofocus on the logic specific to their application.With the above ideas in mind, Fig. 2 shows differentviews of the developed tool. As shown by Fig. 2, thetool allows selecting an area to be classified, obtainingclassification results in unsupervised fashion, retainingthe classified area at different zoom levels (although theclassification is obtained at the maximum zoom level),and other functionalities such as spatial post-processingof obtained results for increased spatial consistency,managing of the resulting classification and extractedsatellite images, loading/storing of results via file logswhich can be saved in a database, automatic positioningin any latitude and longitude coordinates in the entireGoogle Maps database, overlaying of classificationresults with different views (satellite, map, hybrid), etc.Overall, we feel that the developed tool incorporatesinteresting additional functionalities to the Google Mapsengine (particularly in the possibility of better exploitingthe satellite images available from this tool in differentapplication domains).III.GPU IMPLEMENTATIONGPUs can be abstracted in terms of a stream model,under which all data sets are represented as streams (i.e.,ordered data sets) [4]. Algorithms are constructed bychaining so-called kernels, which operate on entirestreams, taking one or more streams as inputs andproducing one or more streams as outputs. Thereby,data-level parallelism is exposed to hardware, andkernels can be concurrently applied without any sort ofsynchronization.Fig. 2. Different views of the developed tool. Selection of an area to beclassified in New York City (top). Unsupervised classificationresult provided by our implementation of k-means superimposedon the tool (middle). Zoom reduction retaining the classified area(bottom).Fig. 1. Different software modules used for the development of ourapplication.5 http://netbeans.orgThe kernels can perform a kind of batch processingarranged in the form of a grid of blocks, as displayed inFig. 3(a), where each block is composed by a group ofthreads which share data efficiently through the sharedlocal memory and synchronize their execution forcoordinating accesses to memory. This figure alsodisplays how each kernel is executed as a grid of blocksJP2011-102


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011of threads. On the other hand, Fig. 3(b) shows theexecution model in the GPU, which can be seen as a setof multiprocessors. In each clock cycle each processorof the multiprocessor executes the same instruction butoperating on multiple data streams. Each processor hasaccess to a local shared memory and also to local cachememories in the multiprocessor, while themultiprocessors have access to the global GPU (device)memory.In the following we describe the different steps that wefollowed for the development of the GPU version of thek-means algorithm. In our implementation, pixels aredistributed in the form of vectors which store the valuesof the red, green, blue and saturation components. In thefollowing, we assume that images fit in the global GPUmemory. The k-means algorithm calculates theeuclidean distance from each pixel vector to the closestcluster center (centers are initialized randomly). In ourCUDA implementation, we assigned the calculation ofthe distance of each pixel of the image to an independentprocessing thread. This way, each thread calculates ofthe distance between the values of each pixel and thenearest cluster center. Fig. 4 illustrates the kernel thatperforms this operation. Next, we recalculate the centersof each cluster and reassign new pixels to each of theclusters until convergence. This part has not beenparallelized in the GPU, mainly because for a smallnumber of clusters this computation can be performed inthe CPU without representing a dominant factor in theoverall time of the solution.k-means has been conducted by comparing the resultsprovided by our GPU implementation with thoseavailable in a well-known commercial softwarepackage: the ENVI package distributed by ITT VisualInformation Solutions. In our tests, we adopt exactly thesame parameters when running our implementation andthe one available in ENVI software, comparing theresults in terms of the agreement between both solutionsand their computational performance.(a)(b)Fig. 3. Schematic overview of a GPU architecture. (a) Threads, blocksand grids. b) Execution model in the GPU.(c)Fig. 5. (a) Satellite image over the World Trade Center area. (b)Unsupervised classification result provided by our GPUimplementation of k-means. (c) Unsupervised classification resultprovided by ENVI’s implementation of k-means.Fig. 4. Main CUDA kernel developed for the implementation ofk-means algorithm in GPUs.IV.EXPERIMENTAL RESULTSIn this section, we perform an experimental validationof our developed system using satellite images obtainedfrom Google Maps. The experimental validation ofIn the following, we present the obtained results in aspecific case study focused on classification of satelliteimages available from the World Trade Center (WTC)area in New York City. Fig 5(a) shows a satellite imageextracted from Google Maps engine. The resolution ofthe image is quite high, with approximately 5 meters perpixel. Fig. 5(b) shows the unsupervised classificationresult provided by our GPU implementation asJP2011-103


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011compared to the result provided by ENVI’s k-means inFig. 5(c). As shown by Fig. 5, the color labels for ourimplementation and the one available in ENVI aredifferent, but the classification maps are very similar. Inboth cases, the parameters for both algorithms have beenset to exactly the same values, with the number ofclusters set empirically to five. Table I reports theclassification agreement (in percentage) measured aftercomparing our k-means classification map with the oneobtained by ENVI (assuming the latter as the reference).As shown by Table I, the agreement between both mapsis quite high.TABLE IClassification agreement (in percentage) after comparing theclassification map provided by our GPU implementation of k-meanswith the classification map obtained by ENVI’s k-means for the imagein Fig. 5(a).Shadows #1[blue inFig. 5(b)]Shadows#2 [red inFig. 5(b)]Urbanareas #1[yellow inFig. 5(b)]Urbanareas #1[green inFig. 5(b)]Urbanareas #2[orange inFig. 5(b)]Overallagreement78.26 95.49 85.56 90.65 97.39 89.47In a second experiment, we have selected a specificcase study focused on classification of satellite imagesavailable from the Nile river in the north of Cairo(Egypt) (see Fig. 6). The resolution of the image is quitehigh, with approximately 5 meters per pixel. As show byFig. 6, the color labels for our implementation and theone available in ENVI are different, but theclassification maps are very similar. In both cases, theparameters for both algorithms have been set to exactlythe same values, with the number of clusters set to five.Table II reports the classification agreement (inpercentage) measured after comparing our k-meansclassification map with the one obtained by ENVI(assuming the latter as the reference). As shown byTable II, the agreement between both maps is quite high.TABLE IIClassification agreement (in percentage) after comparing theclassification map provided by our GPU implementation of k-meanswith the classification map obtained by ENVI’s k-means for the imagein Fig. 6(a).Soil #1[blue inFig. 6(b)]Water #1[green inFig. 6(b)]Urbanareas #1[orange inFig. 6(b)]Water #2[red in Fig.6(b)]Soil #2[yellow inFig. 6(b)]Overallagreement63.89 96.98 99.74 89.01 94.59 88.47TABLE IIIProcessing times (in seconds) and speedups achieved with regards tothe corresponding CPU for different GPU implementations of thek-means algorithm (using different image sizes and number ofclusters), in Fig. 5(a).(a)Parameters consideredGeForce 9400MGPUTesla C1060 GPUImage sizeNumber ofclustersTime Speedup Time Speedup512 x 512 5 0.252 3.26x 0.145 5.67x512 x 512 64 0.496 7.60x 0.210 17.95x512 x 512 128 0.764 10.29x 0.268 29.33x1024 x 1024 64 3.582 6.18x 0.715 30.97x1024 x 1024 128 4.376 8.76x 1.044 36.69x(b)(c)Fig. 6. (a) Satellite image collected over a stretch of the Nilo river inEgypt (the image is available online through Google Mapsengine). (b) Unsupervised classification result provided by ourGPU implementation of k-means. (c) Unsupervised classificationresult provided by ENVI’s implementation of k-means.TABLE IVProcessing times (in seconds) and speedups achieved with regards tothe corresponding CPU for different GPU implementations of thek-means algorithm (using different image sizes and number ofclusters), in Fig. 6(a).Parameters consideredGeForce 9400MGPUTesla C1060 GPUImage sizeNumber ofclustersTime Speedup Time Speedup512 x 512 5 0.140 3.84x 0.118 4.55x512 x 512 64 0.458 4.79x 0.210 10.46x512 x 512 128 0.592 6.28x 0.223 16.67x1024 x 1024 64 5.153 3.59x 1.046 17.68x1024 x 1024 128 6.467 4.01x 1.254 20.66xJP2011-104


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Finally, we analyze the computational performance ofthe developed GPU implementation with regards to itsCPU (serial) version. In this work, we have used twodifferent CPU-GPU configurations. In the first one, weuse an Intel Core i7 920 CPU with the Ubuntu 9.04Linux operating system and the NVidia Tesla C1060GPU 6 . In the second one, we use an Intel Core 2 DuoP8700 2.53Ghz CPU with the Windows 7 operatingsystem and an NVidia GeForce 9400MGPU 7 . Table IIIand Table IV show the execution times achieved foreach of the CPU-GPU configurations used, as well asthe speedups achieved for different image sizes andnumber of clusters. An important observation is that, aswe increase the image size and number of clusters, thespeedup achieved by the GPUs tends to be moresignificant. For instance, the implementation in the TeslaC1060 GPU achieves a speedup of about 37x withregards to the CPU version for 1024 × 1024 image sizeand 128 clusters in the best case. However, theimplementation in the GeForce 9400M GPU saturatesfor certain image sizes, achieving a speedup of about10x in the best case.V. CONCLUSIONS AND FUTURE RESEARCHIn this work, we have developed a new parallelimplementation of the k-means clustering algorithm inthe context of satellite image processing usingNVIDIA TM GPUs. The algorithm has been implementedusing CUDA, and tested using a recently developedsystem for information extraction and analysis of imagedata sets from Google Maps engine. The algorithm hasbeen evaluated in terms of its agreement withcommercial software in the same context, and alsoanalyzing the speedup with regards to the (optimized)serial implementation of the same code.The main contributions of this study can besummarized as follows:• The proposed method succeeded in obtaining agood agreement in classification with regards tocommercial software.• The GPU implementation obtained a significantspeedup over the optimized serial version, thussupporting large scale tests in the Google Mapsengine.In future work, we will develop other parallelimplementations of the considered algorithm and alsoimprove the clustering procedure by including otherclassifiers such as support vector machines (SVMs),which allow a user to train the classifier by selectingtraining samples from the image to be processed insemi-supervised fashion. Implementations of theproposed methods in OpenCL also represent aninteresting future research line.project, reference AYA2008-05965-C04-02). Fundingfrom Junta de Extremadura (local government) underproject PRI09A110 is also gratefully acknowledged.REFERENCES[1] D. A. Landgrebe, Signal theory methods in multispectral remotesensing, John Wiley and Sons, Hoboken, NJ, 2003.[2] P. Soille, Morphological image analysis: principles andapplications, Springer-Verlag, Berlin, 2003.[3] J. A. Benediktsson, J. A. Palmason, and J. R. Sveinsson,“Classification of hyperspectral data from urban areas based onextended morphological profiles”, IEEE Trans. Geoscience andRemote Sensing 42, pp. 480 - 491, 2005.[4] L. Bruzzone, M. Chi, and M. Marconcini, “A novel transductivesvm for the semisupervised classification of remote sensingimages” IEEE Trans. Geoscience and Remote Sensing 44, pp.3363 - 3373, 2006.[5] S. Bernabe and A. Plaza, “A new system to performunsupervised and supervised classification of satellite imagesfrom google maps,” Proc. SPIE Conference on Satellite DataCompression, Communications, and Processing, vol. 7810, pp.1–10, 2010.[6] J. A. Hartigan and M. A. Wong, “Algorithm as 136: A k-meansclustering algorithm,” Journal of the Royal Statistical Society,Series C (Applied Statistics), vol. 28, pp. 100–108, 1979.[7] J. Setoain, M. Prieto, C. Tenllado, A. Plaza, and F. Tirado,“Parallel morphological endmember extraction using commoditygraphics hardware”, IEEE Geoscience and Remote SensingLetters, vol. 43, pp. 441–445, 2007.[8] J. Setoain, M. Prieto, C. Tenllado, and F. Tirado, “GPU forparallel on-board hyperspectral image processing," InternationalJournal of High Performance Computing Applications 22 (4), pp.424-437, 2008.ACKNOWLEDGEMENTThis work has been supported by the Spanish Ministryof Science and Innovation (HYPERCOMP/EODIX6 http://www.nvidia.com/object/product tesla c1060 us.html7 http://www.nvidia.com/object/product geforce 9400m g us.htmlJP2011-105


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-106


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Visibility Map Computation at all Points of aTerrainL. F. Romero, 1 S. Tabik, 2 E.L. Zapata 3Abstract— The knowledge of visibility informationon a terrain is essential for a large number of currentapplications. There exist several algorithms in theliterature for building visibility maps (VM) but onlyfor one single viewpoint or at most for a very smallnumber of observers. This limitation is due to thehigh computational complexity of the used methods(which is greater than O(N 2 ), where N is the numberof the terrain points) and also to the fact thatsingle-point algorithms cannot efficiently be scaled toall points. We present a novel fast algorithm ableto compute the complete VM where, given a terrainT represented by its regular digital elevation model(DEM), our method produces a continuous VM foreach point of T. In fact, the proposed algorithm combinestwo algorithms, i) a visible heights computationalgorithm that divides the terrain into sectors andcalculated the end of all the visible ring sectors, andii) an algorithm that finds out the start of the visiblering sectors using a low cost calculation. To ease thetheoretical and experimental comparisons with previousworks, we considered the VM for one single observer.The results show that our algorithm is moreaccurate and faster by many orders of magnitude thanthe widely used ArcGis visibility tools.I. IntroductionIN the last decade, new larger DEMs (Digital ElevationModels) of higher precision are being created,for example, a global DEM of the earth’s landsurface of size 15.1015 pixels and precision 3 arc seconds(approximately 90 x 90 m2 at the equator) isnow available in [1]; in addition to a large numberof DEMs of many regions of resolution higher than 1arc second (30 x 30 m2). Moreover, in the next threeyears new global products of higher resolution are expected;TanDEM-X Satellite, launched the 21st June2010, will allow the generation of global DEMs of resolutionhigher than 10 x 10 m2. This advances areproducing a huge need to new fast and efficient GIS(Geographic Information Systems) processing algorithms.An important number of GIS applications on terrainsrepresented by DEMs is concerned with visibility.There exists a wide range of actual applications.Examples include the computation of the minimumnumber of locations that have the largest coverageof a terrain [2], [16] i) for placing radio, TV, Internet,wireless or mobile phones transmitters and receiversin telecommunications, ii) for situating forestfire watchtowers in environmental planning, iii) fordetermining routes for hiking trails in tourism. Recently,visibility analysis is also used for visual impactassessment, such as the impact of aquiculture1 Dpto. Arquitectura de Computadores, Universidad deMalaga, e-mail: felipe@uma.es2 stabik@uma.es3 ezapata@uma.esprojects [4] and wind turbines farms installations [6].It is also used to improve wildlife population size estimationtechniques [5], and in the field of archeology,it is used for the reconstruction of views to and fromhistorical objects and sites [7].Most visibility software, such as the well knownvisibility analysis tools implemented under the commercialArcGIS 9.0 [8], r.los implemented underGRASS 6.2.2 [9] and, many algorithms provided inthe literature [12], [18], [13], [17], [20], [21] computethe parts of a terrain that are visible from a singleviewpoint or at most from a reduced number of observers.However none of these implementations iscapable of computing the VM at all the points of theterrain. The reason behind this limitation is thatthe calculation of VM even for a single point is tooexpensive and has a complexity greater than O(N),where N is the total number of points of the DEM.This means that computing the complete VM at allthe points of the terrain has a complexity greaterthan O(N 2 ).This paper presents a novel algorithm able to computethe VM on the entire terrain with a low cost. Incontrast to most previous algorithms which processall the N points of the DEM in order to produce theVM of one single point, our method finds out the visiblepoints by regions. That is, it looks for the visiblepoints only among a selected set of points, called sector.As the size of the selected set is O(log(N/S)),finding the visible regions over all the terrain has acomplexity of only O(S.N.log(N)), where S is thetotal number of sectors. As far as we know, thisalgorithm is the first in computing the VM for theentire terrain. To make our algorithm comparablewith one of the most used visibility algorithms, ArcGis,we compared the runtimes of computing VM atone single viewpoint. The experimental results showthat our algorithm is largely faster than the visibilityanalysis tool of ArcGis.This paper is organized as follows. A brief descriptionof related works is given in section 2. A detaileddescription of all the algorithmic strategies, necessaryfor carrying out both stages of the algorithm, isprovided in section 3. Numerical and computationalresults are given in section 4 and, finally conclusionsin section 5.II. Related WorksThe problem of computing continuous visibilitymaps with respect to a single viewpoint has beenextensively studied in the literature. Nagy and, Florianiand Magillo provide complete surveys of visibilityalgorithms in [10] and [11] respectively. In thisJP2011-107


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011section we will discuss only those papers more relatedto our own work.Atallah [12] uses a divide-and-conquer algorithmto compute the upper envelope of N segments in theplane with a time complexity of O(Nα(N)logN)),where α is the inverse Ackermann function, a slowgrowing function, nearly constant. This algorithmrecursively divides the line segments into halves, andpairwise merges the resultant upper envelopes viaa sweep line technique. Hershberger [13] improvesAtallah’s algorithm, reaching an optimal complexityof O(NlogN). De Floriani et al. [17] computesthe visibility map on TINs (Triangulated IrregularNetworks) using the front-to-back order intime O(N 2 α(N)).Alternatively, the visibility problem can also besolved using horizon calculation. The approximativemethod of Cabral et al. [20] divides the horizon intoS sectors, and in each sector it determines the elevationof the horizon, considering solely the pointsof the terrain that are in the central line of the sectorwith a computational cost O(S(N 1.5 )). Stewart[21] proposed a more precise and faster algorithmthat computes the approximate horizon for all thepoints of the DEM in the whole sector with a totalcost O(SN(log 2 N +S)) and space O(N(log N)). Finally,Tabik et al. [22] proposed a three-level horizonapproach more than three times faster than Stewartsalgorithm while maintaining the same accuracy.Nevertheless, none of these works produces the visibilitymap at all the points of a terrain.III. Our AlgorithmOur algorithm works in two main phases. Actually,it solves the visibility problem by finding thelimits where the visible regions start and end. In thefirst phase, it searches for the visible heights amongthe points that form the horizon or the profile of theterrain. In particular, it finds the end limits of thevisible regions, of ring sector shapes, in each directionaround the points of the terrain. In the nextphase, it uses a very fast algorithm to calculate thestart limits of those visible ring sectors.A. Visible Heights ComputationIn this section we describe all the algorithmic basisof this stage and the optimizations that makes thewhole algorithm faster.A.1 Profile ComputationThe DEM of a terrain T can be described as aset of N points P i (i = 0, ..., N) of coordinates(x i , y i , z i ), where z i is the height of the point. The algorithmdivides the space around the points P i of theDEM into S sector of azimuth angle 2π Sradians eachone. Each point P i has an associated data structureD Pi which store all points that lie in region s, wheres = 1, ..., S. The profile of a given point is consideredas the sequence of points that have the maximum elevationsin s; together they form a boundary that coversall the points of D Pi . These upper convex hullsFig. 1. Point P i has three visible ring sectors (in light grey) inthe region delimited by sector s. These visible ring sectorsare determined by the set of Start-of-Ring-Sector pointsSRS.s.p and the End-of-Ring-Sector points ERS.s.p.Fig. 2. In direction s, P i and P i+1 belong to the set of Endof-visible-Ring-Sectorspoints of P 0 (i.e., ERS.s. P0 ={P i , P i+1 } ). While in the opposite sector, s ′ , with ŝ ′ =−ŝ, P i and P 0 belong to the End-of-visible-Ring-Sectorsof the point labeled as ”?” (i.e., ERS.s’.? = {P i , P 0 }. Thepoint labeled as ”?” belongs to the set of Start-of-visible-Ring-Sectors of P 0 and it is found in the second stage ofthe algorithm.are calculated by projecting all the points stored inD Pi onto the vertical plane that passes from z-axis.The points that have the maximum tangent (calculatedbetween the projection of P i and each point inD Pi ) are maximum elevations. Moreover, a binarytree, HT , of N leaves is used to store all the profilesof all the points of the DEM during the S iterations.The algorithm processes the points in a previouslydetermined order in such a way that each point findsits profile in HT and simultaneously it is incorporatedas a candidate profile point for the points thatwill be processed in next iterations.A.2 Notion of Visible Ring SectorWe formulate VM computation into determiningwhere the continuous visible regions start and end.Once the space is partitioned into sectors, we proceedto compute the visible areas, of ring sector shapes,in each sector s. A visible ring sector from a givenpoint P is delimited by the set of points where thering sector starts, which we call Start of Ring SectorSRS.s.P , and the set of points where the ring sectorends, which we call End of visible Ring SectorERS.s.P . See Figure 1 for illustration.A.3 Opposite Sector Based OptimizationIn each sector s and for each point P of the terrain,the set SRS.s.P and ERS.s.P must be found.Suppose the algorithm has already calculated theSRS.s.P and ERS.s.P of a specific point P in sec-JP2011-108


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011tor s. In future iterations, particularly in the oppositesector s ′ such as ŝ ′ = −ŝ (i.e., ŝ ′ = ŝ + π), thealgorithm will analyze again the point P as possibleSRS.s’ or ERS.s’, in sector s ′ , of its own SRS.s.P andERS.s.P points. For simplicity consider the easy exampledrawn in Figure 2. If the point labeled as ”?”belongs to SRS.s.P 0 , in direction s, thus P 0 may belongto ERS.s’.? in the opposite sector s ′ . Therefore,calculating both SSR and ERS of all the points ofthe DEM is redundant and requires twice as muchcalculation and storage capacity. To eliminate thisredundancy, we first compute and store only the ERSof all the points of the terrain and then in a secondstage use a very fast postprocessing to obtain theSRS points. This approach reduces the storage requirementsand calculation by half.A.4 ERS points ComputationOur algorithm searches for the ERS.s.P i amongthe profile points based on the following assumption.The ERS and SSR points of P belong to the set ofpoints that form P ’s own profile (or hulls) in s. Thiscan be demonstrated mathematically as follows:Lemma:∀Q ∈ D P , if Q ∈ ERS.s.P ⇒ Q ∈ some hull.Proof:suppose Q ∈ ERS.s.P and Q /∈ any hull.this means that ∃!Q ′ such as Q ′ elevation islarger than P elevationwhich implies that Q /∈ ERS.s.PTo determine the ERS.s.P points among the profilepoints, the algorithm processes the profile pointsin the increasing distance order from P . If the tangentbetween the projection of the last profile pointand the current profile point is greater than themaximum angle, the current point is added to theERS.s.P set.A.5 ERS Computation Algorithm SummaryIn summary, our visibility algorithm can be describedas follows:For each sector s in S– We sort all the points of the DEM by a ⊥and b ⊥ in the new system (a ⊥ , b ⊥ , z), wherea ⊥ and b ⊥ are two vectors perpendicular tovectors a and b that delimit sector s. Sincethe target DEMs are regular grids, the sortingoperation can be carried out by counting thenumber of points behind the sweep line usingvery simple trigonometric operations, i.e., theposition number is directly computed. In practicethe time spent in this phase is negligible.We reuse the ordering by b ⊥ in sector i to reorderby a ⊥ in sector i + 1. The new indicesj and k are determined for each point.– For each point P j,k in order of increasing indexj :∗ Add all the points that fall in s to D P∗ Compute the profile points using the Hulltree of P j,k . The structure and processingorder of the tree ensure a highly efficientcomputation since the profile points elevationis always found among the O(logN)leaf-to-root nodes in the tree.∗ Add to tree new candidate as possible profilefor next points. The tree is updated byinserting the heights of the new point P j,k .Index k is used to insert the point in thestructure.∗ Find ERS points among profile points andstore them in the ERS structure.– The points are reordered from their indices jto recover the original ordering.A.6 Start-of-Ring-Sector CalculationOnce all the ERS points are calculated for all thepoints of the terrain, the algorithm proceed to computethe SRS points by sector and by point. In thisstage, each point P looks for the points whose it isend of ring sector and stores them into a data structurethat we call reverse list. In principle, all thepoints that belong to this list are candidates for SRSof P . For illustration consider point P 0 in Figure 2.Among the set of points limited by two consecutiveERS points, P i and P i+1 , the points that have P 0as ERS in the opposite sector and belong to the interval[P i , P i+1 ] are candidates for SSR.s.P 0 . Onlythe point that verifies the following criteria is SRS ofP 0 . It is further than P i and nearer than P i+1 andobviously it is a candidate in the reverse list.This stage is very slight from a computationalpoint of view. For instance, for the terrain shownin Figure 3(a) of size 2000 × 2000 points, the secondstage takes only 33 minutes on a Desktop basedon Intel core2 duo that runs at 3.16 GHz with 3,25GB of main memory. Actually, computing the reverselist takes 3 minutes and calculating SRS takes30 minutes.Due to the discrete nature of the problem, thereverse search method explained above doesn’t ensurethat every ERS matches with its SRS. Alternatively,missed SRSs can be found using a binarysearch among candidates in the current sector, whichis also very fast because, in Stewart’s method, DEMpoints have been already sorted in the required order.IV. Numerical and Computational ResultsSome numerical results of our approach are shownin Figure 3. In particular, Figure 3(b) shows thevisibility map computed on the terrain of the cityof Malaga, Spain, whose DEM is shown in Figure3. The value at each pixel in Figure 4 shows thenumber of visible Km 2 . Dark red color correspondsto points with very high visibility, about 100 visibleKm 2 . Dark blue color corresponds to points withvery low visibility. From this figure, one can observethat higher points don’t necessarily have higher visibility.Actually, some points at the sea level havenotably more visibility than higher interior points.One of the main advantages of the visibility mapsthat our algorithm is able to produce is allowing aJP2011-109


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 3. Elevation map of the city of Malaga, Spain; darkerred and lighter green correspond to points with higher andlower elevations respectively.Fig. 5. The light grey regions indicate the ring sectors visiblefrom a point selected at the sea level in the 2000 × 2000points DEM of the city of Malaga, Spain.Fig. 4. The visibility map of the city of Malaga; darker redand darker blue show higher and lower numbers of visibleKm 2 respectively.global visibility comparison over all the points of theterrain.The precision of the VM calculated by our algorithmonly depends on the resolution of the usedDEM and the considered number of sectors. It can beincreased or decreased depending on the needs of theconsidered application. Notice that the azimuthalsectorization of the viewshed involves a slight linearloss of precision in very distant locations. Thisfact can be appreciated in Figure 5, which showsthe farthest End-of-Ring-Sectors seen at a point selectedfrom the lower right corner (at the sea level) ofthe DEM of the city of Malaga. However, this kindof precision losses is irrelevant in most applicationssince signals intensity is inversely proportional to thesquare of the distance (I = P/4πd 2 , where P is thepower of the signal).The code was implemented in C++ and compiledwith -O3. For performance evaluations, we comparedthe runtime of our algorithm with the runtime of ArcGis[8], one of the fastest and widely used softwarefor viewshed calculation. We performed all experimentson a PC based on Intel core2 duo running at3.16 GHz with 3.25 GB of main memory. Comput-ing the ERS points of all the points of a 2000 × 2000points DEM (of size 8 MB), considering 360 sectors,takes about 6.5 hours. Building the reverse list takes3 minutes and finding the SRS points takes about30 minutes. Storing the ERS points by sector in filestakes 10 minutes resulting in a set of 360 files of a totalsize of about 42 GB. This means that the storagerequirements per point per sector is about 30 bytes.In VM of the city of Mlaga shown is Figure 3(b), theaverage number of ring sectors per point per sectoris equal to 3.1 ring sectors.Taking into account all these measurements, computingthe VM at a single point on a terrain of size2000 × 2000 points using the algorithm we proposedin this work takes only 0.0063 seconds, while ArcGistakes about 10 seconds to compute VM in the sameconditions.V. ConclusionsWe presented a new and fast algorithm that computesthe visibility map on the entire terrain. Theproposed algorithm can be very useful for acceleratinga wide range of visibility based applications.For example it can be used to accelerate siting multipleobservers so as to jointly cover as much terrainas possible described in [15] and for extending thevisibility index calculation, cited in [15], [2], to verylarge radius. The presented algorithm has a timecomplexity O(S.N.log(N)) substantially better thanprevious single-point-visibility algorithms and scalesO(N.log(N)) versus O(N 2 ) for previous algorithms.Moreover, experimental results demonstrate that ourmethod is faster by many order of magnitude thanmost used visibility tools included in ArcGis.AcknowledgementsThis work was supported by the Spanish Ministryof Education and Science throughout Juan dela Cierva Grant and the project TIN2006-01078.References[1] CGIAR-Consortium for Spatial Information ShuttleRadar Topography Mission (SRTM) Database [online].JP2011-110


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Available from: http://srtm.csi.cgiar.org/. 2007.[2] Franklin R. and Ray C. K. Advances in GIS Research:Sixth International symposium on spatial Data handlinghigher isn’t necessarily better: Visibility Algorithms andExperiments. 1994.[3] Floriani, L.D., Magillo, P. Algorithms for visibilitycomputation on digital terrain models. Proceedings ofthe ACM/SIGAPP Symposium on Applied Computing.ACM, New York. 1993.[4] Perez O. M., Telfer T. C. and Ross L. G. Use of GISbasedmodels for integrating and developing marine fishcages within the tourism industry in Tenerife (CanaryIslands) Coastal Management 31(4), 355-366. 2003.[5] Maichak E. J. and Schuler K. L. Applicability of viewshedanalysis to wildlife population estimation AmericanMidland Naturalist 152, 277-285. 2004.[6] Kidner D. B., Rallings P. J., Ware J. A. Parallel processingfor terrain analysis in GIS: Visibility as a case study,Geoinformatica, 1(2), 183–207. 1997.[7] Ogburn D. E. Assessing the level of visibility of culturalobjects in past landscapes Journal of Archaeological Science33, 405-413. 2006.[8] ESRI(Environmental Systems Research Institute) AR-CGIS Software. Version 9.3. 2010.[9] GRASS Development Team Geographic Resources AnalysisSupport System (GRASS) Software, available inhttp://grass.itc.it. 2007.[10] Nagy G. Terrain visibility Computers and Graphycs,8(1), 763–773. 1994.[11] De Floriani L. and Magillo P. Algorithms for visibilitycomputation on terrains: A survey, Environment andPlanning B: Planning and Design 30, 709-728. 2003.[12] Atallah M. Dynamic computational geometry Proceedingof the 24th IEEE Symposium on the Foundations ofComputer science, 92-99. 1983.[13] Hershberger J. Finding the upper envelope of n line segmentsin O(n log n) time, Information Processing Letters,33(4), 169174. 1989.[14] Stewart A.J. Fast Horizon Computation at All Points of aTerrain With Visibility and Shading Applications IEEETransactions on Visualization and Computer Graphics,4(1), 82–93. 1998.[15] Franklin R. Sitting observers on terrain. Symposium onSpatial Data Handeling. 2002.[16] Ben-Shimo Y., Ben-Moshe B., Ben-Yehezkel Y., Dvir A.and Segal M. Automated antenna positioning algorithmsfor wireless fixed-access networks. Journal of Heuristics,13(3), 243–263. 2007.[17] De Floriani L., Falcidieno B. , Nagy G. and PienoviC. Polyhedral Terrain Description Using Visibility Criterianstitute for Applied Mathematics, National ResemvhCouncil, Technical Report (17). 1989.[18] De Floriani L., and Magillo P. Visibility Algorithms onTriangulated Terrain Models International Journal of GeographicInformation Systems, 8(1), 13–41. 1994.[19] Katz M. J. , Overmars M. H., Shairr M. Efficient hiddensurface removal for objects with small union size Proceedingsof the seventh annual symposium on Computationalgeometry, 31–40, New Hampshire, United States 1991.[20] Cabral B., Max N., and Springmeyer R. Bidirectionalreflection functions from surface bump maps ACM SIG-GRAPH Computer Graphics 21, 273–281. 1987.[21] Stewart A.J. Fast Horizon Computation at All Points of aTerrain With Visibility and Shading Applications IEEETransactions on Visualization and Computer Graphics,4(1), 82–93. 1998.[22] S. Tabik, L. F. Romero and E. L. Zapata High PerformanceThree-horizon Composition Algorithm for largescale terrains International Journal of Geographical InformationScience. 25(4), 541–555 2011.JP2011-111


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-112


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Un método de acceso aproximado para muyalta dimensionalidad y su paralelizaciónFernando Artigas Fuentes 1 José Manuel Badía Contelles 2 y Reynaldo Gil García 3Resumen— En este trabajo, proponemos un nuevométodo de acceso aproximado para espacios de muyalta dimensionalidad y especialmente aquellos conmuy alta dispersión de los datos. Está basado enel uso de múltiples grafos como estructura de indexadoy un algoritmo de búsqueda para obtener de unrepositorio de objetos, representados como vectores,aquellos más relacionados a otros objetos usados comoconsultas. Aunque este método es aproximado, muestraun nivel bajo de error. Tiene además un costetemporal muy bajo durante las consultas y está especialmentediseñado para ser ejecutado en paralelo deforma simple y eficiente. Mostramos versiones paralelastanto para la generación de la estructura de indexadocomo para el algoritmo de búsqueda. Se ha paralelizadousando la interfaz OpenMP. Hemos evaluadonuestra propuesta sobre espacios de representación demiles dimensiones obteniendo prestaciones paralelascercanas al óptimo.Palabras clave— métodos de acceso, computaciónparalela, búsqueda aproximada, grafos.I. IntroducciónPARA recuperar información, es muy común quese utilice un método de acceso. Este tiene elobjetivo de organizar los objetos de un repositorio deforma tal que durante las consultas solo sea necesarioacceder a una porción del mismo. Cuanto menor seala porción visitada para cada consulta, más eficienteresulta el método de acceso.La mayoría de los datos que se manejan en la actualidadson descritos mediante un gran número de características,que para los métodos de acceso se conviertenen dimensiones del espacio de representaciónde los datos.Existe en la literatura un conjunto amplio demétodos de acceso capaces de indexar espacios multidimensionales,pero la mayoría sufre un problemaconocido como ”Maldición de la dimensionalidad”[1]. Este provoca que a medida que aumenta ladimensionalidad del espacio de representación delos datos los resultados de la búsqueda se vandegradando hasta convertirse en iguales o peores quepara el caso de búsqueda exhaustiva.Debido a que todos los métodos exactos sufren elproblema antes descrito, para el caso de espacios demuy alta dimensionalidad, se han presentado en laliteratura nuevos métodos que obtienen solucionesaproximadas. Estos métodos utilizan varias técnicasque consisten en relajar las condiciones tanto de laconstrucción de las estructuras de indexado como de1 CERPAMID, Univ. Oriente, Cuba, e-mail:artigas@cerpamid.co.cu.2 Dpto. de Ingeniería y Ciencias de los Computadores, Univ.Jaume I, e-mail: badia@icc.uji.es.3 CERPAMID, Univ. Oriente, Cuba, e-mail:gil@cerpamid.co.cu.las estrategias de búsqueda. Algunas de las técnicasusadas son la reducción de la dimensionalidad delespacio de búsqueda, seleccionando un subconjuntode características más representativas de los objetos,hasta valores más manejables por los métodos ya existentes[2], y la sustitución de los objetos originalespor otros menos complejos que mantengan aproximadamentelas mismas relaciones de vecindad quelos originales [6].Otras propuestas son eficientes manejando un grannúmero de dimensiones, como es el caso del VA-filey los derivados de este [3], [4], [5]. Sin embargo,estos métodos se vuelven ineficientes cuando a la altadimensionalidad de los datos tratados se suma unaalta dispersión de los mismos.En este trabajo proponemos un nuevo métodode acceso que es poco afectado por ambos problemas:la alta dimensionalidad y la alta dispersiónde los datos. El mismo está basado en el uso demúltiples grafos como estructura de indexado y unalgoritmo de búsqueda que, aunque aproximado, permiteobtener un elevado porcentaje de soluciones exactascon un coste temporal muy bajo.Además, la estructura de datos se ha diseñado conel fin de poder construirla y utilizarla en paralelo deforma sencilla y eficiente. Presentamos además unaversión paralela de este método, mediante el uso dememoria compartida y la interfaz OpenMP.El resto del trabajo está organizado como sigue: enla sección 2 se trata con más detalles las propiedadesde los métodos de acceso, en la sección 3 explicamosnuestra propuesta y su paralelización, en la sección 4describimos los experimentos realizados y los resultadosobtenidos. Finalmente en la sección 5 mostramoslas conclusiones de este trabajo.II. Métodos de accesoUn método de acceso está formado por una estructurade indexado, que organiza de alguna maneralos objetos de un repositorio, y una estrategia debúsqueda que debe recorrer los objetos indexados dela manera más eficiente.Un método de acceso necesita además de una medidade comparación entre los objetos que exprese laproximidad entre estos. Esta puede ser una semejanza,que da una medida de en cuanto se parecendos objetos entre sí; o una diferencia, que determinaen cuanto se distinguen. Por lo general como medidade comparación se usa una función de distancia, queademás de expresar lo cercano que están los objetosentre sí, define un espacio métrico.Una función distancia puede expresarse como:dist : Ω d xΩ d → R +JP2011-113


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011donde Ω d es el espacio de representación de los datosy d la dimensionalidad del mismo.Una distancia debe cumplir los siguientes requisitos:Reflexividad: ∀x ∈ Ω d , dist(x, x) = 0Simetría: ∀x, y ∈ Ω d , dist(x, y) = dist(y, x)Desigualdad triangular: ∀x, y, z ∈ Ω d , dist(x, y) ≤dist(x, z) + dist(z, y)Si el espacio de representación usado no es un espaciométrico, entonces es suficiente con que la medidade comparación cumpla con los dos primeros.Debido a que las medidas pueden ser diversas,cuando comparemos dos objetos, nos referiremossimplemente a proximidad, y la denotaremos por Ψ,por lo que se cumple que:∀x, y, z ∈ Ω d , Ψ(x, y) < Ψ(x, z) → sem(x, y) >sem(x, z)∀x, y, z ∈ Ω d , Ψ(x, y) < Ψ(x, z) → dif(x, y)


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmo 1 GenerarGrafo(O p , θ)Entrada: O p : subconjunto de vectores a indexar, θ:número mínimo de vecinos directos de cada vérticeen el grafo final.Salida: G p : grafo que indexa a los vectores de entrada.Etapa1. Cálculo del centroide del subconjunto.Se obtiene un nuevo vector como resultado desumar todos los vectores del conjunto dimensiónpor dimensión. El vector resultante tiene valormayor que cero en todas las dimensiones del espaciode representación de este subconjunto.Etapa 2. Descomposición del subconjuntoen una lista ordenada de subconjuntos porsu proximidad con el centroide.A partir de los elementos del subconjunto se obtieneuna lista ordenada en orden decreciente deproximidad con el centroide del subconjunto.Esta lista es dividida en un número predefinido desublistas, que quedarán ordenadas por la proximidadde sus elementos con el centroide.Etapa 3. Construcción del grafo conexo.De los elementos de la primera sublista, se calculael par de elementos más próximos entre sí. Estoselementos forman la primera arista del grafo.Del resto de los elementos de la sublista se calculael elemento que al ser conectado a un par devértices de cualquier arista del grafo provoca elmenor crecimiento en área de esta.Este proceso se repite hasta que todos los elementosde la sublista son conectados al grafo.Los dos pasos anteriores son repetidos para el restode las sublistas, hasta que todos los elementos dela lista original estén conectados en el grafo.Etapa 4. Completar el grafo hasta que cadavértice tenga θ vecinos.En esta etapa se verifica que cada vértice formeparte como mínimo de una cantidad predefinida dearistas. En caso que se detecte un vértice que nocumpla esta condición el mismo es conectado connuevos vecinos más próximos hasta que se cumplala condición.Etapa 5. Calcular los vértices de entrada algrafo.Se determinan aquellos vértices que cumplen quetodos los vértices con los que conforman aristasestán más próximos que estos al centroide del subconjunto,y aquellos vértices que cumplen que todoslos vértices con los que conforman aristas estánmenos próximos que estos al centroide del subconjunto.Finalmente se genera una estructura que contieneal conjunto de vértices (O p ), al conjunto de aristas(A p ) y al conjunto de los vértices identificadoscomo de entrada al grafo (E p ).return G p = (O p , A p , E p ).Algoritmo 2 BuscarKPróximos(R, G, q, k)Entrada: R, el repositorio de objetos iniciales; G =G 1 , G 2 , ..., G N , la lista de los grafos obtenidos medianteel Algoritmo 1; q, el objeto de consulta; yk, el número de soluciones requeridas.Salida: Los k objetos de R más próximos a q segúnΨ.Sea −→ v = ζ(q) la representación vectorial de q.Sean G i = G[i], O i = G i [1],A i = G i [2] y E i =G i [3].Sean S ′= ∅ y N = |G|.for i = 1 → N doSea S i = {( −→ o j,p , ψ j,v )/ −→ o j,p ∈ O i , ψ j,v =Ψ( −→ o j,p , −→ v )}, obtenido mediante kNN(G[i], −→ v ,k)(Algoritmo 3).= S ′ ∪ S iend forSea S ′′ la lista de los elementos de S ′ ordenadade mayor a menor según el valor de ψ j,v de cadaelemento.Sea S = {S ′′ [1], S ′′ [2], ..., S ′′ [k]} las k solucionesmás próximas al objeto de consulta.return {r j /r j ∈ R, r j = ˜ζ(o i,p ), (o i,p , ψ i,v ) ∈ S}.S ′altamente dispersos, con un número suficientementegrande de estos la carga de trabajo de los procesadorestiende a equilibrarse ”de manera natural”.D. Paralelización de las consultasEl proceso de buscar las soluciones parciales queaporta cada grafo al resultado de una consulta escompletamente independiente para cada uno de ellos.Posteriormente es necesario combinar estas solucionesparciales para obtener la solución final, procesoque sigue siendo de naturaleza secuencial y essimilar al descrito para la versión secuencial.Los cambios con respecto al Algoritmo 2 sonmostrados en el Algoritmo 4. Notese que el buclefor se ejecuta en paralelo por todos los procesadoresinvolucrados. Se ha incluido además una seccióncrítica para evitar que más de un proceso actualice elconjunto S ′en el mismo instante, lo que provocaríainconsistencias en el mismo.IV. Análisis experimentalA. Entorno experimentalPara realizar nuestros experimentos usamos unrepositorio de la agencia Reuters con los textos deun gran número de noticias cortas en prensa: lacolección Reuters corpus versión 1 (RCV1-v2) [7].El vector de características −→ o i de cada documentor i fue producido mediante la concatenación de lostextos en los elementos y de losXML originales. El texto fue reducido a caracteresen minúsculas, después de lo cual se realizó sobre losmismos un proceso de tokenización, eliminación depuntuaciones y estemizado. Se eliminaron las palabrasde parada, se sopesaron los términos y finalmentelos pesos fueron normalizados, tras realizaruna selección de características.JP2011-115


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmo 3 Función kNNEntrada: G i , estructura de indexado; −→ v , el vectorde consulta; k, la cantidad de soluciones requerida.Salida: KNN, los k objetos más próximos a −→ v .{Determinando los vértices de entrada}.Sean G i = G[i], O i = G i [1],A i = G i [2] y E i =G i [3].Sea S ′= −−→ o k1 ,i, −−→ o k2 ,i, ..., −−−→ o k|S| ,i la lista de elementosde E i , ordenada en orden decreciente de su proximidada −→ v .Sea α ∈ {1, ..., |S|} una constante predefinidaque determina del conjunto S el número real devértices que serán usados como puntos de entradaa la estructura de indexado.{Búsqueda del vecino más próximo a −→ v }.Sea NN = [] una lista vacía.for e = 1 → α do−→ s0 = S ′ [e].repeatSea L la lista ordenada de los elementos de{ −→ o j,i / −→ o j,i ∈ G i , ( −→ s 0 , −→ s j,i ) ∈ A i } en orden decrecientede su proximidad a −→ v .if Ψ(L[1], −→ v ) > Ψ( −→ s 0 , −→ v ) then−→ s0 = L[1].end ifuntil Ψ(L[1], −→ v ) ≤ Ψ( −→ s 0 , −→ v )NN[e] = −→ s 0 .end forOrdenar los elementos de NN en orden decrecientede su proximidad a −→ v .kNN = NN[1].{Búsqueda de los siguientes (k − 1) vecinosmás próximos a −→ v }if k > 1 thenkNN = kNN ∪ { −→ o j,i / −→ o j,i ∈ G i , ( −→ s 0 , −→ o j,i ) ∈ A i }.repeatSea L la lista ordenada de los elementos dekNN en orden decreciente de su proximidada −→ v .Sea L ′ = L[1], L[2], ..., L[t] tal que t =min(k − 1, |L|).kNN = { −→ o j,i / −→ o j,i ∈ L ′ }.Sea ρ = Ψ(L[t], −→ v ) la mínima proximidad entrelos elementos de L ′ y −→ v .for p = 1 → t doSea H p = { −→ o j,i / −→ o j,iA i , Ψ( −→ o j,i , −→ v ) ≥ ρ)}Sea kNN ′ = kNN ∪ H p .end forkNN = kNN ′ .∣until ( ∣kNN ′∣ ∣ ′ ≥ k) ∧ (kNN = kNN)end ifreturn kNN.∈ G i , (L ′ [p], −→ o j,i ) ∈Algoritmo 4 BuscarKPróximosPar(R, G, q, k){...}for i = 1 → N do {en paralelo}Sea S i = {( −→ o j,p , ψ j,v )/ −→ o j,p ∈ O i , ψ j,v =Ψ( −→ o j,p , −→ v )}, obtenido mediante kNN(G[i], −→ v ,k)(Algoritmo 3).Sección crítica: S ′= S ′ ∪ S iend for{...}Se usó de la partición LYRL2004 su conjunto deentrenamiento que contiene 23.149 vectores. El espaciode representación de este conjunto tiene 47.152dimensiones. La matriz de representación de este espaciocontiene una gran número de ceros, debidos ala alta dispersión de los vectores.Todos los experimentos fueron realizados sobre unmultiprocesador SGI Altix 350 con memoria compartida.Esta máquina tiene 8 nodos, cada uno delos cuales tiene 2 procesadores Intel Itanium2, a 1.5GHz. Cada nodo cuenta con 4Gb de memoria localconectadas mediante una red SGI NUMAlink, llegandoa 32 GBytes de memoria compartida.Todos los algoritmos fueron implementadosusando lenguaje C, y fueron compilados con ICC9.0 sobre el sistema operativo Linux. Las versionesparalelas fueron implementas usando la interfazOpenMP.B. Resultados experimentalesPara estudiar el comportamiento de nuestra propuestase generó, para los esquemas secuencial y paralelo,un gran número de estructuras de indexadocon diferentes números de grafos. Para seleccionar elvalor de θ se generaron grafos usando valores entre 10y 90. Finalmente seleccionamos el valor de 50 por serel que garantizó un mejor equilibrio entre la calidadde los resultados y la selectividad del método.Los resultados fueron obtenidos mediante latécnica de validación cruzada 10-fold-cross validation,por lo que se procesaron 10 repositorios distintos.Los valores experimentales mostrados son lospromedios de los obtenidos para cada repositorio.Por cada experimento medimos el coste temporalde la generación de la estructura de indexado para20.000 objetos, el coste temporal de 2.300 consultas,el consumo de memoria principal, la selectividad y ladimensionalidad de cada espacio de representación.La asignación de objetos a los subconjuntos dedatos fue realizada de manera aleatoria.C. Precisión de los resultadosEl primer primer aspecto estudiado fue la calidadde los resultados obtenidos durante las consultas.Los comparamos con los obtenidos con el métodoexhaustivo, que garantiza las soluciones exactas.La Figura 1 muestra que la exactitud de los resultadosse incrementa con el número de grafos usados.El incremento fue desde el 92% de soluciones exactaspara un grafo hasta casi el 97% para 16.JP2011-116


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 1. Precisión de los resultados comparados contra losobtenidos mediante el método exhaustivo.D. Selectividadtra, a medida que se usan más grafos para indexarel repositorio, el tamaño máximo de los espacios derepresentación disminuye. Esto se debe a que cuantosmás grafos son usados, los subconjuntos de datoscontienen menos elementos, y debido a la dispersiónde los datos, van a contener en conjunto menos dimensiones.Esto es así porque aumenta la probabilidadde que en cada submatriz de representación, quecontiene de la matriz original solamente aquellas filasde los vectores que le pertenecen, exista una grancantidad de columnas con todos los valores a 0, encuyo caso esa dimensión del espacio original no setiene en cuenta.La Figura 3 muestra que la máxima dimensionalidaddel espacio de representación disminuyedesde aproximadamente 50.000 dimensiones hastacasi 14.000, cuando se varía el número de grafosdesde 1 hasta 16. Es necesario notar que el problemageneral mantiene siempre la misma dimensionalidad,pero las dimensiones son repartidas de maneraaleatoria entre los grafos. Una misma dimensiónpuede aparecer en más de un grafo.F. Coste temporal de la generación de los grafosFig. 2. Número de objetos evaluados como promedio durantelas consultas, variando el tamaño del repositorio.Como se aprecia en la Figura 2, el número promediode objetos comparados durante las consultasse va estabilizando a medida que se incrementa eltamaño del repositorio, por lo que la selectividad delmétodo crece en igual medida.E. Dimensionalidad del espacio de representaciónFig. 4. Coste temporal para generar los grafos en la variantesecuencial.La Figura 4 muestra el coste temporal cuando losgrafos son generados de manera secuencial, variandoel número de grafos desde 1 hasta 16. Para la versiónparalela usamos, de modo natural, la misma cantidadde procesadores que de grafos generados.Fig. 3. Dimensionalidad máxima obtenida para los espaciosde representación, variando el número de grafos usados.Para analizar la dimensionalidad del espacio derepresentación de cada problema usamos el tamañode los centroides de cada grafo, y tomamos en cadacaso el mayor valor. Por ejemplo, cuando usamosun solo grafo tomamos el tamaño de su centroide,pero cuando generamos más de un grafo medimos eltamaño del centroide de cada grafo y mostramos elmayor valor.La tendencia seguida por la dimensionalidad delespacio es mostrada en la Figura 3. Como se mues-Fig. 5.Aceleración optenida con la versión paralela.La Figura 5 muestra la aceleración optenida conla versión paralela de generación de los grafos. Estamuestra además que se han obtenido superaceleracionesen casi todos los casos. Esto se debe al mejorJP2011-117


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011uso de la estructura de la memoria cuando se usanvarios procesadores que cuando se usa uno solo.G. Consumo de memoria por los grafosFig. 6. Consumo de memoria principal, variando el númerode grafos.La Figura 6 muestra la cantidad de memoria necesariapara almacenar los grafos. Los valores son losmismos tanto para la versión secuencial como parala paralela.Los resultados demuestran que el consumo dememoria se incrementa poco a medida que son usadosmás grafos para indexar el repositorio. Esteincremento lento se debe a que cuantos más grafosson usados cada uno de estos contiene menos objetos,pero cada grafo aporta un consumo adicional debidoa que al mantener la cantidad de vecinos de cadaobjeto igual a θ en cada grafo, el número global deenlaces se incrementa. Además, para cada grafo sealmacena un conjunto de objetos de entrada.H. Coste temporal de las búsquedasFig. 7. Coste temporal para generar los grafos en la variantesecuencial.La Figura 7 muestra el promedio del coste temporalnecesario para evaluar una consulta, variandoel número de grafos, tanto para la versión secuencialcomo para la paralela.Se puede observar que este coste se incrementaa medida que crece el número de grafos. Estoes debido a que se necesita, entre otros aspectos,evaluar un número mayor de vértices de entrada.También se observa que este incremento disminuyedrásticamente en la versión paralela, debido a que sinimportar el número de grafos usados, las consultas acada grafo se solapan en el tiempo. En este caso,el incremento del coste temporal se debe fundamentalmentea la pequeña sección secuencial remanente,en la que se obtiene el resultado final a partir de losparciales obtenidos para cada grafo.V. Conclusiones y trabajo futuroHemos presentado un método de acceso para espaciosde muy alta dimensionalidad basado en el usode multiples grafos como estructura de indexado. Laestrategia de búsqueda que utiliza, aunque da lugara soluciones aproximadas, lo hace con un nivel de errorbajo y con una alta selectividad. Esto provocabajos costes temporales durante las consultas.Como hemos observado a medida que se usan másgrafos en la estructura de indexado la precisión delmétodo se incrementa, aunque el coste temporal delas consultas se incrementa un poco.La estructura de indexado se ha elegido además,porque permite su construcción y utilización en paralelode forma sencilla y eficiente. Los resultados experimentalesdemuestran que se obtienen muy buenasprestaciones con la versión paralela de ambosprocesos.Como trabajo futuro explotaremos las característicasde arquitecturas híbridas, con la combinacióndel uso de memoria compartida y distribuida.AgradecimientosEl presente trabajo ha sido financiado por el DepartamentoIngeniería y Ciencia de los Computadoresde la Universidad Jaume I, Castellón.Referencias[1] H. Samet, Foundations of Multidimensional and MetricData Structures. Morgan Kaufman, ISBN 0123694469,2006.[2] Cortizo, J.C., Giráldez, J.I., Multi criteria wrapper improvementsto naive bayes learning. LCNS, Vol. 4224,2006.[3] Berchtold, S. et al., Independed quantization: an indexcompression technique for high-dimensional data spaces.ICDE’00, pp. 577–588, 2000.[4] Zhenjie Zhang and Beng Chin and Ooi Srinivasan andParthasarathy Anthony and K. H. Tung, Similarity searchon bregman divergence: Towards non-metric indexing, InVLDB, 2009.[5] Ro J. S. Dutra and William A. Pearlman and Eduardo A.B. Da Silva and Senior Member, Successive ApproximationWavelet Coding of 1 AVIRIS Hyperspectral Images, 2010.[6] Edgar Chavez, Karina Figueroa y Gonzalo Navarro, EffectiveProximity Retrieval by Ordering Permutations. IEEETransactions on Pattern Analysis and Machine Intelligence(TPAMI). Vol. 30 No. 9. pp 1647-1658, 2007.[7] Lewis, D. D. et al., RCV1: A new benchmark collection fortext categorization research, Journal of machine learningresearch, num. 5, pp. 361-397, 2004.JP2011-118


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Perceptually enhanced INTRA video encoderfor high definition/quality servicesM. Martínez-Rach, O. López, P. Piñol, M. Perez Malumbres 1 andJ. Oliver 2Resumen— Although inter video coding gets thehighest R/D for general video coding, intra encodersare of particular interest for some applications. Wepropose a simple perceptually enhanced intra-modevideo encoder (PM-LTW) based on the ContrastSensitivity Function (CSF) that gets good performanceby allowing a gracefully quality degradationas compression rate increases. We evaluated theperformance in terms of perceptual quality, memoryconsumption and complexity with H.264/AVC intra,Motion-JPEG2000 and Motion-SPIHT. We employedthe Visual Information Fidelity (VIF) image QualityAssessment Metric (QAM) as video quality metric.The results show that the proposed encoder is competitivewith respect to H.264/AVC at low to mediumcompression rates, and as video resolution increases,it outperforms H.264/AVC. In addition it requiresmuch less memory and exhibits fast encoding rates.Palabras clave— High Definition Video Coding, PerceptualCoding, Contrast Sensitivity FunctionI. IntroductionALTHOUG the use of motion-estimation (interframecoding) achieves much better R/D whencompared to intra-frame coding, there are severalapplications that requires a intra-frame coding approach.Most of the television content productionsrequire recordings in HD to maintain high qualityof picture even though the final transmission is inSD (standard definition) format and after professionalvideo editing processes, where random and frequentframe access and edition is performed. Intraframecoding is desirable as well in many other applicationslike video archiving, high-quality highresolutionmedical and satellite video sequences, applicationsrequiring simple real-time encoding likevideo-conference systems where very low delay is desirableor even for professional or home video surveillancesystems [1] and Digital Video Recording systems(DVR), where the user equipment is usually notas powerful as the headend equipment. So, for theseapplications, computing capability, limited memoryresources and real-time constraints need to be takeninto account. Many wireless applications often useintra coding technologies which exhibits an excellenterror resilience behavior at the price of higher bitrates.The strength of an intra-video coding systemrelies on the ability to efficiently exploit the spatialredundancies of each video sequence frame avoidingcomplexity in the design of the encoding/decodingengines.1 Departament of Physics and Computer Engineering,Miguel Hernandez University - Elche - Spain, e-mail:{mmrach,otoniel,pablop,mels}@umh.es.2 Departament of Computer Engineering, Polytechnic Universityof Valencia - Spain, e-mail: joliver@upv.esIn the context of image and video compression, themost reliable way of measuring the perceived qualityis by performing subjective quality tests. Such subjectivetests were standardized by the Video QualityExperts Group (VQEG) [2]. The Mean OpinionScore (MOS) is a subjective quality metric obtainedfrom a number of human observers, has beenregarded for many years as the most reliable formof quality measurement, and the procedure for doingsuch experiments has been standardized [3]. However,the MOS method is too cumbersome, slow andexpensive for most applications.Many research has been done in order to obtainobjective image and video image QAM based on theknowledge of how our Human Visual System (HVS)perceives quality. QAM are valuable because theyprovide video encoder designers and standard organizationswith means for making meaningful qualityevaluations without convening viewer panels. Themost commonly used quality metric is the PSNRsince it is simple and fast to calculate. HoweverPSNR does not always capture the distortion perceivedby the HVS. In terms of correlation to humanperception it would be preferable to use the MOSvalue as QAM when performing R/D comparisonsbut it would be too cumbersome. Some studies beginto present their results by means of quality assessmentmetrics like MSSIM [4] and VIF [5].Image and video encoders have included much ofthe knowledge of our HVS in the way they processin order to obtain a better perceptual quality of thecompressed sequences. The most widely used characteristicis the contrast adaptability of the HVS.HVS is more sensitive to contrast than to absoluteluminance. The Contrast Sensitivity Function (CSF)relates the spatial frequency with the contrast sensitivity.We propose a intra perceptual video encoder, PM-LTW, based on LTW image codec [6] with the inclusionof CSF in the wavelet transform stage, optimizedand tuned to work at moderate to good video qualitylevels. We propose the use of a CSF weighting matrixapplied to wavelet subbands that preservers a verygood balance between bit-rate and perceptual qualityin all the quantization range. As quality metricfor R/D comparisons, we propose to use the VIF (VisualInformation Fidelity) QAM [7] which has beenproven [8] [9] to have a better correlation with subjectiveperception than other metrics that are usuallyused for this types of comparisons [10] [4]. Weperform a comparison of the PM-LTW perceptualperformance with other intra tuned coding proposalsJP2011-119


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011like H264/AVC, Motion-JPEG2000, Motion-SPIHTand x264.The rest of the paper is organized as follows. Insection II we introduce some advantages of intra coding,in section III we describe how to include the CSFin the encoding process and in section IV we discussabout the convenience of using quality assessmentmetrics. In Section V we describe the codec versionsincluded in the comparison against PM-LTW and weexplain the methods followed to perform the comparisonas well as the results presented, and finally insection VI some conclusions are drawn.II. Advantages of Intra-CodingInter-frame coding uses temporal correlation ofpictures to generate lower bit-rates than intra codingschemes, assuming that the content of successiveframes is similar. When this assumption fails,for example in videos of “still-camera” strobes, fastmotion sport sequences, quick zooms and pans, specialeffects or sequences with short duration eventsand high motion, then the bit-rate savings would bereduced, approaching to bit-rates produced by theintra coding option. Furthermore, the compressiondelay coding in intra mode is much lower than theone produced in inter coding, what should be takeninto account for interactive IPTV applications.In video content editing applications, accessingrandom frames would be natural for intra codingschemes, while inter coding would require decodingseveral frames. Moreover, the quality of reconstructedframes depends only of the frame itselfavoiding error propagation between frames thatwould be considerable when previous frames or partof them are lost or with errors. This also leads to alower degradation of the edited video when multipleeditions of the same sequence are done.Parallel processing is another field where intra codingcan take advantage, since inter coding definesmore data dependencies that causes parallel programmingto be complex and less efficient. Intra onlycompression is very suitable with parallel processingarchitectures, i.e. multi core CPUs, or GPUs.In [11] an experimental study was performed withH.264/AVC and JPEG2000 in order to determine thebenefits of the use of inter frame encoding versus intraframe encoding for Digital Cinema applications.Their results draw that the coding efficiency advantagesof inter frame coding are significantly reducedfor film content at the data rates and quality levelsassociated with digital cinema. This indicatesthat the benefit of inter frame coding is questionable,because it is computationally much more complex,creates data access complications due to the dependenciesamong frames and in general demands moreresources. For lower resolutions their experimentsconfirms that inter frame coding was more efficientthan intra frame coding. These results provide a justificationfor using JPEG2000, or other intra framecoding methods, for coding digital cinema content.Fig. 1.Contrast Sensitivity FunctionIII. Contrast Sensitivity FunctionHVS research offers mathematical models of humanperception. A comprehensive review of HVSmodelsfor quality assessment/image compression isfound in [12]. Most of these models account for thevarying sensitivity over spatial frequency, color, andthe inhibiting effects of strong local contrasts or activity,called masking. Complex HVS-models implementeach of these low level visual effects as a separatestage. Then the overall model consists of thesuccessive processing of each stage. One of the initialHVS stages is the visual sensitivity as a function ofspatial frequency that is described by the CSF.A closed form model of the CSF for luminanceimages [13] is given by:H(f) = 2.6(0.0192 + 0.114f)e −(0.114f)1.1 (1)where spatial frequency is f = (fx 2 + f y 2)1/2withunits of cycles/degree (f x and f y , are the horizontaland vertical spatial frequencies). The frequency isusually measured in cycles per optical degree (cpd),which makes the CSF independent of the viewingdistance.Figure 1 depicts the CSF curve obtained withequation 1, it characterizes luminance sensitivity asa function of normalized spatial frequency. CSF isa bandpass filter, which is most sensitive to normalizedspatial frequencies between 0.025 and 0.125 andless sensitive to very low and very high frequencies.The reason why we can not distinguish patterns withhigh frequencies is the limited number of photoreceptorsin our eye. CSF curves exist for chrominanceas well. However, unlike luminance stimuli, humansensitivity to chrominance stimuli is relatively uniformacross spatial frequency. The work of [13] wasone of the first where it was demonstrated that theMSE cannot reliably predict the difference of the perceivedquality of two images. They propose, by theway of psychovisual experiments, the aforementionedmodel of the CSF, that is well suited and widely used([14][15][16][17]) for wavelet based codecs, thereforewe adopt this model.JP2011-120


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA I50Proposed CSF Weighting matrix48LL LH HH LHL1 1.0 1.1795 1.0000 1.7873L2 1.0 3.4678 2.4457 4.8524L3 1.0 6.2038 5.5841 6.4957L4 1.0 6.4177 6.4964 6.1187L5 1.0 5.1014 5.5254 4.5678L6 1.0 3.5546 3.9300 3.1580PSNR4644424038363432PM_LTWMJASPERMSPHITX264H2643028The granularity of the correspondence between frequencyand weighting value is a key issue. As waveletbased codecs obtain a multiresolution signal decompositionthe easiest association is to find a uniqueweighting value for each wavelet frequency subband.If further decompositions of the frequency domainare done, for example by the use of packet waveletsa finer association could be done between frequencyand weights [18]. The most common way of implementthe CSF curve in wavelet based codecs is by theuse of an Invariant Scaling Factor Weighting [19].In [20], subjective experiments were performed obtaininga model to express the threshold DWT noiseas a function of spatial frequency. Using this modelauthors obtain a perceptually lossless quantizationmatrix for the linear-phase 9/7 DWT. By the use ofthis quantization matrix each subband is quantizedby a value that adjust the overall resulting quantizedimage at the threshold of artifacts visibility.For supra-threshold quantization a uniform quantizationstage is afterwards performed.In [21] authors argued that fixing the quantizationmatrix for at-threshold visibility and then performa uniform quantization to reach a desired bit-ratein the supra-threshold range does not guarantee topreserve the best perceptual quality for the resultingimage. They propose an iterative rate/distortionprocess based on the relationship among contrastof resulting image and the MSE. Again subjectivesupra-threshold experiments were performed for establishinghow the overall contrast sensibility is affectedby supra-threshold quantization impairmentsin each individual wavelet subband.We perform an ISFW implementation of the CSFbased on [14] but increasing the granularity at thesubband level. So we scale the wavelet coefficientsbefore a uniform quantization stage. We obtain theweighting matrix of Table I directly from the CSFcurve (unlike [20] and [21]), by normalizing the correspondingvalues so that the most perceptually importantfrequencies are scaled with higher values,while the less important are preserved. This scalingprocess augment the value of all wavelet coefficients(except LL subband) and therefore the overall bitrateneeded for the transmission of the scaled versionof the image. Our tests reveal that thanks tothe weighting process, the oncoming uniform quantizationstage preserves a very good balance betweenbit-rate and perceptual quality in all the quantizationrange.VIF261.000.950.900.850.800.750.700.650.600.550.500.450.400.350.300.2550010001500200025003000350040004500Bitrate Kb/s500055006000PM_LTWMJASPERMSPIHTX264H264Fig. 2. R/D comparative PSNR and VIF results for ContainerCIF sequenceIV. The use of Quality Assessment MetricsUpper panel of Figure 2 show the PSNR R/D resultsfor the Container CIF sequence of all evaluatedcodecs. While looking at these results, a first conclusioncould be that the algorithms or improvementsincluded in the PM-LTW encoder do not performwell and should be discarded because the quality differencesare too high for any rate. For example, focusingat 3458.15 Kb/s (1.13 bpp) the difference betweenH.264/AVC and PM-LTW is up to 3.32 dB. Infigure 3 the frame number 20 of the Container CIFsequence is presented at this rate for H.264/AVC andPM-LTW. After having a look at these two framesthe difference of 3.32 dB seems too high, that is, oneexpects more visual difference for a numeric distanceof 3.32 dB.Therefore we can not trust how PNSR ranks quality.We need a quality metric on which rely. Lowerpanel of figure 2 the quality is measured in termsof the VIF QAM, the previous conclusion that discardedthe PM-LTW encoder is compromised. Althoughquality assessment metrics are not foolproof,the objective quality values for both encoders are notas distant as before, being this distance closer to theperceived one. Assuming that a quality assessmentmetric is based on a fitting process over a set of MOSvalues, it is worth to use such a metric for comparisonsof different encoder proposals.6500V. Performance AnalysisAll the evaluated encoders working in intra codingmode have been tested on an Intel Pentium Core2 CPU at 1.8 GHz with 6GB of RAM memory.We have selected H.264/AVC (High-10, JM16.1),700075008000JP2011-121


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011(a) PSNR=37.49 dB Bit-rate=3458.15 Kb/s(b) PSNR=41.19 dB Bit-rate=3690.42 Kb/sFig. 3. Frame 20 of the container sequence encoded with a)PM-LTW and b) H.264/AVC INTRATABLA IIQuality levels lower thresholdsLower Thresholds CIF & QCIF ITU & HDVisually lossless 0.93 0.90Excellent 0.87 0.85Good 0.80 0.75Acceptable 0.70 0.60Motion-JPEG2000 (Jasper 1.701.0), Motion-SPIHT(Spiht 8.01), x264 (FFmpeg version SVN-r25117,profile High, level 4.0) and our PM-LTW.The main parameters used for the H264/AVCJM16.1 are: Profile ID: 110; Level ID: 4.1 (forQCIF and CIF) and 5.1 for (ITU and HD1080);IntraProfile: 1; IntraPeriod: 1; IDRPeriod: 1;GrayScale: 1; RateControlEnable: 1; RCUpdate-Mode: 1; CABAC.The main parameters used for the X264 Softwareare: -intra; -pix fmt yuv420p; -vf ”format=gray”; -fpre ”libx264-hq.ffpreset”The test video sequences used in the evaluationare: Foreman, Hall, Container, News, Mobile andPedestrian area. Resolutions were QCIF, CIF, ITU576 and HD 1024.The rates, timing and the distortion values(PSNR) were obtained from the corresponding codeclog file. For getting the memory consumption values,we used the VMMap Sysinternals tool. The frameVIF value was obtained with the matlab VIF sourcecode that can be downloaded from authors web page[22].While comparing encoder proposals it is commonto work within a bit-rates and quality workingranges. As we will focus in perceptual qualitiesstated by users as good and above, first we have to establishthe quality working ranges by means of VIFvalues. We did a simple subjective test with fourobservers in order to define five quality levels, “Visuallylossless”, “Excellent”, “Good”, “Acceptable”and “Bad”. For each sequence, the uncompressed sequenceis present as reference to the viewer togetherwith a sequence compressed at a different bit-rateeach time. Viewers had no knowledge of the bitratebeing evaluated but they know which one is theuncompressed image. They set for each sequence avalue ranging from 0 to 4 with steps of 0.2 points. Avalue of 0.0 is given when the viewer does not detectany differences between the two sequences. A valueof 1 is the lower threshold for the “Excellent” level,being 2 and 3 the corresponding lower thresholds for“Good” and “Acceptable”. When users rank a sequencewith a value higher than 3, this means thatthis sequence is in the “Bad” level. Our study willfocus only on the first four levels, from “Visuallylossless” to “Acceptable”.The subjective test to determine the five qualitylevels was run using different video sequences withdifferent formats and the video codecs defined above.In order to properly choose the video sequences forthe test, we used the encoder that offers the bestR/D behavior, in terms of the VIF quality metric,for each sequence. After analyzing the resultingdata, the VIF value thresholds are obtained foreach level. From the raw data, we detected that observersset the thresholds for each level around differentVIF values depending on the picture size. Forexample, when picture size was CIF or QCIF thelower threshold for the “Good” level was set around0.80 VIF units, but at higher picture sizes it was setaround 0.75 VIF units. In the same way, for smallsize sequences the lower threshold for the “Acceptable”level was set around 0.70 VIF units while forlarger sequences it was set around 0.60 VIF units.Table II resume these values.Figure 4 shows the VIF R/D curve for the HD1080“Pedestrian area” sequence. Regardless of the codec,points of curves with quality values over 0.90 VIFunits could be considered perceptually the same. Focusingon the “Visually lossless” level (above 0.90VIF units) in figure 4, the key issue is then, at whichbit-rate one codec reaches this level and if a bit-ratesaving is obtained by using one codec or another.As previously mentioned, for the “Visually lossless”level all the sequences seem to be the same. The rawvalues told that there is a bit-rate saving (around an8.9%) when using PM-LTW at 56 Mb/s (0.93 VIF)instead of using X264, because for getting the sameVIF quality it needs 61.7 Mb/s. But this, althoughmatematically correct, is not from a perceptual pointof view. In this case, if we reduce the bit-rate for theX264 codec up to 56 Mb/s we get a VIF value of91.6 units, which falls in the same level, being there-JP2011-122


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IIIAverage bit-rate savings while comparing the use ofPM-LTW with studied codecs for each quality levelPM-LTW vs QCIF CIF ITU-D1 HDM-JPEG2000Vis. Lossless 7.32% 9.26% 11.88% -Excellent 6.59% 4.03% 10.33% 42.48%Good 7.58% 2.93% 9.05% 17.59%Acceptable 9.08% 4.38% 9.02% 4.51%M-SPIHTVis. Lossless 12.13% 13.76% 19.84% 37.59%Excellent 12.04% 12.82% 18.28% 36.63%Good 12.70% 12.58% 16.32% 31.34%Acceptable 13.15% 12.77% 14.94% 22.87%x264Vis. Lossless -1.68% -1.96% 16.11% 12.11%Excellent -2.51% -2.32% 15.41% 14.09%Good -3.61% -2.63% 14.48% 17.02%Acceptable -5.04% -2.94% 13.98% 19.42%H.264Vis. Lossless -3.04% -2.05% 12.80% 17.86%Excellent -4.97% -4.05% 6.50% 16.68%Good -7.63% -6.72% -2.31% 11.23%Acceptable -10.59% -9.27% -9.06% 2.92%VIF0,980,960,940,920,900,880,860,840,820,800,780,760,740,720,700,680,660,640,620,60PM_LTWMJASPERMSPIHTX264H2641013161922252831343740434649525558616467707376798285Bitrate in Mb/sFig. 4. R/D by means of VIF for the Pedestrian Area HD1080sequencefore indistinguishable form the PM-LTW encoded sequence.So, in this case, no advantage of the use ofPM-LTW is obtained, because the same saving couldbe obtained with the x264 encoder. For getting areal bit rate saving in this level by the use of one encoderinstead of another, both encoders must reachthe “Visually lossless” quality level lower thresholdat different rates.For the rest of levels, the curves corresponding tothe different codecs can not be assumed to be perceptuallythe same, because there were viewers thatperceived some differences between values inside thesame interval. Table III shows the relative bit-ratesavings that in average can be achieved for each ofthe defined quality levels. When comparing our proposalwith Motion-JPEG2000 or Motion-SPIHT andregardless of the frame size and quality level, bit-ratesavings are always achieved. The trend is that thesaving increases with frame size. When focusing inx264 and H.264 and at QCIF and CIF sizes, theiraveraged values for all sequences give a better performancefor all the defined quality levels, being thisTABLA IVTiming differences between PM-LTW & M-LTW due toPerceptual Enhancement (Average frame time inmilliseconds)D Wavelet Coding TotalPM-LTWCIF 3091.9 Kb/s 3.35 12.41 15.76ITU 9113.8 Kb/s 12.24 37.03 49.27HD 45471.3 Kb/s 92.38 231.00 323.37M-LTWCIF 3091.9 Kb/s 3.05 13.36 16.41ITU 9113.8 Kb/s 11.05 41.96 53.01HD 45471.3 Kb/s 85.64 264.64 350.28DifferencesCIF 3091.9 Kb/s 0.30 -0.95 -0.65ITITU 9113.8 Kb/s 1.19 -4.93 -3.74HD 45471.3 Kb/s 6.74 -33.64 -26.910)(log10ames/sec Fra10001001010QCIF(30Hz)at25.6Kb/frameCIF(30Hz)at103.0Kb/frameITU(640X512)(30Hz)at303.7Kb/framePM-LTWM-LTWM-SPIHTM-JPEG 2000X264H264/AVCHD(1920X1024)(25Hz)at1818.8Kb/frameFig. 5. Maximum frame rates in log scale for the differentframe sizessavings greater for H.264 than for x264 in all levels.Looking at ITU video size the PM-LTW performanceincreases as the quality level becomes higher. Whencomparing with x264, PM-LTW achieve lower bitratein all quality levels. However, the improvements withrespect H.264 are only achieved at “Excellent” and“visually Lossless” quality levels.Figure 5 shows the frame rate obtained by the differentencoders being evaluated. As shown, the PM-LTW outperforms the rest of the encoders for anysequence frame size. Regarding memory usage, inFigure 6 we can see the maximum amount in MBytesof the private memory working set needed for eachencoder and sequence size. The bit-rate used for eachresolution are 769.9 Kb/s, 3091.9 Kb/s, 9113.8 Kb/sand 45471.3 Kb/s for QCIF, CIF, ITU and HD respectively.PM-LTW is by far the one which lessmemory needs for all frame sizes. As frame size increasesthese differences are more important. Thismakes the PM-LTW very suitable to encode at highvideo resolutions.VI. ConclusionPM-LTW intra mode video codec is very competitivein terms of perceptual quality and outperformingthe rest of the evaluated encoders for high videoresolutions sequences. Since intra frame encodinghas some advantages over inter frame encoding fora set of applications the proposed encoder is a verygood option for these applications. The use of theVIF QAM instead PSNR in Rate/Distortion com-JP2011-123


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011MBytes (log2 scale)5122561286432168421Fig. 6.1,78PM-LTWM_SPIHTM-JASPERX264H2642,302,615,128,022,073,713,956,5820,982,948,347,0710,4662,049,2139,2731,3231,63QCIF CIF ITU HD375,17Memory consumption comparison in MBparisons, reveals that our proposal performs perceptuallyvery good. This, in turn, verify the fact thatusing PNSR while comparing encoding proposals interms of R/D is not recommended, because it couldinduce to wrong conclusions. Our proposal includesthe well known Contrast Sensitivity Function afterthe wavelet transform stage of our encoder performinga perceptual weighting of the obtained waveletcoefficients. We proposed a weighting matrix thatgives a very good R/D behavior in all the bit-raterange. PM-LTW achieves important bit-rate savingsfor the same perceptual quality when comparedwith M-SPIHT or M-JPEG2000 for all the evaluatedsequence resolutions and quality levels. Whencomparing with X264 these savings occurs for theITU resolution but only in the Excellent and Visuallylossless quality levels. As resolution increasesup to HD our proposal achieves bit-rate savings forall the evaluated quality levels being the highest valuesfor the Visually lossless quality level. PM-LTWrequires much less memory than any other encoderbeing the differences higher as resolution increase.For HD resolution requires near 4 times less memorythan M-SPIHT, M-JPEG2000 and X264, and up to40 times less memory than H.264. In addition PM-LTW is also the fastest of the evaluated encodersbeing up to 2.3 times as fast as x264 and 28 times asfast as H.264/AVC intra.This makes PM-LTW a good choice for intra framecoding at high definition/resolution applications.AcknowledgmentThanks to Spanish Ministry of education and Scienceunder grant DPI2007-66796-C03-03 for fundingReferencias[1] Jang-Seon Ryu and Eung-Tea Kim, “Fast intra codingmethod of h.264 for video surveillance system,” IJCSNSInternational Journal of Computer Science and NetworkSecurity, vol. 7, no. 10, October 2007.[2] VQEG, “Final report from the video quality expertsgroup on the validation of objective models of video qualityassessment. phase II,” August 2003.[3] Recommendations of the ITU, Telecommunication StandardizationSector, “Objective perceptual video qualitymeasurement techniques for digital cable television in thepresence of a full reference,” Draft Revised RecommendationJ.144.[4] Z. Wang, A. Bovik, H. Sheikh, and E. P. Simoncelli, “Imagequality assessment: From error visibility to structuralsimilarity,” IEEE Transactions on Image Processing, vol.13, no. 4, 2004.[5] Hamid Rahim Sheikh, Alan Conrad Bovik, and Gustavode Veciana, “An information fidelity criterion forimage quality assessment using natural scene statistics,”IEEE Transactions on Image Processing, vol. 14, no. 12,2005.[6] J. Oliver and M.P. Malumbres, “Low-complexitymultiresolution image compression using wavelet lowertrees,” IEEE Transactions on CSVT, vol. 16, no. 11, pp.1437–1444, November 2006.[7] H. R. Sheikh and A. C. Bovik, “Image information andvisual quality,” Image Processing, IEEE Transactionson, vol. 15, no. 2, pp. 430–444, 2006.[8] M. Martinez-Rach, O. Lopez, P. Piñol, J. Oliver, andM.P. Malumbres, “A study of objective quality assessmentmetrics for video codec design and evaluation,”in Eight IEEE International Symposium on Multimedia,San Diego, California, Dec 2006, vol. 1, ISBN 0-7695-2746-9, pp. 517–524, IEEE Computer Society.[9] H. R. Sheikh, M. F. Sabir, and A. C. Bovik, “A statisticalevaluation of recent full reference image qualityassessment algorithms,” IEEE Transactions on ImageProcessing, vol. 15, no. 11, pp. 3440– 3451, 2006.[10] Francesca De Simone, Mourad Ouaret, Frederic Dufaux,Andrew G. Tescher, and Touradj Ebrahimi, “A comparativestudy of jpeg2000, avc/h.264 and hdphoto,” inProc. of Applications of Digital Image Processing XXX,San Diego, August 2007.[11] Michael Smith and John Villasenor, “Intra-frame jpeg-2000 vs. inter-frame compression comparison: The benefitsand trade-offs for very high quality, high resolutionsequences,” SMPTE Technical Conference and Exhibition,Pasadena, California, October 20-23 2004.[12] Marcus J. Nadenau, Stefan Winkler, David Alleysson,and Murat Kunt, “Human vision models for perceptuallyoptimized image processing – a review,” in PROC. OFTHE IEEE, 2000.[13] J. Mannos and D. Sakrison, “The effects of a visual fidelitycriterion of the encoding of images,” InformationTheory, IEEE Transactions on, vol. 20, no. 4, pp. 525 –536, July 1974.[14] A.P. Beegan, L.R. Iyer, A.E. Bell, V.R. Maher, and M.A.Ross, “Design and evaluation of perceptual masks forwavelet image compression,” in Digital Signal ProcessingWorkshop, 2002 and the 2nd Signal Processing EducationWorkshop. Proceedings of 2002 IEEE 10th, Oct.2002, pp. 88 – 93.[15] A. Gaddipati, R. Machiraju, and R. Yagel, “Steeringimage generation with wawelet based perceptual metric,”in Eurographics, 1997.[16] H. Rushmeier, G. Ward, C. Piatko, P. Sanders, andB. Rust, “Comparing real and synthetic images: Someideas about metrics,” in In Proc. 6th Eurographics Workshopon Rendering, Dublin, Ireland,, 1995, pp. 82–91.[17] Noureddine Moumkine, Ahmed Tamtaoui, and AbdellahAit Ouahman, “Integration of the contrast sensitivityfunction into wavelet codec,” in In Proc. Second InternationalSymposium on Comunications, Control and SignalProcessing ISCCSP, Marrakech, Morocco, March 2006.[18] Xinbo Gao, Wen Lu, Dacheng Tao, and Xuelong Li,“Image quality assessment based on multiscale geometricanalysis,” IEEE TRANSACTIONS ON IMAGE PRO-CESSING, vol. 18, no. 7, pp. 1409–1423, 2009.[19] Marcus J. Nadenau, Julien Reichel, and Murat Kunt,“Wavelet-based color image compression: Exploiting thecontrast sensitivity function,” IEEE TRANSACTIONSON IMAGE PROCESSING, vol. 12, no. 1, 2003.[20] Andrew B. Watson, Gloria Y. Yang, Joshua A. Solomon,and John Villasenor, “Visibility of wavelet quantizationnoise,” IEEE TRANSACTIONS ON IMAGE PRO-CESSING, vol. 6, no. 8, pp. 1164–1175, 1997.[21] D. M. Chandler and S. S. Hemami, “Dynamic contrastbasedquantization for lossy wavelet image compression,”IEEE Transactions on Image Processing, vol. 14, no. 4,April 2005.[22] Hamid R. Sheikh and Alan C. Bovik,“Image information and visual quality,”http://live.ece.utexas.edu/research/quality/VIF.htm.JP2011-124


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Equipo paralelo de metaheurísticas para laresolución de un problema real detelecomunicacionesJosé M. Chaves González 1 , Miguel A. Vega Rodríguez 1 ,Juan A. Gómez Pulido 1 y Juan M. Sánchez Pérez 1Resumen— En este artículo se presenta un estudio llevadoa cabo con una eficiente estrategia paralela aplicada a laresolución de un importante problema real dentro deldominio de las telecomunicaciones: el problema de laasignación automática de frecuencias (FAP –FrequencyAssignment Problem). La obtención de planificaciones defrecuencia eficientes es una tarea compleja y crucial paralos operadores de telefonía actuales. La razón es el númerolimitado de frecuencias con que cuentan dichos operadorespara dar soporte al gran número de comunicaciones que seproducen en la red. El uso de estrategias metaheurísticasen combinación con técnicas basadas en paralelismo hademostrado ser una de las mejores maneras de conseguirresultados de alta calidad en tiempos competitivos. Elequipo paralelo descrito en este trabajo está compuesto porun conjunto de siete metaheurísticas que presentandiferentes comportamientos. Así, algunas son estrategiasbasadas en trayectoria y otras basadas en población, unasson estrategias clásicas y otras muy recientes, o algunaspresentan diseños bio-inspirados y otras están basadas enmodelos probabilísticos. El equipo paralelo está controladopor una hiperheurística (HH) que orquesta el eficientefuncionamiento de todo el sistema. El análisis de losresultados obtenidos demuestra que la utilización de unequipo heterogéneo de estrategias debidamenteconfiguradas obtiene resultados de muy alta calidad en laresolución del problema abordado. De hecho, lasplanificaciones de frecuencia conseguidas por el sistemapropuesto mejoran los resultados de otras publicacionesrelevantes.Palabras clave— Equipo heterogéneo de metaheurísticas,Hiperheurística Paralela, Problema Real de AsignaciónAutomática de Frecuencias, FAP, MPI.EI. INTRODUCCIÓNL problema de la asignación automática defrecuencias (FAP –Frequency Assignment Problem)es una de las tareas más importantes llevadas a cabo enel diseño de redes reales de comunicaciones. De hecho,resulta un trabajo fundamental tanto para los operadoresde telefonía actuales como para los futuros, ya quedebido a las restricciones de ancho de banda quepresenta cada compañía de telefonía, es bien sabido quesólo con una planificación de frecuencias de alta calidadse puede conseguir el máximo partido del reducidorango de frecuencias disponible. Por tanto, debido a surelevancia, el problema FAP ha sido muy estudiado enlas últimas décadas, por lo que en la bibliografía se1 Dpto. Tecnología de los Computadores y de las Comunicaciones,Universidad de Extremadura, Escuela Politécnica de Cáceres, e-mail:{jm, mavega, jangomez, sanperez}@unex.es.pueden encontrar numerosos trabajos donde se utilizandiferentes aproximaciones y una gran variedad demodelos matemáticos para su resolución [1, 2]. Sinembargo, la mayoría de estas publicaciones resuelvenproblemas FAP de tipo benchmark [2], los cuales tienenuna complejidad menor que los problemas basados enredes reales, donde se consideran requisitos y conceptosque son inherentes a dichas redes [3], como son elelevado número de transmisores que se utilizan comosoporte de las comunicaciones o las restricciones en lasque se basan las interferencias producidas en la red.El problema de optimización que surge con el FAP seexplica porque las redes de telefonía actuales disponende un rango de frecuencias muy limitado con el quedeben dar servicio al cada vez mayor número deusuarios que utilizan los servicios de dicha red. Estehecho causa que las frecuencias deban ser utilizadas demanera simultánea en distintos puntos de la red para quesea posible llevar a cabo todas las comunicaciones quese producen. Sin embargo, el solapamiento defrecuencias lleva acarreado interferencias que dificultan,e incluso pueden llegar a anular, dichas comunicaciones.Por esta razón se hace necesario realizar unaplanificación de frecuencias de alta calidad con la que seconsiga maximizar la cobertura en toda la redmanteniendo a la vez unos mínimos aceptables en lacalidad de servicio que ésta ofrece.El FAP es un problema NP-completo, por lo queutilizar algoritmos exactos para resolver instanciasreales del mismo no es factible. Por el contrario, abordareste tipo de instancias con técnicas basadas enbúsquedas heurísticas o estrategias metaheurísticas es, sino obligatorio, una de las mejores opciones paraconseguir planificaciones de frecuencia de alta calidad[4]. Sin embargo, el problema abordado también tieneunas fuertes restricciones temporales, y el uso de estetipo de algoritmos conlleva muchas veces una demorademasiado amplia para los requisitos del mismo. Portanto, el uso de estrategias paralelas que aceleren laobtención de resultados de alta calidad también resultafundamental cuando se trabaja con instancias reales degrandes dimensiones.De esta manera, en este artículo se describe lautilización de un equipo paralelo que hace uso de variasestrategias metaheurísticas para conseguir resultados dealta calidad que resuelvan instancias reales del problemade la asignación automática de frecuencias. Además, seha hecho un estudio de cómo la heterogeneidad de lasestrategias que participan en el equipo redunda en unamejora significativa de los resultados, concluyendo queJP2011-125


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011una configuración adecuada de esta aproximaciónconsigue resultados altamente satisfactorios para elproblema abordado.El resto del artículo se estructura de la siguientemanera: en la Sección II se explican los conocimientosbásicos y la definición formal utilizada para modelar elproblema FAP manejado en nuestro estudio. Acontinuación, en la Sección III, se describe el equipoheterogéneo de metaheurísticas propuesto para resolverel problema. Después se resumen los experimentosrealizados y los resultados obtenidos mediante losmismos en la Sección IV. Finalmente, las conclusiones ylíneas futuras se discuten en la Sección V.II. LA PLANIFICACIÓN DE FRECUENCIAS EN REDES GSMLa planificación de frecuencias es el último paso en eldiseño de una red GSM [5]. Antes de afrontar esteproblema, el diseñador de la red tiene que tratar concuestiones previas, como por ejemplo la localización yconfiguración de las antenas que darán cobertura a la redo configurar el número y orientación de los sectores quetendrá cada antena y la distribución de TRXs(transmisores-receptores) dentro de éstos [6], que sonlos elementos encargados de realizar la comunicación.El número de TRXs que se instalarán en cada sectordependede la demanda de tráfico que éste debasoportar. La planificación de frecuencias consiste enasignar un canal (o frecuencia) a cada TRX [3]. Noexiste una única versión del problema de la asignaciónautomática de frecuencias. De hecho, tanto el modelomatemático utilizado para representar el problema [1, 3]como la técnica de resolución aplicada para resolverlovariarán dependiendo del escenario abordado y delobjetivo concreto que se persiga. En este artículo seresuelven dos instancias reales de gran tamaño. Por unalado se aborda la instancia Denver, que incluye 2612TRXs distribuidos en 334 BTSs y únicamente tienedisponibles 18 frecuencias para asignar a todos y cadauno de los TRX de la red. Por otro lado se maneja lainstancia Seattle, que incluye 970 TRXs instalados en503 antenas y únicamente 15 frecuencias diferentes pararealizar la planificación de frecuencias en toda la red. Ala vista de las cifras que se manejan, queda claro queconseguir planificaciones de frecuencias de alta calidades una tarea tan importante como compleja.Por tanto, el problema de optimización surge debido aluso de la misma frecuencia por varios transmisores. Estehecho suele provocar interferencias que pueden llegar areducir la calidad de servicio (QoS) hasta nivelesinsatisfactorios para una red comercial, y esto ha de ser,si no evitado (porque no es posible evitarlo), sí reducidotodo lo posible.Hay varias formas de cuantificar las interferencias quese producen en una red de telecomunicaciones, aunquela más extendida (y la que nosotros utilizamos) es usarlo que se llama la matriz de interferencias, M, de la red[3]. Cada elemento M(i,j) de esta matriz contienebásicamente dos tipos de interferencia: la interferenciaco-canal, que representa la degradación de la calidad deseñal en la red si las celdas i y j operan con la mismafrecuencia; y la interferencia de canal adyacente, que seproduce cuando dos TRXs operan en canales adyacentes(por ejemplo, un TRX opera en el canal f y otro en elcanal f+1 o f-1). Es muy importante que la matriz deinterferencias esté bien ajustada, ya que el objetivo decualquier algoritmo que resuelva el FAP será minimizarla suma de las interferencias expresadas en la matriz M.En la siguiente subsección se explica el modelomatemático que se ha utilizado para modelar elproblema. Dicho modelo fue propuesto en un trabajoprevio, por lo que el usuario que quiera una explicaciónmás completa que la dada en este artículo puedeconsultar la referencia [7].A. Descripción formal del problemaSea T = {t 1 , t 2 ,…, t n } un conjunto de n TRXs, y sea F i= {f i1 ,…, f ik } ⊂ N el conjunto de frecuencias validas quepueden ser asignadas a un TRX t i ∈ T, i = 1,…, n.Nótese que k, que representa la cardinalidad de F i , notiene que ser necesariamente la misma para todos losTRXs. Además, sea S = {s 1 , s 2 ,…, s m } el conjunto de lossectores (o celdas) donde los TRXs están instalados, decardinalidad m. Cada TRX t i ∈ T está instaladoexactamente en uno de los m sectores. Además,llamamos al sector donde un TRX t i concreto estáinstalado como s(t i ) ∈ S. Finalmente, sea la matriz M ={(μ ij , σ ij )} mxm , llamada matriz de interferencias, dondelas dos entradas μ ij y σ ij de la matriz M(i,j) = (μ ij , σ ij )son valores numéricos mayores o iguales que 0. Dehecho, μ ij representa la media, y σ ij es la desviaciónestándar de una distribución de probabilidad gausianaque describe la proporción señal/interferencia (C/I,carrier-to-interference) dentro de la red [8] cuando lossectores i y j operan con la misma frecuencia. Cuantomás alto es el valor de la media, más baja será lainterferencia, y de esta manera mejor la calidad en lacomunicación. Además, es importante señalar que lamatriz de interferencias se define a nivel de sector(celda), porque todos los transmisores instalados en cadasector dan cobertura a la misma área. De esta forma,podemos establecer que una solución al problema FAPse obtiene asignando a cada TRX t i ∈ T una de lasfrecuencias de F i . Diremos que una solución al problema(o una planificación de frecuencias) se define como: p ∈F 1 × F 2 × … × F n , donde p(t i ) ∈ F i es la frecuenciaasignada al TRX t i . El objetivo del algoritmo, y de laplanificación misma, es encontrar una solución p queminimice la siguiente función de coste:C(p)=∑ ∑Csigt∈Tu∈T, u≠t( p,t,u)Para definir la función C sig (p,t,u), vamos a establecerque s t y s u son los sectores en los que los TRXs t y uestán instalados, que son s t =s(t) y s u =s(u). Además, seaμs t s u y σs t s u los dos elementos correspondientes dentrode la matriz de interferencias M(s t ,s u ) con respecto a lossectores s t y s u . De esta forma, C sig (p,t,u) es igual a laexpresión descrita en la ecuación 2.⎧ K⎪Cco( μsts, σu⎨⎪Cadj( μsts, σu⎪⎩ 0stsustsu))si s = s ,si s ≠ s , μtstsusi s ≠ s , μttuuustsup(t)− p(u)< 2> 0, p(t)− p(u)= 0> 0, p(t)− p(u)= 1en otro caso(1)(2)Donde K >> 0 es una constante con un valor muy altoque está definida por el diseñador de la red para hacerJP2011-126


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011indeseable la asignación de la misma o frecuenciasadyacentes a transmisores que sirven dentro del mismoárea (instalados en el mismo sector). Además, dentro dela ecuación 2, C co (μ,σ) representa el coste debido a lasinterferencias co-canal (ecuación 3) mientras queC adj (μ,σ) es el coste en caso de las interferencias decanal adyacente (ecuación 4).CSH− μCco(μ,σ ) = 100(1.0 − Q())(3)σCSH− CACR− μCadj( μ,σ ) = 100(1.0 − Q()) (4)σDonde C SH es un umbral de calidad mínima de la señaly C ACR (rechazo de canal adyacente) mide la habilidaddel receptor a la hora de recibir la señal requerida enpresencia de una señal que no es la requerida en un canaladyacente. Finalmente, Q(z) se define como:Q(z)=∞∫z12πe x 2−2Para una explicación más detallada sobre los costesC co (μ,σ) y C adj (μ,σ) y el modelo matemático utilizado,el lector interesado puede consultar las referencias [1,3], donde se da una explicación más profunda sobre laformulación utilizada.dxIII. EQUIPO PARALELO DE METAHEURÍSTICASEn este artículo se presenta un equipo heterogéneocompuesto por un conjunto de siete metaheurísticas ycontrolado por una hiperheurística (HH) paralela. Elobjetivo de la HH no consiste en solucionar el problemade manera directa, sino en seleccionar el método másadecuado que debe aplicarse ante una determinadasituación. Este método, una metaheurística en nuestrocaso, será el encargado de trabajar con el problema. Enla Fig. 1 se puede observar un diagrama que describe elfuncionamiento general del sistema propuesto.Fig. 1. Diseño del equipo heterogéneo de metaheurísticas.Como se puede observar, tanto las especificaciones delproblema como las instancias que deben manejarse songestionadas por un conjunto de metaheurísticas que han(5)sido especialmente ajustadas para trabajar con el FAP.La tarea de la que se encarga la HH consiste en controlarla salida proporcionada por dichas estrategias paradistribuir de manera adecuada la carga de trabajo deacuerdo con la calidad de los resultados obtenidos porcada algoritmo. La comunicación entre la HH y lasmetaheurísticas no depende de las especificaciones delproblema, ya que la HH únicamente recibe en cadasincronización la mejor solución conseguida por cadametaheurística hasta ese momento, su coste asociado yel identificador del algoritmo que aportó la citadasolución. De acuerdo con dicha información la HHdistribuye la carga de trabajo que cada algoritmo deberáprocesar hasta la siguiente sincronización. Al final delproceso, la mejor solución conseguida por una de lasmetaheurísticas será la solución que devuelva el sistema.Una de las características más interesantes de la HH esque ésta hace que las metaheurísticas realicen subúsqueda en paralelo. Como se expondrá en la siguientesección, los experimentos se han realizado en un clústerde 128 núcleos, por lo que el diseño de la hiperheurísticaparalela saca el máximo partido de los recursosdisponibles. Uno de los núcleos del clúster ejecutará elproceso maestro del sistema (Algoritmo 1), mientras queel resto de núcleos ejecutarán las metaheurísticasdestinadas a resolver el problema propiamente dicho.Por tanto, la HH forma parte de un sistema síncronodonde su tarea es sincronizar y gestionar un equipo dealgoritmos metaheurísticos con el fin de resolver unproblema FAP real.Algoritmo 1 – Pseudocódigo para el proceso maestro de la HH1: vectorProbHH ← inicializar_vectorProbHH2: vectorCores ← asignar_metaheurística_a_cada_core (vectorProbHH)3: lanzar_ejecuciones_esclavos (vectorCores)4: mientras (! condición_de_parada) hacer5: /* El proceso maestro espera a que cada core ejecute su algoritmo */6: /* Cada sincronización → los cores envían la mejor solución al maestro */7: para (j = 0) hasta (j = número_de_cores_configurados) hacer8: vectorSoluciones ← recibir_soluciones_cores (j)9: fin para10: vectorSoluciones ← ordenar_soluciones_fitness (vectorSoluciones)11: vectorProbHH ← actualizar_vectorProbHH (vectorSoluciones)12: vectorCores ← actualizar_vectorCores (vectorProbHH)13: mejorSolucion ← seleccionar_mejor_solucion (vectorSoluciones)14: relanzar_ejecuciones_esclavos (vectorCores, mejorSolucion)15: fin mientras16: devolver seleccionar_mejor_solucion_recibida (vectorSoluciones)El proceso comienza con la distribución homogénea detodas las metaheurísticas incluidas en el sistema, deacuerdo con un vector de probabilidad inicializado parael efecto (líneas 1 y 2). Este vector de probabilidad tienela función de decidir el número de núcleos queejecutarán cada una de las metaheurísticas incluidas enel sistema. Como se puede observar en la Fig. 1 se haseleccionado un conjunto heterogéneo de sietemetaheurísticas que se han considerado representativas.Así, se han seleccionado algunas basadas en población(el algoritmo genético –GA [9], la búsqueda dispersa –SS [10], el algoritmo basado en colonia de abejas –ABC[11] y el aprendizaje incremental basado en población –PBIL [12]) y otras basadas en trayectoria (elprocedimiento de búsqueda adaptativa, aleatoria yavariciosa –GRASP [13], la búsqueda local iterativa –ILS [14] y la búsqueda de entorno variable –VNS [15]).Algunas de ellas son estrategias clásicas, como el GA, yotras son muy novedosas, como el ABC. Otras seJP2011-127


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011caracterizan por una evolución muy rápida (ILS, VNS) obien por una búsqueda bastante intensivas (ABC, GA).En definitiva, tienen diferentes características que lashacen estrategias complementarias en la búsqueda delvalor óptimo del problema con el que se trabaja.En cualquier caso, una vez que todos los algoritmoshan sido repartidos entre los cores, empezarán suejecución (línea 3) hasta que su condición de parada (unlímite temporal) se satisfaga. Por cuestiones de espacio,no se explicará en este artículo el esquema de cadaalgoritmo, si bien es importante indicar que cada uno hasido sometido a un completo ajuste paramétrico para quese ajuste al problema con el que debe trabajar. Elproceso maestro espera hasta que las metaheurísticasterminan su ejecución, en cuyo momento le enviarán lamejor solución encontrada hasta ese momento (línea 8).Cuando todas las soluciones se han recibido, la HH lasordena de acuerdo con su calidad y actualiza el vector deprobabilidad siguiendo un proceso de presión selectiva(líneas 10 y 11). A continuación la hiperheurísticareasigna los algoritmos a los núcleos del clúster deacuerdo con el nuevo vector de probabilidad calculado(línea 12) teniendo en cuenta que ninguna debedesaparecer por completo del sistema. Además, seenviará a cada núcleo la mejor solución conseguidahasta ese momento (líneas 13 y 14) para que losalgoritmos basados en trayectoria (ILS, VNS y GRASP)continúen su ejecución partiendo de dicha solución y losbasados en población (GA, SS, ABC y PBIL) laincluyan a la primera población de soluciones generada.Finalmente, cuando la condición de parada del sistemase satisfaga (línea 4), que como se verá en la siguientesección es un cierto número de sincronizaciones, lahiperheurística devolverá la mejor solución conseguidaal final de proceso (línea 16), que será una planificaciónde frecuencias de alta calidad que de solución alproblema FAP abordado en nuestro estudio.IV. EXPERIMENTOS Y RESULTADOSTodos los experimentos se han llevado a cabo en unclúster homogéneo compuesto por 16 nodos multinúcleo.Cada nodo cuenta con 8 núcleos, lo cual hace untotal de 128 nodos de procesamiento. Además, tal ycomo se especificó en la Sección II de este artículo, sehan utilizado dos instancias reales para realizar losexperimentos (Denver y Seattle), cuya topología puedeobservarse en la Fig. 2. En dicha figura cada triángulorepresenta una antena sectorizada en la que operanvarios TRXs. Denver cuenta con 2616 TRXs yúnicamente 18 frecuencias disponibles, mientras queSeattle consta de 970 TRXs y sólo 15 frecuencias.Debido a la naturaleza estocástica de lasmetaheurísticas, todos los experimentos realizados ennuestro estudio han sido repetidos de maneraindependiente 30 veces, con el fin de validarestadísticamente los resultados obtenidos de maneraempírica. Por otro lado, para detectar diferencias en laejecución de los algoritmos en diferentes periodos detiempo y para poder realizar una comparativa con otrosestudios que resuelven el mismo problema (Tabla I), sehan considerado tres límites temporales: 120, 600, 1800.En este sentido, no se han tenido en cuenta tiemposinferiores a dos minutos porque, debido a la complejidaddel problema, en dichos casos las metaheurísticastendrían demasiado poco tiempo para hacer evolucionarlas soluciones, por lo que los resultados no seríansignificativos. Tampoco se han considerado tiempos queen la mayoría de los casos superaran los treinta minutos,ya que éstos serían excesivos para un problema realdentro del dominio abordado.Fig. 2. Topología de las instancias GSM utilizadas.Los dos experimentos más relevantes realizados con elequipo de metaheurísticas fueron los relevantes alnúmero de sincronizaciones que éste debía realizar y a lacomposición de las metaheurísticas sobre las que seapoyaba. En el primer caso, si el número desincronizaciones es demasiado alto, el sistema gastarádemasiado tiempo en esta tarea, dejando a lasmetaheurísticas sin tiempo suficiente para hacerevolucionar las soluciones. Por el contrario, si serealizan menos sincronizaciones de las debidas, lasmetaheurísticas trabajarán demasiado tiempo de maneraaislada, como islas independientes, por lo que losresultados tampoco serán de tanta calidad comodeberían. Por tanto, para llevar a cabo el ajuste de lassincronizaciones, se llevó a cabo una serie de pruebasutilizando las instancias Denver y Seattle anteriormentemencionadas con el objetivo de determinar la frecuenciaóptima de sincronizaciones que debe realizar la HH paraobtener planificaciones de frecuencia de la mayorcalidad posible. Las Figs. 3 y 4 resumen los resultadosobtenidos con dichos experimentos. Se han realizadopruebas sincronizando el sistema cada minuto, cada 2minutos, cada 5, 10 y 15 minutos. Teniendo en cuentaque la duración total del experimento es de 30 minutossignifica que se han hecho pruebas realizando 29, 14, 5,2 y 1 sincronizaciones respectivamente.Fig. 3. Evolución en los resultados obtenidos para la instancia Seattleutilizando diferentes sincronizaciones.JP2011-128


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Como se puede observar en la Fig.3, los mejoresresultados cuando se aborda la instancia Seattle seobtienen cuando la HH sincroniza las metaheurísticascada 5 minutos, ya que con esta configuración lasplanificaciones de frecuencia generadas tienen un costemenor que los resultados sincronizando cada 2 y cada 10minutos. Sincronizar cada 10 minutos nunca es másprovechoso que cada 5, mientras que un periodo desincronización de 2 minutos sólo es ligeramente mejordurante los 8 primeros minutos de ejecución (donde elsistema sólo se ha sincronizado una vez con laconfiguración de realizar sincronizaciones cada 5minutos). Si se configura al sistema con un númeromayor de sincronizaciones los resultados son tambiénmuy buenos en los primeros minutos de ejecución delalgoritmo (Fig. 3), sin embargo, empeoran mucho trasestos primeros instantes, ya que se invierte demasiadotiempo en la operación de sincronización, por lo que lasmetaheurísticas no tienen tiempo suficiente para hacerque las soluciones evolucionen adecuadamente.número de cores y de metaheurísticas trabajando a lavez), pero que únicamente utilizaba uno de losalgoritmos. La Fig. 5 muestra el resultado de esteestudio comparativo para la instancia Seattle. Como sepuede observar, el equipo heterogéneo mejorasignificativamente los resultados de cualquier equipohomogéneo para cualquier rodaja de tiempo estudiada(entre los 2 y los 30 minutos).Fig. 5. Comparativa de resultados sobre la instancia Seattle entre lahiperheurística paralela (PHH, equipo heterogéneo) y sieteequipos homogéneos formados por la misma metaheurística.Fig. 4. Evolución en los resultados obtenidos para la instancia Denverutilizando diferentes sincronizaciones.Por otro lado, si se analizan los datos para la instanciaDenver (Fig. 4), se puede observar que los mejoresresultados a corto plazo son alcanzados porconfiguraciones que realizan sincronizaciones cada muypoco tiempo (1 o 2 minutos), sin embargo, a partir de los10 minutos, las mejores planificaciones son obtenidas siel sistema se sincroniza cada 5, 10 o incluso 15 minutos.De hecho, si se considera la mejor configuración deDenver para los 30 minutos completos de ejecución, seestablece que la mejor configuración es sincronizar cada10 minutos, sin embargo, si se establece sincronizarcada 5 minutos, el sistema consigue mejores resultadosmedios en muchos más periodos de tiempo, tal y comose puede observar en la Fig. 4, donde la línea de los 5minutos representa la mejor configuración considerandode manera global los 30 minutos de ejecución.Otro aspecto importante con el equipo es determinarlas metaheurísticas que formarán parte de él. Por estarazón se realizó un estudio comparativo para determinarcómo influía en los resultados la heterogeneidad de lasmetaheurísticas incluidas en el equipo. Se realizaronexperimentos comparativos entre un equipo heterogéneode metaheurísticas (que se apoyaba en los sietealgoritmos indicados anteriormente: GA, SS, PBIL,ABC, ILS, VNS y GRASP) con un equipo homogéneoque poseía la misma capacidad de cómputo (mismoEn cuanto a la instancia Denver (Fig. 6), también seproduce una mejora bastante significativa en cualquierperiodo de tiempo si el equipo se encuentra configuradode manera heterogénea, por lo que queda de manifiestola importancia de este parámetro para el funcionamientoóptimo del equipo.Fig. 6. Comparativa de resultados sobre la instancia Denver entre lahiperheurística paralela (PHH, equipo heterogéneo) y sieteequipos homogéneos formados por la misma metaheurística.A. Comparativa con otros autoresEn esta subsección se comparan los resultadosconseguidos por el equipo paralelo diseñado con otrasaproximaciones. La Tabla I resume dicha comparativa,donde se muestran los resultados medios (y desviacionesestándar) de 30 ejecuciones en tres periodos de tiempocuando se aborda la resolución de la instancia Denvercon diversas técnicas. Los trabajos con los que seJP2011-129


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011compara están sujetos a los mismos requerimientos yconsideraciones que el presentado en este documento,por lo que sus resultados representan una fuente decomparación excepcional. Los resultados finalesconseguidos por el equipo paralelo explicado en esteartículo aparecen en la primera línea. Las siguientes filascontienen los datos arrojados por otros estudiosrelevantes (se incluye su referencia correspondiente).Únicamente el trabajo que aparece en la última fila de latabla (GridEA [16]) utiliza un límite temporal diferenteal del resto de estudios, ya que el algoritmo desarrolladoen ese estudio fue limitado por iteraciones en lugar depor un límite temporal. Sin embargo, el estudio se haincluido en la tabla comparativa porque, hasta dondenosotros sabemos, representaba el mejor resultadopublicado en la bibliografía en la resolución de lainstancia Denver hasta que fue superado por losresultados obtenidos con la hiperheurística paralela.Como se puede observar en la Tabla I incluso esosresultados (GridEA [16]), que fueron obtenidos despuésde 1,5 horas de ejecución, han sido superados por losresultados conseguidos por la PHH desarrollada, pero enun tercio del tiempo invertido por el sistema grid (30minutos), y utilizando menos recursos hardware.Como se puede observar, el problema FAP ha sidoabordado por diferentes técnicas metaheurísticas yaproximaciones paralelas en los últimos años, sinembargo, hasta donde sabemos, el equipo paralelopresentado en este artículo mejora los resultadosobtenidos por otros diseños publicados.TABLA ICOMPARATIVA ENTRE LOS RESULTADOS OBTENIDOS POR LAESTRATEGIA DISEÑADA Y OTROS TRABAJOS RELEVANTES120 segundos 600 segundos 1800 segundosx± σ x± σ x± σEquipo paralelo 87100.2±381.2 85167.9±382.9 84527.4±404.7ACO [7] 93978.2±1165.9 91726.4±1002.9 90382.5±935.3EA [7] 108071.9±1723.4 103535.9±1939.7 99862.3±1553.1GRASP [17] 91225.7±1197.2 89369.6±1185.1 88850.6±1075.2GridGRASP [17] 87256.9±2309.2 86772.1±1701.0 85855.3±686.9ACO [18] 93439.5±1318.9 92325.4±1092.8 90649.9±727.5ssGA [18] 89540.4±991.1 87850.8±573.6 86908.9±379.8SS [18] 94199.6±1172.3 93953.9±1178.6 93820.4±1192.3(1+2)EA [18] 92294.0±1407.6 89669.8±1164.8 88574.3±1100.3LSHR [18] 92061.7±585.3 89430.9±704.2 88550.3±497.0Grid EA [16] Resultados obtenidos en 1,5 horas: 84936.3±375.8V. CONCLUSIONES Y TRABAJO FUTUROEn este artículo se presenta un equipo heterogéneo demetaheurísticas para resolver un problema real detelecomunicaciones. En concreto se han abordado dosinstancias reales de gran tamaño del problema de laasignación automática de frecuencias. El análisis de losresultados arroja una doble conclusión. La primeraresalta la importancia de configurar el equipo con unconjunto heterogéneo y equilibrado de metaheurísticas,ya que aunque algunas funcionen de manera máseficiente en algunas circunstancias, otras obtendránmejores resultados en otras (por ejemplo, con distintasmetaheurísticas o diferentes rodajas de tiempo, Figs. 5 y6). En este sentido, el análisis de los resultados nos llevaa concluir que todas las metaheurísticas incluidas ennuestro equipo contribuyen a la evolución global delsistema. Además, ha quedado de manifiesto que la mejorconfiguración en cuanto a sincronizaciones es realizarlascada 5 minutos (Figs. 3 y 4). Finalmente, se ha realizadouna comparación con otros estudios presentes en labibliografía (Tabla I) de la que se puede extraer que losresultados conseguidos por el sistema propuesto mejoranlos resultados de otras publicaciones relevantes.Como trabajo futuro, tenemos la intención de aplicar elequipo diseñado a instancias del problema FAP aúnmayores así como el de abordar otros problemasrelevantes dentro del dominio de las comunicaciones,como el RWA (Routing and Wavelength Assignment,enrutamiento y asignación de longitudes de onda [19]).AGRADECIMIENTOSEl presente trabajo ha sido parcialmente financiado porel Ministerio de Ciencia e Innovación y el FEDER(Fondo Europeo de Desarrollo Regional), bajo elproyecto TIN2008-06491-C04-04 (proyecto M*).REFERENCIAS[1] K. I. Aardal, S. P. M. van Hoesel, et al., “Models and solutiontechniques for frequency assignment problems”, Annals ofOperations Research, 153 (1), 79-129, 2007.[2] FAP Web: http://fap.zib.de/, 2010.[3] A. Eisenblätter, “Frequency Assignment in GSM Networks:Models, Heuristics, and Lower Bounds”, PhD thesis, TechnischeUniversität Berlin, 2001.[4] C. Blum, y A. Roli, “Metaheuristics in CombinatorialOptimization: Overview and Conceptual Comparison”, ACMComputing Surveys, 35, pp: 268-308, 2003.[5] M. Mouly, y M.B. Paulet, “The GSM System for MobileCommunications”. Telecom Publishing, 1992.[6] A.R. Mishra, Fundamentals of Cellular Network Planning andOptimisation: 2G/2.5G/3G... Evolution to 4G, chapter: “RadioNetwork Planning and Optimization”, pp: 21-54, Wiley, 2004.[7] F. Luna, C. Blum, E. Alba, A.J. Nebro, “ACO vs EAs forSolving a Real World Frequency Assignment Problem in GSMNetworks”, GECCO’07, pp: 94-101, 2007.[8] B.H. Walke, “Mobile Radio Networks: Networking, Protocolsand Traffic Performance”, Wiley, 2002.[9] D. E. Goldberg, “Genetic Algorithms in Search, Optimization,and Machine Learning”, Addison-Wesley, 1989.[10] R. Martí, M. Laguna, F. Glover. “Principles of scatter search”,European Journal of Operational Research, 169 (2), 359-372,2006.[11] D. Karaboga, B. Basturk, “A powerful and efficient algorithm fornumerical function optimization: artificial bee colony (ABC)algorithm”, Journal of Global Optimization, Springer, 39, 459-471, 2007.[12] S. Baluja, “Population-based Incremental Learning: A Methodfor Integrating Genetic Search based Function Optimization andCompetitive Learning”. Technical Report CMU-CS-94-163,Carnegie Mellon University, Junio 1994.[13] T.A. Feo, M.G. Resende, “Greedy Randomized Adaptive SearchProcedures”, Journal of Global Optimization, 6, 109-133, 1995.[14] H.R. Lourenço, O. Martin, T. Stützle, Handbook ofMetaheuristics, chapter “Iterated local search”, KluwerAcademic Publishers, 321-353, 2002.[15] N. Mladenovic, P. Hansen, “Variable neighborhood search”,Computers and Operations Research, 24 (11), 1097-1100, 1997.[16] F. Luna, A. J. Nebro, et al., “Solving large-scale real-worldtelecommunication problems using a grid-based geneticalgorithm”, Engineering Optimization, 40 (11), 1067-1084, 2008.[17] J. M. Chaves-González, R. Hernando-Carnicero, et al., “Solvinga Realistic FAP Using GRASP and Grid Computing”. Advancesin Grid and Pervasive Computing (GPC 2009), pp. 79-90, 2009.[18] F. Luna, C. Estébanez, et al., “Metaheuristics for Solving a Real-World Frequency Assignment Problem in GSM Networks”,GECCO’08, pp. 1579-1586, 2008.[19] A. Rubio-Largo, M. A. Vega-Rodríguez, et al., “A DifferentialEvolution with Pareto Torunaments for solving the Routing andWavelength Assignment Problem in WDM Networks”, CEC2010, pp. 129-136, 2010.JP2011-130


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Determination of traffic control tables by HPCEligius M.T. Hendrix, Siham Tabik 1 and Rene Haijema 2Resumen— The concept of traffic control tables(TCT) for an intersection is sketched and a StochasticDynamic Programming model is outlined. The determinationof a TCT by dynamic programming becomesmore cumbersome if more traffic flows and combinationof lights are taken into account. This paper explainshow High Performance Computing (HPC) canbe essential to do this job and sketches the challengesof this research question.Palabras clave— Stochastic Dynamic Programming,traffic control, parallel implementation, Markov chainTABLA ITCT for F2C2 when lights show all-redq 1 q 2 0 1 2 3 4 50 2 2 2 2 2 21 1 2 2 2 2 22 1 1 2 2 2 23 1 1 1 2 2 24 1 1 1 1 2 25 1 1 1 1 1 2Fig. 1.I. IntroducciónSituation F2C2; at most one of two flows gets priorityTraffic lights are introduced at the beginning of theprevious century to make road traffic safer, at placeswhere traffic from different directions cross the sameroad segment, called the intersection or crossing. Bygiving right of way to traffic in some direction(s),cars approaching from other directions need to waitbefore they get priority. By controlling the trafficlights, the overall delay or waiting time of the carscan be kept to a minimum. In literature, the problemis studied by queueing theorist as well as engineers(see [5], [6], [9],[8], [10]). An optimal dynamic policyis not reported except in [4].The basis of optimal traffic control on a singleintersection is what we call a traffic control table(TCT) that prescribes which combination of flowsshould be given the right of way given the amountof cars waiting in every queue. For illustration considerthe simple situation in Figure 1, called in [3]the F2C2 case for having 2-Flows in 2-Combinations.Either the left, or right flow has a green light, or alllights are red to clear the intersection. For the ease ofreasoning, we abstract here from using amber lights.Table I illustrates the concept of a TCT. It marksthe decision of which light to set on green, given thequeue length of both queues, when the light is in theall-red state. In this example λ 2 > λ 1 , such that onequal queue length, it is convenient to give flow 2the right of way. [4] model the generation of such atable as a Stochastic Dynamic Programming (SDP)1 Dpto. Arquitectura de Computadores, Univ. De Málaga,e-mail: eligius, stabik @uma.es.2 Operations Research and Logistics group, Wageningen University,e-mail: rene.haijema@wur.nl.problem in order to find that TCT that minimizesthe expected total waiting time in the system.In Section II, the SDP model is outlined and theiterative process to obtain traffic control tables fromthat. Section III describes the parallel programmingapproach used to exploit multicore systems. SectionIV provides the experimental set up where a computationalillustration is given in Section V. Finally,Section VI concludes.II. TCT by Stochastic DynamicProgrammingThere are numerous ways to model traffic flows.We focus here on a Markov chain view with timeslots are thought of as to be that big that one carcan pass by on a green light, usually taken as twoseconds. The state is described by the vector (q, l),where the vector q tracks the number of cars in eachqueue and l ∈ {0, . . . , ncomb} indicates the state ofthe light, i.e. which of the ncomb combination hasright of way (l = 0 represents the all-red state).The probabilities of going from one state to theother depend on the TCT as well as on the probabilitiesλ j of a car arriving at the queues j (for allj ∈ {1, . . . , nflow}. In order to get a finite statespace to allow numerical computations the queuelength is truncated to a maximum size Q, such thatq j ∈ {0, . . . , Q}.For the F2C2 case of Figure 1, this means that thestate space is 3-dimensional: (q 1 , q 2 , l). The numberof possible states is ns = (ncomb+1)×(Q+1) nflow =3(Q + 1) nflow . Consider the F4C2 case of Figure 2.The state space is 5 dimensional and the number ofstates is ns = 3(Q + 1) 4 . We observe that the numberof states grows exponentially fast in the numberof queues; this called the curse of dimensionalityin solving an SDP problem. Nevertheless up to theF4C2 case, Haijema concludes that an optimal policycan relatively easily be computed on a PC witha single processor. Although the curse of dimensionalityis not resolved by HPC, HPC may stretch thecomputational limit beyond the F4C2 case.To find a TCT that minimizes the expected wait-JP2011-131


| m0Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 3.Value function determinationFig. 2.Situation with 4 flows and 2 symmetric combinationsing time we apply the so-called value iteration (VA)algorithm (for details see [7] and [3]). First a costnflow∑function C(q, l) = q j is defined that capturesj=1the waiting time during the coming time slot forthe current state (q, l). Note that by Little’s lawminimizing the expected number of cars waiting alsominimizes the overall expected waiting time. Next aso-called value vector V n (q, l) that gives a valuationfor each state over the next n time slots, is to becomputed for n = 1, 2, 3, . . .. Clearly the cost over0 periods is zero, hence we start the value iterationalgorithm with n = 0 and V n (q, l) = 0 for all states(q, l). Then one determines iteratively optimum decisionsa such thatV n+1 (q, l) = C(q, l) + min E e|a V n (T (q, l, a, e))awhere T is a transformation function that gives thestate at which to arrive when at the current state,the decision a is taken and arrival event e happens.The whole is sketched in Figure 3. Notice thatthe number of possible events is 2 nflow , as at eachqueue, a car may arrive or not. The probabilitiesare determined from the vector of traffic intensities(λ 1 , . . . , λ nflow ). If l = 0, i.e. all lights are red, thedecision a ∈ {1, . . . , ncomb}, i.e. one of the combinationscan be given a green light. In the other cases,there are 2 possibilities; either the light stays as it is,or is put in the all-red state to clear the intersection.Fig. 4.in |max20 30 40 5010Convergence of the span for the F4C2 instance, calculatedby the parallel code on a quad-socket eight-coreIntel X7550 (Beckton).Convergence100 150 200 #iterations 50 0III. Coding Value iterationThe value iteration process requires running the iterationsup to convergence. At each iteration all valuesfor the ns states of V n+1 have to be determined.If l = 0, this requires looking up ncomb × 2 nflow valuesin V n . As we have seen, this is less if one of thecombinations is green. We should look up 2 nflow+1and take the minimum over the two decisions.V n(ns)V n+1(ns)(2,ncomb) {0,…,2 nflow }iFig. 5. Each V n+1 (i) is determined using 2 or ncomb ×Q nflowelements of V n, depending on the state of light.In summary, the iterative process of value iterationfor the TCT generation can be sketched as follows:……The converging part in the process is the differenceV n+1 −V n converging to a constant vector whichrepresents the average waiting time in the system.Practical implementations require the translation ofthe state (q, l) to a state number i and vice versa,such that one works with two arrays with elementsV n+1 (i) and V n (i). The convergence is measured bykeeping hold of the so-called span defined as span =max i (V n+1 (i) − V n (i)) − min i (V n+1 (i) − V n (i)). Thisis illustrated in Figure 4.for(i=0;i < nflows;i++)q[i]=1;while(1){for(i=0;i


0Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011if (max-min


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IIArchitecural summary of the multi-core platform used in the experimentsIntel X7550 4 socketscores/socket SMT L1D cache L2 cache L3 cache memory8 yes 8×32KB 8×256KB 1×18MB 128GBexploit the potential of multi-socket multi-core architectures.Preliminary speedups of the data-sharingimplementation have been measured for a mediumsized instance called F4C2.Currently, we are exploring new techniques suchas software prefetching and cache blocking to furtherimprove the performance of the data-sharingimplementation at one Socket level. In addition,we are working on optimizing the communicationsin the data-privatizing implementation to improvethe performance among multiple Sockets. The intentionis to apply the techniques to the F12C4 casegiven in Figure 8. for which no optimum TCT hasbeen derived yet. Updating one value of the valuefunction requires the evaluation of several times 2 12states due to the possible events. Moreover, using aminimum queue length of Q = 2, this has to be donefor 5 × 3 12 = 2.7 mln states. Future investigationwill look at using interpolation to keep the numberof states limited to that number.[3] R. Haijema, Solving large structured markov decisionproblems for perishable inventory management and trafficcontrol, Ph.D. thesis, Univeristy of Amsterdam - TinbergenInstitute - Amsterdam School of Economics, 122008.[4] R. Haijema and J. van der Wal, An MDP decompositionapproach for traffic control at isolated signalized intersections,Probability in the Engineering and InformationalSciences 22 (2008), no. 4, 587–602.[5] G. F. Newell, Approximation methods for queues withapplications to the fixed-cycle traffic light, SIAM Review7 (1965), no. 2, 223–240.[6] M. Papageorgiou, C. Diakaki, V. Dinopoulou, A. Kotsialos,and Y. Wang, Review of road traffic control strategies,Proc. of the IEEE, vol. 91, IEEE, 2003, pp. 2043–2067.[7] M. L. Puterman, Markov decision processes: Discretestochastic dynamic programming, Wiley Series in Probabilityand Mathematical Statistics, 1994.[8] M. S. van den Broek, J. S. H. van Leeuwaarden, I. J. B. F.Adan, and O. J. Boxma, Bounds and approximations forthe fixed-cycle traffic-light queue, Transportation Science40 (2006), 484–496.[9] J. S. H. van Leeuwaarden, Delay analysis for the fixed cycletraffic light queue, Transportation Science 40 (2006),no. 2, 189–199.[10] M. Wiering, J. van Veenen, J. Vreeken, and A. Koopman,Intelligent traffic light control, technical report UU-CS-2004-029, Institute of information and computing sciences,Utrecht University, 2004.Fig. 8.Instance of intersection with 12 flows, 4 combinationsAgradecimientosThis work is supported by grants from the SpanishMinistry of Science and Innovation (TIN2008-01117, TIN2006-01078), Junta de Andalucía (P08-TIC-3518), in part financed by the European RegionalDevelopment Fund (ERDF). Eligius Hendrixis fellow of the Spanish “Ramon y Cajal” contractprogram and Siham Tabik of the “Juan de la Cierva”program, co-financed by the European Social Fund.Referencias[1] The OpenMP API specification for parallel programming,http://openmp.org/wp/openmp-specifications/.[2] Intel Compilers for Linux, http://software.intel.com/enus/articles/intel-c-compiler-professional-edition-forlinux-documentation/(2009).JP2011-134


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Evaluación del método del GradienteBiconjugado para matrices dispersas en GPUs.G. Ortega 1 , E. M. Garzón 1 , F. Vázquez 1 , I. García 2Resumen— En una gran variedad de aplicacionesde diferentes disciplinas científicas y relacionadas conla ingeniería, se requiere la resolución de sistemasde ecuaciones no simétricos y complejos. Para resolvereste tipo de sistemas de ecuaciones lineales, elMétodo del Gradiente Biconjugado se considera especialmenterelevante, ya que es capaz de resolver sistemasde ecuaciones complejos y no simétricos. Sinembargo, desde el punto de vista computacional, elmétodo BCG es muy costoso debido a los productosmatriz vector (SpMV) involucrados en dicho algoritmo.Por lo tanto, para acelerar dicho métodoes necesaria la explotación de Computación de AltasPrestaciones (HPC). La computación GPU haemergido como una nueva técnica de HPC que ofreceun paralelismo masivo y, por tanto, puede ser consideradacomo una valiosa herramienta para acelerareste tipo de algoritmos. En este trabajo se muestraque el método BCG puede ser acelerado de una formaeficiente si las operaciones SpMV se computan en laGPU. Hemos considerado dos implementaciones distintasdel método BCG en la GPU: CuBCG SP (basadoen la librería CUSPARSE) y CuBCG ET (basado enla rutina ELLR-T). Ambos desarrollos han sido evaluadospara dos conjuntos de matrices de testeo detipo complejo y real, ambos en simple precisión. Losresultados experimentales han mostrado que ambosmétodos, CuBCG SP y CuBCG ET , obtienen rendimientossuperiores a la implementación con múltiples coresdel BCG. Sin embargo, CuBCG ET alcanza el mejorrendimiento, especialmente para el conjunto de matricesde tipo complejo.Palabras clave—Método del Gradiente Biconjugado,computacion GPU, computación paralela, sistemas deecuaciones lineales.I. IntroducciónEL algoritmo del Gradiente Conjugado (CG) esuno de los métodos iterativos más utilizadospara la resolución de sistemas simétricos positivosdefinidos [1], [2]. Dicho método es especialmenteapropiado para resolver sistemas de ecuaciones linealesen los que intervienen matrices dispersas dedimensiones considerables. Sin embargo, el métodoCG no es adecuado para sistemas no simétricos. Así,el Método del Gradiente Biconjugado (BCG), unageneralización del CG, es capaz de resolver sistemasde ecuaciones lineales simétricos y complejos con suficienteprecisión. Sin embargo, el método BCGrequiere operaciones con un alto coste computacionalen cada iteración. Esto significa un esfuerzoadicional: la utilización de Computación de AltasPrestaciones (HPC) para acelerar la computación delmétodo BCG.Actualmente, las Unidades de Proceso Gráfico1 Dpt. Arquitectura y Electrónica, Universidad deAlmería, e-mail: glortega@ual.es, gmartin@ual.es,f.vazquez@ual.es2 Dpt. Arquitectura, Universidad de Málaga, e-mail:igarcia@ac.uma.es(GPU) son plataformas que ofrecen un paralelismomasivo y, por tanto, pueden resultar de utilidad paraacelerar este tipo de algoritmos. En la literatura sehan implementado y evaluado diversos desarrollos delos métodos CG y BCG [3], [4], [5]. Sin embargo,en este estudio se obtienen mejores rendimientos enel desarrollo de implementaciones HPC del métodoBCG basadas en computaciones GPU.Las arquitecturas GPU pueden trabajar como eficientescoprocesadores de supercomputación y supoder puede ser aplicado a una gran variedad de aplicaciones,en particular en aquellas relacionadas conoperaciones matriciales. Las GPUs constan de cientosde cores que pueden ejecutar de forma colectivamiles de threads de computación. Cada core, llamadoProcesador Escalar (SP), pertenece a un conjuntode unidades multiprocesadoras llamadas MultiprocesadoresStreaming (SM) que componen el dispositivo.Por lo tanto, los últimos avances en latecnología GPU se han centrado en el desarrollo deInterfaces de Programación de aplicaciones (APIs),tales como la Arquitectura Unificada de Dispositivosde Cómputo (CUDA) de NVIDIA, que claramentefacilitan la programación de aplicaciones sobreGPUs. En los últimos años, el uso de las GPUs paraaplicaciones de propósito general ha crecido estrepitosamentedebido a la evolución tanto de las fuentesde programación GPU como de las tecnologías semiconductoras.De este modo, las GPUs han emergidocomo nuevas plataformas de computación que ofrecenun paralelismo masivo y proporcionan un altoratio de rendimiento para la computación científica.Una aproximación para facilitar la programaciónGPU es el uso tanto de rutinas básicas como de librerías,ya que: (1) tienen optimizadas las operacionesmás utilizadas en diversas aplicaciones y (2)pueden ser aceleradas de forma óptima a través de lasGPUs. En esta línea, NVIDIA suministra un amplioconjunto de rutinas relacionadas con diversos tiposde aplicaciones tales como CuBLAS, CuFFT o CUS-PARSE [6].Centrándonos en este estudio, las plataformasGPU nos permiten extender el método BCG parapoder resolver sistemas de ecuaciones lineales demayor dimensión. Esto es debido al hecho de que lacomputación GPU acelera las dos operaciones SpMVrequeridas por el método BCG. Dicha operación esla que tiene un mayor coste computacional en dichoalgoritmo, por lo tanto, puede ser consideradacomo la clave en el desarrollo del método BCG sobreplataformas GPUs. En la literatura es posibleencontrar varias implementaciones de la operaciónSpMV basadas en la computación CUDA [6], [7], [8],JP2011-135


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011[9], [10]. Particularmente, nuestro trabajo se ha centradoen dos kernels de CUDA para computar lasoperaciones SpMV involucradas en el método BCG:(1) el kernel SpMV de la librería CUSPARSE [6] y (2)el kernel ELLR-T, basado en el formato ELLPACK-R [10], [11]. Para realizar una intensa evaluacióndel rendimiento de ambas aproximaciones, hemosutilizado dos conjuntos representativos de matrices(reales y complejas). El estudio comparativo hallegado a la conclusión de que la aproximación delmétodo BCG basada en la rutina ELLR-T alcanzalos mejores rendimientos.La Sección II revisa el método BCG. La Sección IIIintroduce las dos implementaciones del método BCGque se han desarrollado: CuBCG CS , basada en elkernel CUSPARSE, y CuBCG ET , basada en el kernelELLR-T. La Sección IV evalúa ambas aproximacionesen una arquitectura GPU GTX 480. Para ello,se utilizan dos conjuntos representativos de matricesde testeo de tipo real y complejo que tienen distintospatrones de regularidad. Los resultados claramentemuestran que el método BCG basado en la rutinaELLR-T obtiene los mejores rendimientos para todaslas matrices de testeo consideradas. Finalmente,la Sección V resume las principales conclusiones.II. Método del Gradiente BiconjugadoEl Método del Gradiente Biconjugado (BCG) proporcionauna generalización del CG, ya que se reemplazanlas secuencias ortogonales de residuos por dossecuencias mutuamente ortogonales, al coste de proporcionaruna minimización [12], [13].El método BCG (propuesto por Lanczos [14], [15]y discutido por Fletcher [16] y Jacobs [17]) es unmétodo iterativo no estacionario capaz de solucionarsistemas de ecuaciones lineales Ax = b, donde lamatriz A ∈ C N×N puede ser no simétrica. Para elsistema de ecuaciones dado, A denota el coeficiente(disperso) la matriz, b indica el término independientey x es la solución vector.El Algoritmo 1 muestra el pseudocódigo para elMétodo de Gradiente Biconjugado. Además, en dichoalgoritmo también se muestran los órdenes decomplejidad de las operaciones más costosas computacionalmente.Destaquemos que nz denota elnúmero los elementos no nulos de A y N el número defilas. El coste computacional asociado a la operaciónSpMV es el mayor, ya que el resto de las operacionesson productos escalares. Es importante resaltar quecada iteración implica el cómputo de la operaciónSpMV utilizando las matrices A y A T (líneas 9 y13 de Algoritmo 1), donde la operación SpMV sobreA T representa una penalización en el rendimiento delmétodo BCG.III. Implementación del Método delGradiente Biconjugado sobre GPUsEn el algoritmo 1 las operaciones más costosascomputacionalmente son los productos matriz vector(SpMV), especialmente cuando las matrices involucradastienen un número elevado de elementos no nu-Algoritmo 1 Método del Gradiente BiconjugadoEntrada: Definir EP S = Umbral de precisiónSalida: El valor de x (i) .1: Computar r (0) = b − Ax (0) para un inicial x (0)2: Elegir r ′(0) = r (0) ; p ′(0) = 0; p (0) = p ′(0) ; ρ ′(0) = 13: Calcular ∆ (0) = norm2(r (0) ) O(4N)4: for i = 1, 2, ... do5: ρ (i) = (r ′(i−1) , r (i−1) ) O(8N)6: β (i) = ρ (i) /ρ ′(i−1)7: p (i) = r (i−1) + β (i) p (i−1) O(8N)8: p ′(i) = r ′(i−1) + β (i) p ′(i−1) O(8N)9: v (i) = Ap (i) O(8nz)10: α (i) = ρ (i) /(p ′(i) , v (i) ) O(8N)11: x (i) = x (i−1) + p (i) α (i) O(8N)12: r (i) = r (i−1) − v (i) α (i) O(8N)13: r ′(i) = r ′(i−1) − α (i) (A T p ′(i) ) O(8nz + 8N)14: ∆ (i) = norm2(r (i) ) O(4N)15: if ∆ (i) < ∆ (0) EP S then16: return x (i)17: else18: ρ ′(i) = ρ (i)19: end if20: end forlos, nz (ver el coste computacional de cada operaciónen el Algoritmo 1). En cada iteración del métodoBCG, se computan dos operaciones SpMV con lasmatrices A y A T . Como se comentó anteriormente,cuando la operación SpMV utiliza la traspuesta dela matriz el tiempo consumido es mayor. Esto es debidoa las penalizaciones relacionadas con la pérdidade localidad en el acceso a los elementos de A T . Porlo tanto, para superar esta pérdida en el rendimiento,nuestras implementaciones almacenan ambas matrices,A y A T , como dos matrices dispersas distintas.De este modo, se mantiene la localidad en el acceso alos elementos de ambas matrices en todas las operacionesSpMV. Para matrices A de gran dimensión, laalta complejidad computacional del SpMV requierede la explotación de técnicas de Computación de AltoRendimiento. Por lo tanto, nuestro interés se centraen acelerar tanto las operaciones SpMVs como elresto de operaciones con vectores, para así mejorar elrendimiento de todo el método BCG. Las aproximacionesutilizadas para acelerar este algoritmo estánbasadas en la computación GPU, ya que las plataformasGPUs pueden ser utilizadas como un aceleradordel SpMV [6], [11], [18].CUDA es la Interfaz de Programación de Aplicaciones(API) desarrollada por NVIDIA para facilitarla programación de las GPUs. Utilizando la interfazCUDA, la GPU es considerada por el programadorcomo un conjunto de multiprocesadores coninstrucciones SIMT (Simple Instrucción, MúltiplesHilos) [19]. Cada kernel (código paralelo) se ejecutacomo un grupo de hilos organizado como un grid debloques de hilos cuya configuración es definida porel programador, al establecer ciertos parámetros específicos.Uno de estos parámetros es el tamaño delbloque de hilos, a partir de aquí denominado BS.En tiempo de ejecución, los bloques son mapeadosde forma cíclica en los SMs. Los bloques, en turnos,son divididos en conjuntos de hilos llamados warps,el tamaño de warp (ws = 32) está definido por la ar-JP2011-136


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011quitectura. Actualmente, los SMs están compuestospor treinta y dos SPs en las arquitecturas Fermi másextendidas [19], [20].Para optimizar la explotación de la arquitecturaGPU de NVIDIA, el programador tiende a maximizar:(1) el ratio entre el número de warps activospor multiprocesador y el número máximo de (posibles)warps activos; este propósito se puede lograr:eligiendo el valor óptimo de BS, balanceando la cargade trabajo de los hilos y evitando las instrucciones decontrol de flujo que podrían causar la divergencia delos hilos, (por ejemplo, manteniendo los multiprocesadoresen el dispositivo tan ocupados como sea posible);y (2) el ancho de banda de memoria; el manejode la memoria se optimiza cuando el patrón de accesode los diferentes hilos pertenecientes a cada halfwarp(16 hilos) verifica las condiciones de coalescenciay alineamiento. Los accesos a memoria puedenllevarse a cabo en paralelo y la latencia de memoriasería la misma que para un solo acceso. Además, elhecho de utilizar la cache de texturas como memoriacache mejora el rendimiento [19].Aparte de CUDA, NVIDIA proporciona un conjuntode rutinas básicas o librerías (CuBLAS yCuFFT) que aceleran de forma óptima una ampliavariedad de operaciones con matrices sobre GPUs.Se han desarrollado múltiples implementaciones delSpMV basadas en CUDA [6], [7], [8], [9], [10] ya quela operación SpMV es, en realidad, la clave en el desarrollodel método BCG utilizando GPUs.Nosotros hemos seleccionado dos implementacionesCUDA para computar el SpMV con el finde implementar el método BCG sobre GPUs: (1)el kernel incluido en la librería CUSPARSE [6] y(2) el kernel ELLR-T que está basado en el formatoELLPACK-R [10], [11]. La evaluación comparativadescrita en [10] muestra que ELLR-T alcanza unrendimiento mejor que otras aproximaciones para laoperación SpMV sobre GPUs. Sin embargo, la rutinapara computar el SpMV de la librería CUSPARSEno está incluida en el mencionado estudio. En nuestrotrabajo, hemos seleccionado ambos kernels paracomputar la operación SpMV y poder desarrollar elmétodo BCG sobre GPUs.La clave de este artículo es el desarrollo y evaluaciónde las implementaciones del BCG basadasen ambos kernels. En adelante, la implementaciónbasada en la librería CUSPARSE será referenciadacomo CuBCG CS , y la implementación basada en larutina ELLR-T se denominará CuBCG ET . A continuaciónse describen ambas aproximaciones con detalle:• CuBCG CS se basa en la librería CUSPARSEla cual proporciona un conjunto de subrutinasbásicas de álgebra lineal para el manejo de matricesdispersas. El formato utilizado para compactarlas matrices es el de almacenamientocomprimido por fila (CRS). El paradigma dela librería CUSPARSE es el siguiente: se definenmúltiples bloques, B i , en función de la dimensiónde A, donde cada bloque está encargadode procesar un grupo de filas, (G j ). Y acada fila se le asignada un grupo de hilos, T k .Además, se han tenido en cuenta una serie deconsideraciones adicionales para incrementar elrendimiento: (1) ajustar el número de hilos porfila para evitar el desequilibrio entre hilos; (2)alinear hilos por fila para favorecer la coalescenciay (3) utilizar tanto la memoria compartidacomo la memoria de texturas [6].• CuBCG ET se basa en la rutina de ELLR-T cuyoformato es el ELLPACK-R, el cual permite almacenarla matriz dispersa de una forma regular.Para el formato ELLR-T, cada conjuntode T hilos calcula un elemento del vector desalida. El acceso de la matriz a la memoriaglobal es coalescente y alineado. Según el mapeadode los hilos en la computación de cada fila,se pueden ejecutar múltiples configuraciones delformato ELLR-T. Para optimizar el rendimientodel método, los valores de dos parámetros. elnúmero de hilos (T ) y el tamaño de bloque delos hilos (BS), deben modificarse para cada tipode matrices dispersasEn la siguiente sección se muestran los rendimientosobtenidos al evaluar la operación SpMV sobrelos formatos CUSPARSE y ELLR-T, así comopara nuestras implementaciones del método BCG:CuBCG CU y CuBCG ET .IV. EvaluaciónPara evaluar los tiempos de ejecución de nuestrosdesarrollos, hemos empleado dos conjuntos distintosde matrices dispersas sobre la plataforma GPUGeForce GTX 480. Estas matrices de testeo procedende un amplio espectro de disciplinas relacionadascon la ciencia y la ingeniería. Por lo tanto, podemosencontrar tanto matrices regulares y bien estructuras,como matrices con una gran irregularidady desequilibrio en el número de elementos no nulospor fila. La Tabla I ilustra los principales parámetrosde estas matrices: número de filas (N), número totalde elementos no nulos (nz) y promedio de entradaspor fila (Av). Resulta de interés destacar que la dimensiónde todas las matrices es N x N.En los experimentos realizados para evaluar elrendimiento de los kernels CUSPARSE y ELLR-T, para cada matriz de prueba, se ha consideradola configuración óptima de los parámetros T yBS. Además, los productos escalares se han aceleradogracias a la librería CUBLAS. En cuanto alos conjuntos de matrices de tipo real y complejo,los elementos han sido almacenados como uno o dosnúmeros reales, respectivamente.La figura 1 muestra el rendimiento (GFLOPs)de la operación SpMV sobre la plataforma GPUGeForce GTX 480, utilizando los kernels CUS-PARSE y ELLR-T (para tipos de datos reales y complejos).Cada prueba ha consistido en 1000 ejecucionesde la rutina SpMV, obteniendo así tiempos deejecución fiables. Los lenguajes de programación utilizadospara diseñar los códigos han sido C y CUDA.JP2011-137


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA ICaracterísticas de las matrices de testeo.Matriz real N nz Avwbp 16384 3933097 240cant 62451 4007384 64pdb1HYS 36417 4344766 119consph 83334 6010481 72shipsec1 140874 7813404 55pwtk 217918 11634425 53wbp256 65536 31413934 479Matriz compleja N nz Avkim1 38415 933195 24femfilter 74062 1731206 23NN70 729000 5086618 7NN80 1000000 6979798 7NN90 1331000 9292578 7kim2 456976 11330020 24femhifreqcircuit 491100 20239237 41Los resultados de la Figura 1 muestran que losmejores rendimientos para todas las matrices consideradasson alcanzados por ELLR-T. Esto es debidoa que dicho kernel es capaz de adaptarse al patrónde las matrices dispersas involucradas en el sistema,utilizando para ello el parámetro T . El kernel CUS-PARSE, sin embargo, presenta una pobre flexibilidadya que dicho parámetro no puede ser modificado.Es importante resaltar que el rendimiento deambos formatos normalmente incrementa al aumentarel número de elementos no nulos de la matriz.Las mejoras de rendimiento de la operación SpMValcanzadas por los kernels ELLR-T y CUSPARSEdenotan que las implementaciones del método BCGbasado en SpMV ELLR-T y SpMV CUSPARSEpueden obtener buenos rendimientos. Por lotanto, hemos realizado un análisis comparativo delrendimiento de las dos aproximaciones para resolverel método BCG: el método CuBCG CS (basado en elkernel CUSPARSE) y el método CuBCG ET (basadoen el kernel ELLR-T).La Figura 2 muestra el rendimiento (GFLOPs) alcanzadopor los métodos CuBCG CS y CuBCG ETpara la resolución de sistemas de ecuaciones lineales,reales y complejos, respectivamente. Para el objetivode estimar el rendimiento proporcionado por GPUSpara estos métodos, hemos considerado los mismosvalores de los parámetros de la mejor configuraciónpara las operaciones SpMV, cuyo rendimiento se ilustraen la Figura 1.Los resultados mostrados en la Figura 2 ilustranlas siguientes consideraciones: (1) el rendimientoobtenido por ambos métodos aumenta al incrementarseel número de entradas no nulas en la matriz.Este comportamiento sugiere que, en general,conforme la dimensión de las matrices aumente, elrendimiento será mejor (sobre todo para el conjuntode matrices complejas). (2) Para ambos conjuntosde matrices consideradas, los mejores rendimientosson alcanzados por el método CuBCG ET .Fig. 1Rendimiento de la operación SpMV basada en loskernels CUSPARSE y ELLR-T sobre GPU GeForceGTX 480 con dos conjuntos de matrices de testeo(reales y complejas).Para estimar las mejoras proporcionadas por laGPU en las dos implementaciones del método BCG,hemos considerado la versión optimizada del SpMVpara un procesador moderno. Esta implementacióndel método BCG está basada en la librería MKL [21]para el cómputo de las operaciones SpMV sobre unprocesador superescalar actual (Intel Xeon Westmerecon 8 procesadores). La Tabla II muestra los factoresde ganancia obtenidos por los métodos CuBCG CS yCuBCG ET sobre la GPU GTX 480 frente a la ejecucióndel método BCG sobre un procesador de ochonúcleos, considerando los dos conjuntos de matricesde testeo. Los resultados muestran que los factoresde ganancia en ambos desarrollos GPU son mejoresque la implementación multicore. Así, CuBCG CSCuBCG ET toman ventaja del paradigma de programaciónde las GPUs.Para las matrices de testeo consideradas, los speedup alcanzan valores entre 1,95× y 11,60× para elmétodo CuBCG ET y entre 1,03× y 5,07× para elmétodo CuBCG CS . La Tabla II ilustra que el speedup alcanzado por CuBCG ET es siempre mayor queel de CuBCG CS para todas las matrices. Merece lapena destacar que este hecho es más relevante cuandolas matrices son de tipo complejo.JP2011-138


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011TABLA IISpeed Up para los métodos CuBCG CS y CuBCG ETfrente a la versión multicore (8 cores) del BCGutilizando la librería MKL.Matriz real CuBCG CS CuBCG ETwbp128 3,48 4,44cant 1,76 2,40pdb1HYS 3,43 4,78consph 1,89 2,29shipsec1 3,12 3,99pwtk 1,68 2,62wbp256 4,09 4,41Matriz compleja CuBCG CS CuBCG ETkim1 1,03 1,95femfilter 1,38 3,16NN70 4,94 8,88NN80 5,07 9,27NN90 3,52 11,60kim2 1,90 6,92femhifreqcircuit 2,93 7,25Fig. 2Rendimiento de las aproximaciones BCG (CuBCG CS yCuBCG ET ) sobre GPU GeForce GTX 480 con dosconjuntos de matrices de testeo (reales andcomplejas).V. ConclusiónSe han desarrollado dos implementaciones delmétodo BCG (CuBCG CS y CuBCG ET ) con el objetivode resolver sistemas de ecuaciones lineales nosimétricos y complejos utilizando GPUs. Tanto losproductos escalares como las operaciones SpMV involucradosen las iteraciones del método BCG hansido acelerados utilizando GPUs. Para ello, se handesarrollado dos métodos, CuBCG CS y CuBCG ET ,basados en los kernels CUSPARSE y ELLR-T, capacesde computar la operación SpMV en la GPU,respectivamente. Los resultados de evaluación muestranque el rendimiento para ambas implementacionesdepende fuertemente del patrón de la matrizde coeficientes. Sin embargo, después de un extensoestudio utilizando dos conjuntos de matricesde testeo, se puede concluir que la implementaciónCuBCG ET claramente alcanza el mejor rendimientogracias al hecho de que el kernel ELLR-T en el quese basa, puede ser mejor adaptado a los diferentespatrones de las matrices dispersas. Este hecho esespecialmente relevante para matrices de tipo complejoya que la consideración del espacio complejoenvuelve un mayor número de operaciones en puntoflotante.Además, la evaluación del método CuBCG ET enuna GPU GeForce GTX 480 ha revelado que los factoresde aceleración tienen un rango entre 2× y 12×en comparación con la versión optimizada del métodoBCG que explota el estado del arte de un procesadorsuperescalar con 8 núcleos.Por último, resaltar que nuestra implementaciónCuBCG ET basada en la computación GPU permiteextender la dimensión del sistema de ecuaciones linealesa resolver para así poder tratar con un rangomayor de aplicaciones.AgradecimientosEste trabajo ha sido parcialmente financiado porsubvenciones de la Junta de Andalucía (P08-TIC-3518, P10-TIC-6002) y el Ministerio de Ciencia e Innovación(TIN2008-01117), en parte financiado porel Fondo Europeo de Desarrollo Regional (FEDER).Referencias[1] Gene H. Golub and Charles F. van Van Loan, MatrixComputations (Johns Hopkins Studies in MathematicalSciences)(3rd Edition), The Johns Hopkins UniversityPress, Oct. 1996.[2] Yousef Saad, Iterative Methods for Sparse Linear Systems,Second Edition, Society for Industrial and AppliedMathematics, Apr. 2003.[3] Abhijeet Gaikwad and Ioane Muni Toke, “Parallel iterativelinear solvers on gpu: A financial engineering case,”in Proceedings of the 2010 18th Euromicro Conferenceon Parallel, Distributed and Network-based Processing,Washington, DC, USA, 2010, PDP ’10, pp. 607–614,IEEE Computer Society.[4] Norberto Garcia, “Parallel power flow solutions using abiconjugate gradient algorithm and a newton method: Agpu-based approach,” July 2010, pp. 1–4.JP2011-139


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011[5] Marcin Wozniak, Tomasz Olas, and RomanWyrzykowski, “Parallel implementation of conjugategradient method on graphics processors,” inParallel Processing and Applied Mathematics, RomanWyrzykowski, Jack Dongarra, Konrad Karczewski, andJerzy Wasniewski, Eds., vol. 6067 of Lecture Notesin Computer Science, pp. 125–135. Springer Berlin /Heidelberg, 2010.[6] NVIDIA, “Cuda cusparse library,” Tech. Rep., September2010.[7] M M Baskaran and R Bordawekar, “Optimizing sparsematrix-vector multiplication on GPUs,” Tech. Rep. ResearchReport RC24704, IBM, April 2009.[8] J W Choi, A Singh, and RW Vuduc, “Model-driven autotuningof sparse matrix-vector multiply on GPUs,” inPPoPP ’10: Proceedings of the 15th ACM SIGPLANsymposium on Principles and practice of parallel programming,New York, NY, USA, 2010, pp. 115–126,ACM.[9] NVIDIA, “Cusp library,” Tech. Rep., October 2010.[10] F Vázquez, G Ortega, J J Fernández, and E M Garzón,“Improving the performance of the sparse matrix vectorproduct with GPUs,” in 10th IEEE International Conferenceon Computer and Information Technology. CIT2010. 2010, pp. 1146–1151, IEEE Computer Society.[11] F. Vázquez, J. J. Fernández, and E. M. Garzón, “A newapproach for sparse matrix vector product on NVIDIAGPUs,” Concurr. Comput. : Pract. Exper., vol. 23, pp.815–826, June 2011.[12] R. Barrett, M. Berry, T. F. Chan, J. Demmel, J. Donato,J. Dongarra, V. Eijkhout, R. Pozo, C. Romine,and H. Van der Vorst, Templates for the Solution ofLinear Systems: Building Blocks for Iterative Methods,2nd Edition, SIAM, Philadelphia, PA, 1994.[13] William H. Press, Saul A. Teukolsky, William T. Vetterling,and Brian P. Flannery, “Numerical recipes in c: Theart of scientific computing. second edition,” 1992.[14] C. Lanczos, “An iteration method for the solution ofthe eigenvalue problem of linear differential and integraloperators,” J . Res. Nat. Bur. Stand., vol. 45, pp. 255–282, 1950.[15] Cornelius Lanczos, “Solution of systems of linear equationsby minimized iterations,” J. Res. Natl. Bur. Stand,vol. 49, pp. 33–53, 1952.[16] R. Fletcher, “Conjugate gradient methods for indefinitesystems,” vol. 506, pp. 73–89. Springer Berlin / Heidelberg,1976.[17] D. A. H. Jacobs, “The exploitation of sparsity by iterativemethods in sparse matrices and their uses,” I. S. Duff.,pp. 191–222, 1981.[18] Nathan Bell and Michael Garland, “Implementing sparsematrix-vector multiplication on throughput-oriented processors,”in Proceedings of the Conference on High PerformanceComputing Networking, Storage and Analysis,New York, NY, USA, 2009, SC ’09, pp. 18:1–18:11, ACM.[19] NVIDIA, “Cuda programming guide. version 2.3,” 2009.[20] NVIDIA, “Next generation CUDA architecture. FermiArchitecture,” 2010.[21] INTEL, “Math kernel library. reference manual,” 2009.JP2011-140


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Paralelización del cálculo de coeficientes delMétodo de Elementos de Contorno en laresolución de problemas de contactotermoelástico 3DRaquel González 1 , Lidia Sánchez 2 y José Vallepuga 3Resumen— Este artículo propone varios algoritmosparalelos para la optimización de una aplicación desarrolladaen Fortran para la resolución de problemasde contacto entre sólidos tridimensionales mediante elmétodo de los elementos de contorno (MEC). El usode librerías de funciones paralelas como MPI permitela consecución de grandes mejoras en cuanto a tiempode cálculo de forma sencilla. Los experimentos realizadosen un cluster de memoria distribuida muestranla efectividad de este tipo de programación.Palabras clave— Problemas de contacto termoelástico,Método de los Elementos de Contorno, MPI,paralelización.I. IntroducciónEN los últimos tiempos, se han desarrollado diversasaplicaciones que implementan el Método delos Elementos de Contorno (MEC) aplicado a distintoscampos, como pueden ser la obtención de imágenesde origen electromagnético [1], la resoluciónde problemas de dispersión acústica [2], o, como ennuestro caso, la resolución de problemas de contacto,tanto para el caso bidimensional [3], [4], como para eltridimensional [5]. En [6] se propone un método iterativopara resolver problemas de contacto termoelásticoentre sólidos tridimensionales usando MEC. Apesar de que el MEC hace uso de una cantidad muchomenor de datos y de cálculo que otros métodosnuméricos como el MEF (Método de los ElementosFinitos), sigue requiriendo de grandes cantidades detiempo y de memoria para su ejecución. Por estarazón, se pueden encontrar diversos trabajos queversan sobre la optimización de los cálculos, minimizandoel espacio y tiempo requeridos mediante eluso de sistemas de memoria distribuida, clusters decomputadores, etc.Por ejemplo, para el caso bidimensional, Kreinmeyery Stein [7] realizan una comparativa entre dosimplementaciones paralelas del MEC: una para la resolucióndirecta del sistema de ecuaciones linealesmediante descomposición LU, y otra para la resoluciónde dicho sistema de forma iterativa. Para elcaso tridimensional, Natarajan y Krinshnaswamy [8]implementan MEC de forma paralela para un sistemade memoria distribuida. Para la paralelización,1 Dpto. de Ingenierías Mecánica, Informática y Aeroespacial,Univ. de León2 Dpto. de Ingenierías Mecánica, Informática y Aeroespacial,Univ. de León, e-mail: lidia.sanchez@unileon.es3 Dpto. de Tecnología Minera, Topografía y de Estructuras,Univ. de Leónrealizan el particionamiento de datos mediante eluso de una topología de procesadores (taurus 2D).Bucheau et al. [9] aplican distintas estrategiasde paralelización sobre una matriz comprimida medianteFMM (Fast Multipole Method), como son lavectorización, la programación multihilo en sistemasde memoria compartida, y la programación multiprocesoen sistemas de memoria distribuida. Cunha etal. [10], [11], [12] presentan en sus distintos trabajosla utilización de librerías de programación paralela,Lapack y ScaLapack, para la paralelización de códigosque implementan el MEC tanto en sistemas dememoria compartida, como en sistemas de memoriadistribuida. En ambos casos hacen uso de unatopología de procesadores para el particionamientode datos.En este artículo se detallan un conjunto de implementacionesparalelas del MEC, realizadas medianteel uso de la librería MPI, en un sistema de memoriadistribuida.II. MétodosA. Introducción al problemaLa paralelización se ha realizado sobre un códigodesarrollado en Fortran en [6] para la resolución deproblemas termoelásticos de contacto entre sólidostridimensionales mediante el método de los elementosde contorno. El código está dividido en 3 partesperfectamente diferenciadas:1. La discretización de los sólidos, que en nuestrocaso consiste en generar un malla de elementostriangulares constantes sobre el contorno de dichossólidos.2. El cálculo de los coeficientes, el cual necesita delcálculo de una integral de contorno que se realizadesde cada uno de los nodos sobre cada unode los elementos que forman el contorno. Comoen este caso el método utilizado considera tansólo un nodo por elemento, es necesario resolverN 2 integrales, siendo N el número de elementosque forman el mallado. Este número puedeaumentar en función de:• Las subdivisiones: cuando un nodo se integrasobre un elemento próximo, este elemento sesubdivide con el fin de generar una malla másfina. Esto permite una mejor precisión, perotambién incrementa el número de integrales aresolver.JP2011-141


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011• Las simetrías: cuando un problema presentasimetría, los elementos simétricos no se almacenanen memoria, pero hay que tenerlos encuenta a la hora de realizar los cálculos, yaque no es necesario integrar desde los nodosde estos elementos, pero sí hay que integrarsobre ellos.3. El montaje y resolución del sistema de ecuacioneslineales generado a partir de los coeficientescalculados en el paso anterior. Se tratade un sistema de N × N ecuaciones para el problematérmico de potencial, y de un sistema de3N × 3N ecuaciones para el problema elástico.Cuando se trata de un problema termoelástico,se deben resolver ambos sistemas.B. Cálculo de coeficientesEn este artículo, presentamos una primera aproximaciónpara la paralelización del cálculo de los coeficientes.Este paso es relativamente fácil de abordar,ya que cada una de las integrales de contorno es independientedel resto.Como se ha indicado anteriormente (sección II-A), han de integrarse todos los nodos sobre todoslos elementos, incluido el elemento al que pertenece.Cuando un nodo se integra sobre sí mismo se resuelveuna integral analítica, mientras que si se integra sobreotro diferente, se resuelve una integral numérica.De esta forma, el algoritmo secuencial utilizado seríael detallado en el Algorimo 1.Algoritmo 1 Algoritmo secuencial para el cálculode coeficientes.for i = 1 → N do {desde cada elemento}for j = 1 → N do {sobre cada nodo}if i = j thenIntegralAnalitica(e i )elseIntegralNumerica(e i ,e j )end ifend forend forA partir de éste, se han implementado dos algoritmosdiferentes de distribución del trabajo entre losdistintos procesadores.B.1 Distribución directaEn este primer algoritmo, se distribuye el trabajode uno de los bucles de foma equitativa entre losdistintos procesadores.Si distribuimos el bucle interior, es decir, los elementos,en cada iteración del bucle exterior, se integrael elemento e i sobre N/p nodos, y se envíanlos resultados al procesador maestro (ver Algoritmo2). En este caso el envío y recepción de datos seproduce del orden de N × nEsclavos veces, perola cantidad de datos a enviar es relativamente pequeña(N/nEsclavos) siendo nEsclavos el númerode procesadores esclavos.Algoritmo 2 Algoritmo paralelo. Distribución delbucle interior.for i = 1 → N doif rank ≥ 0 then {si es procesador esclavo}for j = 1 → N/nEsclavos doif i = j thenIntegralAnalitica(e i )elseIntegralNumerica(e i ,e j )end ifPack() {empaqueta los datos para su envío}end forSend(datos,0) {enviamos datos empaquetadosal maestro}else {si es procesador maestro}for j = 1 → nEsclavos doRecv(datos,j) {recibimos datos empaquetadosdesde cada esclavo}Unpack() {desempaquetamos los datos recibidos}end forend ifend forSi distribuimos el bucle exterior, es decir, los nodos,se integran grupos de N/nEsclavos elementossobre N nodos en cada procesador esclavo, y se envíanlos resultados al maestro (ver Algoritmo 3). Eneste caso el envío y recepción de datos se producetan sólo nEsclavos veces, pero la cantidad de datosa enviar es mucho mayor (N/nEsclavos × N).Algoritmo 3 Algoritmo paralelo. Distribución delbucle exterior.if rank ≥ 0 then {si es procesador esclavo}for i = 1 → N/nEsclavos dofor j = 1 → N doif i = j thenIntegralAnalitica(e i )elseIntegralNumerica(e i ,e j )end ifPack() {empaqueta los datos para su envío}end forend forSend(datos,0) {enviamos datos empaquetados almaestro}else {si es procesador maestro}for i = 1 → nEsclavos doRecv(datos,i) {recibimos datos empaquetadosdesde cada esclavo}Unpack() {desempaquetamos los datos recibidos}end forend ifUna comparativa entre estas dos distribuciones semuestra en la figura 1 y en la tabla I. En ella sepuede apreciar que las diferencias entre los tiemposno son muy significativas, pero son algo menores losobtenidos mediante la distribución del bucle interior,JP2011-142


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011a pesar de ser la que mayor comunicación conlleva.Fig. 1. Comparativa de tiempos en función del bucle distribuido.En ambos casos, cuando se emplean 1 ó 2 esclavos,el tiempo de ejecución no mejora respecto al casosecuencial debido a la penalización de tiempo existente enla comunicación con el maestro. A partir de 4 esclavosla mejora es significativa. Con 8 esclavos conseguimos eltiempo mínimo. A partir de 8, la penalización de tiempoen la comunicación vuelve a ser mayor que la mejora quesupone añadir un procesador más para el cálculo.TABLA IComparativa de tiempos de ejecución y porcentajesde reducción en función del bucle distribuidoBucle InteriorBucle ExteriorTiempo % tiempo Tiempo % tiempo0 46,96 100,00 46,96 100,002 56,33 119,97 60,68 129,234 28,75 61,23 31,56 67,216 18,92 40,29 22,57 48,068 4,54 9,68 6,57 13,9910 9,27 19,75 11,60 24,7015 6,45 13,74 11,98 25,5220 6,71 14,29 10,18 21,67B.2 Creación de una topología de procesadoresAlgunos autores proponen la creación de unatopología de procesadores para la distribución delcálculo de coeficientes. Como el objetivo del cálculode estas integrales es el montaje de la matrizdel sistema de ecuaciones lineal, Geng et al. [2] proponendistribuir el montaje de esta matriz, ya seaasignando a cada procesador un bloque de matriz arellenar (para lo cual cada procesador necesita losdatos de todos los elementos), o asignando a cadaprocesador la información de un subconjunto de elementosque colaboran en la formación de la matrizglobal (para lo cual cada procesador necesita teneracceso a toda la matriz).Nuestro programa usa un algoritmo iterativo parala resolución del sistema de ecuaciones lineales, deforma que en cada iteración se monta la matriz delsistema a partir de los resultados de las integrales decontorno, y se resuelve, repitiendo el proceso hastaque la solución converja. Es por esto que, en nuestrocaso, primero realizamos todas las integrales decontorno y guardamos los resultados. A pesar deque esto supone un gasto considerable de memoria,supone también un ahorro considerable en tiempo decómputo, ya que a la hora de realizar el montaje noes necesario volver a resolver las integrales.Para almacenar los resultados, lo que buscamos esrellenar una matriz de coeficientes de la forma⎛⎞A 1,1 · · · A 1,N⎜A =⎝..⎟. ⎠A N,1 · · · A N,Ndonde A i,j es el resultado de la integración del elementoi sobre el nodo j.Para ello, creamos una topología de procesadores⎛P =⎜⎝⎞P 1,1 · · · P 1,C..⎟. ⎠P R,1 · · · P R,Csiendo R el número de filas y C el de columnas.P i,j es cada uno de los procesadores de quedisponemos, y se encargará de integrar N/R elementossobre N/C nodos, o lo que es lo mismo, rellenaruna submatriz de A de N/R × N/C elementos.III. Resultados experimentalesLos experimentos se han realizado en el clusterMPI del supercomputador Caléndula de la Fundacióndel Centro de Supercomputación de Castilla yLeón. El código paralelo se ha programado medianteel uso de funciones de la librería MPI para Fortran.El problema sobre el que se han realizado los experimentosse trata de un problema termoelásticocon simetría respecto al plano YZ, que ha sido discretizadoen un total de 5120 elementos, lo que significaque han de resolverse 5120 × (2 × 5120) integralesde contorno, es decir, cada nodo debe integrarsesobre todos los elementos y sobre sus simétricos.Hasta ahora sólo se ha programado la resolucióndel problema para topologías de procesadorescuadradas, es decir, en las que R = C.La figura 2 y la tabla II muestran una comparativade tiempos entre los dos algoritmos de paralelizaciónprobados.TABLA IIComparativa de tiempos de ejecución y porcentajesde reducción entre la distribución directa y el usode una topología de procesadores (5120 elementos)Distribución directaTopologíaTiempo % tiempo Tiempo % tiempo1x1 46,96 100,00 46,26 100,002x2 37,32 79,48 46,01 99,453x3 5,63 11,98 18,08 39,094x4 5,65 12,04 11,54 24,945x5 4,53 9,65 9,14 19,75JP2011-143


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 2. Comparativa entre la distribución directa y el usode una topología de procesadores para 5120 elementos.Desde la topología cuadrada más pequeña, y en relaciónal caso secuencial (1x1), los tiempos de ejecución mejoranprogresivamente, aunque en menor medida que en el casode la distribución directa, donde el balanceo de carga esmejor.Como se puede observar, para un número elevadode procesadores, presenta mejores tiempos el algoritmode distribución directa. Esto se debe a que,como se mencionó en el apartado II-B, cuando se integradesde un elemento sobre sí mismo, la integral esanalítica, y en otro caso numérica. Esto provoca quepara el caso de distribución directa la carga de trabajoesté mejor distribuida, ya que cada procesadordebe integrar los nodos que se le envían sobre el totalde elementos, incluidos ellos mismos, mientras que enel caso de utilizar la topología de procesadores, aquellosque no están situados sobre la diagonal principalen la matriz de procesadores, no realizarán ningunaintegral analítica.Además, para el caso en que la ejecución se realizaen 9 procesadores es mucho mejor el algoritmo dedistribución directa. Esto es resultado de que 2560,que es el número total de elementos, es divisible entre8, que son los esclavos entre los que se reparte lacarga de trabajo en el algoritmo de distribución directa;sin embargo, 2560 no es divisible entre 3, quees el número de procesadores en cada fila y en cadacolumna en el caso de utilizar una topología.La figura 3 y la tabla III muestran una comparativapara un segundo problema, en este caso un problemaelástico sin simetría, en que el número de elementosdel mallado es 4704, por lo que, al no habersimetría, el número de integrales a calcular es 4704 2 .El hecho de que no exista ningún tipo de simetríahace que el número de integrales numéricas a realizarsea menor, lo que a su vez provoca que se acentúenmás las diferencias entre el primer algoritmo, dondeel balanceo de carga es mejor, y el segundo.IV. ConclusionesEn este trabajo se han estudiado distintas implementacionesparalelas del Método de los Elementosde Contorno. Todas ellas presentan mejoras temporalesrespecto al código secuencial, pero, en funcióndel tipo de problema a resolver, puede resultar másinteresante una u otra estrategia. Los experimentosrealizados muestran mejoras de hasta un 90,32% enla paralelización directa del bucle interior, y de unFig. 3. Comparativa entre la distribución directa y el uso deuna topología de procesadores para 4704 elementos. Lareducción del tiempo de ejecución es significativa desdela topología más pequeña. Las diferencias respecto a ladistribución directa son grandes ya que la ausencia desimetría produce un mayor desequilibrio en la carga.TABLA IIIComparativa de tiempos de ejecución y porcentajesde reducción entre la distribución directa y el usode una topología de procesadores (4704 elementos).Distribución directaTopologíaTiempo % tiempo Tiempo % tiempo1x1 20,61 100,00 20,15 100,002x2 18,02 87,42 17,96 89,113x3 0,81 3,91 8,64 42,854x4 2,25 10,91 5,75 28,525x5 1,80 8,73 4,40 21,8186,01% en el exterior (véase tabla I). Una mayoreficiencia se gana cuando se dan condiciones idealesde distribución de datos, es decir, cuando el númerode elementos es múltiplo del número de procesadoresesclavos entre los que se distribuye el cálculo. El usode una topología de procesadores para la distribuciónde los datos presenta mejoras menores pero tambiénsignificativas de hasta un 80,25% (ver tabla II) parael caso ideal en que el número de elementos del malladoes múltiplo del número de procesadores en cadafila y columna de la matriz de la topología, y ademáses un número elevado (matriz de 5×5). El primer algoritmopresenta una mejor distribución de la carga,mientras que el segundo presenta grandes ventajasde cara a crear la matriz del sistema directamente,eliminando el paso intermedio de almacenarlos parasu posterior utilización. Esto puede ser ventajoso enaquellos problemas cuya convergencia se produzca enun número pequeño de iteraciones, y por tanto, nohaya que realizar el cálculo de coeficientes en muchasocasiones.AgradecimientosEste trabajo ha sido realizado gracias al programade becas de formación de Personal Docente e Investigadorde la Universidad de León, y la colaboraciónde la Fundación del Centro de Supercomputación deCastilla y León.JP2011-144


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Referencias[1] Y Ataseven, Z Akalin-Acar, C E Acar, and N G Gençer,“Parallel implementation of the accelerated bem approachfor emsi of the human brain,” Med Biol EngComput, vol. 46, pp. 671–679, 2008.[2] P Geng, J T Oden, and R A van de Geijn, “Massivelyparallel computation for acoustical scattering problemsusing boundary element methods,” Journal of Sound andVibration, vol. 191, pp. 145–165, 1996.[3] T Andersson, B Fredriksson, and B G A Persson, “Theboundary element method applied to two-dimensionalcontact problems,” in New developments in boundaryelement methods. Proceedings of the Second InternationalSeminar on Recent Advances in Boundary ElementMethods. Southampton, England., 1980, pp. 247–263.[4] J A González, Estudio de problemas de contacto incluyendorodadura mediante el método de los elementosde contorno, Ph.D. thesis, Universidad de Sevilla, 2001.[5] A Foces y F París J A Garrido, “Three dimensional frictioncontact using b.e.m.,” in Advances in BoundaryElements XIII, Computational Mechanics Publications.,Springer-Verlag, Ed., 1991.[6] José Vallepuga, Análisis del problema de contactotermoelástico tridimensional sin fricción mediante elmétodo de los elementos de contorno, aplicación enmicro-electrónica, Ph.D. thesis, Universidad de Valladolid,2010.[7] M Kreienmeyer and E Stein, “Parallel implementation ofthe boundary element method for linear elastic problemson a mimd parallel computer,” Computational Mechanics,vol. 15, pp. 342–349, 1995.[8] R Natarajan and D Krishnaswamy, “A case study in parallelscientific computing: the boundary element methodon a distributed-memory multicomputer,” EngineeringAnalysis with Boundary Element, vol. 18, pp. 183–193,1996.[9] André Buchau, Wolfgang Hafla, Friedemann Groh, andWolfgang M Rucker, “Parallelized computation of compressedbem matrices on multiprocessor computer clusters,”The International Journal for Computation andMathematics in Electrical and Electronic Engineering,vol. 24, pp. 468–479, 2005.[10] M T F Cunha, J C F Telles, and A L G A Coutinho, “Parallelboundary elements using lapack and scalapack,” inProceedings of the 14th Symposium on Computer Architectureand High Performance Computing, 2002.[11] M T F Cunha, J C F Telles, and A L G A Coutinho, “Aportable parallel implementation of a boundary elementelastostatic code for shared and distributed memory systems,”Advances in Engineering Software, vol. 35, pp.453–460, 2004.[12] M T F Cunha, J C F Telles, A L G A Coutinho, andJ Panetta, “On the parallelization of boundary elementcodes using standard and portable libraries,” EngineeringAnalysis with Boundary Elements, vol. 28, pp. 893–902,2004.JP2011-145


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011JP2011-146


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Iterative procedure to solve thermoelasticcontact problems between 3D solids usingBEM and OOPAna M a Suárez Rivero 1 , Raquel González 2 , Lidia Sánchez 3 y J. Vallepuga Espinosa 4Resumen— This paper describes the resolution processin an application developed to solve contactproblems between three-dimensional solids using theBoundary Element Method (BEM). Considering aprevious designed application using OPP (Object OrientedProgramming) techniques, an iterative processto solve thermal, elastic and thermoelastic contactproblems has been implemented and Gauss JordanMethod is used to solve the obtained equation system.The proposed application reduces the executiontime of the previous FORTRAN program as it isshowed for several experiments of thermal, elastic andthermoelastic contact problem resolution between 3Dsolids.Palabras clave— Boundary element method, thermoelasticcontact problems, Gauss Jordan Method,OOP.I. IntroductionTHERE are a lot of researchers that have studiedthe contact problem between solids in the lastfew decades. In the study of this problem, they haveused different numerical methods, as for example,Finite Element Method (FEM) used by Wilson [17],Chan and Tuba [5] o Wriggers [18], or the BoundaryElement Method (BEM) used by Anderson [4]to solve bidimensional contact problems. Gracini[6] uses the theory to solve contact problems betweensolids with axial symmetry. Working withtree-dimensional solids, Emperador [3] applies thismethod to solve elastodynamics problems and Gonzalez[10] applies this method in the resolution ofrolling contact problems. Gracini [6] uses the theoryto solve contact problems between solids with axialsymmetry.The Boundary Element Method has its origins inBetti’s reciprocal theorem and in Somigliana’s identityfrom mid XIXth century. Since sixties, BEMstarted to be applied in the resolution of engineeringproblems [13], and, in 1967, the first research thatdeveloped a program used to solve elasticity problems[14], was published.It is remarkable to say its application is possible touse in different areas, like stress analysis, potentialflow, mechanical fracture, acoustics [9] and electromagnetism[1], [15]. Also, it is possible to be used asa CAD tool for electrical, mechanical or civil engi-1 Dpto. de Ingenierías Mecánica, Informática y Aeroespacial,Univ. de León, e-mail: amsuar@unileon.es.2 Dpto. de Ingenierías Mecánica, Informática y Aeroespacial,Univ. de León, e-mail: raquel.gonzalez@unileon.es.3 Dpto. de Ingenierías Mecánica, Informática y Aeroespacial,Univ. de León, e-mail: lidia.sanchez@unileon.es.4 Dpto. de Tecnología Minera, Topografía y de Estructuras,Univ. de León, e-mail: jvale@unileon.es.neering [2]. Moreover, this method has been used tosolve thermoelastic contact problems between threedimensionalsolids [8].BEM is a method used to solve differential partialequations, so that it can be only used when theproblem can be represented in a differential equationform. The method is derived from the discretizationof an integral equation that is mathematicallyequivalent to the initial partial differential equation.This equation consists of an integral equation thatis defined in the boundary domain and an integralequation that relates the boundary solution with thepoints in the domain. This integral equation is calledboundary integral equation. To solve this equation,a technique that converts this integral into a linearequation system is applied. There is a huge varietyof derivation methods of equation systems that takesas basis the integral equation, which can be appliedto develop a particular boundary element method.However, this new reformulation of the equationcan be only done for some specific types of partialdifferential equations. That is the reason why BEMcan not be only used as a general way, in contrastwith the finite element method or the finite differencesmethod. In spite of that, for those cases whereBEM can be applied, it offers a friendly and efficientnumerical method, more than other ones [2],[16]. BEM consists of meshing solid surfaces. Consequently,fewer nodes are considered, fewer amount ofunknown factors are generated and time execution isreduced [16].In [8], BEM is applied to solve contact problemsbetween three-dimensional solids. Three kinds ofproblems are considered: thermal, elastic and thermoelasticones. An iterative resolution method isproposed and developed using Fortran.The following section describes the problem wedeal with. In section III we present the developedapplication. Section IV shows the experiments andobtained results. Finally, section V gathers theachieved conclusions.II. The thermoelastic contact problem in3DThe thermoelasticity describes solid behavioursthat undergo shape variations as a function of thetemperature. When two solids are contacted, thedistribution of pressures in the contact zone can varywith temperature. If temperature and thermal flowsare known, then, it is possible to determine the realcontact zone between them [8] since generated strainsJP2011-147


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011and stress on the solids can be computed.The most of materials, when their temperature isincreased, they are expanded in a proportional wayto this increment. If it is in a non-define expansion,there is not generated stress on the solid. In contrast,although temperature does not create stresses, thereis a well-known phenomenon named thermal distortion[7]. Such phenomenon curves straight surfacesbecause of the temperature gradient.Those thermoelastic strains are more importantwhen those two solids are in contact, because pressuresin the contact zone are more sensitive to temperaturechanges. If both solids are made by thesame material, curvatures on contact surfaces will beidentical, and the distortion will not have any importance.However, if the distortion capacities of solidsare different, the convexity will increase in the hottersolid, and will decrease in the colder one, causing apressure increment on some regions and a decrementon others.Depending on the distortivities and the directionof the heat flow, two types of contact appear:• Imperfect contact: when the heat flows towardsthe solid with the lesser thermoelasticity distortivity,both systems of lineal equations, thermaland thermoelastic, are coupled by the presenceof a thermal resistance that varies inverselywith the contact pressure.• If heat flows into the material with the larger distortivityis possible to obtain solutions involvinga zone of perfect contact bordered directly byseparation zones. Then, the non linearity is dueto the unknown size of the contact zone.A. DescriptionThe problem is based on two three-dimensionalsolids in contact. Those solids are under a systemof static loads applied in the boundary and a thermalload that is transmitted by conduction inside ofboth solids [8].Depending on the direction of thermal flow, somecontact conditions (perfect or imperfect) are set onthe interface. Stress, movements, temperatures andtemperature gradients on their boundaries are determinedfor both solids.B. Assumed hypothesisThe following hypothesis are assumed to makeeach approach [8]:1. Continuous, homogeneous, elastic and isotropicsolids.2. The conductivity is considered constant for everyrange of temperature used in the problem.3. Short strains and movements.4. Slow temperature variations along the time(quasi-static process).5. Non friction contact.6. Heat transmission by radiation is not considered.C. Problem definitionLet be A and B the two solids considered in eachproblem. Every point y on the boundary of eachsolid is referenced by employing a global coordinatessystem OXYZ, and it is related to a stress array t k j (y)and a displacement array u k j (y) [8]. Moreover, theyhave associated a temperature T k (y) and a thermalgradient q k (y). To solve the problem, boundary isdivided into two areas:1. G (A,B)C, common contact surface for bothsolids.2. G K L , non-contact region of each solid.In general, this boundary division can not beestablished previously since the contact zone canchange during the load process. Therefore, a potentialcontact zone is supposed. Such region includescontact points at the beginning of resolution processand the nearest points that can be in contact in thefinal solution. Resolution process allows us to determinein a iterative way which the actual contact zoneis [8].D. Resolution ProcessFirst we define the type of problem and geometryof the solids that are involved in the problem. Thenwe establish boundary conditions and type of contact.After that, the obtained equation system canbe solved by an iterative process [8]. The resolutionprocess is made up by the following steps:1. Assembly of matrixes equation system Ax=B.2. Resolution of equation system using Gaussmethod.3. Resolution of thermal problem (if it is necessary).4. Resolution of elastic problem (if it is necessary).5. Resolution of thermoelastic problem (if it isnecessary).6. Resolution of the iterative process.III. Application developmentBEMAPEC (Boundary Element Method Appliedto Problems of Elastic Contact) is a Java applicationthat offers a friendly workspace to define andsolve problems between three-dimensional solids usingBEM [11].A. Original BEMAPECBEMAPEC [12] provides an easy way to define thegeometry of solids that are involved in the problem.Those solids are discretized by triangular geometricalmeshes. BEMAPEC also calculates the coefficientsas a result of each element integration that makesup solids. Those coefficients are used in the problemresolution. Finally, BEMAPEC application displaysobtained results graphically using the developmentenvironment OpenGL.JP2011-148


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011B. Improvements on BEMAPEC functionalityUsing the previous version of BEMAPEC [12] wehave developed several improvements. First, we definethe type of problem and the geometry of solidsthat are involved. Then we mesh these solids anddefine boundary conditions and type of contact. Afterthat, BEMAPEC calculates coefficients for eachmeshed element. We build the equation system fromthose coefficients. Finally, the equation system issolved and the whole problem is computed by meansof an iterative process. This last stage, equation systemdefinition and problem resolution, is the functionalityadded to the program.The resolution process comprises the followingsteps:1. Assembly of matrixes equation system Ax=B:the coefficients computed by the integration of eachelement over all the rest, are used to do the assemblyof the A matrix and the B vector for the equation systemAx=B. A and B elements are determined takingin account the solid and the region that each elementbelongs to (contact zone or free zone).2. Resolution of equation system by GaussMethod: to solve the previously obtained equationsystem, it is necessary to use Gauss Method withpivot. This choice is due to effectiveness and efficiencyreasons, so as the intrinsic characteristics ofthe problem that generates a large amount of zerosin A and B.3. Resolution of thermal problem (if it is necessary):this step is considered just for thermal orthermoelastic problems. The process starts with theresolution of the equation system by using the GaussMethod. So we obtain an X vector that is employedto establish boundary conditions in the contact zonefor each element that belongs to the contact surfacesof each solid. This process finishes with the writingof temperature and heat flow parameters related toeach thermal element into a file.4. Resolution of elastic problem (if it is necessary):this stage is carried out for elastic or thermoelasticproblems. First we solve the equation system byGauss Method and the resulting X vector allows usto determine the elastic conditions for each elementof either contact or free zones. Once each element ofboth solids has its boundary condition, relative displacementscan be calculated. Next, every value foreach element of both solids is written in an outputfile. We need now to check the obtained partial results.Firstly, tension checking is made to determinewhich elements are leaving the contact zone. Whenthere are no elements coming into or out from thecontact zone, we write in an output file the new elasticcondition values for every element and the thermalresistance values for those elements that belongto the contact zone.5. Resolution of thermoelastic problem (if it isnecessary): this stage is considered for thermoelasticproblems. In that case, firstly the thermal problemis solved. Then, it is solved the elastic problem.Subsequently, only in the case that contact betweensolids is imperfect, a comparison among thermal resistancesfor those elements that belong to the contactzone is made. If the result of such comparisonis higher than a certain tolerance, thermal resistancevalues will be modified, and process will be repeatedagain.6. Resolution of iterative process (if it is necessary):it could happen, when elastic or thermoelasticproblems are being solved, that some specific conditionscan appear that makes come back to point 1of the resolution, and process would have to be executedagain. Conditions that make the process startsa new iteration depend on the type of problem thatis being solved. So, it is necessary to do the followingdistinction:• Elastic problem: once equation system is solved,results need to be checked. In this case, firstly,tension checking for every element that belongsto the contact zone is carried out. This allows usto determine which elements come out from thecontact zone. Once tension checking is done,if the number of elements that come out fromthe contact zone is zero, interpenetrations arechecked. Interpenetration checking determineswhich elements come into the contact zone.After tension checking is finished, if there is anyelement coming out from the contact zone, theprocess will be repeated. If no-one elementscome out from the contact zone but some elementscome into such zone, the process also willbe repeated.• Thermal problem: in case of thermoelastic problems,process can be repeated because of severalreasons. A reason is the previously explainedone for the elastic problem. Another one is dueto the thermal problem. In that case, the comparisonbetween thermal resistances is carriedout. If the result of this comparison differs fromany tolerance in amount higher than a certainvalue for any element that belongs to the contactzone, the problem will be solved again withthose new resistance values.In short, process will stop when no-one elementcomes into or out from the contact zone (elasticproblem) and thermal resistance differs in an amountlower than a certain value (thermal problem) for everyelement that belongs to the contact zone.IV. Experiments and ResultsWe have carried out several experiments to comparethe execution time for FORTRAN’s applicationversion [8] and BEMAPEC application.A. Thermal problemsProof cases used in the thermal problem are basedon two solids in contact (Fig. 1). Both solids arecubes made up by 640 elements. 128 elements fromeach cube belong to the contact zone. The type ofcontact between solids is perfect, the environmentis vacuum. For those nodes on the potential con-JP2011-149


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011tact zone, that remind separated in the final configuration,if it is not considered that energy can takeplace in these zone (vacuum). Reference temperatureis zero. Equation system is made up by 1280equations.1136 equations. In this case, there are not elementscoming into or out from the contact zone in tensionchecking or interpenetrations checking so the processis not repeated5. Proof Case 5: It consists of two solids in contact.Both of them are prisms; solid A is made up by768 elements and solid B is made up by 768 elements.The number of elements that belong to the contactzone is 128 for both solids. Equation system Ax=Bhas 4608 equations. The process is carried out onlyonce.Fig. 1. This figure shows solids of Proof Case 1 on theway they are represented on the BEMAPEC’s applicationgraphical environment. Points are the nodes of each elementobtained after meshing. The grey plane representsYZ symmetry plane.B. Elastic problemsDue to the higher complexity and casuistry in elasticproblems, number of proof cases is higher. Allthe experiments have the following conditions: thetype of contact between solids is perfect, the referencetemperature is zero and the environment is vacuum.For those nodes on the potential contact zone,that remind separated in the final configuration, if itis not considered that energy can take place in thesezone (vacuum). Particular characteristics about eachproof case are shown below:1. Proof Case 1: It consists of two solids in contact.Both of them are prisms; solid A is made upby 384 elements and solid B is made up by 752 elements.The number of elements that belong to thecontact zone is 128 in both cases. Equation systemAx=B has 3408 equations. Resolution process needs5 iterations due to the tension checking.2. Proof Case 2: It consists of two solids in contact(Fig. 2). Both of them are prisms; solid A is madeup by 182 elements and solid B is made up by 218elements. The number of elements that belong to thecontact zone, is 132 for both solids. Equation systemAx=B has 1200 equations. Resolution processrequires 6 iterations due to the tension checking.3. Proof Case 3: It consists of two solids in contact.Both of them are cubes; solid A is made up by200 elements and solid B is made up by 200 elements.The number of elements that belong to the contactzone is 50 in both cases. Equation system Ax=B has1200 equations. In this case, there are not elementscoming into or out from the contact zone in tensionchecking or interpenetrations checking so the processis not repeated.4. Proof Case 4: It consists of two solids in contact.Both of them are prisms; solid A is made upby 656 elements and solid B is made up by 616 elements.The number of elements in the contact zonefor both cases is 128. Equation system Ax=B hasFig. 2. This figure shows solids from Proof Case 2 on theway they are represented on the BEMAPEC’s applicationgraphical environment. Points are the nodes of eachelement obtained after meshing. The white plane representsXZ symmetry plane and the grey one, YZ symmetryplane.C. Thermoelastic problemsAs elastic problems, the number of thermoelasticcase problems is higher. All the cases have the followingcommon conditions: the type of environmentis vacuum and for those nodes on the potential contactzone, that remind separated in the final configuration,if it is not considered that energy can takeplace in these zone (vacuum).1. Proof Case 1: It consists of two solids in contact.Both of them are cubes; solid A is made up by640 elements and solid B is made up by 640 elements.The number of elements of the contact zone is 128for both solids. The type of contact between solidsis imperfect and the reference temperature is zero.Equation system Ax=B has 3840 equations. Resolutionprocess needs 3 iterations due to the thermalpart of the problem.2. Proof Case 2: It consists of two solids in contact.Both of them are cubes; solid A is made up by640 elements and solid B is made up by 640 elements.The number of elements that belong to the contactzone, in both cases, is 128. The type of contact betweensolids is perfect and the reference temperatureis zero. Equation system Ax=B has 3840 equations.Resolution process requires 3 iterations due to theelastic part of the problem, specifically, to the tensionchecking.3. Proof Case 3: It consists of two solids in contact(Fig. 3). Both of them are prisms; solid A is madeup by 384 elements and solid B is made up by 752 elements.The number of elements of the contact zone,in both solids, is 128. The type of contact betweensolids is imperfect and the reference temperature isJP2011-150


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 201130. Equation system Ax=B has 3408 equations. Resolutionprocess needs 6 iterations due to the thermalpart of the problem.4. Proof Case 4: It consists of two solids in contact.Both of them are prisms; solid A is made upby 384 elements and solid B is made up by 752 elements.The number of elements that belong to thecontact zone is 128 for both solids. The type of contactbetween solids is imperfect and the referencetemperature is 30. Equation system Ax=B has 3408equations. Resolution process requires 2 iterationsdue to the thermal part of the problem.Fig. 4. This figure shows the execution time comparison of thethermal problem explained. As it is showed, the executiontime in Fortran’s version is bigger than in Java’s version,so, in this case, we have managed a meaningful reductionin execution time.Fig. 3. This figure shows solids from Proof Case 3 as they arerepresented on the BEMAPEC’s application graphical environment.Points are the nodes of each element obtainedafter meshing. The white plane means XZ symmetry andthe grey plane corresponds to YZ symmetry.D. Executed time comparisonPrevious mentioned problems for FORTRAN’s applicationversion and BEMAPEC application aboutexecuted time are displayed as it is shown on thegraphics 4, 5 and 6. When we solved the thermalproblem using JAVA’s application version, we managean improvement because the execution time isreduced. If we analyze results obtained in elasticproblems, we could draw as conclusion that higherthe number of equations which made up the equationsystem is, more significant the reduction in executiontime is. In contrast, when the equation systemis lesser, Java’s application version increase a bit theexecution time, although the difference is not veryimportant.Finally, thermoelastic problems’ behaviour is different.In these problems, it is less important thenumber of equations than the number of iterations.For example, in cases 3 and 4, the number of equationsis the same, but in case 3 there are 4 iterationsmore than in case 2 and we obtained better timeswhen the number of iterations is higher. When thenumber of iterations is less, the execution time ispractically the same.As it is can be observed, the more elements makeup solids, the higher is the difference between times,and therefore, the amount of equations is higher. Inthose cases, Java’s application version is more efficiently.V. Conclusions and Future WorksIn this work, we have used OOP techniques tosolve contact problems between 3D solids. So that,after coefficients have been calculated using the previousversion of BEMAPEC, assembly matrixes ofequation system Ax=B is done. After that, GaussFig. 5. This figure shows the execution time comparison ofelastic problems which have been proved. We managed agreat reduction in cases 1, 4 and 5. However, slightly weget worse the execution time in case 2 and 3. This is dueto our application is more effective when the number ofequations in the equation system is large.Method with pivot is used to solve it because, actually,this is the most efficiently method on resolvingequation systems when the number of them is higher.Then, problem is solved using methods that dependon the type of problem (thermal, elastic o thermoelastic).Process finishes with the writing of obtainedresults into an output file.When equation number that makes up systemequation is large, the execution time for the resolutionproblem is lower in Java’s version than FOR-TRAN’s one. In contrast, when equation system hasfewer equations, the FORTRAN’s version is more efficient.However, in this kind of problems is usual tohave a large number of equations.Further works include to parallelize the resolutionprocess in order to reduce the execution time as wellas using different techniques to solve the equationsystem.VI. AcknowledgementsThis work has been partially supported by the researchgrants program from the University of León(Spain).Referencias[1] Matti Stenroos, Helsinki bem library., [Online]. Available:http://peili.hut.fi/BEM.JP2011-151


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011sis”, Advances in Engineering Software, vol. 37, pp. 248–259, 2006.[17] E. A. Wilson and B. Parsons, Finite element analysis ofelastic contact problems using differential displacements,International Journal for Numerical Methods in Engineering,vol. 2, pp. 387–395. 1969.[18] P. Wriggers, ”Finite element algorithms for contact problems”,Archives of Computational Methods in Engineering,vol. 2, pp. 1–49, 1995.Fig. 6. This figure shows the execution time comparison ofthermoelastic problems. In cases 1 and 3, we manage ameaningful reduction while in cases 2 and 4, the differenceis insignificant.[2] Stephen Kirkup, Boundary element method for laplaceproblems., [Online]. Available: http: //www.boundaryelement-method.com/laplace/manual/chap1/index.htm.[3] J. M. E. Alzola, ”El método de los elementos de contornoen problemas elastodinámicos con simetría de revolución”,Ph.D. dissertation, Las Palmas de Gran Canaria, 1988.[4] T. Andersson, B. Fredriksson, and B. G. A. Persson, ”Theboundary element method applied to two-dimensional contactproblems”, in New developments in boundary elementmethods. Proceedings of the Second International Seminaron Recent Advances in Boundary Element Methods.,Southampton, England., 1980, pp. 247–263.[5] S. K. Chan and I. S. Tuba, ”A finite element methodfor contact problems of solid bodies - part i. theory andvalidation”, International Journal of Mechanical Sciences,vol. 13, pp. 615–625, 1971.[6] E. G. Díaz, ”Formulación e implementación del métodode los elementos de contorno para problemas axisimétricosde contacto. aplicación a la caracterización de la interfasefibra matriz en materiales compuestos”, Ph.D. dissertation,Universidad de Sevilla, 2006.[7] J. Dundurs, ”Distorsion of a body caused by free thermalexpansion”, Mechanics Research Communications, vol. 1,pp. 121–124, 1974.[8] J. V. Espinosa, ”Análisis del problema de contacto termoelásticotridimensional sin fricción mediante el métodode los elementos de contorno, aplicación en microelectrónica”,Ph.D. dissertation, Universidad de Valladolid,2010.[9] L. Gaul and W. Wenzel, ”Acoustic calculations with thehybrid boundary element method in time domain”, Engineeringanalysis with boundary elements, vol. 25, no. 4-5,pp. 259–265, 2001.[10] J. Ángel González Pérez, ”Estudio de problemas de contactoincluyendo rodadura mediante el método de los elementosde contorno”, Ph.D. dissertation, Universidad deSevilla, 2001.[11] R. Gonzalez, J. Vallepuga, y L. Sánchez, ”Desarrollode un entorno en C++ y OpenGL para la resolucio´n deproblemas de contacto entre sólidos 3D”, Congreso deMétodos Numéricos en Ingeniería, 2009.[12] R. González, ”Optimización del método de los elementosde contorno en la resolución de problemas de contactotermoelástico mediante técnicas de paralelismo”, Universidadde León, 2010.[13] H. R. Millwater, ”Probabilistic fracture mechanics analysisusing the boundary element method”, First InternationalSymposium on Uncertainty Modeling and AnalysisProceedings, 1990, pp. 426–431.[14] F. J. Rizzo, ”An integral equation approach to boundaryvalue problems of classical elastostatics”, Quarterly ofApplied Mathematics, vol. 25, pp. 83–95, 1967.[15] M. Stenroos, V. Mäntynen, and J. Nenonen, ”A matlablibrary for solving quasi-static volume conduction problemsusing the boundary element method”, Computermethods and programs in biomedicine, vol. 88, pp. 256–263, 2007.[16] H. Qiao, ”Object-oriented programming for the boundaryelement method in two-dimensional heat transfer analy-JP2011-152


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Evaluación de la Paralelización de un ModeloHidrodinámico 3DMario C. Acosta 1,3 , Mancia Anguita 1 , Francisco J. Rueda 2,3 y F. Javier Fernández-Baldomero 1costa, lo que resulta importante para comprender elResumen—Se presenta la implementación paralela de un comportamiento físico y biogeoquímico de modelosmodelo hidrodinámico tridimensional (3D) en un pequeño naturales acuáticos de gran escala.cluster de 3 nodos multi-cores. El programa aprovecha los De igual forma, un coste excesivo de tiempo para3 nodos del cluster usando el estándar MPI y los 4 cores de completar la simulación es inaceptable cuando elcada nodo usando el estándar OpenMP. En este trabajo semodelo SWE forma parte de un sistema de decisión yaanaliza la influencia en las prestaciones de diferentesque en estos casos, los resultados deben obtenerse conconfiguraciones de la plataforma, distintas distribucionesde la carga de trabajo, diferentes métodos de suficiente antelación con el fin de que estos sistemas seimplementación y del uso de procesamiento por bloques. puedan usar para desarrollar y probar estrategias dePalabras clave—Procesamiento paralelo, Sistemas con gestión que puedan minimizar los efectos de desastresmemoria compartida, Sistemas con memoria distribuida, naturales tales como inundaciones o la introducción deHidrodinámica.alguna especie invasiva en la zona.Los modelos usados en sistemas de decisión suelenI. INTRODUCCIÓNejecutarse repetidamente, usando en cada ocasión unA computación de altas prestaciones sigue conjunto de parámetros distinto y/o condiciones deaumentando en la ciencia del agua, se necesitan frontera diferentes con el objetivo de proporcionarLobtener campos de flujo en ecosistemas naturales predicciones futuras del campo de flujo con un grado decon mayor detalle, pero sin que conlleve un coste de confiabilidad satisfactorio.tiempo demasiado elevado.La mayoría de los esfuerzos en la modelización delEstas descripciones detalladas de los campos de flujo, medio ambiente fluido deben tener como objetivoobtenidas bien a partir de simulaciones de algoritmos de mejorar el tiempo de ejecución de los modelostres dimensiones que resuelven las ecuaciones de numéricos existentes, especialmente en plataformas degobierno para el movimiento de flujo o bien a través de bajo coste, para que los estudiosos del agua puedanobservaciones realizadas con técnicas experimentales obtener un detallado y riguroso conocimiento yde alta resolución, han permitido que los científicos comprensión de los procesos físicos de transporte yestudiosos del agua alcancen alguna compresión sobre mezcla que tienen lugar en las aguas de interior y quelos procesos de transporte en aguas de interior [1] [2]: los gestores del agua puedan conseguir prediccioneslagos y deltas. Pero esta comprensión dista aún mucho precisas del flujo ante perturbaciones externas (porde ser completa.ejemplo, la polución) y así obtener estrategias de gestiónMuchos de los modelos hidrodinámicos en un tiempo aceptable.tridimensionales, implementados en un computador para Este trabajo evalúa una implementación paralela de unsimulaciones físicas, se usan en la actualidad en algunos modelo SWE 3D que permite incluso un tiempode los lagos investigados y están basados en la solución aceptable de ejecución en computadores paralelos dede una forma simplificada de las ecuaciones de Navier- bajo coste.Stokes, las ecuaciones de aguas someras (SWE Shallow En la Sección 2 se presenta de forma sintetizada elWater Equations) [3].modelo hidrodinámico paralelizado. A continuación, enLos modelos SWE forman un conjunto simplificado de la Sección 3, se resume el trabajo relacionado realizadoecuaciones con un coste computacional moderado que, hasta la fecha en este campo. En la Sección 4 se realizasin embargo, consumen una gran cantidad de memoria una comparación entre distintos métodos para lay tiempo de cómputo cuando se usan cuadrículas implementación paralela así como distintas formas deespaciales de alta densidad o cuando se usan para realizar la descomposición del dominio de datos. En lasimular el comportamiento de sistemas de agua naturales Sección 5 se indica las características de la plataformadurante un largo periodo de tiempo.utilizada y se resumen los resultados experimentalesEl uso de cuadrículas de alta resolución es necesario, obtenidos. Por último se resumen las conclusiones en lapor ejemplo, para obtener el flujo en determinadas zonas Sección 6.de pequeña escala, como las corrientes cercanas a laII. MODELO HIDRODINÁMICOEl modelo 3D SWE a paralelizado se denomina SI3D1 Dpto. de Arquitectura y Tecnología de Computadores, Univ. [4]. Este modelo, desde su presentación, ha sidoGranada, e-mail: manguita@ugr.es javier@atc.ugr.esampliamente validado, tanto por las soluciones analíticas2 Dpto. de Ingeniería Civil, Univ. Granada, e-mail: frueda@ugr.es como por el conjunto de datos de campo recogidos en3 Instituto Del Água, Univ. Granada, e-mail: marioa@correo.ugr.es una amplia gama de lagos [5].JP2011-153


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011SI3D, está basado en la solución numérica de lasecuaciones de continuidad, Reynolds-average y lasecuaciones de Navier-Stokes para aguas someras demomentum, la ecuación de transporte para latemperatura, y una ecuación de estado que relacionatemperatura con la densidad del fluido. Las ecuacionesfundamentales se integran en un modelo por capasdividido en la horizontal por una serie de capasseparadas por diferentes planos en niveles.Para discretizar estas ecuaciones se usa un algoritmosemi-implícito de tres niveles de diferencias finitascompuesto por pasos iterativos trapezoidal-salto de ranasobre una cuadrícula tradicional de ejes Cartesianos, queintroduce escasa difusión numérica [4]. Este enfoquesemi-implícito está basado en el tratamiento de ondas degravedad y la difusión vertical para evitar limitacionesen el paso de tiempo debido a las condiciones dadas porCouram-Friedrich-Levy y para garantizar la estabilidaddel método [6]. El resto de términos incluyendo laadvección se incluyen explícitamente. Los operadoreslaplacianos se usan para representar mezclas y loscoeficientes constantes de mezcla se usan paraparametrizar el efecto de turbulencias horizontales.Un sistema de dos ecuaciones para turbulenciascalcula los coeficientes de la mezcla en la vertical [7].Los cálculos en cada iteración estudian una a una cadacolumna de agua para generar una matriz pentadiagonalde las ecuaciones del movimiento del agua en lasuperficie libre (η), que resuelve mediante el método delgradiente conjugado precondicionado [4]; de esta formaobtiene los valores de la velocidad horizontal mediantela actualización de los valores de η.III. TRABAJO RELACIONADOSe pueden encontrar en la bibliografía diferentesimplementaciones paralelas de modelos SWE queaprovechan el paralelismo de datos implícito en este tipode aplicaciones. La mayor parte de estasimplementaciones sacan partido de este paralelismo enlas arquitecturas paralelas de memoria distribuida o dememoria compartida usando paradigmas deprogramación de paso de mensajes o de memoriacompartida. Recientemente se han presentadoimplementaciones que aprovechan las arquitecturasSIMD presentes en los procesadores actuales(instrucciones multimedia) y unidades de procesamientode gráficos o GPU.En la bibliografía reciente, hay implementaciones queutilizan el paradigma de paso de mensajes con MPI demodelos en 2D ([8] [9] [10] [1]) y 3D ([11]). Tambiénhay alguna implementación con el paradigma devariables compartidas usando OpenMP; por ejemplo, en[10] se paraleliza el modelo 3D de lattice Boltzmanncon OpenMP. Tanto en las implementaciones devariables compartidas como en las de paso de mensajesse usa descomposición de dominio para dividir la cargade trabajo entre hilos o procesos respectivamente.También, en [12] se presentan la implementación deun modelo SWE 2D que usa las instrucciones SSE delos procesadores de Intel, y en [13] se mejora lasprestaciones de un modelo SWE 2D usando lasinstrucciones multimedia de Intel a través de las libreríasIPP de Intel (Intel Performance Primitives). Hay variasimplementaciones de modelos SWE en GPU, porejemplo en [14] se programa un modelo SWE 2D (doscapas) en una GPU de Nvidia usando CUDA.Los modelos tridimensionales, como SI3D, necesitangrandes cantidades de datos lo que exige la necesidad derecurrir a computación de alto rendimiento. Además, eneste caso la distribución de la carga de trabajo suponeotra dificultad ya que, presenta una distribución irregularen el plano horizontal (primera y segunda dimensión), ala que se añade una tercera dimensión, tambiénirregular, para el plano vertical, dado por la profundidad.En este trabajo se presenta diferentes formas derealizar la implementación paralela de un modelohidrodinámico semi-implícito 3D, en este caso SI3D. Laimplementación realizada combina tanto el paradigmadel paso de mensajes (con MPI) como el paradigma dememoria compartida (con OpenMP). También secomparan variantes en la implementación, en unausando operaciones redundantes (con solapamiento)frente a otra que no las incluye. El solapamientoincrementa el número de operaciones pero por elcontrario reduce el número de comunicaciones. Estetrabajo también analiza la influencia de diferentesconfiguraciones de la plataforma (tales como lastecnologías de Intel HyperThreading, SpeedStep yTurboMode, y la precaptación de datos), así comodiferentes alternativas de descomposición el dominio.Por último, también se han probado distintas opcionesde optimización dadas por el compilador y laimplementación de un procesamiento por bloques.IV. IMPLEMENTACIÓNSe ha trabajado en varias alternativas deimplementación buscando comparar el uso de cálculoredundante frente al uso de más comunicaciones ysincronizaciones (C/S). Los resultados muestran que elcálculo redundante mejora el rendimiento de laimplementación MPI de SI3D y que, sin embargo, parala implementación con OpenMP, el rendimientoaumenta cuando las operaciones redundantes se reducenpara añadir algo de sincronización extra.La figura 1 muestra el diagrama de flujo de la mejorimplementación paralela de SI3D. La etapa 2 no ha sidoparalelizada puesto que supone tan solo un 2% decómputo con respecto a las etapas 1 y 3 juntas en laversión secuencial de SI3D.La sincronización y comunicación (C/S) ocurre tresveces por iteración. La primera se produce cuando elproceso 0 obtiene y resuelve la matriz pentadiagonalpara resolver el movimiento en la superficie libre (η).Una vez resuelta la matriz, el proceso 0 debe volver arepartir estos datos entre el resto de procesos. La terceraocurre al final de cada iteración donde se debenactualizar los valores de u, v y η para el siguiente pasode tiempo intercambiando datos de u, v y η entre losdiferentes procesos. En una implementación sinsolapamiento el número de puntos en los que se debenintercambiar datos se incrementa: habría cuatro en laetapa 1 y cinco en la 3.La implementación paralela de SI3D usadescomposición de dominio para dividir la carga detrabajo entre procesos y hilos, como es usual enaplicaciones de dinámica de fluidos computacional. ElJP2011-154


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Lectura de los datos de entradaDescomposición del dominio paraMPITransmisión de datosSi Step = 1w1f111==2Etapa 1. Obtiene un sistema matricialpara las ecuaciones de momentumx/y, calcula la matriz de coeficientespara la superficie libreTransmisión de la matriz decoeficientesEtapa 2. Resolución del sistema deecuacionesTransmisión de la solución matricialEtapa 3. Resuelve el campo develocidades, transporte escalar y noescalar y asigna los coeficientes dedifusión y viscosidad de turbulencia.Transmisión de datosSi Single = 0Single ==2Si Single = 1==2Actualización dedatos antes de unsalto de ranaStartStepSi Step = 2==2Inicialización del modelo eimpresión de datos para n=0Comienzo de la región paralelaOpenMPEtapa 1. Obtiene un sistema matricialpara las ecuaciones de momentumx/y, calcula la matriz de coeficientespara la superficie libreTransmisión de la matriz decoeficientesEtapa 2. Resolución del sistema deecuacionesTransmisión de la solución matricialEtapa 3. Resuelve el campo develocidades, transporte escalar y noescalar y asigna los coeficientes dedifusión y viscosidad de turbulencia.Transmisión de datosActualización deStep = 2ntrap datos antes de otro==2Si ntrap > totaltrapSi ntrap paso trapezoidal totaliterTermina la región paralela OpenMPEndDescomposición del dominio paraOpenMPniter = niter + 1Figura 1. Diagrama de flujo del algoritmo paralelo.ntrap = ntrap + 1Si niter


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011si se reduce el número de comunicaciones usandosolapamiento entre los subdominios.El número de comunicaciones de tipo send/receive sonmayores si se corta en dos direcciones, como se muestraen la Figura 2(c); aunque el total de datosintercambiados y el número de cálculo redundantepodría ser menor que alguna de las otras dosdistribuciones dependiendo de la geometría particular ydel número de subdominios. Con esta distribución unproceso envía y recibe de más de dos procesos. Losotros dos tipos de distribuciones, el corte estrecho yancho, presentan el mismo número de comunicacionesdel tipo send/receive. En estos dos casos un procesointercambiará datos con uno o dos procesos mientrasque en con la división de la Figura 8(c) un procesopuede intercambiar datos con más de dos procesos.En [15] se comparan las alternativas de la Figura 2(a)y 2(c) usando paso de mensajes (MPI) en un cluster de4 nodos AMD Opteron 2.2 GHz y dos cores cada unoconectados mediante Gigabit Ethernet. Los resultadospara diferentes tipos de simulaciones haciendo uso devarias cuadrículas mostraban un mejor rendimiento si ladescomposición estaba hecha usando el corte en anchoen vez del corte de dos direcciones. [8] compara lasalternativas de la Figura 2(b) y 2(c) usando también pasode mensajes con MPI en un CC-NUMA HP/ConvexExemplar X-Class (SPP2200) con 64 procesadoresdistribuidos en cuatro híper-nodos. Los ochos nodos deun híper-nodo están conectados en red (switch) de 960MB/s de ancho de banda en cada dirección [16]. Siendoesta una red basada en el estándar SCI. Los resultadosmuestran que el corte estrecho da mejores resultados queel de dos direcciones.La alternativa de la 2(c) presenta peor localidad dedatos que las otras dos alternativas. Esto afecta a lasprestaciones, especialmente en la implementación dememoria compartida. Teniendo en cuenta esto y locomentado más arriba, se ha descartado una comparativacon esta alternativa. En el trabajo que aquí se presentase comparan el corte ancho y estrecho tanto en laimplementación de paso de mensajes como la dememoria compartida. Para mejorar la localidad de losdatos, tanto para la distribución del corte en ancho yestrecho, los datos se almacenan en posiciones dememoria contiguas.TABLA IOPCIONES DE OPTIMIZACIÓN ( INTEL COMPILER 11.1 )O2: Expansión en línea, clonación de funciones, optimizaciones clásicas (desenrollado de bucles, copia y propagación deconstantes, renombrado de variables, liberación de memoria inútil) y vectorización (en el que se intentan generar instrucciones de tipoMMX, SSE, SSE2). O2 generalmente se recomienda como opción de optimización para mejorar el tiempo de comunicación.O3: Igual que O2 pero aplicado de una forma más agresiva, con técnicas como precaptación, reemplazamiento para reducirreferencias a memoria, transformaciones de bucles o del acceso a memoria.ipo: Multifile interprocedural optimization (esto, por ejemplo, permite la expansión y clonación de llamadas a funciones definidasen archivos distintos).openmp: Esta opción permite al compilador generar las hilos basándose en las directivas de OpenMP incluidas en el mismocompilador.xSSE4.2 (architecture-specific optimization): Intenta generar instrucciones del tipo MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 ySSE4.2 (vectorización) y puede optimizar la familia de procesadores de Intel Core i7.prof_gen and prof_use (Profile Guided Optimization or PGO): Permite optimizar teniendo en cuenta la referencia real de losdatos en vez de usar datos heurísticos.A. PlataformaV. RESULTADOSLos resultados han sido obtenidos en un pequeñocluster de tres nodos conectados mediante una switchGigabit Ethernet. Cada nodo tiene 6 GB de memoria yun Core i7 CPU920 (del último cuarto del 2008). CadaCore i7 920 se compone de cuatro cores de 2,667 GHz(2 hilos por core si está activado Hyperthreading). cacheL3 de 8 MB compartidos por todos los cores yQuickPath de 4,8 GT/s. El cluster tiene instalado unLinux Fedora 10 (kernel 2.6.27.41)Las comunicaciones del sistema han sido evaluadasmediante un benchmark ping-pong programado conMPI. El ancho de banda de la red obtenido con el testping-pong es de 115 MB/s, cerca de los teóricos 125MB/s.El ejecutable se ha generado con el compilador Fortrande Intel (versión 11) por lo que se ha usado la versiónOpenMP de este compilador. Para paso de mensajes seha usado MPICH 1.3. El código se ha compilado usandodistintas opciones de compilación orientadas a suoptimización y vectorización.En la Tabla I se resume las opciones de optimizaciónusadas. Los tiempos de ejecución obtenidos con O2 yO3 son muy similares, además cuando se añade lasopciones ipo o SSE4.2 a O2 u O3 no se presentancambios perceptibles en el rendimiento. De igual formaPGO no mejora el tiempo de ejecución con respecto auna versión que no usa PGO. Los ejecutables usados enla siguiente sección se han generado con las opciones decompilación O2 y openmp.B. Modelo de PruebaLa aplicación de prueba escogida se trata de unasimulación del lago Tahoe, la meta final de estasimulación es caracterizar las rutas de transporte de laslarvas de especies invasivas (el bivalve Corbiculafluminea, o almeja asiática) desde los puntos cercanos ala costa a otras zonas en el lago, y las condiciones medioambientales a las que podrían estar expuestas durante laruta.Simular un lago del tamaño del lago Tahoe, cuyasdimensiones son de 20x30 km, con un tamaño de lasceldas en la horizontal de O(10) m resulta un problemadesde el punto de vista computacional que sólo puedeser abordado mediante el uso de computadoresparalelos. Para hacerse una idea, la relación entre eltiempo real y el tiempo de ejecución secuencial (unJP2011-156


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Figura 3. Rendimiento de diferentes configuraciones de la plataforma (Segundos por iteración).core) es aproximadamente 1/1. La simulación que sepresenta aquí utiliza una cuadrícula con 95 capas enprofundidad de espesor variable con columnascuadradas de 100mx100m y 50mx50m. A su vez cadacolumna está compuesta por un número de celdillas, entotal 3,663,501 celdillas para las 48,885 columnas delmodelo de baja resolución. Mientras, el modelo demayor resolución tiene 14,654,639 celdillas en 197,781columnas.C. Rendimiento de diferentes configuraciones de laplataforma.En este trabajo se analiza la influencia en elrendimiento de distintas configuraciones de del clusterde tres nodos ACII. El particular se analiza la influenciade la precaptación, el Hyperthreading y la tecnologíaSpeedStep junto con Turbomode de Intel.El precaptador hardware lleva datos a cache conantelación a su uso cuando detecta que un patrón deacceso a memoria se repite. La tecnologíaHyperthreading de Intel permite ejecutar dos hilos porcore. SpeedStep permite al sistema operativo controlar lavelocidad de cada core y TurboMode permite a cadaprocesador funcionar, bajo ciertas condiciones, a mayorfrecuencia que la asignada.La Figura 3 muestra los segundos por iteraciónobtenidos para diferentes configuraciones de laplataforma y diferente número de hilos y/o procesosusados en cada ejecución. Hay que tener en cuenta queno se incluye el tiempo necesario en distribuir los datosal principio de la ejecución y la recolección de datos alfinal ya que no dependen del número de iteraciones y noconsumen un tiempo destacable. En estas pruebas se hautilizado la distribución por corte estrecho y la versiónque añade cálculo redundante.Se asignan 4 hilos a cada nodo, un número mayor dehilos empeora el rendimiento incluso activandoHyperthreading. En la Figura 3, la columna HSTPmuestra los resultados para la configuración que se usapor defecto, en dicha configuración la BIOS y el sistemaoperativo tienen activado Hyperthreading, SpeedStep yTurbomode y el hardware de precaptación. Laconfiguración por defecto del gestor de frecuencia de laCPU (CPUfreq) en el sistema operativo del cluster esondemand; por tanto, el gestor puede variar la frecuenciaentre un mínimo de 1.6 GHz y un máximo de 2.667 GHzdependiendo de la carga, pudiendo la frecuencia máximaincrementarse gracias a la tecnología TurboMode.En cuanto los resultados dados por esta configuraciónen tiempo de ejecución, empeora el rendimiento debidoa la distribución de hilos en los ocho cores lógicos de unmismo nodo. Si Hyperthreading está desactivado mejorael tiempo, pero si además se desactivanSpeedStep/Turbomode o la precaptación el tiempo seincrementa levemente. Comparando la columna -STP y ---P se deduce que hay un incremento de la frecuencia dereloj gracias a TurboMode. La comparación de lascolumnas -STP y -ST- sugiere que el hardware deprecaptación mejora ligeramente las prestaciones. Losresultados presentados a continuación han sidoobtenidos con la configuración -STP y ondemand.Se probó una implementación del procesamiento porbloques en SI3D con el objetivo de reducir los fallos decache y así mejorar la localidad de los datos. En laspruebas realizadas con esta implementación usando elmodelo con celdillas de 100m x 100m y un nodo conhasta 4 hilos se observó una reducción del tiempo deejecución del 4%. Esta técnica solo mejoraba elrendimiento de la implementación marginalmente,aunque no se observó en ningún momento queempeorara el tiempo como en el caso del procesamientopor bloques implementado en [10]. Los resultados en[10] se han obtenido en una plataforma IBM conPower5+ 1.9GHz para un grid de 1024x1024x10 con10.485.760 celdillas, en estos resultados elprocesamiento por bloques mostraba un malcomportamiento en las pruebas realizadas desde 1 a 8procesadores, mientras que mejoraba las prestacionespara 12 y 16 procesadores, siendo este último el númeromáximo de procesadores utilizados [10].Comparaciónentre la distribución de corte ancho y corte estrecho.JP2011-157


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011D. Comparación entre la distribución de corte ancho ycorte estrecho.En ambas distribuciones el número de comunicacionesque presentan son las mismas, sin embargo son detamaño distinto. Además, para la versión MPI concálculo redundante, la distribución para el corte anchoconsta de un mayor número de operaciones redundantesya que el borde del corte ancho es mayor.En la Figura 4 se muestra el tiempo de ejecución poriteración y la ganancia en velocidad para las dosdistribuciones, corte ancho y estrecho. La ganancia en-La implementación a nivel de procesos mejora usandomás solapamiento mientras que presenta mejorestiempos a nivel de hilos cuando dichas áreas desolapamiento se reducen para añadir algo desincronización extra.-Con la implementación paralela, una simulación de 24horas que usan celdillas cuadradas de 50m x 50mrequiere aproximadamente 6 horas si se usa unprocesador (4 hilos) y aproximadamente 2 horas y 30minutos con 3 procesadores (12 hilos). Estos tiemposcontrastan con el tiempo que tarda la simulación con unhilo: de 20 horas y 30 minutos.AGRADECIMIENTOSAl proyecto "Evaluación del riesgo de la expansión dealmeja asiática y el impacto medioambiental en el LagoTahoe. Proyecto: Modelización del transporte de larvas"Financiado por la Estación de Investigación delSuroeste del Pacífico, USDA Forest Service.Figura 4. Comparación de distribuciones en ancho y en estrecho.velocidad mejora en algunos casos en mayor medida conel corte estrecho porque esta distribución tiene un bordede menor tamaño que el dado por el corte ancho, siendoeste borde o zona de solapamiento de un tamaño 25%menor en la distribución con corte estrecho con respectoal corte ancho.VI. CONCLUSIONESEste trabajo presenta y evalúa las prestaciones de unaimplementación paralela con hilos y procesos de unmodelo hidrodinámico semi-implícito tridimensional.De los resultados obtenidos se pueden extraer lassiguientes conclusiones:-La implementación hace un uso positivo de laprecaptación hardware (la precaptación reduce el tiempode ejecución entre un 3% y un 8%) y se obtiene ciertamejora usando el procesamiento por bloques (unamejora de un 4% aproximadamente).-Intel TurboMode reduce en cierta medida el tiempo deejecución (entre un 2% y un 7% aproximadamente).-las prestaciones se reducen considerablemente si laconfiguración por defecto de la BIOS y del sistemaoperativo de la plataforma está activada (el tiempo deejecución se incrementa entre un 40% y un 60%dependiendo del número de procesos o hilos usados).Esto se debe a la asignación de hilos que el sistemaoperativo realiza por defecto entre los ocho coreslógicos de un nodo en el caso de que Hyperthreadingesté activado. Aunque para este caso realizar laasignación de hilos de forma explícita puede solucionarel problema en vez de desactivar el Hyperthreading.-El procesamiento por bloques añadido reduce eltiempo de ejecución levemente.REFERENCIAS[1] B. R. Hodges, J. Imberger, A. Saggio and K. B. Winters,"Modeling Basin-Scale Internal Waves in a Stratified Lake,"Limnology and Oceanography, vol. 45, pp. 1603-1620, Nov., 2000.[2] F. J. Rueda, S. G. Schladow and S. Ó. Pálmarsson, "Basin-scaleinternal wave dynamics during a winter cooling period in a large lake,"J. Geophys. Res., vol. 108, pp. 3097, 03/27. 2003.[3] Haro Ortega, Glòria, "Numerical simulation of shallow waterequations and some physical models in image processing," Open FileReport, B.40014-2005 Universitat Pompeu Fabra., Chapter 2. 2005.[4] P. E. Smith, A Semi-Implicit, Three-Dimensional Model ofEstuarine Circulation. ,Open-File Report 2006-1004. USGS.ed.Sacramento, California: 2006,[5] F. J. Rueda and E. A. Cowen, "The residence time of afreshwater embayment connected to a large lake," Limnol. Oceanogr.,vol. 50, pp. 1638-1653, 2005.[6] V. Casulli and R. T. Cheng, "Semi-implicit finite differencemethods for three-dimensional shallow water flow," Int. J. Numer.Methods Fluids, vol. 15, pp. 629-648, 1992.[7] L. H. Kantha and C. A. Clayson, "An improved mixed layermodel for geophysical applications," J. Geophys. Res., vol. 99, pp.25235-25266, 1994.[8] W. von Bloh, S. Rost, D. Gerten and W. Lucht, "Efficientparallelization of a dynamic global vegetation model with riverrouting," Environmental Modelling & Software, vol. 25, pp. 685-690,6, 2010.[9] P. Rao, "A parallel hydrodynamic model for shallow waterequations," Applied Mathematics and Computation, vol. 150, 2004.[10] M. J. Castro, J. A. García-Rodríguez, J. M. González-Vida andC. Parés, "A parallel 2d finite volume scheme for solving systems ofbalance laws with nonconservative products: Application to shallowflows," Comput. Methods Appl. Mech. Eng., vol. 195, 2006.[11] K. R. Tubbs and F. T. -. Tsai, "Multilayer shallow water flowusing lattice Boltzmann method with high performance computing,"Adv. Water Resour., vol. 32, pp. 1767-1776, 12. 2009.[12] O. Nesterov, "A simple parallelization technique with MPI forocean circulation models," Journal of Parallel and DistributedComputing, vol. 70, pp. 35-44, 1. 2010.[13] D. van Dyk, M. Geveler, S. Mallach, D. Ribbrock, D. Göddekeand C. Gutwenger, "HONEI: A collection of libraries for numericalcomputations targeting multiple processor architectures," Comput.Phys. Commun., vol. 180, pp. 2534-2543, 12. 2009.[14] M. J. Castro, J. A. García-Rodríguez, J. M. González-Vida andC. Parés, "Solving shallow-water systems in 2D domains using FiniteVolume methods and multimedia SSE instructions," J. Comput. Appl.Math., vol. 221, pp. 16-32, 2008.[15] l. A. de, J. Mantas and M. Castro, "Simulation of one-layershallow water systems on multicore and CUDA architectures," TheJournal of Supercomputing, online 10 March 2010. 2010.[16] O. Nesterov, "A simple parallelization technique with MPI forocean circulation models," Journal of Parallel and DistributedComputing, vol. 70, pp. 35-44, 1. 2010.JP2011-158


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Paralelización del Análisis de Imágenes conTensor de Difusión en Resonancia Magnéticausando GPUsMoisés Hernández 1 , Ginés D. Guerrero 1 , José M. Cecilia 1 , José M. García 1 y AlbertoInuggi 2 ,Resumen— Entender la función del cerebro atendiendoa las conexiones existentes entre sus diferentesáreas es uno de los mayores retos de la neuroimagen.Las Imágenes con Tensor de Difusión (ITD) en resonanciamagnética proporcionan información del cerebroque no está presente en ninguna otra modalidadde imágenes. Mucha de esta valiosa informaciónpuede ser extraída solamente con la ayuda de un postprocesamientode los datos adquiridos al paciente. Sinembargo, la necesidad computacional de los algoritmosutilizados hace muy tediosa su práctica, llegandoa tardar el post-procesado en algunos casos más de 24horas para un sólo paciente. En este artículo discutimosla paralelización en la GPU de una herramientade ITD propuesta en el programa FSL del centro FM-RIB de la Universidad de Oxford. Nuestros resultadosdemuestran que se pueden alcanzar grandes aceleracionesen este tipo de aplicaciones (hasta 85x) en comparacióncon las tradicionales CPUs, pudiendo estarambas plataformas en un ordenador de sobremesa ya un coste similar.Palabras clave— GPUs, Bioinformática, ResonanciaMagnética, Imágenes con Tensor de DifusiónI. IntroducciónLAS imágenes con tensor de difusión (ITD) constituyenun método relativamente nuevo en lasimágenes por resonancia magnética (IRM), en el cualse proponen técnicas no invasivas que permiten investigarlas propiedades locales de las fibras de lamateria blanca [1]. Las ITDs son sensibles a la difusiónde las moléculas de agua, las cuales puedenvariar a lo largo de los diferentes tejidos cerebrales,principalmente cuando se encuentran próximasa las zonas de materia blanca, donde el agua se difundecon mayor facilidad a lo largo de sus principalesconexiones. Mediante la aplicación de fuertespulsos magnéticos es posible crear un mapa con lasprincipales direcciones de difusión en cada parte delcerebro, y con el uso del software adecuado conseguirel tracto entre sus diferentes áreas, es decir, la representaciónde una red de interconexión tridimensionaldel cerebro, llamada tractografía. Este procedimientoha sido usado para investigar cambios durante eldesarrollo humano y el envejecimiento, en estudiosde enfermedades neurodegenerativas y de pacientesque tienen ictus u otras otras patologías cerebrales.Bedpost es una aplicación perteneciente al softwareFSL (desarrollada en el Centro de Investigación1 Grupo de Arquitectura y Computación Paralela, Dpto.de Ingeniería y Tecnología de Computadores, Univ.de Murcia, e-mail: {moises, gines.guerrero, chema,jmgarcia}@ditec.um.es.2 Laboratorio de Neurociencia Cognitiva, Dpto. de Psicología,Univ. de Murcia, e-mail: inuggi@um.es.FMRIB de la Universidad de Oxford), que es capazde realizar tractografías. Además, este software tieneun enfoque multi-fibra que puede incrementar deforma significativa su sensibilidad, teniendo la capacidadde reconstruir los tractos dominantes [2]. Suprincipal desventaja es el tiempo de ejecución, dondedependiendo de los parámetros de la secuencia deresonancia magnética, el análisis de un sujeto puedellevar más de 24 horas.Debido a que los estudios pueden llegar a realizarsesobre un gran número de personas, proponemos laparalelización de esta aplicación en una arquitecturamasivamente paralela, como es la de las unidadesgráficas de procesamiento (GPUs). Las GPUs actualesson procesadores masivamente paralelos que soncapaces de soportar varios miles de hilos ejecutándoseen paralelo. Muchas aplicaciones de propósito generalhan sido diseñadas para estas plataformas debidoa su alto rendimiento. El lenguaje que se usapara programar estos dispositivos es C con extensionesCUDA. Las nuevas generaciones de GPU tienenhasta 512 procesadores escalares por chip, pudiendoalcanzar un rendimiento pico teórico de hasta 1TeraFLOP.Hemos paralelizado la aplicación Bedpost en CU-DA, para así aprovechar la gran capacidad de computoque poseen las GPUs. Se han llevado a cabo unconjunto de pruebas variando sus distintos parámetrosde entrada, llegando a obtener una mejora entorno a de 85X respecto al código secuencial.El resto del documento está estructurado como sigue.En la sección II introducimos los conceptos necesariospara entender mejor el resto del contenido:por un lado se describe el modelo de tensor de difusión(apartado II-A); y luego pasamos a comentarbrevemente algunos aspectos de la arquitectura de laGPU y del modelo de programación CUDA (apartadoII-B). En la sección III describimos el algoritmoque es utilizado por Bedpost de forma secuencial.Posteriormente, se detalla la versión paralela implementadaen CUDA en la sección IV. Ambas implementacionesson analizadas mediante un conjunto depruebas en la sección V. Finalmente la sección VImuestra las conclusiones y el trabajo futuro.II. PreliminaresA. Imágenes con Tensor de Difusión (ITD)Las moléculas de agua están en un constante movimientoaleatorio conocido como movimiento brow-JP2011-159


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011niano, que trasladado a un nivel macroscópico produceel proceso de difusión [3].El tejido cerebral humano se puede dividir en tresclases principales: materia blanca, materia gris y fluidocerebroespinal. En la materia gris y el fluido cerebroespinal,la difusión es aleatoria porque las moléculasde agua se mueven en todas las direcciones. Estefenómeno se denomina difusión isotrópica.Sin embargo, en la materia blanca el movimientode las moléculas no conserva esa componente totalmentealeatoria. La materia blanca está formadaprincipalmente por axones, que estan principalmenterecubiertos de mielina. Esta sustancia es una barrerapara el movimiento de la moléculas de agua, y portanto condiciona el movimiento de las mismas. Eneste caso hablamos de difusión anisotrópica [4].El modelo tensor de difusión nos permite modelarla dirección de las fibras nerviosas en cada una de laspartes del cerebro. Gracias a la difusión anisotrópicaes posible observar las direcciones preferenciales dedifusión de las moléculas de agua en la materia blancacerebral, correspondiendo estas direcciones con lasdirecciones que siguen las fibras nerviosas cerebrales,y por tanto permite modelar el tracto cerebral.Los datos de imagen de resonancia magnética cerebralde un sujeto estan compuestos por varias imágenes2D, cada una de las cuales se corresponde con uncorte transversal del cerebro (o slice). Un slice, a suvez, está compuesto por pixels, que representan launidad mínima de la imagen 2D. Asimismo, un voxeles la unidad cúbica mínima que compone el objetotridimensional.El objetivo de las Imágenes con Tensor de Difusión(ITD) es modelar las direcciones del tracto de variasfibras nerviosas cerebrales en cada uno de los voxels.Esto se consigue aplicando dos pulsos de gradientesde campo magnético sobre el tejido cerebral mientrasse produce el proceso de difusión, lo que genera unaseñal de campo magnético asociada a la difusión quese produce durante los dos pulsos. A partir de laseñal obtenida se genera una imagen digital (Imagende Resonancia Magnética). Si se aplican diferentesdirecciones en los gradientes obtendremos una señalcompuesta, a partir de la cual, gracias a métodosde análisis numéricos podremos reconstruir el tensorque describe el proceso de difusión y por consiguientela dirección principal de las fibras en cada voxel [5].El cálculo de estas direcciones está asociado a ciertaincertidumbre, ya que la información se recoge apartir de varias direcciones en los gradientes aplicados,y además se produce un cierto ruido durante laadquisición de la imagen por resonancia magnética.Por tanto, el objetivo se reduce a obtener aquella direccióncon máxima probabilidad de cada una de lasfibras nerviosas que se desea modelar [6].La ecuación 1 muestra el modelado de la señal parala medida de difusión de cada uno de los voxels,después de aplicar los 2 gradientes de difusión con ndirecciones [2, 6–8].S(g) =S 0[(1 −N∑f i ) exp(−bd)+i=1N∑] (1)f i exp(−bd(gv i ) 2 )i=1Donde S 0 es la señal sin difusión, f ∈ [0, 1] es lafracción de volumen de difusión anisotrópica en el voxel;b indica la magnitud y duración de los gradientes,además del tiempo entre el par de gradientes aplicadospara obtener los datos (medido en s/mm 2 ); des la difusividad; g indica la dirección de cada gradienteaplicado; finalmente v describe las orientacionesde una fibra ante los gradientes aplicados. Estasorientaciones viene definidas a partir de operacionestrigonométricas (senos y cosenos).Los parámetros de cada una de las fibras modeladas,los cuales describen su orientación, deben serestimados. Cuando adquirimos los datos de un sujetoconocemos la señal S con la medida de difusión quese ha obtenido, la cual depende de los parámetrosque queremos estimar. El modelo de la señal descritoen la ecuación 1 define la máxima probabilidadde que se produzca la señal obtenida (ya que se haproducido y la conocemos) dados los parámetros quedesconocemos P (señal | parámetros). El teorema deBayes nos permite calcular la probabilidad a posterioriP (parámetros | señal), es decir, dada una señalsaber cual es la probabilidad de que este formadapor unos parámetros concretos. De esta manera sepueden proponer muestras de los parámetros a partirde la distribución a posteriori conjunta utilizandoel algoritmo de Monte Carlo de cadenas de Markov(MCMC). Para ello generamos números aleatorios querepresentan los parámetros a estimar y escogemosquellos que maximicen la probabilidad de alcanzarla señal que se ha obtenido en el tiempo de adquisición[8].Para realizar una buena estimación de los parámetrosen el algoritmo MCMC, se realiza una primeraaproximación donde se utiliza el algoritmo deLevenberg-Marquardt [9, 10].B. La unidad de procesamiento gráfico (GPU))La nuevas unidades de procesamiento gráfico(GPU, Graphics Processing Unit) presentan una arquitecturamasivamente paralela, capaz de manejarmiles de hilos concurrentemente de manera altamenteeficiente tanto para aplicaciones gráficas, como paraaplicaciones de propósito general.En concreto, la línea Tesla de Nvidia para el mercadode altas prestaciones, y en concreto la TeslaC2050, presenta un total de 448 procesadores (oStreaming-Processors, SPs) organizados en 14 multiprocesadores(o Streaming Multiprocessor, SMs) y3GB de memoria principal GDDR5 (llamada deviceo global memory). La GPU se comunica con la CPUa través del bus PCI Express x16 (proporcionandoun ancho de banda de 4 GB/s en cada dirección).JP2011-160


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Fig. 2. Un hilo secuencial ejecutando n ∗ m voxels de un slice.Fig. 1. Esquema de la arquitectura Fermi de NVIDIA.El lenguaje de programación utilizado para lasGPUs de Nvidia se denomina CUDA (Compute UnifiedDevice Architecture) [11]. El lenguaje CUDA esmuy similar al lenguaje estándar C con la inclusiónde algunas extensiones. En un programa escrito enCUDA podemos diferenciar dos partes principales.La parte host que se ejecuta secuencialmente en laCPU, y la parte device que es ejecutada en la GPU enforma de funciones denominadas Kernels. Un kernelsigue el modelo de ejecución SPMD (Single-ProgramMultiple-Data), donde un gran número de hilos seejecutan en paralelo. El programador organiza estoshilos en bloques de hilos (ver figura 1). Estos hilospueden compartir datos y sincronizarse entre sí, sinembargo, no existen primitivas de sincronización entrehilos de distintos bloques, y la única manera decompartir datos es a través de la memoria principalde la GPU. Además los bloques de hilos se agrupanen Grids. Todos los hilos que forman un Grid ejecutanel mismo kernel.III. Descripción de la aplicación BedpostEn esta sección describimos la aplicación secuencialBedpost perteneciente al software FSL [12],desarrollada en el Centro de Investigación FMRIBde la Universidad de Oxford. El algoritmo 1 muestrael pseudocódigo de la aplicación Bedpost. Todoslos slices asociados con la imagen de un sujeto sonrecorridos secuencialmente procesando cada uno desus voxels (véase figura 2). Este procesado consisteen dos partes bien diferenciadas:1. Aproximación inicial del valor de los parámetrosmediante el algoritmo LevenbergMarquardt.2. El algoritmo de Monte Carlo con cadenas deMarkov (MCMC) para estimar el valor de losparámetros (también descrito en el pseudocódigodel algoritmo 1).En la primera etapa se aproximan los parámetrosa un valor inicial para facilitar que algoritmo MCMCpueda hacer una buena estimación. El mecanismo sebasa en un procedimiento iterativo de optimización.La segunda etapa toma como entrada los valorescalculados en la etapa anterior, aproximando conmás certeza la orientación final de la fibra en cadavoxel. Para ello, se utiliza el algoritmo MCMCdonde se proponen muestras para cada uno de losparámetros, generando para ello números aleatorios(los cuales son ajustados a una distribución normalestándar), aceptando o rechazando la muestra segúnun criterio que viene dado por el valor que toma laecuación 1, la cual se recalcula cada vez que se proponeun nuevo parámetro.El número de parámetros a estimar depende de lacantidad de fibras (f) que deseamos modelar en cadavoxel. Este número viene dado por la ecuación 2+3f.Por defecto f = 2, y f no suele ser mayor de 4, esdecir, tenemos entre 8 y 14 parámetros.Los datos de entrada del algoritmo Bedpost , esdecir, el número de slices, voxels, y gradientes dedifusión viene dado en el tiempo de adquisición delas imágenes de resonancia, según el factor calidad/tiempoque se desee en los datos obtenidos.IV. Diseño de la aplicación Bedpost enCUDAUna primera alternativa de diseño paralelo deBedpost viene motivada por la naturaleza paralelade todos los slices. Esta es la filosofía que siguen losdesarrollares de FSL [13], pudiendo hacer uso de variosprocesadores diferentes mediante el uso de Sun-GridEngine (SGE) [14], procesando cada uno de ellosun slice de manera independiente. Este diseño, sinembargo, implica una gran carga de trabajo a cadaprocesador o hilo de ejecución, y por tanto no seadapta bien al modelo de ejecución CUDA, ya que requierede una paralelización de la aplicación con unagranularidad mucho más fina, para así poder sacarpartido de los miles de hilos que es capaz de ejecutaren paralelo.Un enfoque alternativo de diseño es descender alnivel de voxels. Un slice puede contener miles devoxels, y además se pueden computar de forma independiente,por lo que podríamos tener un hiloJP2011-161


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Algoritmo 1 Pseudocódigo de la aplicación BedpostBedpost1: para todo slice hacer2: para todo voxel hacer3: LevenbergMarquardt()4: MCMC()5: fin para6: fin paraMCMC1: para i = 0 hasta numIteraciones hacer2: para todo parametro hacer3: sample p = generar random()4: sample p n = normalizar(sample p)5: recalcular senal(direcciones)6: aceptarRechazar(sample p n)7: fin para8: fin paracomputando cada uno de los voxels de un slice deforma paralela tal y como muestra la figura 3. Fig. 3. voxels de un slice, agrupados en x bloques de tamañoy.El diseño del algoritmo de Levenberg-Marquardestá implementado en un único kernels basado enesta idea. Cada hilo de CUDA sea mapeado con unvoxel, encargándose este de adecuar sus valores iniciales.Por lo que tendremos tantos hilos como voxelstenga un slice concreto.Algoritmo 2 Pseudocódigo de la aplicaciónBedpost paralelizada en CUDA.1: para todo slice hacer2: bloqs := voxels/tamBloque13: levenbergKernel(bloqs, tamBloque1)4: genNumsKernel(bloqs, tamBloque1)5: ajuteNumsKernel(bloqs, tamBloque1)6: bloqs := (voxels ∗ direcs)/tamBloque27: mcmcKernel(bloqs, tamBloque2)8: fin paraEl caso del algoritmo MCMC es un poco mas complejo.En este caso, el computo se ha divido en treskernels (véase el algoritmo 2).El primer kernel es encargado de la generación eficientede números aleatorios. En cada iteración delalgoritmo se deben generar varios números aleatorios(dos por cada parámetro) lo que provoca que en slicescon varios miles de voxels se generen cientos demillones de números aleatorios. Estos números songenerados mediante el uso de la librería CURAND [15]de CUDA.Posteriormente, la mitad de los números pseudoaleatoriosque han sido generados antes deben serajustados a una distribución normal estándar. Estose realiza mediante otro kernel para así poder ejecutarun hilo por cada voxel.Finalmente se ejecuta el kernel MCMC. En este caso,el diseño difiere con los planteados anteriormente.Ahora tenemos tantos hilos como direcciones se quierananalizar para cada voxel, repartimos los voxelesentre los bloques (véase la figura 4). De este modoampliamos el número de hilos por bloque hasta alcanzarvalores entre 128 − 256 hilos. La existencia deslices con un número pequeño de voxels hacen queen ciertos casos no se pueda explotar el paralelismode la GPU. Además, este diseño nos beneficia a lahora de recalcular el valor de la ecuación 1, ya quese podrá realizar en paralelo para cada una de lasdirecciones. Fig. 4. m∗n∗direc hilos ejecutados en paralelo para el cálculode m∗n voxels de un slice en direc direcciones, agrupadosen x bloques de tamaño y, donde y es múltiplo de direc.V. Evaluación de los ResultadosEn esta sección se muestran los resultados obtenidosen la ejecución de la aplicación Bedpost delsoftware FSL comparando el tiempo de ejecución entreCPU y GPU.En nuestras pruebas se ha utilizado la versión 4.0de CUDA sobre una GPU Tesla C2050. Esta GPUse encuentra incorporada en un ordenador con dosprocesadores Intel Xeon E5620 a 2.40GHz y con 4GBde memoria principal. Las pruebas en CPU se hanrealizado utilizando un único hilo mapeado a uno delos cores del sistema.Hemos dividido las pruebas en 4 partes, mostrandouna gráfica en escala logarítmica y un análisis delos resultados para cada una de ellas. Estas partesJP2011-162


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011se corresponden con los distintos kernels que se handesarrollado en CUDA:1. Ajuste de los parámetros iniciales conLevenberg-Marquardt.2. Generación de números pseudo-aleatorios.3. Ajuste de los números pseudo-aleatorios obtenidosa una distribución normal estándar.4. Algoritmo MCMC.En la figura 5 se observa el rendimiento de la ejecucióndel algoritmo Levenberg-Marquardt en CPUy GPU, cuya función es ajustar los parámetros inicialesantes de llamar al procedimiento MCMC. Se hanrealizado pruebas para ajustar 8 y 14 parámetros (2y 4 fibras respectivamente) en slices con tamañosdiferentes en cuanto al número de voxels que contienen.Se observa que a mayor número de voxels enun slice (lo que conlleva un mayor número de hilosejecutándose en paralelo en GPU) obtenemos unamejora mayor en la GPU respecto a la CPU, llegandoa ser esta de 20X en el caso de 8 parámetros, yde 56X en el caso de 14 parámetros. Fig. 5. Relación de tiempos en CPU y GPU, en escala logarítmica,al ejecutar Levenberg-Marquardt con 8 y 14parámetros.La comparativa entre el tiempo empleado por laversión paralela y secuencial en cuanto a la generaciónde números pseudo-aleatorios es mostrada en lafigura 6. Como se ha comentado anteriormente, enCPU se ha utilizado la función rand() pertenecientea la librería CSTDLIB de C++, mientras que en GPUse ha utilizado la librería CURAND de CUDA. Como seaprecia en dicha figura, a partir de la generación demás de 5 millones de números aleatorios, resulta máseficiente su generación en GPU, llegando a obteneruna ganancia de 140X con 380 millones de númerosaleatorios.La figura 7 muestra la comparativa de rendimientoCPU y GPU del kernel encargado de realizar el ajustea una distribución normal de los números pseudoaleatoriosobtenidos anteriormente. En este caso, apartir de la generación de 500.000 números empezamosa obtener mejoras en el tiempo de procesamientoen GPU con respecto al código secuencial, llegandoa conseguir una mejora de 14X con 350 millones denúmeros.Por último, en la figura 8 se muestra la comparativa,entre ambas versiones para el tiempo que setarda en ejecutar el algoritmo MCMC y el tiempo total Fig. 6. Comparativa entre el uso de rand() en CPU y la libreríaCURAND en GPU, en escala logarítmica, para generar unconjunto de números aleatorios. Fig. 7. Relación de tiempos en CPU y GPU, en escala logarítmica,al ajustar un conjunto de números a una distribuciónnormal estándar.que requiere la aplicación Bedpost para su ejecucióncompleta (es decir, teniendo en cuenta las 4 fases).En dicha figura se refleja el tiempo en segundos respectoal número de iteraciones que se realizan en elalgoritmo MCMC. Además, se han realizado pruebaspara modelar 2 y 4 fibras (figuras 8a y 8b respectivamente).Las dimensiones de las imágenes que toma elalgoritmo como entrada son de 128∗128∗47∗35, dondelas dimensiones hacen referencia a ancho ∗ alto ∗número de slices ∗ número de direcciones. Se puedeobservar que la mejora del tiempo del algoritmo MCMCy del tiempo total que se obtienen son proporcionales,en este caso, con los datos de entrada antes mencionados.La máxima mejora que se ha conseguidoes de 127X en GPU respecto a CPU al ejecutar elalgoritmo MCMC, mientras que la máxima mejora enel tiempo total de la aplicación Bedpost es de 85X.Además, se han realizado pruebas con otras imágenesde entrada de diferentes tamaños. En la tabla Ise puede observar un resumen de la mejora obtenidapor el algoritmo paralelizado en CUDA frente asu versión secuencial para cada una de las imágenesusadas en nuestras pruebas.VI. Conclusiones y Trabajo FuturoEn este artículo hemos discutido la paralelizacióndel análisis de imágenes con tensor de difusión en resonanciasmagnéticas en la GPU. Para ello, hemosutilizado la aplicación Bedpost incluida en el softwareFSL, desarrollado en el centro de investigaciónFMRIB de la Universidad de Oxford.JP2011-163


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011 (a) 2 Fibras (b) 4 FibrasFig. 8. Comparativa de tiempo total de ejecución de Bedpost y MCMC entre CPU y GPU, en escala logarítmica, con unaimagen de dimensiones 128x128x47 y 35 direcciones diferentes en los gradientes, modelando 2 y 4 fibras, y alternando elnúmero de iteraciones para el algortimo MCMC.TABLA IMáxima mejora obtenida al ejecutar Bedpost en GPUpara diferentes tamaños de imagen respecto a suversión secuencial.DIM. IMAGEN NFIBRAS NITERS MEJORA128x128x47x352 9000 69X4 1125 85X256x256x47x352 4500 60X4 2250 65X128x104x60x622 9000 84X4 2250 83XNuestro análisis experimental en la GPU muestraunos resultados prometedores, llegando a obtenerunas aceleraciones en torno a 85x en comparacióncon el código secuencial.Tras comprobar que la GPU es una arquitecturaadecuada para la paralelización del aplicaciónBedpost, las futuras líneas de investigación irán dirigidasa la paralelización de otros aplicaciones incluidasen el software FSL.AgradecimientosEl presente trabajo ha sido financiado mediantela Fundación Séneca (Agencia Regional de Cienciay Tecnología, Región de Murcia) con la ayuda00001/CS/2007, y también al MEC y la ComisiónEuropea FEDER con las ayudas CSD2006-00046 yTIN2009-14475-C04.Referencias[1] Denis Le Bihan, “Looking into the functional architectureof the brain with diffusion mri,” Nature ReviewsNeuroscience, vol. 4, pp. 469–480, 2003.[2] T.E.J. Behrens, H.Johansen Berg, S.Jbabdi, M.F.S.Rushworth, and M.W. Woolrich, “Probabilistic diffusiontractography with multiple fibre orientations: What canwe gain?,” NeuroImage, vol. 34, no. 1, pp. 144–155, 2007.[3] David Solomon Tuch, Diffusion MRI of complex tissuestructure, Ph.D. thesis, Massachusetts Institute of Technology,2002.[4] MSc. Diwei Zhou, Statistical analysis of diffusion tensorimaging, Ph.D. thesis, University of Nottingham, 2010.[5] J. E. Castro and J. T. Hernández, “Algoritmos aplicadosen el cálculo, análisis y aplicación del tensor de difusión enimágenes médicas de da materia blanca cerebral,” RevistaColombiana de Física, vol. 42, no. 3, 2010.[6] T.E.J. Behrens, H.Johansen-Berg, M.W. Woolrich, S.M.Smith, C.A.M. Wheeler-Kingshott, P.A. Boulby, G.J.Barker, E.L. Sillery, K.Sheehan, O.Ciccarelli, A.J. Thompson,J.M. Brady, and P.M. Matthews, “Non-invasivemapping of connections between human thalamus andcortex using diffusion imaging,” Nature Neuroscience,vol. 6, no. 7, pp. 750–757, 2003.[7] Stamatios N. Sotiropoulos, Processing of Diffusion MRImages of the Brain: From Crossing Fibres to DistributedTractography,Ph.D. thesis, University of Nottingham,2010.[8] Behrens TE, Woolrich MW, Jenkinson M, Johansen-BergH, Nunes RG, Clare S, Matthews PM, Brady JM, andSmith SM., “Characterization and propagation of uncertaintyin diffusion-weighted mr imaging,” MagneticResonance in Medicine, vol. 50, no. 5, pp. 1077–1088,2003.[9] Jesper L.R. Andersson, Mark Jenkinson, and StephenSmith, “Non-linear optimisation,” Tech. Rep. TR07JA1,FMRIB Centre, Oxford, United Kingdom, June 2007.[10] Jesper L.R. Andersson, Mark Jenkinson, and StephenSmith, “Non-linear registration aka spatial normalisation,”Tech. Rep. TR07JA2, FMRIB Centre, Oxford,United Kingdom, June 2007.[11] NVIDIA, NVIDIA CUDA C Programming Guide 4.0,2011.[12] Stephen M. Smith, Mark Jenkinson, Mark W. Woolrich,Christian F. Beckmann, Timothy E.J. Behrens, HeidiJohansen-Berg, Peter R. Bannister, Marilena De Luca,Ivana Drobnjak, David E. Flitney, Rami K. Niazy, JamesSaunders, John Vickers, Yongyue Zhang, Nicola DeStefano, J. Michael Brady, and Paul M. Matthews, “Advancesin functional and structural mr image analysis andimplementation as fsl,” Tech. Rep. TR04SS2, FMRIBCentre, Oxford, United Kingdom, September 2004.[13] Analysis Group FMRIB Oxford UK, “Fmrib softwarelibrary,” http://www.fmrib.ox.ac.uk/fsl/.[14] Inc. Sun Microsystems, “Sun n1 grid engine 6.1 user’sguide,” 2007.[15] NVIDIA Corporation, “Cudacurand library,” 2010.[16] Jorge Ahualli, “Aspectos generales de las secuencias dedifusión de imagen en resonancia magnética,” Revistaargentina de radiología, vol. 74, no. 3, pp. 227–237, 2010.[17] Denis Le Bihan, Jean-François Mangin, Cyril Poupon,Chris A. Clark, Sabina Pappata, Nicolas Molko, and HughesChabriat, “Diffusion tensor imaging: Concepts andapplications,” Journal of Magnetic Resonance Imaging,vol. 13, no. 4, pp. 534–546, 2001.JP2011-164


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Agent-Based Simulation to OptimizeHealthcare Emergency DepartmentsEduardo Cabrera 1 , Manel Taboada 2 y Emilio Luque 3Abstract— Modeling and simulation have beenshown to be useful tools in many areas of the Healthcareoperational management, field in which there isprobably no area more dynamic and complex thanhospital emergency departments (ED). This paperpresents an ongoing research, an Agent-Based modelingand simulation to design a decision support system(DSS) for the operation of Healthcare EmergencyDepartments (ED). This DSS aims to aid EDs managersin setting up strategies and management guidelinesto optimize the operation of EDs. This ongoingresearch is being performed by the Research Groupon Individual Oriented Modeling (IoM) of CAOS inthe University Autonoma of Barcelona (UAB) in closecollaboration with Hospital ED Staff. The simulationmain objective is to optimize the performance of suchcomplex and dynamic Healthcare ED. Optimization isperformed to find the optimal ED staff configuration,which consists of doctors, triage nurses, and admissionpersonnel, i.e. a multidimensional problem. Twodifferent indexes, to minimize patient waiting time,and to maximize patient throughput, were proposedand tested and their results obtained appying an exhaustivesearch technique, yield promising results andbetter understanding of the problem.Keywords— Optimization, healthcare operationalmanagement, emergency department, agent-basedsimulation, decision support systems.I. IntroductionNO wadays, healthcare systems have becomelarge, complex, and quite dynamic environments,particularly Emergency Department (ED).ED is a sui generis unit of hospitals. It is open andfunctioning 24 hours a day, 365 days per year. Typically,ED patients could arrive by walking, or by ambulance,and they undergo a triage, which determinethe acuity of their condition assigning them a prioritylevel. Patients with threatening disease, i.e. highpriority level, are treated almost immediatly by aphysician compared to those patients with less severeinjuries. Then, an initial diagnosis and treatment isproposed, and patients could be admitted into theservice or discharged. EDs have high demand of service,which increases their cost, and they generallyoperate with limited healthcare resources and budget.In the decade leading up to 2006 in the USA,ED visits (patients) have increased by 32%, whereasthe number of EDs have decreased by 4.6%, and thenumber of visits per person increased by 18% [1].Also, in Spain between 2001 and 2007, the visits to1 Dpto. de Arquitectura de Computadores y SistemasOpe-rativos, Universitat Autònoma de Barcelona, e-mail:ecabrera@caos.uab.es2 Tomàs Cerdà Escuela de Ciencia Computacional, UniversitatAutònoma de Barcelona, e-mail: manel.taboada@eug.es3 Dpto. de Arquitectura de Computadores y SistemasOpe-rativos, Universitat Autònoma de Barcelona, e-mail:Emilio.luque@uab.esEDs have increased by 23.2% [2]. Over half of thosevisits to EDs are nonurgent and could be treatedin alternative healthcare settings. Overcrowding ofEDs is a worldwide problem, and as a consequenceof such situation, waiting time increases, affectingquality and speed of care [3]. Despite EDs are underthose huge, and growing demands they suffer severalbudget cuts. Nevertheless, such critical ED servicemust be satisfied with the best quality as quickly aspossible. An obvious solution to this problem is to increasethe capacity of EDs. Such capacity is limitedby the size of the healthcare facility and the availablestaff, which includes physicians, nurses, admissions,and services personnel. However, such straightforwardsolution is not the best approach, and could beunrealizable. Healthcare system heads must maximize,for example, the use of healthcare resources, inorder to minimize patient waiting time and increasepatient satisfaction, whereas being constrained bylimited budget.This paper presents the results of an ongoing researchproject that is being carried out by the ResearchGroup in Individual Oriented Modeling (IoM)in the University Autonoma of Barcelona (UAB),with the participation of the ED head team of theHospital of Sabadell in Cataluña, Spain. The generalobjective of the project is to develop a simulatorof ED’s operation that, used as a decisionsupport system (DSS), could help the heads of EDsto set up strategies, and management guidelines toenhance the performance of such EDs. As a firststep to towards this goal, the main objective of thiswork is to propose a simple but realistic simulationmodel to represent the operation of EDs, in orderto study their optimum performance under certainoperational and economical conditions. The mathematicalformalism of the latter is a multidimensionaloptimization problem which can be stated by equation(1):max / min f(X )subject tox ∈ C(1)where f : C → R, and f(X ) at any X ∈ C cannot beevaluated exactly, and must be estimated via a simulationprocedure by assuming that X is discrete,global sampling from X is possible. The goal is toidentify the staff members of EDs that optimize itsperformance, taking into account the complexity ofEDs and their optimum expected performance needsto be estimated via simulations. However, optimizationvia simulation is a difficult problem [4], as simulationsare usually computationally expensive, i.e.JP2011-165


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011even estimating f(X ) at a single point X ∈ C inequation (1) may require substantial effort. Consequently,only few alternatives can be explored.Herewith, the ED is modeled by an Agent-BasedModel (ABM), in which all rules within the modelconcern the involved agents (in our case the doctors,triage nurses and admission personnel, and the patients),no higher level behavior is modeled. Thesystem behavior emerges as a result of local level actionsand interactions [5]. This model describes thecomplex dynamics found in an ED, representing eachindividual and system as an individual agent. Twodistinct kinds of agents have been identified, activeand passive. Active agents represent the individualsinvolved in the ED, in this case all human actors,such as patients and ED staff (admission staff,nurses, doctors, etc). Passive agents represent servicesand other reactive systems, such as the informationtechnology (IT) infrastructure or services usedfor performing tests. State machines are used to representthe actions of each agent. This takes into considerationall the variables that are required to representthe many different states that such individual(a patient, a member of hospital staff, or any otherrole in the EDs) may be in throughout the course oftheir time in a hospital emergency department. Thechange in time of these variables, invoked by an inputfrom an external source, is modeled as a transitionbetween states. The communication between individualsis modeled as the inputs that agents receiveand the outputs they produce, both implicitly andexplicitly. In order to control the agent interaction,the physical environment in which these agents interactalso has to be modeled, being sufficient to doit as a series of interconnected areas, such as admissions,triage box, the waiting room, and consultationsuits.The remainder of this article is organized as follows;section II describes the related works. The proposedemergency department model is detailed in sectionIII, while the results of initial simulation optimizationsare given in section IV. Finally, in section Vthe conclusions and future work are presented.II. Related worksThe interest on simulating healthcare systems isnot new, in 1979 computer simulations were appliedto hospital systems to improve the scheduling ofstaff members [6], and in another simulation [7] theaim was to quantify the impact that the number ofstaff members, and beds had on patient throughputtime. Moreover, a survey of discrete-event simulation(DES) in healthcare clinics was presented in [8].Although discrete-event simulation is widely usedin simulating healthcare systems, agent technology isa good option in healthcare applications, since it isbetter to characterize the operation of complex systemsas the EDs are. ABM can explicitly model thecomplexity arising from individual interactions thatarise in the real world. Agent-based simulation allowspeople to model their real-world systems in waysthat either not possible or not readily accomodatedusing taditional modeling techniques, such as DESor system dynamics [9]. Previous works modelinghealthcare systems have focused on patient schedulingunder variable pathways and stochastic processdurations, the selection of an optimal mix of patientadmission to optimize the use of resources and patientthroughput [10]. Work has been performed toevaluate patient waiting times under different EDphysician schedules, but only one utilized real data[11] and another one patient diversion strategies [12],both using different degrees of agent-based modeling.There is a relevant article which uses ABM to simulatethe workflow in ED [13]. It focus on triage andradiology process, but not real data was used, theacuity of patients are not consider, and healthcareproviders do not always serve patients in a first-comefirst-servebasis.Simulation optimization is used to improve the operationof ED in [14], using a commercial simulationpackage, and in [15] the authors combine simulationwith optimization, which involves a complexstochastic objective function under a deterministicand stochastic set of restrictions.Finally, an evolutionary multiobjective optimizationapproach is used for dynamic allocation of resourcesin hospital practice [16], while in [17] the authorsfound that agent-based approaches and classicaloptimization techniques complement each other.As stated above, this proposal addresses manyof the issues surrounding the modeling and simulationof a healthcare emergency department using theagent-based paradigm, where the efficiency of agentsin this area has not been totally explored yet. Basicrules governing the actions of the individual agentsare defined, in an attempt to understand micro levelbehavior. The macro level behavior, that of the systemas a whole, emerges as a result of the actionsof these basic building blocks, from which an understandingof the reasons for system level behavior canbe derived [18].III. Emergency department modelAs mentioned above, the Emergency Departmentmodel defined in this work is a pure Agent-BasedModel, formed entirely of the rules governing the behaviorof the individual agents which populate thesystem. Through the information obtained duringinterviews carried out with ED staff at the Hospitalof Sabadell, two kinds of agents have been identified;these are active and passive agents. The activeagents represent people and other entities that actupon their own initiative: patients, admission staff,sanitarian technicians, triage and emergency nurses,and doctors. The passive agents represent systemsthat are solely reactive, such as the loudspeaker system,patient information system, pneumatic pipes,and central diagnostic services (radiology service andlaboratories). All the details of both, active and passiveagents, as well as the communication model, andthe environment where the agents interact are de-JP2011-166


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011tailed in [19].A. Problem descriptionIV. OptimizationThe simulator for this work is used as a black boxas described below, includes simple realistic descriptorsof the ED’s: agents, basic physical infrastructure,and operating practices. Nevertheless the morerealistic the simulator is, the better results and optimizationsare. It is implemented by the agentbasedsimulation environment NetLogo [20], whichis well suited for modeling complex systems such asthe EDs. For simplicity, only four different typesof active agents are considered: admission staff (A),nurses (N), doctors (D), and patients. The ED staffhave two kinds of expertise: low and high, labeledas junior, and senior, respectively. Junior staff willrequire more time to accomplish their tasks than seniors,which cost-wise are more expensive (see TableI).The initial scenario adopted for the experiments isto simulate patients moving through a simplified EDphysical infrastructure that includes four primary areas:admissions, triage (up to three boxes), two waitingrooms (one for patients before triage, and theother for patients who have passed the triage process,and are waiting for treatment), and the diagnosisand treatment area (four boxes). The followingbasic patient attributes were assumed. Patientsarrive to the ED by their own, and wait to be attendedin the admission area. Then, patients stay inthe first Waiting Room (WR1), until a triage nursecall them. After the triage process patients pass toa second waiting room (WR2), and stay there untilan available doctor calls them to start the diagnosis,and to prescribe a treatment (which might includelaboratory tests) depending on the patient’s symptoms,and physical condition. Finally, patients aredischarged from the ED. Such simplified ED layoutis shown in Figure 1. Although realistic treatmentis based on the acuity of patients, in this initial simulationpatients we assumed that patients have thesame path throughout the ED. In this experiment aconstant pattern of patients arrival pattern has beenassumed, since we would like first to work with asimpler model. Also it will be assumed that patientsarrive to the ED after a certain time step, and withfour different patients arrival probabilities (P) 20, 40,60, and 80%. Those probability values are used toemulate the randomness of the incoming patients tothe ED.The multidimensional optimization problem consideredin this paper aims to find the optimal EDstaff configuration under certain operational constrains(the optimal solution will correspond to theminimum value of an index which is defined furtherdownin the application experiments). The dimensionof the problem corresponds to: the typesand number of ED staff considered, i.e. doctors(D), triage nurses (N), and admissions personnel (A),which could be, as stated above, junior or senior; theFig. 1: Agent Based Simulator of the simplifiedEmergency Department layout implemented withNetLogo.working time units considered for each of them, theirassociated cost units. The assumed values of each ofthose are shown in the Table I. This represents acombinatorial or multidimensional problem (whereeach variable or in this case ED staff member representsone dimension plus the patients arrival, i.e.the input to the ED). Such combinatorial problemis shown in Table II for doctors -14 cases- (nursesand admission personnel have similar combinations-9 cases for each of them). Taking this into accountspecific scenarios or configurations have to be simulatedseveral times, changing parameters to showthe effect of considering different probabilities of thepatients arrival time, this strategy will allow us togenerate set of results from which particular effectscan be analyzed.TABLE I: Staff members with their associated costs,and working time according to their kind.Agent Cost (e) Time (ticks) # of AgentsSenior (S) Junior (J) Senior (S) Junior (J)Doctor (D) 1,000 500 260 350 1 – 4Nurse (N) 500 350 90 130 1 – 3Admin (A) 200 150 20 35 1 – 3TABLE II: 14 Doctors (D) combination. Two kindsof doctor, Junior (J), and Senior (S). DRi representsDiagnosis Roomi.DR1 DR2 DR3 DR4DJ - - -DS - - -DJ DJ - -DS DS - -DJ DJ DJ -DS DS DS -DJ DJ DJ DJDS DS DS DSDJ DS - -DJ DJ DS -DJ DJ DS DSDJ DJ DJ DSDJ DS DS DSDJ DS DS -Even with this simple setting of an ED the searchspace is large, i.e. the search space has 4,536 (whichJP2011-167


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011results of assuming a combination of two types -junior or senior- of up to 4 doctors, 3 nurses, 3 admissions,and 4 different probabilities of patients arrival,i.e. 14 × 9 × 9 × 4) combinations from whichthe optimal combination that minimizes the desireindex, under some restrictions, will be obtained. Inthe experiments shown in sections IV-B and IV-C theperiod simulated of the ED operation was of 24 hrs.(which represent 25,000 ticks -NetLogo’s time stepforall the experiments, and an average input of 400patients, which is the average incoming patients thatthe heads of ED of the Hospital of Sabadell have reported).Two different indexes were set in order to evaluatethe utility of the Agent-Based ED simulator for optimizingthe resources. Exhaustive search techniquewas used to obtain the optimum in the experimentsreported in sections IV-B and IV-C. All simulationswere done using the simulator described previously,using the NetLogo’s BehaviorSpace tool, serially andusing an IBM cluster, which has 32 compute nodeswith 2 x Dual-Core Intel(R) Xeon(R) CPU 5160 runningat 3.00GHz, with 12 GB of RAM, and 4MB ofL2 share cache (2x2).B. First experimentThe first index aimed to minimize patient waitingtime in the ED, with cost configuration less orequal to 3,500 e. Thus, the first index is expressedmathematically in equation (2).(a) Average patient waiting time for a P = 20%.Min e Time (ticks) # staff D N A1 3,200 428 5 2 S 2 S 1 S2 2,900 428 5 2 S 1 S 2 S3 2,850 428 5 2 S 1 S 1 S, 1 J(b) Staff configurations that have the minimum wt for a P =20%. They are shown as triangles in Figure 2a.Fig. 2: Average patient waiting times graph and theircorresponding table with the optimal staff configurationsfor a P = 20% of patients arrival. Trianglepoints are the minimum.Minimize patient waiting time f(D, N, A)subject to D cost + N cost + A cost = Cost ≤ 3, 500 e(2)The results are shown in Figures 2, 3, 4, and 5;where the circle points are the staff configurationsthat satisfy the restriction, while the triangle pointsare the minimum for each different case of probability,20%, 40%, 60%, and 80%, respectively. Theminimal configurations are presented in Figures 2b,3b, 4b, and 5b, as well as their costs.In Figures 2a and 2b, there are three different staffconfigurations that have the average minimum waitingtime, but with different costs. Also, in the sameFigure 2a, it can be appreciated that there are manyother staff configurations that are quite close to theminimum time, but less expensive.In the other cases, where the probability P of patientsarrival increases, i.e. has higher probability ofpatients arrival, there are only few staff configurationsaround the minimum, or clearly only one. Notonly does the patient arrival increase, but also theminimum average patient waiting time, as expected,as well as the cost of the staff configuration, and alsothe standard deviation of the average patient waitingtime (wt) are shown in Table III. The number ofpatients increases at waiting rooms, both WR1 andWR2 ( shown in Figure 1) at times t1, t2, t3, andt4 (each time represents every 6,250 ticks of simulation),and finally the number of unattended patientsincreases as well. In Table III all these results are(a) Average patient waiting time for a P = 40%.Min e Time (ticks) # staff D N A1 3,150 514 5 2 S, 1 J 1 S 1 J2 3,200 514 7 4 J 2 S 1 S(b) Staff configurations that have the minimum wt for a P =40%. They are shown as triangles in Figure 3a.Fig. 3: Average patient waiting times graph and theircorresponding table with the optimal staff configurationsfor a P = 40% of patients arrival. Trianglepoints are the minimum.shown. It is noticed when the number of patient arrivalprobability is higher, i.e. 80%, patients in thewaiting rooms increases (shown in Table III).C. Second experimentThe second index aims to minimize a compoundindex: cost × time, CT, subject to a time restrictionthat should be less or equal to 428, that is the averageJP2011-168


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Minimize cost × time(CT) f(D, N, A)subject to T ime P =80% ≤ T ime P =20% 428(3)(a) Average patient waiting time for a P = 60%.Min e Time (ticks) # staff D N A1 3,400 790 7 1 S, 3 J 2 J 1 S(b) Staff configurations that have the minimum wt for a P =60%. They are shown as triangles in Figure 4a.Fig. 4: Average patient waiting times graph and theircorresponding table with the optimal staff configurationsfor a P = 60% of patients arrival. Trianglepoints are the minimum.Fig. 6: Results y = cost × time. Triangle points areminimum, and a worthy staff configuration, respectively.This index was set to test the simulator with a nonsimpleobjective function, as well as to find whichED staff configuration yields the best quality of service,i.e. to maximize patient throughput. The Figure6 shows all the search space, 16,632 staff scenarios(which results of assuming a combination of twotypes -junior or senior- of up to 8 doctors, 6 nurses,and 4 admissions, i.e. 44 × 27 × 14). There are manyscenarios that give a good index value, but there aretwo of them that are the most important, as shownin Table IV.TABLE IV: Two worthy staff configurations thatgive almost the same quality of service.(a) Average patient waiting time for a P = 80%.Min e Time (ticks) # staff D N A1 3,350 3,266 7 1 S, 3 J 2 J 1 J(b) Staff configurations that have the minimum wt for a P =80%. They are shown as triangles in Figure 5a.Fig. 5: Average patient waiting times graph and theircorresponding table with the optimal staff configurationsfor a P = 80% of patients arrival. Trianglepoints are the minimum.TABLE III: Results for the best average minimumfor each of the four presented scenarios.P Time σ wt e # attended # unattended # patients at WR1 # patients at WR2(ticks) patients patients t1, t2, t3, t4 t1, t2, t3, t420 428 48 (11%) 2850 83 1 0,0,0,0 0,0,0,040 514 81.5 (15.9%) 3150 182 4 0,0,0,1 0,0,0,060 790 174.5 (22.1%) 3400 290 8 1,1,0,1 3,2,4,180 3266 1670.4 (51.2%) 3350 294 100 8,19,32,43 12,25,37,51waiting time when the patients arrival probabilityis 20%. This index is expressed mathematically inequation (3).Best e Time (ticks) Cost × T ime # attended patients σ wt # staff D N A1 4,000 585.7 2,342,800 378 58.6 (10%) 9 6 J 2 J 1 J2 3,600 1,725.7 6,212,520 340 602.4 (34.9%) 9 5 J 2 J 1 S, 1 JAlthough both staff configurations are almost thesame, they have different minimum average waitingtime, this is why the first staff configuration label asBest 2, despite its lower cost has a worst minimumaverage waiting time. Not only the index is differentand higher, but its standard deviation of patientwaiting time is higher. It is important to notice thata staff configuration a bit more expensive has almost10% lower variation coefficient of the patient waitingtime, as well as almost a third lower index value andminimum average waiting time.V. Conclusions and future workA simple but realistic Agent-Based Model to simulateHealthcare Emergency Departments (ED) hasbeen proposed an applied. The main objective ofthe model is to be used as a tool to help EDs managersin setting up strategies and management guidelinesto optimize the operation of EDs. The modelJP2011-169


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011takes into account the complexity and dynamic natureof the EDs which are difficult to characterize.The model uses Moore state machines based agentswhich act and communicate within a defined layout.The simulations presented here serve to testthe model. Two simulation experiments were carriedout using real data about the staff configurationand the (minimum) physical infrastructure of aHospital ED. Two different indexes were set to evaluatethe operation of the Agent-Based EmergencyDepartment simulator. Even though the search ofthe optimum staff configurations analyzed, 4,536 and16,632 for the first and second experiments, respectively,were performed through an exhaustive searchtechnique (which implies a lot of search time) theresults are encouraging, since not only they are asexpected (larger and more experienced staff lead toshorter average patient waiting time), but also showinteresting results when the waiting time standarddeviation is analyzed. Indeed the simulation experimentsallowed to understand, and analyse better theproblem. However, even with the small problem sizeanalyzed the number of combination is large, as wellas the computing time. Moreover, the resources thatthis problem would demand to perform statisticalanalysis for longer periods (first to reproduce andthen to foretell) are huge. Therefore, a better optimizationapproach rather than exhaustive search,must be used.As future work, an alternative methodologyscheme for optimization is being devised. Thisapproach consists in finding a continuous functionthat describes the Emergency Department operation,which is a discrete and multidimensional problem,and through such function will allow us to obtain theoptimum, or at least reduce the search space. Thus,getting as a result of doing such an intelligent searchwill very likely reduce time and computing resourcesutilized. This scheme would be an intermediate approachbetween an exhaustive search technique anda heuristic one. Moreover, due to the multidimensionalnature of the problem, i.e. large number of individuals,the number of states in the state machineof each individual, and the different time periods, alarge number of values should be computed. Therefore,High Performance Computing will have to beused.AcknowledgmentsThis research has been supported by the MICINNSpain, under contract TIN2007-64974.References[1] Stephen R. Pitts, W. Niska Richard, Xu Jianmin, andW. Burt Catherine, “National Hospital AmbulatoryMedical Care Survey: 2006 emergency department summary,”National health statistics reports, vol. 2008, no.7, August 2008.[2] “Unidad de urgencias hospitalaria. Estándares y recomendaciones,”2010.[3] Andrew P. Wilper, Steffie Woolhandler, Karen E. Lasser,Danny McCormick, Sarah L. Cutrona, David H. Bor, andDavid U. Himmelstein, “Waits To See An Emergency DepartmentPhysician: U.S. Trends And Predictors, 1997–2004,” Health Affairs, vol. 27, no. 2, pp. w84–w95, 2008.[4] Michael C. Fu, “Feature article: Optimization for simulation:Theory vs. practice,” INFORMS Journal onComputing, vol. 14, no. 3, pp. 192–215, 2002.[5] Eric Bonabeau, “Agent-based modeling: Methods andtechniques for simulating human systems,” Proceedingsof the National Academy of Sciences, vol. 99, pp. 7280–7287, May 2002.[6] Walton M. Hancock and Paul F. Walter, “The useof computer simulation to develop hospital systems,”SIGSIM Simul. Dig., vol. 10, no. 4, pp. 28–32, 1979.[7] Charles E. Saunders, Paul K. Makens, and Larry J.Leblanc, “Modeling emergency department operationsusing advanced computer simulation systems,” Annals ofEmergency Medicine, vol. 18, no. 2, pp. 134–140, 1989.[8] J. B. Jun, S. H. Jacobson, and J. R. Swisher, “Applicationof discrete-event simulation in health care clinics:A survey,” Journal of the Operational Research Society,pp. 109–123, February 1999.[9] Peer Olaf Siebers, Charles M. Macal, Jeremy Garnett,D. Buxton, and Michael Pidd, “Discrete-event simulationis dead, long live agent-based simulation!,” Journal ofSimulation, vol. 4, no. 3, pp. 204–210, Sep 2010.[10] Anke K. Hutzschenreuter, Peter A. N. Bosman, IlonaBlonk-Altena, Jan van Aarle, and Han La Poutré,“Agent-based patient admission scheduling in hospitals,”in AAMAS ’08: Proceedings of the 7th internationaljoint conference on Autonomous agents and multiagentsystems, Richland, SC, 2008, pp. 45–52, InternationalFoundation for Autonomous Agents and Multiagent Systems.[11] Spencer S. Jones and R. Scott Evans, “An agent basedsimulation tool for scheduling emergency departmentphysicians,” in AMIA Annual Symposium proceedings,AMIA Symposium, 2008, pp. 338–342.[12] Marek Laskowski and Shamir Mukhi, “Agent-based simulationof emergency departments with patient diversion,”in eHealth, 2008, pp. 25–37.[13] Lu Wang, “An agent-based simulation for workflow inemergency department,” in Systems and InformationEngineering Design Symposium, 2009. SIEDS ’09., 24-24 2009, pp. 19 –23.[14] T. Ruohonen, P. Neittaanmaki, and J. Teittinen, “SimulationModel for Improving the Operation of the EmergencyDepartment of Special Health Care,” in SimulationConference, 2006. WSC 06. Proceedings of the Winter,3–6 2006, pp. 453–458.[15] Mohamed A. Ahmed and Talal M. Alkhamis, “Simulationoptimization for an emergency department healthcareunit in Kuwait,” European Journal of OperationalResearch, vol. 198, no. 3, pp. 936 – 942, 2009.[16] Anke K. Hutzschenreuter, Peter A. Bosman, and HanPoutré, “Evolutionary multiobjective optimization fordynamic hospital resource management,” in EMO ’09:Proceedings of the 5th International Conference on EvolutionaryMulti-Criterion Optimization, Berlin, Heidelberg,2009, pp. 320–334, Springer-Verlag.[17] Jan A. Persson, Paul Davidsson, Stefan J. Johansson,and Fredrik Wernstedt, “Combining agent-based approachesand classical optimization techniques,” in EU-MAS, 2005, pp. 260–269.[18] Hayden Stainsby, Manel Taboada, and Emilio Luque,“Towards an agent-based simulation of hospital emergencydepartments,” in SCC ’09: Proceedings of the2009 IEEE International Conference on Services Computing,Washington, DC, USA, 2009, pp. 536–539, IEEEComputer Society.[19] Manel Taboada, Eduardo Cabrera, Ma Luisa Iglesias,Francisco Epelde, and Emilio Luque, “An agent-baseddecision support system for hospitals emergency departments,”Procedia Computer Science, vol. 4, pp. 1870 –1879, 2011, Proceedings of the International Conferenceon Computational Science, ICCS 2011.[20] U. Wilensky, “Netlogo,” 1999, Northwestern University,Center for Connected Learning and Computer-BasedModeling.JP2011-170


Actas XXII Jornadas de Paralelismo (JP2011) , La Laguna, Tenerife, 7-9 septiembre 2011Reducción de ruido impulsivo Fijo y Uniformeen imágenes digitales usando las GPUs.M. Guadalupe Sánchez 1 Vicente Vidal 2 Jordi Bataller 3 Alejandro Rivera 4Resumen— La gran demanda de aplicaciones entiempo real y gráficos en 3D de alta definición, han hechoque evolucionen no sólo en las implementacionesde gráficos, sino también las aplicaciones de propósitogeneral basada en la GPU. El problema de la reducciónde ruido impulsivo en imágenes a color es unproceso ampliamente estudiado en el campo de procesamientode imágenes. Con este fin, muchos métodosse han propuesto, sin embargo, el coste computacionalen la mayoría de ellos es muy alto si el tamaño dela imagen es grande y se requiere procesamiento entiempo real. En este artículo presentamos un métodopara reducir el ruido impulsivo (modelo de valor fijo yaleatorio), basado en el concepto de peer group. Utilizamosla Unidad de Procesamiento Gráfico (GPU)para obtener una aplicación paralela mejorando la eficienciacomputacional. Los resultados muestran queel problema de la reducción de ruido impulsivo con elmétodo propuesto puede ser paralelizado y es eficienteen calidad, coste computacional y robustez.Palabras clave— Eliminación de ruido, algoritmo paralelo,peer group, GPU, CUDA.I. IntroducciónMUCHOS desarrolladores e investigadores estánencontrando aplicaciones prácticas basadas enlas GPUs (Graphics Processor Units) para acelerarel procesamiento de datos o en cálculos complejos.Las GPUs están especializadas en computación decálculo intensivo y altamente paralelo. En la actualidadmuchas aplicaciones en el procesamiento deimágenes y vídeo requieren un rendimiento en tiemporeal, por ejemplo, en video-vigilancia o en medicina.Las imágenes tienden a ser dañadas debido a sumala adquisición o transmisión a través de un canalcontaminado [1], [2], [3], lo que afecta su procesamiento.Esto hace necesario un proceso previo conla finalidad de eliminar el ruido en la imagen utilizandotécnicas de filtrado.Dos tipos comunes de ruido son, el ruido gaussianoy ruido impulsivo. El más usual es el ruidoimpulsivo, que se presenta durante la transmisión dedatos por un canal contaminado, sensores ruidososo en errores en la captura de los datos. Estos erroressólo afectan a ciertos píxeles de la imagen [3].El modelo más común de ruido impulsivo (Salt yPepper o valor fijo)considera que el impulso es, unvalor extremo en el rango de la señal reemplazandosu valor original. Un segundo tipo es cuando un pixeles reemplazado por un valor aleatorio uniformemente1 Dpto. de Sistemas y Computación, Instituto Tecnológicode Cd. Guzmán, e-mail: msanchez@dsic.upv.es2 Dpto. Sistemas Informáticos y Computación, Univ.Politécnica de Valencia, e-mail: vvidal@dsic.upv.es3 Dpto. Sistemas Informáticos y Computación, Univ.Politécnica de Valencia, e-mail: bataller@dsic.upv.es4 Dpto. Sistemas y Computación, Instituto Tecnológico deCd. Guzmán, e-mail: arivera@itcg.edu.mxdistribuido dentro del rango de la señal [1]. En estetrabajo se aborda el ruido impulsivo de ambos tipos.Por lo general, las técnicas de eliminación de ruidode una imagen tienen dos pasos: la detección y el filtradode los pixeles ruidosos. Algunas técnicas parala detección de píxeles corruptos utilizan el conceptode peer group. El peer group es el conjunto de pixelessimilares a uno dado, de acuerdo a una medidade distancia [4], [5].En este artículo presentamos un algoritmo paralelobasado en el peer group y la norma euclideacomo la métrica de distancia. Nuestro método es unaadaptación de los algoritmos secuenciales presentadosen los paper [3], [6] y [9] para reducir el ruidoimpulsivo, para operar eficientemente en una GPU.Para demostrar que el algoritmo es altamente paralelizabley eficiente en calidad y robuste