159
PEDECIBA INFORM ´ ATICA Instituto de Computaci ´ on - Facultad de Ingenier ´ ıa Universidad de la Rep ´ ublica Montevideo, Uruguay TESIS DE MAESTR ´ IA EN INFORM ´ ATICA Mejora del desempe˜ no de modelos num´ ericos del R´ ıo de la Plata Pablo Ezzatti pezzatti@fing.edu.uy Junio 2006 Suepervisora: Maria Urquhart Orientador de tesis: Ismael Piedra Cueva

PEDECIBA INFORMATICA´ - fing.edu.uy

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PEDECIBA INFORMATICA´ - fing.edu.uy

PEDECIBA INFORMATICAInstituto de Computacion - Facultad de Ingenierıa

Universidad de la Republica

Montevideo, Uruguay

TESIS DE MAESTRIAEN INFORMATICA

Mejora del desempeno de modelosnumericos del Rıo de la Plata

Pablo Ezzatti

[email protected]

Junio 2006

Suepervisora: Maria UrquhartOrientador de tesis: Ismael Piedra Cueva

Page 2: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 3: PEDECIBA INFORMATICA´ - fing.edu.uy

Mejora del desempeno de modelosnumericos del Rıo de la Plata

RESUMEN

Esta Tesis presenta el estudio de las tecnicas de computacion de alto desempenoaplicadas al calculo cientıfico, con el fin de mejorar el desempeno computacional demodelos numericos que utilizan el paradigma de elementos finitos (MEF). Se aborda laaplicacion de estas tecnicas al modelo hidrodinamico RMA-10 aplicado al Rıo de la Plata.En particular, se concentro el estudio sobre la resolucion de sistemas lineales (matrizde rigidez) implicados en la solucion del MEF utilizado en el modelo. Generalmente, enlos MEF, la etapa computacionalmente mas costosa es la resolucion de grandes sistemaslineales dispersos.

En el trabajo se presenta una estrategia secuencial para el calculo de la matriz derigidez del modelo RMA-10 utilizando tablas de dispersion y su posterior resolucionempleando metodos multifrontales para sistemas lineales dispersos. Tambien se evaluala aplicacion de distintas estrategias de programacion paralela a la modificacion pro-puesta. Se presenta un estudio comparativo que reporta resultados satisfactorios tantoen la calidad de los resultados numericos obtenidos como en la mejora del desempenocomputacional alcanzado por la version serial. Los estudios de las versiones paralelaspresentan resultados de eficiencia computacional apenas aceptables.

Palabras clave: Computacion de alto desempeno, metodos numericos, RMA-10.

Page 4: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 5: PEDECIBA INFORMATICA´ - fing.edu.uy

Indice general

1. Introduccion 1

2. Modelado numerico del Rıo de la Plata 52.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. El Rıo de la Plata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3. Modelado numerico de circulacion hidrodinamica . . . . . . . . . . . . . 72.4. Modelado numerico del Rıo de la Plata . . . . . . . . . . . . . . . . . . . 9

2.4.1. Paralelizacion del metodo de diferencias finitas . . . . . . . . . . 112.5. El modelo RMA-10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.1. Ecuaciones del modelo RMA-10 . . . . . . . . . . . . . . . . . . . 122.5.2. Descripcion funcional del RMA-10 . . . . . . . . . . . . . . . . . 13

2.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3. Tecnicas de programacion de alto desempeno 213.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2. Optimizacion automatica de codigo . . . . . . . . . . . . . . . . . . . . 223.3. Tecnicas de alto desempeno secuencial . . . . . . . . . . . . . . . . . . . 25

3.3.1. Medidas de despempeno secuencial . . . . . . . . . . . . . . . . . 263.4. Tecnicas de programacion paralela/distribuida . . . . . . . . . . . . . . 27

3.4.1. Arquitecturas de computadoras paralelas . . . . . . . . . . . . . 273.4.2. Programacion paralela . . . . . . . . . . . . . . . . . . . . . . . . 293.4.3. Herramientas para el diseno e implementacion de aplicaciones pa-

ralelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.4. Medidas del desempeno computacional . . . . . . . . . . . . . . . 36

3.5. Tecnicas de alto desempeno aplicadas a modelosnumericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.5.1. Sistemas Lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.5.2. Paralelismo para la resolucion de sistemas lineales . . . . . . . . 393.5.3. Bibliotecas de uso publico . . . . . . . . . . . . . . . . . . . . . . 40

3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4. Los metodos multifrontales 474.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2. Metodos directos de resolucion de sistemas lineales dispersos . . . . . . 48

4.2.1. Metodos directos . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.2.2. Relacion con la teorıa de grafos . . . . . . . . . . . . . . . . . . . 524.2.3. Ordenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

iii

Page 6: PEDECIBA INFORMATICA´ - fing.edu.uy

IV INDICE GENERAL

4.2.4. Factorizacion simbolica . . . . . . . . . . . . . . . . . . . . . . . 624.3. Los metodos frontales y multifrontales . . . . . . . . . . . . . . . . . . . 644.4. Aplicacion de estrategias de paralelismo . . . . . . . . . . . . . . . . . . 70

4.4.1. Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.4.2. Evolucion historica . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.5. Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5. Mejora del desempeno del modelo RMA-10 795.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.2. Casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805.3. Hardware utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.3.1. obras07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.3.2. dieste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.3.3. cluster CeCal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.3.4. cluster Geronimo . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.4. Evaluacion de tiempos del modelo RMA-10 . . . . . . . . . . . . . . . . 835.4.1. Tiempos de ejecucion del modelo RMA-10 . . . . . . . . . . . . . 845.4.2. Tiempos de ejecucion de la rutina FRONT . . . . . . . . . . . . . . 85

5.5. Propuesta secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.5.1. Calculo de los coeficientes . . . . . . . . . . . . . . . . . . . . . . 875.5.2. Generacion de la matriz . . . . . . . . . . . . . . . . . . . . . . . 885.5.3. Resolucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.6. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6. Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10 976.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2. Paralelismo a nivel de sub-matriz . . . . . . . . . . . . . . . . . . . . . . 98

6.2.1. Opciones del compilador . . . . . . . . . . . . . . . . . . . . . . . 986.2.2. BLAS multi-threads . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.3. Paralelismo a nivel de matriz . . . . . . . . . . . . . . . . . . . . . . . . 1006.3.1. Rutina FRONT paralela . . . . . . . . . . . . . . . . . . . . . . . . 1006.3.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

6.4. Paralelelismo a nivel de sistema . . . . . . . . . . . . . . . . . . . . . . . 1096.4.1. Paralelizar el ciclo de calculo de los coeficientes de los elementos 1096.4.2. Ingreso de la matriz en forma distribuida . . . . . . . . . . . . . 1116.4.3. Descomposicion de dominio . . . . . . . . . . . . . . . . . . . . . 112

6.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

7. Conclusiones y Trabajo Futuro 1157.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.2. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.3. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Page 7: PEDECIBA INFORMATICA´ - fing.edu.uy

INDICE GENERAL V

A. Almacenamiento de matrices dispersas 121A.1. Estrategias estaticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

A.1.1. Formato simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122A.1.2. CRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123A.1.3. CCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124A.1.4. DIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124A.1.5. ELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

A.2. Estrategias dinamicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124A.2.1. LLRCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124A.2.2. LLRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125A.2.3. LLCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

B. Elementos finitos 127

C. Modulos y manejo de archivos del modelo RMA-10 131C.1. Modulos del RMA 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131C.2. Manejo de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Bibliografıa 136

Page 8: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 9: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 1

Introduccion

En las ultimas decadas, la simulacion computacional de fluidos ha emergido comoun area de intenso trabajo. A medida que las tecnicas computacionales se fueron perfec-cionando, el interes de modelar con precision el comportamiento de los flujos de fluidosfue en aumento, provocando importantes inversiones en equipamiento informatico. Deeste modo se genera un cırculo vicioso que frecuentemente coloca a la simulacion de altaprecision como una tecnica economicamente prohibitiva. A modo de ejemplo, uno de loscomputadores paralelo mas potente en la actualidad (septiembre 2005 [33]) pertenece alEarth Simulator Center Japon, que se dedica al estudio de modelos numericos para lasimulacion de procesos teluricos, oceanograficos y atmosfericos [44].

En Uruguay, en el Instituto de Mecanica de los Fluidos e Ingenierıa Ambiental (IM-FIA) de la Facultad de Ingenierıa (FIng) de la Universidad de la Republica (UdelaR),desde hace algunos anos, se esta trabajando en el modelado numerico del Rıo de la Plata.En un principio se construyeron, con exito variado, modelos basados en la utilizacionde esquemas de diferencias finitas [138]. Con el fin de obtener mejoras significativas endiversas caracterısticas del modelado, se realizo el pasaje del paradigma de diferenciasfinitas al de elementos finitos. A tales efectos se opto por el modelo RMA-10 [202],ampliamente utilizado en el modelado de estuarios.

El RMA-10 es un modelo de simulacion computacional de flujo a superficie librebaroclino tri-dimensional, propuesto por el Dr. I. King y sus colaboradores en el ResourceManagement Associates [167], desarrollado bajo la formulacion de Galerkin residual deelementos finitos.

Las cualidades de descripcion del modelo, su capacidad de trabajar con grilla irregu-lar y con distintos tipos de elementos ası como el tratamiento que realiza de la viscosidadturbulenta, permiten la obtencion de resultados sumamente alentadores en diversas si-mulaciones realizadas. En contraposicion a la mejora del modelado, se incrementan deforma abrupta los costos computacionales (tiempo de procesamiento), lo que implica ungran obstaculo para su utilizacion y para aplicar mejoras al modelo (mejorar la precisiony expandir eficientemente el modelo a tres dimensiones).

Teniendo en cuenta la problematica anterior y descartando la solucion inmediatade atacar el aumento de necesidad de computo con la adquisicion de computadoresaltamente potentes1, es que la aplicacion de tecnicas de alto desempeno se presentacomo una alternativa valida.

1Debido a la situacion economica de nuestros paıses en los que disponer de computadores de granporte (supercomputadoras) es una utopıa.

1

Page 10: PEDECIBA INFORMATICA´ - fing.edu.uy

2 Introduccion

Las tecnicas de alto desempeno computacional se basan por un lado en explotaral maximo las capacidades de computo del parque de hardware disponible y por otroen utilizar estrategias que minimicen las necesidades de computo para la resoluciondel problema. Para lograr estos objetivos generalmente se utilizan metodos especıficospara la resolucion de las distintas problematicas. Estos metodos se basan en artificiosque facilitan la utilizacion de la menor cantidad de recursos, en muchos casos teniendoen cuenta las distintas caracterısticas de las arquitecturas de computadoras utilizadas(memorias, procesadores, conexiones, etc).

Relacionando los conceptos presentados anteriormente, el trabajo que se presenta enesta Tesis de Maestrıa tuvo como objetivos el estudio de: tecnicas de alto desempeno,arquitecturas de hardware, metricas utilizadas para la comparacion del desempeno, for-mas de aplicacion de las tecnicas de alto desempeno al calculo cientıfico y en particulardesarrollar y evaluar las tecnicas que a priori se presentan como las mejores para elmodelo RMA-10 aplicado al Rıo de la Plata, considerando el hardware disponible en laUniversidad.

El trabajo de Maestrıa se desarrollo en diferentes ambitos, los cuales colaboraronen distinta forma a la concrecion del mismo. La motivacion del trabajo surgio de laparticipacion en el proyecto “Modelacion hidrosedimentologica del Rıo de la Plata”financiado por el Programa de Desarrollo Tecnologico (PDT) del Ministerio de Educaciony Cultura, Uruguay. Conjuntamente, una parte importante de la tarea se realizo en elmarco del proyecto de Investigacion + Desarrollo “Mejora del desempeno de modelosnumericos del Rıo de la Plata”, financiado por la Comision Sectorial de InvestigacionCientıfica (CSIC) de la Universidad de la Republica, Uruguay. Por ultimo, la realizacionde una pasantıa en el Centro Internacional de Metodos Computacionales en Ingenierıa(CIMEC), en la Universidad Nacional del Litoral, Santa Fe Argentina, genero grandesaportes al trabajo realizado.

Lo que resta de este documento se estructura de la forma que se describe a conti-nuacion.

El Capıtulo 2 ofrece una breve descripcion del Rıo de la Plata e introduce los con-ceptos generales de modelado numerico para la simulacion del comportamiento de losflujos de fluidos. En principio, la exposicion se realiza desde un punto de vista genericopara luego profundizar en la aplicacion al modelado numerico del Rıo de la Plata. Acontinuacion, se realiza una breve resena de los modelos numericos aplicados al Rıo dela Plata. Por ultimo se presenta el modelo RMA-10, que es la herramienta elegida enel IMFIA para la aplicacion del paradigma de elementos finitos, en particular se ana-lizan sus caracterısticas como sistema de software, presentando su diseno obtenido contecnicas de ingenierıa inversa.

El Capıtulo 3 comienza con un resumen de las tecnicas de optimizacion automaticade codigo. Luego, se presenta un pequeno relevamiento de las diversas tecnicas de altodesempeno y las distintas arquitecturas de hardware. Tambien se ofrece un resumende las tecnicas de programacion paralela y las medidas de desempeno computacionalmas utilizadas. Por ultimo se releva la aplicacion de las tecnicas de alto desempenoa problemas de modelado numerico, poniendo especial atencion a las aplicaciones deparalelismo para la resolucion de sistemas lineales y a las bibliotecas de uso publico enel area.

Page 11: PEDECIBA INFORMATICA´ - fing.edu.uy

3

Un exhaustivo relevamiento de los metodos frontales y multifrontales se puede en-contrar en el Capıtulo 4. Se explica la metodologıa que utilizan estos metodos para laresolucion de sistemas lineales dispersos, su evolucion historica y su vinculacion conotros metodos. El relevamiento incluye relacionamiento con la teorıa de grafos, estudiode las tecnicas de ordenamiento de pivotes y evolucion de la aplicacion de tecnicas deparalelismo a los referidos metodos.

En el Capıtulo 5 se describen los distintos casos de prueba utilizados para el analisisy validacion de las propuestas, se detallan las principales caracterısticas de las compu-tadoras en las cuales se efectuaron pruebas y se presenta un pequeno estudio de lostiempos de computo que insumen las distintas rutinas del modelo RMA-10. Luego sepresenta una propuesta de modificacion del modelo RMA-10 que trabaja en forma serialbuscando abatir los problemas detectados en la etapa de estudio de tiempos de ejecu-cion. Por ultimo se presenta la validacion de los resultados numericos y la evaluacion delos resultados del desempeno computacional de la propuesta.

Tomando como base la propuesta presentada en el Capıtulo 5 para la mejora deldesempeno computacional del modelo RMA-10, en el Capıtulo 6 se describe las distintasestrategias investigadas de aplicacion de tecnicas de paralelismo al modelo RMA-10. Laspropuestas se agrupan segun la taxonomıa de Dongarra et al. [96], en base al nivel deparalelismo utilizado. Primero se presentan tecnicas de paralelismo a nivel de sub-matrizque incluyen estrategias automaticas de paralelismo y estrategias de paralelismo a nivelde operaciones vectoriales. Luego, se presenta una propuesta que implementa paralelismoa nivel de matriz. Por ultimo se exponen algunos trabajos preliminares de aplicacion detecnicas de paralelismo a nivel de sistema al modelo RMA-10.

En el Capıtulo 7 se presentan en forma resumida las conclusiones a las que se arribadurante el proceso de aplicacion de tecnicas de alto desempeno a modelos numericos.Tambien se muestran las lıneas de trabajo que a nuestro criterio permitirıan mejorarsignificativamente algunos aspectos del modelo RMA-10, las cuales podran ser abordadasen trabajos futuros.

Page 12: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 13: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 2

Modelado numerico del Rıo de laPlata

2.1. Introduccion

El Rıo de la Plata es una de las principales vıas marıtimas de America del Sur. Ensu cuenca habitan decenas de millones de habitantes, por lo que naturalmente confluyendiferentes actividades e intereses de importancia economica y social.

Los intereses contrapuestos sobre el manejo del Rıo de la Plata obligan a un trata-miento integrado para el logro de polıticas de gestion adecuadas. En este sentido, unrequisito basico para la toma de decisiones es contar con un conocimiento apropiado delcomportamiento del rıo.

Dada la gran importancia social de contar con una herramienta capaz de predecir elcomportamiento del rıo y la explosiva evolucion del hardware, software y de las comuni-caciones, es que desde hace algunos anos se esta trabajando en el modelado numerico delRıo de la Plata, en la Facultad de Ingenierıa de la Universidad de la Republica Orientaldel Uruguay y mas precisamente en el Instituto de Mecanica de los Fluidos e IngenierıaAmbiental (IMFIA) y con la colaboracion del Centro de Calculo (CeCal) del Institutode Computacion (InCo).

En un principio se construyeron modelos basados en esquemas de diferencias finitas[138]. Con el afan de obtener mejoras significativas en diversas caracterısticas del mode-lado, se realizo el pasaje del paradigma de diferencias finitas al de elementos finitos. Atales efectos se opto por el modelo RMA-10 [167]. Este modelo utiliza la formulacion deGalerkin residual para la resolucion de un conjunto de ecuaciones que se derivan de lacombinacion de las ecuaciones de Navier-Stokes [154], continuidad volumetrica, advec-cion-difusion, y de una ecuacion de estado que relaciona la densidad con la salinidad,temperatura o el sedimento suspendido.

Este capıtulo comienza con una breve descripcion del Rıo de la Plata y una resenahistorica de los distintos esfuerzos realizados para lograr obtener un modelo numericode su circulacion. Luego se presentan en forma general las lıneas de trabajo que seestan llevando adelante en el IMFIA para el modelado numerico del Rıo de la Plata.Posteriormente se ofrece una descripcion del modelo RMA-10. Por ultimo, se expone elestudio de la implementacion del RMA-10.

5

Page 14: PEDECIBA INFORMATICA´ - fing.edu.uy

6 Modelado numerico del Rıo de la Plata

2.2. El Rıo de la Plata

El Rıo de la Plata se encuentra ubicado sobre la costa este de America del Suraproximadamente entre los 34o y 36o de Latitud Sur y los 54o 50’ y 58o 30’ de LongitudOeste, sirviendo como lımite entre la Republica Oriental del Uruguay y la RepublicaArgentina.

Los lımites convencionales del rıo fueron fijados en el tratado del Rıo de la Plata [54],firmado por Argentina y Uruguay en el ano 1973. Su lımite oceanico se definio como unalınea recta que une Punta del Este, en la costa uruguaya, con Punta Rasa, en la costaargentina, mientras que el lımite interior esta fijado por el paralelo que pasa por PuntaGorda en la costa uruguaya y por la desembocadura de los rıos Parana y Uruguay en lacosta argentina.

El eje del Rıo de la Plata tiene una direccion Norte-Oeste y Sur-Este siendo sulongitud de aproximadamente 280 Km. La superficie del rıo es de unos 35.000 Km2,mientras que su ancho varıa aproximadamente entre 2 Km en Punta Gorda y 220 Kmen su desembocadura en el Oceano Atlantico a la altura de Punta del Este.

Un aspecto que aumenta la importancia del rıo es la presencia en sus riberas de losprincipales centros urbanos de la region, como son Buenos Aires, capital de Argentina,con una poblacion en el entorno de los 2,8 millones de habitantes (11,5 millones en elgran Buenos Aires) [48] y Montevideo, capital de Uruguay, con una poblacion cercanaa 1 millon y medio de habitantes.

Los principales afluentes del Rıo de la Plata son el Rıo Parana y el Rıo Uruguay,por lo que ademas de Uruguay y Argentina, en su cuenca se encuentran la Republica deParaguay, la Republica Federativa del Brasil y Republica de Bolivia.

El desarrollo social e industrial de los paıses de la cuenca del Plata tuvo como con-secuencia no solo la mayor utilizacion de las vıas navegables del rıo, sino que tambienpotencio otros usos, tales como la extraccion de agua potable y la descarga de aguas resi-duales urbanas e industriales. Asımismo, el desarrollo agrıcola de la region incremento losaportes de distintos nutrientes al Rıo de la Plata. Si bien todas estas acciones se vienenproduciendo desde hace muchos anos atras, las mayores afectaciones han tenido lugarrecien en las ultimas decadas.

Los sucesos mencionados en el parrafo anterior han implicado que la morfologıa delRıo de la Plata se haya visto influenciada tanto directa como indirectamente a travesde la modificacion de los procesos fısicos, quımicos y biologicos que en el ocurren. Enla medida que dichas afectaciones raramente ocurren en forma instantanea, tener encuenta el retardo de las consecuencias de estos efectos es importante a la hora de predecirevoluciones futuras del rıo.

Por otra parte, en la mayorıa de las situaciones referentes al Rıo de la Plata lacomprension de la hidrodinamica y sedimentologıa es un requerimiento importante parala toma de muchas decisiones. Directa o indirectamente, estos aspectos poseen graninfluencia en todos los otros procesos del ecosistema del rıo (como morfologıa, calidadde aguas, ecologıa, etc.) y en consecuencia son aspectos fundamentales que deben sercomprendidos e incorporados en los planes de manejo de los recursos hıdricos.

En esta seccion se presenta por un lado la importancia del Rıo de la Plata para la zonay por otro la dificultad que trae aparejada la definicion de politicas para su manejo. Eneste contexto es que se destaca la necesidad de contar con un conocimiento apropiadodel comportamiento del rıo. Para lograr este objetivo es importante disponer de unaherramienta con la capacidad de simular su comportamiento hidrodinamico por largos

Page 15: PEDECIBA INFORMATICA´ - fing.edu.uy

2.3 Modelado numerico de circulacion hidrodinamica 7

Figura 2.1: Imagen de la cuenca del Rıo de la Plata.

periodos de tiempo, de forma de determinar las posibles consecuencias ante diferentesafectaciones como son estrategias de dragado, instalacion de vertederos de efluyentes,etc.

2.3. Modelado numerico de circulacion hidrodinamica

Por lo general, los modelos numericos para simular la circulacion hidrodinamica encuerpos de agua se basan en la descripcion de distintas combinaciones de propiedadesintrınsecas de los fluidos, la fuerza de gravedad, la aceleracion de Coriolis (fuerza deinercia debida a la rotacion de la Tierra) y las tensiones superficiales debidas a la acciondel viento. Por otro lado se puede tener en cuenta o no la resistencia del movimientoproveniente de la generacion de turbulencia en el fondo, frecuentemente denominadafuerza de friccion.

Estas propiedades fısicas generalmente se modelan mediante la formulacion de lasecuaciones diferenciales del flujo, las ecuaciones de conservacion de masa, cantidad demovimiento, estado, las ecuaciones fundamentales que rigen el transporte de sustanciasen cuerpos de agua y otras. En estas ecuaciones una cantidad importantes de variablesson definidas mediante expresiones semi-empıricas.

Page 16: PEDECIBA INFORMATICA´ - fing.edu.uy

8 Modelado numerico del Rıo de la Plata

Un caso especıfico de modelado son las ecuaciones que describen el flujo en un medioestratificado, ya sea por la variacion de salinidad, temperatura o sedimento suspendidoen la direccion vertical. Estas ecuaciones relacionan la velocidad en las tres dimensionescartesianas, la presion del agua y la distribucion de salinidad, temperatura o sedimentosuspendido en el dominio. El conjunto de ecuaciones esta compuesto por la forma deReynolds de las ecuaciones de Navier Stokes, Ecuaciones 2.1, 2.2 y 2.3; la ecuacion deconservacion de masa, Ecuacion 2.4; la ecuacion de adveccion difusion de la salinidad,Ecuacion 2.5; y la ecuacion de estado que relaciona la densidad con la salinidad, Ecuacion2.6. En las ultimas dos ecuaciones (2.5 y 2.6) se considera que las variaciones de ladensidad son debidas a variaciones en la salinidad y la temperatura del agua.

Ecuaciones de Navier Stokes:

ρ(δu

δt+u

δu

δx+ v

δu

δy+w

δu

δz)− δ

δx(εxx

δu

δx)− δ

δy(εxy

δu

δy)− δ

δz(εxz

δu

δz)+

δp

δx−Γx = 0 (2.1)

ρ(δv

δt+ u

δv

δx+ v

δv

δy+ w

δv

δz)− δ

δx(εyx

δv

δx)− δ

δy(εyy

δv

δy)− δ

δz(εyz

δv

δz) +

δp

δy−Γy = 0 (2.2)

ρ(δw

δt+ u

δw

δx+ v

δw

δy+ w

δw

δz)− δ

δx(εzx

δw

δx)− δ

δy(εzy

δw

δy)− δ

δz(εzz

δw

δz) +

δp

δz+ p.g − Γz = 0 (2.3)

Ecuacion de continuidad:

δu

δx+

δv

δy+

δw

δz= 0 (2.4)

Ecuacion de adveccion-difusion:

δs

δt+ u

δs

δx+ v

δs

δy+ w

δs

δz− δ

δx(Dx

δs

δx)− δ

δy(Dy

δs

δy)− δ

δz(Dz

δs

δz)− θs = 0 (2.5)

Ecuaciones de estado:

ρ = F (s, t) (2.6)

siendo:(x,y,z) el sistema de coordenadas cartesianas,(u,v,w) las velocidades en las direcciones cartesianas,ρ la densidad,g la constante de aceleracion de la gravedad,p la presion del agua,εxx ... εzz los coeficientes de viscosidad turbulenta,Γx ... Γz las tensiones que actuan sobre los bordes o el interior del cuerpo de agua,s la salinidad,t el tiempo,Dx los coeficientes de difusion turbulenta para la salinidad,θs el aporte o extraccion de salinidad.

Figura 2.2: Modelo numerico de la circulacion hidrodinamica.

Page 17: PEDECIBA INFORMATICA´ - fing.edu.uy

2.4 Modelado numerico del Rıo de la Plata 9

Una vez definido un modelo matematico que describe el proceso fısico de interes, esnecesario calcular su solucion, resolviendo el conjunto de ecuaciones que componen elmodelo, por lo general ecuaciones diferenciales. Para la resolucion es necesario conocerdistintos valores iniciales y/o valores en las fronteras del dominio, que en general tienenvalores empıricos, lo que implica realizar diversas tareas de medicion en campo.

Por otra parte, los niveles de complejidad de las ecuaciones diferenciales involucradasen este tipo de modelos hace difıcil poder encontrar las soluciones en forma analıtica.Como consecuencia la tarea de resolucion se debe realizar generalmente utilizando tecni-cas de analisis numerico.

Existen diversos paradigmas para la resolucion numerica de ecuaciones diferenciales,algunos de los mas utilizados son: diferencias finitas, elementos finitos y volumenesfinitos. El analisis de cada uno de los paradigmas queda por fuera del alcance de estapropuesta, si se desea profundizar en la tematica existe diversa literatura referente altema. Para una aproximacion a los metodos de diferencias finitas se puede consultarel libro de Nakamura [193], el trabajo de Reddy [208] sirve como presentacion de losmetodos de elementos finitos, mientras que el trabajo de Hirsch [154] constituye unaaproximacion a los metodos de volumenes finitos.

2.4. Modelado numerico del Rıo de la Plata

Como se menciono en la introduccion del capıtulo el esfuerzo por lograr la modelacionnumerica de procesos basicos vinculados a la hidrodinamica, el transporte de sedimentosy de contaminantes en el Rıo de la Plata comenzo hace varios anos. En especial seha trabajado en la busqueda por conseguir el modelado numerico del transporte desedimentos cohesivos.

El relevamiento de la evolucion historica de los modelos numericos del Rıo de laPlata que se presenta a continuacion se basa en los aportes realizados por Fosatti [111]en su Tesis de Maestrıa en Mecanica de Fluidos Aplicada.

El primer modelo numerico hidrodinamico robusto y ampliamente utilizado paraestudios de base y para aplicaciones ingenieriles del Rıo de la Plata fue presentado porMolinari en el ano 1986 [192] en su Tesis de graduacion de grado para el tıtulo deOceanografa en el Instituto Tecnologico de Buenos Aires (ITBA). Parte importante deltrabajo fue realizado en el Instituto Nacional del Agua (INA) de la Republica Argentina(Ex Instituto Nacional de Ciencia y Tecnica Hıdricas) y dirigido por Menendez. Seutilizo el software HIDROBID II, desarrollado por el mismo Menendez [191].

El software HIDROBID II fue disenado para la simulacion de flujos a superficie libre;el modelo matematico que utiliza se basa en la resolucion numerica de las ecuacionesbidimensionales de aguas poco profundas (shallow water) mediante un esquema implıcitode diferencias finitas.

El sistema descripto en el parrafo anterior fue extendido en varias ocasiones paralograr la mejora de diversas caracterısticas del modelo hidrodinamico [159]. Luego en elano 1999 se presenta una nueva version del modelo [78], nuevamente bajo la direccionde Menendez y basada en el codigo bidimensional, la cual tiene como gran aporte queanade la capacidad de reconstruir el perfil vertical de velocidades en cualquier puntodel dominio. De esta forma se logro un nuevo software, denominado HIDROBID PLUS,capaz de realizar simulaciones cuasi-tridimensionales a un costo computacional similarque el software bidimensional. Una parte importante del trabajo necesario para realizar

Page 18: PEDECIBA INFORMATICA´ - fing.edu.uy

10 Modelado numerico del Rıo de la Plata

la extension se debe a Bombardelli en su Tesis de Maestrıa [77] en la Universidad deBuenos Aires (UBA).

En la actualidad, en el Centro de Investigacion del Mar y la Atmosfera (CIMA)de la UBA [41], a traves de una colaboracion con la Universidad de Hamburgo, seesta implementando un modelo numerico tridimensional. En el sitio web del centro [50]se puede obtener mas informacion referente al proyecto.

Otro esfuerzo comparable para el modelado numerico del Rıo de la Plata, realizadoen forma independiente de los trabajos del INA, se gesto en un grupo de investigacion enel IMFIA, bajo la direccion de Rafael Guarga. Como resultado del trabajo se desarrollo elsoftware TIDAL [138], basado en los modelos desarrollados por A. Borche del IPH dePorto Alegre - Brasil.

En este caso, el modelo matematico implementado resuelve las ecuaciones hidro-dinamicas para aguas poco profundas, obtenidas por la integracion en la vertical de lasecuaciones tridimensionales de Navier-Stokes que expresan las leyes de conservacion dela masa y de la cantidad de movimiento. La estrategia resulta aplicable al caso del Rıode la Plata debido a que la relacion entre el ancho y la profundidad del estuario es delorden de 10.000. La estrategia se basa en la utilizacion del paradigma de diferenciasfinitas, trabajando sobre una malla de forma cuadrada y separacion regular. La discreti-zacion espacial del tamano de la cuadrıcula adoptada fue de 15 Km, escogiendo el pasode tiempo de 15 minutos de forma de poder satisfacer criterios de estabilidad numericadel metodo.

El desempeno computacional del software TIDAL fue mejorado por Elıas Kaplandel CeCal en 1998 para su Tesis de Maestrıa en Computacion [162, 139], llevandolo auna version paralela (PTIDAL) mediante la tecnica de descomposicion de dominio. Eltrabajo de Kaplan se comenta en la Seccion 2.4.1.

En los ultimos anos, en el IMFIA se comenzo a trabajar con ejemplos de modelosque implementan el paradigma de los elementos finitos. En un principio se evaluaronmodelos bidimensionales, siendo la herramienta RMA-2 [168] el modelo de base escogido.Un compendio de las razones de la eleccion se presenta en el trabajo realizado en el ano2003 por Ismael Piedra-Cueva y Hugo Rodrıguez [202].

A nivel internacional existen numerosas implementaciones de modelos numericospara la simulacion tridimensional de los escurrimientos hıdricos basados en elementosfinitos. Como referencia se destacan los modelos TELEMAC-3D del Laboratoire Nationald’Hydraulique et Environnement de Francia [153] que resuelve las ecuaciones de aguaspoco profundas (shallow water) para superficie libre, MIKE-3 del DHI Dinamarques [34]y el modelo SULIS de Hydraulics Research Wallingford, Reino Unido [47].

Las implementaciones de los modelos de elementos finitos (MEF) en general sonmas costosas desde el punto de vista de la cantidad de calculos a realizar si se lascompara con los metodos de diferencias finitas. Sin embargo, evitan la necesidad detrabajar con estrategias anidadas para la resolucion de problemas que poseen distintocondicionamiento para diferentes zonas del dominio.

Los MEF permiten trabajar en una misma malla, utilizando distinto tipos de ele-mentos, incrementando los niveles de resolucion segun sea requerido para obtener unadescripcion adecuada de los procesos de interes.

Page 19: PEDECIBA INFORMATICA´ - fing.edu.uy

2.5 El modelo RMA-10 11

Una version primaria de modelado utilizando MEF, en su variante bidimensional,se utilizo por parte del IMFIA para el estudio de la pluma de descarga de emisarios enlas costas de Montevideo [112]. Este trabajo se realizo por solicitud de la IntendenciaMunicipal de Montevideo y sirvio para evaluar la aplicacion del paradigma de MEF enuna situacion real, mostrando el modelo una excelente capacidad de simulacion.

En la actualidad, es de interes por parte del IMFIA poder extender los modelosbidimensionales para lograr trabajar con modelos tridimensionales. Para llevar adelantedicha tarea se escogio el modelo RMA-10, herramienta ampliamente utilizada para elmodelado de estuarios.

Diversas pruebas preliminares demostraron que el modelo RMA-10 posee grandesventajas en cuanto a capacidad de descripcion de los procesos hidrodinamicos, aun-que como gran limitante se observan los elevados costos computacionales que implicanlas variantes tridimensionales que en muchas ocaciones lo transforman en una opcionprohibitiva para la simulacion en tiempos de ejecucion razonables.

2.4.1. Paralelizacion del metodo de diferencias finitas

Como se menciono con anterioridad en este capıtulo, existe un antecedente de mejoradel desempeno computacional de un modelo numerico del Rıo de la Plata. En el CeCalen el ano 1998 Elıas Kaplan en su Tesis de Maestrıa [162], aplicando el esquema dedescomposicion de dominio, logro obtener una version paralela (denominada PTIDAL)del modelo TIDAL desarrollado anteriormente en el IMFIA.

Mas alla del importante impacto sobre los tiempos de computo en el software TIDAL,los resultados del trabajo de Kaplan han sido sumamente importantes para el proyectoque se reporta en esta Tesis, dado que en gran medida las mejoras logradas por Kaplanfueron un elemento motivador para la aplicacion de las tecnicas de alto desempeno almodelo de MEF que esta siendo implementando en la actualidad por parte del IMFIA.Por esta razon y en forma de breve reconocimiento se destaca el trabajo realizado porKaplan del resto de los aportes en el area.

En cuanto a los logros practicos, Kaplan reporta en su trabajo resultados de entreun 60% y un 72 % de reduccion en los tiempos de computo del modelo. El estudiose realizo ejecutando sobre una red de cuatro workstation Bull RS6000 (utilizadas enforma dedicada) conectadas utilizando una red tipo anillo de fibra optica (FDDI). Parael desarrollo de la version paralela se utilizo la biblioteca de pasajes de mensaje PVM[115].

2.5. El modelo RMA-10

El modelo RMA-10 [167], presentado en el ano 1993 por el Dr. Ian King y su equipoen el Resource Management Associates [39] es la culminacion de un proceso de desarrollode varias herramientas por parte de dicho grupo de investigacion, como son el RMA-2 yel RMA-4, para realizar modelados y simulaciones numericas en el area de la mecanicade fluidos a superficie libre.

Ideado para efectuar simulaciones en tres dimensiones de la circulacion hidrodinami-ca, el modelo RMA-10 fue disenado en particular para trabajar en situaciones dondelas magnitudes de las velocidades verticales son importantes y la estratificacion pordensidad se presenta como un factor significativo.

Page 20: PEDECIBA INFORMATICA´ - fing.edu.uy

12 Modelado numerico del Rıo de la Plata

El modelo describe las variables de estado, presion y velocidad (en tres dimensiones)resolviendo el conjunto de ecuaciones que se detalla en la Seccion 2.5.1, las que basica-mente derivan de la combinacion de las ecuaciones de Navier-Stokes, continuidad masica,adveccion-difusion, y una ecuacion de estado que relaciona la densidad con la salinidad,temperatura y sedimento suspendido. En el modelo RMA-10 las fuerzas de friccion, elefecto de Coriolis y la tension del viento en la superficie tambien son representadas.

El modelo RMA-10 puede ser utilizado para la simulacion de situaciones que poseenuna dependencia del tiempo, ası como aplicado a la resolucion de problemas estaciona-rios.

Ademas de ser utilizado en el IMFIA para realizar diversos estudios preliminares deltransporte de sedimentos en el Rıo de la Plata, el modelo RMA-10 ha sido aplicado conexito en varios escenarios [213]. Entre otras se destacan las aplicaciones realizadas en laBahıa de San Franciso, en el puerto de New York, en la Bahıa Galveston y en el Rıo St.Lawrence [225].

Adicionalmente a las diversas capacidades de descripcion del modelo RMA-10, quepor si solas ya lo situan como una opcion sumamente ventajosa con respecto a otros mo-delos, es de destacar que se cuenta con una herramienta especıfica para la visualizacionde sus resultados, desarrollada entre los anos 2003 y 2004 en el marco de un proyecto degrado en Ingenierıa en Computacion [204] conjunto entre el InCo y el IMFIA referentea visualizacion cientıfica. Durante el trabajo se implemento una herramienta informati-ca de visualizacion y exploracion de grandes volumenes de informacion, con aplicaciondirecta para el manejo de los resultados de simulaciones numericas realizadas con elmodelo RMA-10.

2.5.1. Ecuaciones del modelo RMA-10

El modelo matematico del RMA-10 se obtiene partiendo de las ecuaciones presen-tadas en la Figura 2.2 de la Seccion 2.3, aplicando una aproximacion hidroestatica a lacomponente vertical de la Ecuacion 2.3. Como se considera la estratificacion vertical, ladensidad varıa con la profundidad, obteniendose la Ecuacion 2.7 en la cual a representaa la elevacion y h a la profundidad total.

δp

δz+ ρg = 0→ p =

∫ a+h

a(ρg)dz (2.7)

Por otra parte, si se integra la Ecuacion 2.4 en la direccion vertical en toda laprofunidad se puede obtener una ecuacion independiente de la velocidad vertical w. Enbase a esta transformacion y tomando la Ecuacion 2.7, el conjunto de ecuaciones de laSeccion 2.3 se tranforma en el conjunto de ecuaciones presentadas en la Figura 2.3.

El esquema de solucion del modelo RMA-10 resuelve en primer lugar las componenteshorizontales de la velocidad, la salinidad y la profundidad del agua. Luego por separadoresuelve la componente vertical de la velocidad a partir de la ecuacion de continuidadoriginal 2.4. De esta forma el modelo resuelve el sistema considerando no acoplada dichaecuacion y la utiliza separadamente para calcular los valores de la velocidad verticalw, considerando solamente la continuidad local. Con este fin, la Ecuacion 2.4 se derivarespecto a la coordenada z transformandose en una ecuacion sujeta a las condicionesde borde especıficas de superficie y fondo. Para resolver estas ecuaciones se utilizanlos valores de u y v determinados en todo el dominio en la primer parte del paso deresolucion. Los valores determinados de w de esta forma son utilizados en la siguiente

Page 21: PEDECIBA INFORMATICA´ - fing.edu.uy

2.5 El modelo RMA-10 13

ρ(δu

δt+ u

δu

δx+ v

δu

δy+ w

δu

δz)− δ

δx(εxx

δu

δx)− δ

δy(εxy

δu

δy)− δ

δz(εxz

δu

δz) +

δp

δy− Γx = 0(2.8)

ρ(δv

δt+ u

δv

δx+ v

δv

δy+ w

δv

δz)− δ

δx(εyx

δv

δx)− δ

δy(εyy

δv

δy)− δ

δz(εyz

δv

δz) +

δp

δy−Γy = 0 (2.9)

∫ a+h

a(δu

δx+

δv

δy)dz + us

δ(a + h)δx

− ubδa

δx+ vs

δ(a + h)δy

− vbδa

δy+

δh

δt= 0 (2.10)

δs

δt+ u

δs

δx+ v

δs

δy+ w

δs

δz− δ

δx(Dx

δs

δx)− δ

δy(Dy

δs

δy)− δ

δx(Dz

δs

δz)− θs = 0 (2.11)

ρ = F (s, t) (2.12)

Figura 2.3: Ecuaciones del modelo matematico del RMA-10

iteracion para calcular u, v, h y s. Las principales variables dependientes del modelo sonentonces las componentes horizontales de la velocidad u y v, la profundidad del agua hy la salinidad s.

Luego se aplica una transformacion geometrica vertical definida por las Ecuaciones2.13, 2.14 y 2.15.

x = x (2.13)y = y (2.14)

z = a + (z − a)(b− a)

h(2.15)

Se utiliza una ecuacion de estado empırica para describir la relacion entre la densidad,la temperatura y la concentracion de sedimento suspendido.

Las ecuaciones finales se obtienen al incluir las distintas condiciones de borde. Enla Tesis de Fosatti [111] se presenta el desarrollo completo de la ecuaciones del modeloRMA-10 aplicado al Rıo de la Plata.

2.5.2. Descripcion funcional del RMA-10

Como se presenta anteriormente en la seccion, en la formulacion del modelo RMA-10 las ecuaciones diferenciales son resueltas numericamente utilizando la formulacionestandar del paradigma de elementos finitos, Galerkin residual [111]. El Anexo B pre-senta una breve descripcion de la aplicacion de los elementos finitos en su formulacionde Galerkin tal como utiliza el RMA-10.

Las tecnicas de resolucion utilizando elementos finitos por lo general son compu-tacionalmente mas costosas que los metodos clasicos como los de diferencias finitas. Sinembargo, poseen la ventaja de poder representar contornos que incluyan formas muyirregulares de manera adecuada y de poder lidiar en forma sencilla con diferentes nivelesde discretizacion en las distintas zonas del dominio.

Page 22: PEDECIBA INFORMATICA´ - fing.edu.uy

14 Modelado numerico del Rıo de la Plata

Para la representacion del dominio los MEF poseen la capacidad de utilizar en for-ma conjunta elementos de distinto tamano y/o forma, segun las caracterısticas de lafrontera y la necesidad de mayor precision en determinadas zonas. Esta cualidad evitala implementacion de modelos encajados, donde secuencialmente se incrementa el nivelde resolucion en diferentes etapas, y cambios de coordenadas, para poder representarformas irregulares, tecnicas usualmente aplicadas en los modelos basados en diferenciasfinitas.

Otra caracterıstica importante del modelo RMA-10 es que su implementacion re-suelve las ecuaciones dinamicas mediante un esquema puramente implıcito, que tiene lagran ventaja practica de admitir pasos de tiempo relativamente grandes, aun cuandose trabaja con una configuracion de estado dinamico y se este utilizando mallas de altaresolucion. Esta cualidad permite, entre otras cosas, realizar la simulacion de ciclos demarea y variaciones rapidas de las condiciones de contorno en tiempos muy inferiores aotras estrategias.

Para la generacion de la grilla, el modelo permite definir en forma conjunta paraun plano elementos isoparametricos lineales, triangulares y cuadrilateros. Para trabajaren tres dimensiones, se utiliza una aproximacion lineal en la altura, sobre los elementosanteriormente definidos.

Cuando se trabaja con el modelo en su version tridimensional es necesario especi-ficar en los archivos de entrada la cantidad de capas con las que se quiere realizar lasimulacion numerica [169]. Esta cantidad se puede definir uniformemente para todo eldominio de resolucion o especificar la cantidad de capas para cada uno de los elementosdefinidos en el plano horizontal. Esta ultima opcion permite modelar el dominio condistintos niveles de discretizacion vertical, pudiendo hacerlo dependiente de la profun-didad o condiciones de flujo de las distintas zonas del domino. Esto posibilita disminuirla cantidad de elementos utilizados, haciendo que disminuyan en forma importante loscostos computacionales, pero manteniendo niveles de precision razonables.

Para el calculo de los nodos de los distintos elementos, el modelo RMA-10 utilizaaproximaciones cuadraticas para representar las componentes de la velocidad y las va-riaciones en la salinidad, temperatura o sedimento suspendido. Esta estrategia contrastacon la utilizada por los metodos de diferencias finitas que generalmente lo realizan deforma lineal.

Las condiciones de borde del dominio se pueden especificar tanto en terminos dedescarga como de velocidad o de nivel del agua. En caso de ser necesario, se puedeutilizar una estructura vertical de la densidad.

Otro aspecto relevante y distintivo del modelo RMA-10 es el tratamiento que realizade la viscosidad turbulenta horizontal. Mientras que la mayorıa de los modelos bidi-mensionales integrados en profundidad trabajan con un unico valor del coeficiente deviscosidad turbulenta, el modelo RMA-10 permite la utilizacion de diferentes estrate-gias. Entre las opciones, la mas simple es trabajar con un unico valor del coeficientede viscosidad turbulenta, el cual es constante. Una segunda opcion es trabajar con elmodelo de viscosidad propuesto por Smagorinsky [220]. La incorporacion de este tipode estrategias de turbulencia permite un mejor modelado de las zonas donde existenvortices de gran escala, como los generados aguas debajo de pilares de puente, islas, oen zonas de separacion del flujo.

Page 23: PEDECIBA INFORMATICA´ - fing.edu.uy

2.5 El modelo RMA-10 15

La implementacion computacional del modelo RMA-10 se compone de diversosmodulos codificados en lenguaje Fortran estandar. La mayorıa de las rutinas estan codifi-cadas en Fortran 77 mientras que algunos pocos modulos agregados recientemente estanimplementados en Fortran 90. Se dispone de versiones probadas del modelo para variossistemas operativos, entre los que se destacan Linux, Unix y Windows (98 y NT).

En las primeras etapas del trabajo de esta Tesis, cuando se realizo el estudio delsoftware RMA-10, no se dispuso de documentacion desde el punto de vista de disenoinformatico (documentos de diseno, documentos de arquitectura u otros). Por lo tanto,se realizo un analisis con estrategias de ingenierıa inversa para obtener un diseno a muyalto nivel del modelo. El Algoritmo 1 presenta un pseudo-codigo simplificado que explicael funcionamiento del modelo.

En el resto de la seccion se presentan las caracteristicas mas importantes de las ruti-nas principales del modelo RMA-10. Un listado completo de las rutinas que componen elmodelo, con una breve descripcion de funcionamiento de cada una de ellas, ası como unaexplicacion del manejo de archivos de entrada/salida que posee el sistema, se presentaen el Anexo C.

La primera etapa del algoritmo (paso 1 del Algoritmo 1) corresponde a una compo-nente de inicializacion del modelo. En esta etapa primero se obtienen distintos parame-tros globales, como son la cantidad maxima de pasos y el criterio de convergencia delmetodo de resolucion de sistemas no lineales, la cantidad de pasos de tiempo que se de-sea simular, etc. GETBC, GETH, GETMET e INITL son algunas de las rutinas utilizadas paraobtener las distintas condiciones de borde y generar las estructuras auxiliares necesariaspara las siguientes etapas. Por otra parte, la rutina GETGEO se encarga de la lectura dela grilla.

La malla utilizada puede ser generada con diversos programas, las herramientascomunmente utilizadas son el RMA-1 o el RMAGEN [31].

Algoritmo 1 Pseudo-codigo del RMA-10.1: Inicializacion2: for 1:cantPasosSimulacion do3: Calcular estructuras auxiliares4: for 1 : cantPasosNewton-Raphson do5: Resolver sistema lineal para calcular aporte6: Calcular velocidades verticales7: Desafectar ecuaciones que cumplen condicion de convergencia8: end for9: Modificar las condiciones iniciales

10: Registrar resultados11: end for12: Finalizacion

Tambien se dispone en la etapa de inicializacion de una rutina (OPTIM) capaz derenumerar los nodos de los distintos elementos, sin necesidad de regenerar la grilla. Pararealizar esta tarea se utiliza el conocido algoritmo Reverse Cuthill McKee (RCM) [88]que busca minimizar el ancho de banda de las matrices que se forman al ensamblar loscoeficientes de los distintos nodos. El tiempo de calculo y las necesidades de almacena-miento del modelo RMA-10 depende en forma directa del resultado del reordenamiento

Page 24: PEDECIBA INFORMATICA´ - fing.edu.uy

16 Modelado numerico del Rıo de la Plata

obtenido por el algoritmo RCM1.Luego, como se puede observar en el Algoritmo 1 entre los pasos 2 y 11, el programa

se compone de un ciclo. En cada iteracion del ciclo se efectuan los calculos necesariospara realizar la simulacion de un paso de tiempo. Esto implica resolver un sistema deelementos finitos no lineal que utiliza de condicion inicial el resultado calculado por elpaso anterior del ciclo, exceptuando el primer paso en el cual se utilizan los valoresingresados en la etapa de inicializacion.

Las ecuaciones del planteo de elementos finitos del modelo se componen principal-mente de un sistema de ecuaciones no lineales. Como se puede apreciar en los pasos 4al 8 del Algoritmo 1, para la resolucion de estos sistemas de ecuaciones no lineales seutiliza la estrategia de Newton-Raphson.

El metodo de Newton-Raphson es un proceso iterativo que implica la resolucion deun sistema de ecuaciones lineal en cada paso de la iteracion, el metodo se detalla masadelante en la seccion. El modelo RMA-10 permite la definicion del criterio numerico deconvergencia de la iteracion de Newton-Raphson, ası como establecer la cantidad maximade iteraciones permitidas del metodo, siendo ambos valores parametros obtenidos en laetapa de inicializacion.

Debido al costo computacional que implica la resolucion de grandes sistemas lineales,por lo general es la etapa de los MEF mas importante en cuanto a tiempo de computo[207]. El modelo RMA-10 utiliza la estrategia de desafectar de la iteracion de Newton-Raphson en pasos intermedios, aquellas ecuaciones que cumplan el criterio numerico deconvergencia, especificado en el Algoritmo 1 por el paso 7. Por esta razon, el tamano delas matrices a resolver durante la iteracion normalmente va disminuyendo a partir delsegundo paso del ciclo. La rutina DRPOUT es la encargada de determinar las ecuacionesque se pueden desafectar.

En las distinas aplicaciones dinamicas de elementos finitos, es necesario realizar encada paso de tiempo (o en cada paso de la iteracion de Newton-Raphson si se trabaja conun problema no lineal) el calculo de los valores de los nodos de los distintos elementos dela malla. Estos valores se utilizan para la generacion, luego de una etapa de ensamblado,de la matriz de rigidez. En el modelo RMA-10 se dispone de la rutina FRONT (y variassub-rutinas) para realizar estas tareas que se corresponden al paso 5 del Algoritmo 1.

Para efectivizar el calculo de los coeficientes se utilizan distintas sub-rutinas. Entiempo de ejecucion y dependiendo del tipo/forma del elemento que se este procesando,se determina cual sub-rutina utilizar. A continuacion se describen las distintas rutinasdisponibles.

COEF1: Se aplica a elementos unidimensionales.

COEF2: Se aplica a elementos bidimensionales interpolando en profundidad.

COEFV: Se utiliza para elementos bidimensionales, cuando se aplica promedio enlos laterales.

COEF3: Se utiliza en elementos tridimensionales.

SURCOF: Se aplica a elementos unidimensionales y en bidimensionales de la frontera.

1Tambien se puede utilizar otro programa para reordenar la numeracion de la grilla, lo importantees que el ancho de banda de las matrices sea mınimo.

Page 25: PEDECIBA INFORMATICA´ - fing.edu.uy

2.5 El modelo RMA-10 17

Para el calculo de los valores de los nodos es necesario efectuar integrales. Estecalculo se realiza en forma numerica, utilizando una cuadratura de Gauss. Los metodosde integracion utilizando cuadraturas de Gauss se detallan mas adelante en el capıtulo.

La estrategia de resolucion de los sistemas lineales utilizada es el metodo frontalpresentada por Irons en 1970 [158] y extendida para matrices no simetricas por Hooden 1976 [156].

Los metodos frontales y sus sucesores los metodos multifrontales [104] son versio-nes de la eliminacion Gaussiana, relacionadas directamente con los elementos finitos ydisenadas en un principio para disminuir las necesidades de memoria de las estrategiasestandar de resolucion. Su estrategia de trabajo que se basa en ir cargando a memoriala matriz de a trozos (los distintos frentes), permitio a las distintas implementacionesde los metodos resolver grandes sistemas lineales en el hardware disponible en los anos70. En el Capıtulo 4 se profundiza sobre los metodos frontales y multifrontales.

En base a los calculos realizados por la rutina FRONT en el paso 6 del Algoritmo 1 larutina VRTVEL calcula las velocidades verticales.

Por ultimo, el paso 12 del Algoritmo 1, corresponde a una etapa de finalizacion dela aplicacion. Algunas de las tareas que se destacan en esta etapa son el registro deresultados finales, la liberacion de recursos computacionales y la clausura de archivos.

Metodo de Newton-Raphson

El metodo de Newton-Raphson para la resolucion de un sistema de ecuaciones nolineales implica un proceso iterativo. En cada paso del proceso es necesario la resolucionde un sistema de ecuaciones lineales.

La forma de trabajo del metodo es la siguiente: se busca la raız α ∈ Rn de un sistemade n ecuaciones con n incognitas f(x) = 0; suponiendo el funcional f diferenciable en elpunto x(i) entonces (aplicando el desarrollo de Taylor) se cumple la Ecuacion 2.16.

f(x) = f(x(i)) + Jf (x(i)).(x− x(i)) + o(|x− x(i)|) (2.16)

Despreciando el infinitesimo o(|x−x(i)|) en la Ecuacion 2.16 e imponiendo que f(x) =0 se obtiene la Ecuacion 2.17, luego despejando f(x(i)) se tiene la Ecuacion 2.18.

0 = f(x(i)) + Jf (x(i)).(x− x(i)) (2.17)

−f(x(i)) = Jf (x(i)).(x− x(i)) (2.18)

Denominando J (i) = Jf (x(i)) a la matriz jacobiana de f en x(i), que se suponeinvertible, entonces la version matricial de la iteracion del metodo queda definida porlas ecuaciones 2.19 y 2.20.

x(i+1) = x(i) + δi (2.19)δi solucion del sistema lineal J (i)δi = −f(x(i)) (2.20)

Page 26: PEDECIBA INFORMATICA´ - fing.edu.uy

18 Modelado numerico del Rıo de la Plata

En otras palabras, el metodo de Newton-Raphson consiste en una iteracion en la cualse va incrementando un valor inicial dado. Dicho incremento se obtiene de calcular lasolucion del sistema lineal de ecuaciones compuesto por la matriz jacobiana del funcionaly como termino independiente se utiliza el valor del funcional, ambas funciones evaluadasen el ultimo valor conseguido. De esta forma se obtiene un valor aproximado de lasolucion en cada iteracion. Este procedimiento se repite hasta que se cumpla ciertacondicion.

Existen diversas maneras para establecer el criterio de parada de la iteracion, losmas utilizados son predefinir la cantidad de pasos a iterar y evaluar la diferencia entrelos resultados obtenidos en dos iteraciones sucesivas, iterando hasta que la diferencia seamenor que cierto valor predeterminado.

Cuadraturas de Gauss

Los metodos de analisis numerico para realizar el calculo de la integral de una funcion,en forma general se basan en aproximar la integral por una sumatoria ponderada dealgunos valores funcionales, como se presenta en la Ecuacion 2.21. Las cuadraturas deGauss son un caso particular en el cual la funcion no se evalua en puntos equidistantes.Tanto la posicion de los puntos de evaluacion como los pesos se determinan de forma depoder integrar, con n puntos, en forma exacta polinomios de grado 2n− 1, con n ∈ N .

∫ b

af(x)dx = w1f(x1) + w2f(x2) + .... + wnf(xn) (2.21)

Para determinar la posicion de los puntos de evaluacion y los pesos el metodo generaun sistema de ecuaciones (por lo general no lineal) de tamano 2n, siendo las variablesdel sistema los n puntos de calculo y los n pesos. Por ejemplo, si se trabaja con 2 puntosse aproxima el valor de la integral de una funcion f(x) como se especifica en la Ecuacion2.22, se obtiene el sistema que se presenta en las ecuaciones de la Figura 2.4.∫ 1

−1f(x)dx = w1f(x1) + w2f(x2) (2.22)

∫ 1

−11dx = 2 = w1 + w2∫ 1

−1xdx = 0 = w1x1 + w2x2∫ 1

−1x2dx =

23

= w1x21 + w2x

22∫ 1

−1x3dx = 0 = w1x

31 + w2x

32

Figura 2.4: Regla de Gauss de dos puntos

Si bien en la regla de Gauss puede ser costoso determinar los puntos de calculo, elmetodo tiene como principal ventaja con respecto a otros metodos de integracion (porejemplo Newton-Cotes) que puede integrar en forma exacta polinomios de mayor grado.

Page 27: PEDECIBA INFORMATICA´ - fing.edu.uy

2.6 Conclusiones 19

2.6. Conclusiones

En el capıtulo se presentaron algunas caracterısticas del Rıo de la Plata y se detallandiversas razones por las cuales es de suma importancia disponer de herramientas quepermitan predecir el comportamiento hidrodinamico del rıo.

Por estos motivos, en los ultimos anos en el IMFIA se ha trabajado en busca deuna herramienta idonea, habiendose desarrollado distintos modelados numericos del Rıode la Plata. En un principio se construyeron modelos basados en la utilizacion de es-quemas de diferencias finitas. Posteriormente, en un trabajo conjunto del IMFIA y elCeCal se aplicaron tecnicas de paralelismo mediante la implementacion del paradigmade descomposicion de dominios.

Con el fin de obtener mejoras significativas en diversas caracterısticas del modelado,se realizo el pasaje del paradigma de diferencias finitas al de elementos finitos. Para estatarea se escogio uno de los modelo de simulacion computacional de flujo a superficielibre en tres dimensiones ampliamente utilizado como lo es el modelo RMA-10, modelopropuesto por I. King, y desarrollado bajo el paradigma de elementos finitos utilizandola formulacion de Galerkin residual.

De la descripcion de la aplicacion del modelo RMA-10 al Rıo de la Plata se puedededucir que si bien las cualidades del modelo de descripcion, su capacidad de trabajarcon grilla irregular y con distintos tipos de elementos y el tratamiento que realiza dela viscosidad turbulenta, situan al RMA-10 como una de las mejores opciones para elmodelado de estuarios, el tiempo de calculo que insume al incrementar el numero deelementos utilizados lo perjudica notoriamente al compararlo con otras opciones. Estacaracterıstica resulta una importante limitante al momento de su utilizacion.

Lo expuesto en el parrafo anterior resalta la necesidad de mejorar el desempenocomputacional del modelo RMA-10 y en ese camino es que parece razonable la aplica-cion tecnicas de alto desempeno para disminuir los tiempos de ejecucion asociados a laresolucion de problemas de gran porte.

Page 28: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 29: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 3

Tecnicas de programacion de altodesempeno

3.1. Introduccion

En los ultimos anos, la evolucion de la computacion ha sido explosiva. Sin embargo,la ambicion de los usuarios de resolver cada dıa problemas mayores y con mayor precisionen los resultados implica que los constantes aumentos en la capacidad de computo noalcancen a satisfacer las necesidades. Como consecuencia, las tecnicas de alto desempeno,que se orientan a mejorar el tiempo de ejecucion y de uso de recursos computacionales,han emergido como una opcion interesante.

En este capıtulo se resenan distintas estrategias utilizadas para mejorar el desempenocomputacional de programas de computadoras. Se presentan estrategias automaticas deoptimizacion de codigo, diversas ideas para desarrollar mejoras en algoritmos que traba-jan en forma serial y un breve relevamiento de las tecnicas disponibles de programacionparalela.

Realizar un relevamiento exaustivo y generico sobre estrategias de alto desempenoes una tarea que supera al alcance de este trabajo, por lo que se opto por realizar unresumen de los conceptos mas cercanos al tema de la Tesis, la mejora del desempeno delos modelos numericos del Rıo de la Plata. El mismo criterio se utilizo al momento derelevar las distintas arquitecturas de hardware existentes, privilegiando las opciones dehardware que por su disponibilidad y costo resultan cercanas para el entorno de trabajoen Facultad de Ingenierıa, y sin concentrarse en arquitecturas inaccesibles, disminuyendode este modo el esfuerzo de la tarea de relevamiento.

El capıtulo se estructura de la forma que se detalla a continuacion.En primer termino se presentan distintas opciones disponibles en el compilador Intel

Fortran 7, utilizado actualmente para el codigo del modelo RMA-10. Luego se presentaun compendio de estrategias de alto desempeno para programas secuenciales, ası comoun breve relevamiento de las diferentes arquitecturas de hardware paralelas, las estra-tegias y las herramientas mas utilizadas para el diseno y desarrollo de aplicacionesparalelas-distribuidas. A continuacion se puede encontrar el relevamiento de tecnicas dealto desempeno aplicadas a los modelos numericos y en particular se estudia su aplica-cion a la resolucion de sistemas lineales. Por ultimo, se presentan las conclusiones delcapıtulo.

21

Page 30: PEDECIBA INFORMATICA´ - fing.edu.uy

22 Tecnicas de programacion de alto desempeno

3.2. Optimizacion automatica de codigo

La gran dificultad de disenar e implementar de una forma correcta codigos optimos,y en particular codigos que utilicen estrategias de paralelismo, ha motivado la busquedade mecanismos que realicen la tarea de optimizar y paralelizar en forma automaticao semi-automatica. Las estrategias automaticas por lo general se han centrado en lautilizacion de traductores de codigo mediante la ejecucion de tareas especıficas en laetapa de compilacion [70].

Cada vendedor ofrece en su traductor/compilador diversas estrategias de optimi-zacion. Entre las mas comunes se pueden encontrar opciones para la reduccion de laprecision al momento de realizar determinadas operaciones aritmeticas, para el reor-denamiento de secciones del codigo, para la eliminacion de codigo muerto, para sacarprovecho de particularidades del procesador utilizado y para la paralelizacion automaticade loops.

Debido a la importancia del tema, existe una gran cantidad de trabajos en el area.Por esta razon, el enfoque de este trabajo no se baso en realizar un estado del arte sobreoptimizacion automatica de codigo, sino que se opto por realizar un breve resumen,a modo de ejemplo, de algunas de las opciones presentes al momento de trabajar conel compilador Intel Fortran 7 para computadores con procesadores Pentium IV Xenon,compilador y procesadores utilizados en la actualidad para trabajar con el modelo RMA-10 en el IMFIA.

El compendio que se presenta a continuacion se basa en el Manual de Usuario delcompilador [157].

En forma general, el compilador permite elegir entre cuatro niveles de optimizacion,que se detallan en el Cuadro 3.1, y dispone de tres opciones para restringir en formaparticular algunas estrategias de optimizacion.

Un aspecto determinante en la eficiencia computacional de programas numericos esla precision aritmetica con que se realizan las operaciones de punto flotante. Dado quehabilitar la optimizacion puede causar perdida de precision, el compilador permite, me-diante la bandera −mp, asegurar la precision declarada limitando el problema. Tambiense dispone de la bandera −mp1, que es una opcion intermedia, buscando mantener laprecision pero sin ocasionar grandes impactos en la performance.

Otra opcion del compilador es especificar con cuantos bits se desean realizar lasoperaciones, utilizando la bandera −pci32|64|80.

Una idea comunmente utilizada para la optimizacion de codigo, principalmente cuan-do se trabaja con codigos numericos, es el intercambio de las operaciones de division porla multiplicacion del inverso, disminuyendo ası los tiempos de computo al costo de po-sibles perdidas en la precision aritmetica. El compilador, mediante la bandera precdiv,permite deshabilitar el intercambio.

La bandera −rcd permite controlar el redondeo efectuado en las operaciones de puntoflotante. Su utilizacion deshabilita la opcion de truncar durante las operaciones inter-medias, luego de las cuales el resultado se transforma a entero. La opcion de control delredondeo permite lograr importantes mejoras del desempeno, pero como contrapartidaes posible perder muchas cifras significativas en los resultados. Una opcion intermedia selogra con la utilizacion de la bandera −fpport que utiliza redondeo en las asignacionesy casteos que se realizan.

Page 31: PEDECIBA INFORMATICA´ - fing.edu.uy

3.2 Optimizacion automatica de codigo 23

Banderas Efectos Utilidades-O,-O1,-O2 Uso de registros globales.

Eliminacion de redundancia.Reordenamiento de instrucciones.Eliminacion de codigo muerto.Renombre de variables.Propagacion de constantes.Optimizacion de recursiones.Software pipelining.Loop unrolling.

Tıpicamente utilizado para mejorarla performance en aplicaciones ente-ras.

-O3 Prefetching.Scalar-replacement.Transformacion de loops.Modificacion del acceso a memoria.Paralelismo de instrucciones.Pipelining por software.

Similar al -O2 pero mas agresi-va. Mayor analisis de dependencia.Como contrapartida, necesita ma-yor tiempo de compilacion. Gene-ralmente utilizado en aplicacionescon gran cantidad de operaciones enaritmetica de punto flotante.

-O0 Deshabilita las opciones -O, -O1, -O2 y -O3.

Evita efectos no deseados produci-dos por las optimizaciones.

-mp Restringe la optimizacion en cuantoa precision en punto flotante.

Evita perdidas de precision en ope-raciones de punto flotante.

-nolib inline Deshabilita la expansion inline delas funciones intrınsecas.

Evita aumentos en el tamano delcodigo.

Cuadro 3.1: Niveles de optimizacion.

Bandera Procesador-tpp1 Itanium processor.-tpp2 Itanium 2 processor.-tpp5 Pentium processor.-tpp6 Pentium Pro, Pentium II, Pentium III processors.-tpp7 Pentium 4 and Xeon(TM) processors.

Cuadro 3.2: Adaptacion a los distintos procesadores.

Page 32: PEDECIBA INFORMATICA´ - fing.edu.uy

24 Tecnicas de programacion de alto desempeno

El compilador permite optimizar el codigo objeto generado para su ejecucion en unadeterminada familia de procesadores. En el Cuadro 3.2 se resumen las distintas opcionesdisponibles con tal fin.

Tambien se puede especializar el codigo para su posterior ejecucion en una determi-nada arquitectura, utilizando extensiones propietarias de los procesadores. Si se deseaasegurar que el programa generado pueda ser ejecutado en otros procesadores, se disponede la bandera −axI|M |K|W, mientras que si se desea especializar el codigo (corrien-do el riesgo de afectar la portabilidad), se puede utilizar −xI|M |K|W, especializandopara los procesadores segun la siguiente lista:

I: procesadores Pentium Pro, Pentium II.

M: tecnologıa de procesadores Pentium con MMX.

K: procesadores Pentium III.

W: procesadores Pentium 4 y Xeon.

Si se desea realizar una optimizacion interprocedural (Inter-Procedural Optimization- IPO), para permitir que el compilador analice el codigo para determinar cuando sepuede sacar partido de las optimizaciones descritas en el Cuadro 3.3, se deben habilitarlas banderas −ip o −ipo. Con −ip solo se busca en aquellas funciones que se encuentranen un mismo archivo, mientras que con −ipo se le indica al compilador que tiene querealizar la busqueda en todos los archivos del sistema.

Una de las principales optimizaciones realizadas por el optimizador interproceduralson las llamadas expansiones inline, que consisten en remplazar las llamadas a rutinaspor el codigo mismo.

Optimizacion EfectosExpansion de funciones inline. Disminuye la cantidad de llamados a fun-

ciones.Propagacion de constantes. Mejora el desempeno, evitando intercam-

bios de valores constantes.Eliminacion de codigo muerto. Disminuye el tamano del codigo.Pasaje de argumentos por registros. Mejora del desempeno de las llamadas a

procedimientos/funciones.Sacar los codigos invariantes de losloops.

Evita realizar operaciones inutiles.

Cuadro 3.3: Optimizacion interprocedural.

Otro tipo de optimizaciones que realiza el compilador son las de alto nivel (High-levelLanguage Optimizations – HLO). Este tipo de optimizaciones explotan las construccio-nes del codigo fuente, focalizandose comunmente en los loops. Algunas de las accionesdisponibles son: transformacion de loops (eliminacion de variables, propagacion de cons-tantes, etc.), fusion de loops, loop unrolling (pegar el codigo del loop varias veces),data prefetch (se carga en forma anticipada en la memoria cache la informacion que sepresume va a ser utlizada), etc.

Page 33: PEDECIBA INFORMATICA´ - fing.edu.uy

3.3 Tecnicas de alto desempeno secuencial 25

Al momento de programar una aplicacion existen diversas practicas que puedenpermitir al optimizador realizar su tarea de una mejor forma. Algunas de las practicasmas recomendadas involucran minimizar la utilizacion de variables globales, evitar eluso de controles de flujo complejos y no usar la instruccion cast.

Para computadoras paralelas que disponen de memoria compartida, el compiladorde Fortran Intel 7 brinda tanto la opcion de paralelizacion automatica como la de pro-gramacion paralela utilizando la API (Application Program Interface) de OpenMP. Laversion de la API de OpenMP utilizada por el compilador es la 2.0.

La paralelizacion automatica se habilita mediante la bandera −parallel. Esta op-timizacion transforma porciones del codigo permitiendo que se utilicen estrategias demulti-threading al momento de la ejecucion. En especial, se paralelizan loops que noposean dependencias de datos entre los distintos pasos y que su tamano presupone quela paralelizacion pueda redundar en ventajas.

La Seccion 3.4.3 profundiza en detalles sobre la API OpenMP.

3.3. Tecnicas de alto desempeno secuencial

Existen diversos aspectos a tener en cuenta al momento de mejorar el desempenocomputacional de programas trabajando sobre una maquina secuencial. En general, setrata de consideraciones que tambien sirven como punto de partida al momento de de-sarrollar una aplicacion paralela, ya que en cada unidad de proceso se estara ejecutandocodigo en forma secuencial.

Aun asumiendo que un algoritmo ha sido programado correctamente, en muchoscasos su tiempo de ejecucion puede ser reducido implementando pequenos cambios.Entre las sugerencias mas comunes para lograr este objetivo se destacan disminuir elacceso a almacenamiento externo, evitar el abuso de utilizacion de memoria en formadinamica y tratar de explotar la localidad de datos.

Otra idea sugerida normalmente consiste en procurar una buena explotacion de lascapacidades de optimizacion automatica que disponga el compilador a ser usado. Comose presento en la seccion anterior, las posibilidades de optimizacion automaticas se venlimitadas por una serie de circunstancias, de modo que si se conocen las estrategiasseguidas por el compilador es posible implementar algoritmos que aprovechen al maximolas capacidades de optimizacion. Un claro ejemplo de explotacion de las capacidades deoptmizacion automatica es eliminar en la medida de lo posible las dependencia de datosen los loops.

Sin embargo, si se desean realizar mejoras mas finas no siempre es inmediato identi-ficar las modificaciones a realizar. En muchos casos la tarea implica conocer detalles delos lenguajes que se esten utilizando, como conocer que instrucciones son mas costosas,como se accede a los datos, la forma que se encuentran implementadas determinadasinstrucciones basicas, etc. Como ejemplo puede mencionarse lo que ocurre con el accesoa la memoria en las estructuras matriciales: en el lenguaje C/C++ el acceso se realizapor filas, mientras que en lenguaje Fortran el acceso se realiza por columnas. Esto ge-nera que algoritmos con implementacion optima en C/C++ pierden su optimalidad sise codifican sin cambios en Fortran y viceversa.

Page 34: PEDECIBA INFORMATICA´ - fing.edu.uy

26 Tecnicas de programacion de alto desempeno

Un tema sumamente ligado al desempeno computacional es la utilizacion de estruc-turas de datos. El diseno de estructuras de datos adecuadas para la resolucion de losdistintos problemas es una de las areas de investigacion en la que se pueden encontrarideas muy ingeniosas, existiendo propuestas que logran excelentes niveles de compromisoentre la cantidad de almacenamiento utilizado y el orden de las operaciones de acceso alos datos.

El diseno de una estructura de datos adecuada implica poseer un gran conocimientodel problema a resolver y las limitaciones de recursos a utilizar. En el trabajo de Aho,Garey y Ullman [56] se pueden encontrar diferentes propuestas de diseno de estructurasde datos para problemas genericos.

Otro aspecto a tener en cuenta es que en muchas ocasiones los movimientos dedatos entre los distintos niveles de jerarquia de memoria (registros, memoria cache,memoria RAM) implican costos en tiempo de computo similares o incluso superiores alos de efectuar operaciones aritmeticas. Por esta razon, generalmente no es suficientecon lograr un algoritmo que reduzca la cantidad de operaciones aritmeticas efectuadas,si las operaciones involucran una considerable cantidad de movimientos de datos. Esteconcepto es determinante en los algoritmos numericos, especialmente cuando se trabajacon matrices dispersas o ralas.

3.3.1. Medidas de despempeno secuencial

Una primera aproximacion intuitiva para medir el desempeno de los computadoraspuede obtenerse mediante la observacion de la velocidad del procesador o del numerode instrucciones que es capaz de realizar (medida en MIPS [55]), evaluando los millo-nes de instrucciones por segundo que puede realizar el equipo. Sin embargo, los MIPSno aportan mucha informacion al momento de comparar dos computadores que poseendistintas arquitecturas, que disponen de distintos niveles/capacidades de memoria y/outilizan buses de distintas velocidades, etc. Esta circunstancia es debida a que un al-goritmo puede insumir menor cantidad de tiempo de computo en un computador quealcanza menos MIPS que otro computador debido a diferencias en otras caracterısticasdel hardware.

Una forma mas completa y ampliamente utilizada es medir el desempeno de unacomputadora, evaluando cuantos millones de operaciones de punto flotante puede reali-zar en un segundo (Mflops). Sin embargo, los Mflops no se pueden utilizar como medidaabsoluta, dado que no todas las operaciones consumen el mismo tiempo de procesa-dor y entre distintos vendedores puede haber grandes diferencias entre los tiempos deejecucion de las distintas operaciones.

Para intentar solucionar esta problematica se estila emplear alguno de los bench-mark de uso publico. Un benchmark es un conjunto de programas que se utilizan paracomparar el rendimiento de distintos computadores. Entre los benchmarks de uso masextendido en la comunidad se encuentran el HINT [146] propuesto por Gustafson ySnell y el Linpack Benchmark [8] propuesto por Dongarra. Este ultimo benchmark em-plea subrutinas de algebra lineal, como la descomposicion LU utilizando tecnicas depivoteo, para evaluar el desempeno de los computadores.

Page 35: PEDECIBA INFORMATICA´ - fing.edu.uy

3.4 Tecnicas de programacion paralela/distribuida 27

En muchas situaciones o estudios, el interes radica en la evaluacion de distintosalgoritmos o estrategias para la resolucion de un mismo problema. Si durante el estudio seemplea siempre la misma computadora para realizar las ejecuciones, utilizar la evaluaciondel tiempo de computo como medida de desempeno es una opcion valida. El tiempoefectivo de computo permite realizar una evaluacion en forma global, independiente desi el algoritmo utiliza mas instrucciones, mas operaciones de punto flotantes, menosmovimientos en la memoria, etc.

3.4. Tecnicas de programacion paralela/distribuida

A medida que la tecnologıa ha avanzado, la intencion de resolver problemas cadavez mayores o con mayor precision en los resultados ha generado un ciclo en el cual elcrecimiento de necesidad de computo tiene un comportamiento exponencial. Si bien losdisenadores de computadoras buscan lograr disenos cada vez mas potentes, mejorandolos diversos componentes, existen variadas limitaciones a la mejora del hardware. Lasprincipales limitaciones son economicas, ya que en muchos casos para mejorar el desem-peno de los computadores es necesario incorporar componentes que implican un costosuperior. Tambien existen limitaciones de caracter fısico, relacionadas principalmentecon la velocidad de las senales y la disipacion del calor generado por los circuitos, cadavez mas reducidos y mas veloces.

Ante la problematica expuesta, se dispone de la opcion de trabajar con diversasunidades de computo para resolver un problema en forma coordinada. Existen diversasestrategias para abordar esta idea, tanto desde el punto de vista de las arquitecturas delas computadoras como de las tecnicas de diseno de los programas.

3.4.1. Arquitecturas de computadoras paralelas

Desde 1960 con la computadora CDC 6600 (de 1 Mflops de poder de computo), conla cual se comenzo a utilizar el termino de supercomputadora, el avance de las distintaspropuestas de hardware ha sido notable.

Las opciones de arquitecturas paralelas disponibles son diferentes tanto desde elpunto de vista del poder de computo de los equipos, como de las conexiones entreelementos de procesamiento y el uso de memoria, etc, teniendo cada una de las opcionescaracterısticas y bondades especıficas.

La amplitud de opciones de hardware implica la existencia de multiples clasifica-ciones basadas en diferentes criterios de las computadoras paralelas. A continuacion sepresentan las clasificaciones mas difundidas.

Una de las taxonomıas mas difundida es la propuesta por Flynn [110], que utilizacomo criterio para clasificar a las computadoras el manejo que realizan de las instruc-ciones y de los datos. Se distingue ası entre instrucciones unitarias (SI) y multiples (MI)y datos unitarios (SD) o multiples (MD). Clasificando la taxonomıa a las computadorasparalelas en cuatro clases como se puede apreciar en el Cuadro 3.4.

Page 36: PEDECIBA INFORMATICA´ - fing.edu.uy

28 Tecnicas de programacion de alto desempeno

DatosSD MD

SI SISD SIMDInstrucciones MI MISD MIMD

Cuadro 3.4: Clasificacion de Flynn.

Dentro de la categorıa SISD se encuentran las computadoras seriales comunes, cuan-do trabajan en forma independiente de otras computadoras. En las categorıas SIMD yMIMD se encuentran generalmente las computadores paralelas utilizadas en la actuali-dad.

SIMD: Todos los procesadores reciben las mismas instrucciones y operan sincroni-camente, pero las unidades de proceso trabajan aplicando las instrucciones sobredistintos datos.

MIMD: Las distintas unidades de proceso pueden ejecutar simultaneamente dife-rentes instrucciones y sobre distintos conjuntos de datos, trabajando asincronica-mente.

Otra clasificacion muy utilizada se basa en el tipo de memoria que se dispone. Estataxonomıa reconoce dos clases, las computadoras que utilizan memoria distribuida y lasque disponen de memoria compartida. Algunos autores mencionan una tercera opcionque nuclea a las propuestas hıbridas.

Multiprocesadores de memoria compartida: Todos los procesadores comparten ytienen acceso a la memoria del sistema. Normalmente estan asociados con lossitemas SIMD en la taxonomıa de Flynn. Un ejemplo de computador pertenecientea esta categorıa es el equipo Sun SPARCenter 2000, utilizado durante este proyectoy del cual se pude obtener mas informacion en el trabajo de Ares [69].

Multiprocesadores de memoria distribuida: En cada unidad de proceso se disponede una fraccion de la memoria total del sistema, que solo puede ser accedida porla unidad propietaria. La categorıa tambien se denomina computadores paralelosdebilmente acoplados. Un ejemplo tıpico de equipos pertenecientes a esta categorıautilizado durante el trabajo son los clusters beowulf [49], clusters de performanceescalable en base a hardware de bajo costo, software libre y que utilizan redesprivadas para interconectar los nodos.

En la actualidad, una taxonomıa ampliamente extendida propone agrupar los compu-tadores paralelos en base a las grandes clases de arquitecturas. A continucion se describenlas cinco categorıas.

Page 37: PEDECIBA INFORMATICA´ - fing.edu.uy

3.4 Tecnicas de programacion paralela/distribuida 29

Equipos con coherencia de cache pero de acceso a memoria no uniforme (cc-NUMA). Estos computadores estan compuestos por varios procesadores, cada unode los cuales posee su propia memoria. La caracterıstica que distingue a los compu-tadores de esta clase es que disponen de direccionamiento de memoria global.

Multiprocesadores simetricos (SMP). Son equipos con varias unidades de procesa-miento muy acopladas (comparten gran cantidad de los recursos). Tambien suelendenominadarse sistemas de grano grueso.

Computadores masivamente paralelos (MPP). Son equipos que poseen varias uni-dades de procesamiento poco acopladas, en los que cada procesador accede a supropia memoria. Tambien son denominados sistemas de grano fino.

Clusters de PCs. Constituyen un conjunto de computadores personales (PCs) in-terconectados mediante una red.

Sistemas distribuidos. Se componen de un conjunto de equipos autonomos conecta-dos mediante una red. En este caso los equipos pueden ser heterogeneos en cuantoa arquitectura, velocidad, sistema operativo, etc.

Si bien las clasificaciones descritas anteriormente son suficientes a los efectos de estetrabajo, se destaca que existen otras clasificaciones en base a distintos criterios; hay taxo-nomıas que se basan en la forma de trabajo de los procesadores de los equipos (sincronicao asincronica), otras utilizan el poder de computo de las unidades de proceso para laclasificacion. Otros criterios de clasificacion se basan en la cantidad de procesadores, latopologıa de la red de interconexiones que utilizan las unidades de procesamiento, etc.[55].

3.4.2. Programacion paralela

Como se comento en la seccion anterior, existen diversas arquitecturas de compu-tadoras. En consecuencia, existen distintos programas que aplican tecnicas de progra-macion paralela, adaptandose mejor a diferentes tipos de arquitecturas de computadorasparalelas.

La metodologıa de la programacion paralela consiste en dividir el problema para suresolucion simultanea en diferentes unidades de proceso en forma cooperativa. Para efec-tuar la division del problema existen dos estrategias principales, las cuales se presentana continuacion.

Descomposicion funcional: en este caso se dividen las distintas tareas a realizarpor el algoritmo entre las distintas unidades de proceso disponibles.

Descomposicion de datos: en esta estrategia todas las unidades de proceso dispo-nibles realizan las mismas tareas, pero solamente trabajan sobre un subconjuntode los datos del problema.

Ademas de las dos estrategias de division de problemas descritas anteriormente, enla practica son ampliamente utilizadas las estrategias hıbridas, las cuales mezclan ideasde ambas estrategias originales.

Page 38: PEDECIBA INFORMATICA´ - fing.edu.uy

30 Tecnicas de programacion de alto desempeno

Al igual que lo que ocurre con las estrategias de division de problemas, las distintastecnicas de programacion paralela se encuentran muy ligadas al hardware a utilizar. Acontinuacion se presentan las dos principales tecnicas de programacion paralela y surelacion con las arquitecturas de computadoras.

Pasaje de mensajes: cada unidad de proceso trabaja en forma independiente delresto. Las unidades de proceso se comunican y coordinan entre sı mediante elpasaje de mensajes explıcitos. Esta tecnica es muy utilizada cuando se trabajasobre hardware poco acoplado, tıpicamente clusters.

Memoria compartida: en este caso todas las unidades de proceso trabajan en for-ma coordinada a traves de las sincronizaciones efectuadas mediante accesos a lamemoria central. Esta tecnica es tıpicamente utilizada sobre multiprocesadores dememoria compartida.

Al trabajar en programacion paralela aparecen, ademas de los factores a controlarcuando se trabaja con algoritmos seriales, varios factores a tener en cuenta para obtenerun buen rendimiento. Entre ellos se destacan los factores que se presentan a continuacion.

Balance de carga: refiere a dividir en forma equitativa el trabajo a realizar entrelas distintas unidades de proceso. La distribucion sera igualitaria si todos los ele-mentos de procesamiento tienen la misma capacidad (arquitectura homogenea) ose debera distribuir el trabajo en forma proporcional a las capacidades de computosi se trata de computadores heterogeneos.

Buen nivel de concurrencia: se trata de lograr que todas las unidades de procesotrabajen en forma concurrente, evitando tiempos superfluos de espera y sincroni-zacion.

Bajo overhead: se intenta minimizar las tareas extras necesarias para realizar eltrabajo en paralelo, por ejemplo minimizando comunicaciones, sincronizaciones,trabajo redundante, etc.

3.4.3. Herramientas para el diseno e implementacion de aplicacionesparalelas

Ası como existen diversas arquitecturas de computadores paralelos y se dispone dediferentes tecnicas de programacion paralela, tambien se han implementado diversas he-rramientas para desarrollar programas bajo el paradigma de la programacion paralelay distribuida. Por muchos anos la tendencia por parte de los distintos vendedores dehardware fue desarrollar herramientas particulares para sus equipos, existiendo inclusoherramientas disenadas para un determinado modelo de computador. Sin embargo, enlos ultimos anos la tendencia gradualmente fue cambiando hacia el desarrollo de he-rramientas genericas, buscandose cada dıa un mayor equilibrio entre buenos valores dedesempeno computacional y portabilidad.

Page 39: PEDECIBA INFORMATICA´ - fing.edu.uy

3.4 Tecnicas de programacion paralela/distribuida 31

Por lo general, las caracterısticas de las distintas herramientas estan asociadas a al-guna tecnica particular de programacion paralela. Por este motivo, en muchas ocasionesla eleccion de una herramienta u otra se ve condicionada por la tecnica de programaciona utilizar, que a su vez generalmente se encuentra supeditada por el hardware dispo-nible. Esto implica que es imposible afirmar en forma general que una herramienta esmejor que otra, siendo necesario evaluar en cada ocasion y dependiendo del hardwarey estrategia de programacion paralela a utilizar, cual herramienta se adapta mejor a laresolucion de un problema.

En este trabajo se resenan las caracterısticas mas importantes de algunas herramien-tas de uso general que pueden ser de utilidad para el objetivo del proyecto. En lo queresta de la seccion se presentan: el estandar MPI (Message Passing Interface) [45], laAPI OpenMP [37] y los lenguajes Fortran 90 y 95 ası como los compiladores HPF (HighPerformance Fortran) [190].

El estandar MPI

Existen diversas bibliotecas para la programacion paralela que implementan el para-digma de pasaje de mensajes. Muchas de las grandes companıas que venden computado-ras paralelas han creado sus propias bibliotecas. En forma frecuente estas bibliotecas seencuentran disenadas y optimizadas para un tipo de arquitectura de hardware en par-ticular, siendo en general de difıcil comprension, poca legibilidad y muy poco portablesa otras arquitecturas.

En las ultimas decadas se ha incrementado la tendencia de privilegiar la claridadde programacion y la portabilidad ante la eficiencia computacional lograda explotandoparticularidades del hardware propietario. La posible disminucion de la eficiencia se vecompensada por una vision de largo plazo, dado que esta estrategia permitira reutili-zar codigos, facilitar el intercambio de experiencias, etc., teniendo como consecuenciaindirecta la mejora de la eficiencia.

El estandar MPI [45] fue definido en el ano 1992 por un conjunto de desarrolladoresde software y aplicaciones cientıficas en coordinacion con importantes empresas (IBM,Intel, nCube) para proporcionar un modelo de biblioteca implementable sobre una va-riada gama de arquitecturas multiprocesador, para el diseno de aplicaciones distribuidasportables y eficientes.

En el estandar se intenta recoger diversas caracterısticas deseables de las diferentesbibliotecas orientadas a pasaje de mensajes desarrolladas con anterioridad a la definicionde MPI, en particular se reproduden varias caracterısticas de la biblioteca PVM (ParallelVirtual Machine) [115], ampliamente utilizada en los comienzos de la decada de 1990 enel ambiente cientıfico.

Entre las principales caracterısticas del estandar MPI se destacan:

Trabaja sobre la idea de que el paralelismo es explıcito, en el sentido de que esdefinido y controlado en su totalidad por el programador.

Utiliza como unico mecanismo de comunicacion entre procesos el pasaje de men-sajes explıcito.

Page 40: PEDECIBA INFORMATICA´ - fing.edu.uy

32 Tecnicas de programacion de alto desempeno

Tiene como objetivo principal el trabajo sobre plataformas de memoria distri-buida, aunque incluye primitivas para el trabajo sobre plataformas de memoriacompartida.

Considera como mecanismo de diseno de programas el modelo SIMD, aunque poseela capacidad de adaptarse de manera sencilla para desarrollar programas bajo unmodelo MIMD.

El estandar completo de MPI posee aproximadamente 130 funciones que permiten lasincronizacion, comunicacion y trabajo cooperativo. Entre las tareas que implementanlas funciones de MPI, se destacan el envio de mensajes (bloqueantes o no), la recepcionde mensajes, las operaciones de broadcasting (envio de mensajes de un proceso a todoslos restantes procesos), las operaciones de reduccion (recolectar y reducir datos de variosprocesos en uno) y la obtencion de informacion del proceso y entorno de ejecucion. Engeneral se trabaja sobre un unico comunicador, es decir un unico conjunto de procesosactivos. Las seis funciones principales y una breve descripcion de sus funcionalidades sepresentan en el Cuadro 3.5.

Instruccion DescripcionMPI INIT Iniciliza MPI.

MPI COMM SIZE Retorna el numero de procesos de uncomunicador.

MPI COMM RANK Retorna el identificador dentro de uncomunicador del proceso.

MPI SEND Envıa un mensaje.MPI RECV Recibe un mensaje.

MPI FINALIZE Finaliza MPI.

Cuadro 3.5: Funciones principales de MPI.

Existen diversas implementaciones del estandar MPI para trabajar con el lenguajeC y para las distintas variantes de Fortran. Dos de las implementaciones mas difundidasde MPI que fueron utilizadas durante el trabajo son: MPICH [35, 137, 136] de ArgonneNational Laboratory (ANL) [40] de Estados Unidos y la implementacion denominadaLAM MPI [32, 82, 222].

La API OpenMP

Los computadores multiprocesadores de memoria compartida tienen larga data. Ensus comienzos, cada una de las companıas que las fabricaban contaba con diversas bi-bliotecas para facilitar la programacion paralela. De esta manera, se hacıa inviable lamigracion de programas desarrollados en computadores de un vendedor a computado-res de otro, e incluso en muchas ocasiones la carencia de portabilidad se presentabaentre equipos de un mismo vendedor. El exito del estandar MPI por un lado y el re-novado interes por las computadoras de memoria compartida impulsaron a un grupode instituciones, fabricantes de computadoras y empresas vendedoras de compiladores adesarrollar un estandar para programacion sobre memoria compartida.

Page 41: PEDECIBA INFORMATICA´ - fing.edu.uy

3.4 Tecnicas de programacion paralela/distribuida 33

En el ano 1997 se presento la API de OpenMP, Open (abierto en ingles) por lainteroperabilidad y MP de MultiProcesador.

El diseno de la API posee como principales caracterısticas ser portable, escalabley relativamente simple para el desarrollo de programas paralelos tanto para pequenascomputadoras como para equipos de gran porte. En cuanto a las tecnicas de programa-cion cubiertas, OpenMP fue pensada primordialmente para implementaciones utilizandotecnicas de memoria compartida.

Actualmente se encuentran desarrolladas distintas versiones de la API para los len-guajes C/C++ y los distintos Fortran. El consorcio OpenMP Architecture ReviewBoard, integrado por un importante numero de companıas de hardware y software,organismos estatales, centros de investigacion, etc., es quien se encarga de mantener yactualizar el estandar.

Instruccion DescripcionPARALLEL/END PARALLEL Define una region de codigo para eje-

cutar en paralelo.DO/END DO Permite ejecutar el cuerpo de un ciclo

en paralelo.SECTIONS/END SECTIONS Permite especificar diferentes secciones

de codigo para que se ejecuten cada unade ellas por threads distintos.

CRITICAL/END CRITICAL Define a una seccion de codigo comomutuo-excluyente.

Cuadro 3.6: Principales instrucciones de OpenMP.

Las instrucciones mas importantes de la API OpenMP y una breve descripcion desus funcionalidades se destacan en el Cuadro 3.6, mientras que tres de las funciones masimportantes de la API y su descripcion se presentan en el Cuadro 3.7. Sobre las diversasopciones para trabajar con la API OpenMP se puede profundizar en el trabajo de Naruset al. [194].

Funciones DescripcionOMP set num threads Especifica la cantidad de threads con

los que se desea trabajar.OMP get num threads Devuelve la cantidad de threads que se

estan utilizando.OMP get thread num Devuelve el identificador del thread en

el cual se invoca.

Cuadro 3.7: Principales funciones de OpenMP.

Page 42: PEDECIBA INFORMATICA´ - fing.edu.uy

34 Tecnicas de programacion de alto desempeno

Los compiladores HPF

El lenguaje Fortran, disenado por IBM en la decada de 1950 y denominado porel acronimo FORmula TRANslation, fue ampliamente utilizado por los cientıficos du-rante las decadas de 1970 y 1980 en sus implementaciones Fortran 66 y Fortran 77.Posteriormente, los lenguajes C y C++ fueron tomando cada vez mas el espacio de losprogramas para problemas cientıficos. Factores como el no disponer de estrategias dealmacenamiento dinamico, la ausencia de portabilidad por el sistema numerico, la im-posibilidad de definir estructuras de datos y funciones recursivas, conspiraron contra lautilizacion de Fortran 77.

Estos inconvenientes llevaron a la comunidad Fortran a intentar mejorar el lenguaje.El esfuerzo se cristalizo en dos etapas: primero con el lenguaje Fortran 90 y luego conla especificacion del Fortran 95.

Los lenguajes Fortran 90 y Fortran 95 agregaron varios conceptos al antiguo Fortran,algunos de los mas importantes se presentan a continuacion.

Mejora de la legibilidad y buen uso. Se incorporaron nuevas instrucciones al len-guaje y se adopto una filosofıa que combate las viejas costumbres que perjudican lalegibilidad, como la declaracion implicita de tipos, utilizacion de variables globalesy la sentencia GOTO.

Capacidad de efectuar operaciones vectoriales, abriendo la puerta a posibles eje-cuciones paralelas.

Permitir el almacenamiento dinamico de memoria. Se incorpora la utilizacion deun heap, para evitar los inconvenientes de usar exclusivamente almacenamientoestatico.

Posibilidad de utilizar funciones y procedimientos recursivas.

Filosofıa orientada a objetos que incorpora los conceptos de abstraccion, oculta-miento y encapsulamiento de datos, herencia y polimorfismo, caracterısticas queaportan a la reusabilidad.

La evolucion de los compiladores Fortran, en conjuncion con la posibilidad crecientede adquirir maquinas paralelas, condujeron a intentar incorporar el paralelismo en formasemiautomatica. Los diversos esfuerzos en tal sentido convergieron en el diseno de laextension del lenguaje High Performance Fortran (HPF).

El High Performance Fortran Forum (HPFF) [46], integrado por diversos actoresdel entorno de la computacion paralela (vendedores de computadoras, desarrolladoresde software, investigadores, etc.), publico la version 1.0 de la especificacion del lenguajeHPF. Luego en noviembre del ano 1994 se publica la version 1.1 y por ultimo en el ano1997 se publica la version 2.0 del lenguaje HPF.

Page 43: PEDECIBA INFORMATICA´ - fing.edu.uy

3.4 Tecnicas de programacion paralela/distribuida 35

Los compiladores HPF trabajan bajo un paradigma SPMD en la taxonomıa de Flynn.La filosofıa semiautomatica del HPF se basa en que el usuario defina las tareas a rea-lizar en paralelo, la estrategia de division de datos a utilizar y en cuantos procesosse ejecutara la aplicacion, mientras que el compilador/traductor se encarga de incluirlas instrucciones necesarias para llevar adelante las comunicaciones entre los distintosprocesos.

En el Cuadro 3.8 se pueden observar las 5 directivas mas importantes del estandarHPF ası como una breve descripcion de su funcionalidad. La especificacion del estandarHPF posee varias instrucciones y funciones que no se han incluido en el Cuadro 3.8. Enel trabajo de Marshall [190] es posible obtener informacion extra sobre el lenguaje HPF.

Instruccion DescripcionFORALL Equivalente al DO, pero las distintas

entradas al cuerpo del ciclo se puedenejecutar en paralelo.

INDEPENDENT DO Permite ejecutar las entradas del DOen paralelo.

PURE Especifica que las instrucciones de unafuncion pueden ejecutarse en paralelo.

EXTRINSIC Permite ejecutar procedimientos queno se encuentran codificados en HPFen paralelo.

DISTRIBUTE Especifica como se distribuyen los da-tos entre las unidades de proceso (de abloques, cıclico o hıbrido).

Cuadro 3.8: Principales instrucciones de HPF.

Todas las funcionalidades que se pueden obtener utilizando un compilador HPFse podrıan desarrollar utilizando en forma conjunta el lenguaje Fortran y la API deOpenMP.

Dentro de los compiladores HPF implementados, dos de los mas difundidos son elADAPTOR y el PGHPF. El ADAPTOR [43] desarrollado en el Fraunhofer-Institutefor Algorithms and Scientific Computing [9] traduce el codigo de HPF a un codigointermedio agregando instrucciones de MPI para realizar las comunicaciones, mientrasque el compilador PGHPF [10] desarrollado por el Portland Group [38] utiliza softwarepropietario para resolver las comunicaciones.

Un aspecto a resaltar de los compiladores HPF es que si bien las especificaciones hanevolucionado incluyendo varias funcionalidades importantes, las distintas implementa-ciones no han acompasado el desarrollo de las especificaciones.

Page 44: PEDECIBA INFORMATICA´ - fing.edu.uy

36 Tecnicas de programacion de alto desempeno

3.4.4. Medidas del desempeno computacional

La evaluacion del desempeno computacional de un programa es una tarea sumamentecompleja. Cuando se trata de medir el desempeno computacional de un algoritmo queutiliza tecnicas de programacion paralela la dificultad es mayor, ya que sumado a lacomplejidad de evaluar un programa serial aparecen nuevas condicionantes como son lostiempos de comunicacion, la sincronizacion, etc. que tienen que ser evaluadas de algunaforma.

Otro aspecto a tener en cuenta al medir el desempeno de algoritmos que ejecutanen paralelo es que en muchas ocaciones el interes se centra en saber cual es la gananciade ejecutarlos en paralelo en relacion con la version serial, estando estos resultadosfuertemente ligados al equipo en el cual se trabaja.

Para evaluar el desempeno computacional de los algoritmos paralelos empleados eneste trabajo se utilizan las siguientes metricas:

el tiempo total de ejecucion, comparando los tiempos de ejecucion de las distintasversiones de un algoritmo en un mismo equipo.

el speedup y la eficiencia computacional, cuya definicion se presenta a continuacion.

Existe otra gran cantidad de metricas para evaluar el desempeno de programas queejecutan en paralelo. Alguna de las mas utilizadas son la escalabilidad, la isoeficiencia yla isovelocidad. Sobre el tema se puede profundizar en el trabajo publicado por Sahni yThanvantri [217].

Speedup y eficiencia de un algoritmo paralelo

Dada una aplicacion que puede ser ejecutada en paralelo, no es una buena opcionutilizar el tiempo de ejecucion como metrica para evaluar las ganancias del paralelismodebido a que el tiempo de ejecucion varia al cambiar el tamano del problema o la cantidadde procesadores que se utilizan. Una solucion a este problema es la utilizacion de lasmetricas speedup y eficiencia computacional.

El speedup absoluto relaciona el tiempo de ejecucion del mejor algoritmo secuencialconocido (mejor en el sentido de tiempo de ejecucion, o sea el mas rapido) con el tiempode ejecucion del algoritmo ejecutando en paralelo. La metrica se define por la expresionde la Ecuacion 3.1, donde Tserial es el tiempo de ejecucion del mejor algoritmo secuen-cial conocido y T (n) representa el tiempo de ejcucion del algoritmo paralelo utilizandon procesos.

S(n) =Tserial

T (n)(3.1)

La definicion del speedup absoluto es poco practica, porque no siempre se conoceel mejor algoritmo serial para resolver un problema, y en caso que este se conozca,en la mayorıa de las ocasiones no se dispone del algoritmo para evaluar su ejecucionen un equipo determinado. Por este motivo, en general suele utilizarse como base dela comparacion el tiempo de ejecucion del algoritmo paralelo trabajando en un unicoprocesador. La medida resultante, denominada speedup algorıtmico, se define mediantela expresion de la Ecuacion 3.2, donde T (1) es el tiempo de ejecucion del algoritmoparalelo ejecutando en un unico procesador.

Page 45: PEDECIBA INFORMATICA´ - fing.edu.uy

3.5 Tecnicas de alto desempeno aplicadas a modelosnumericos 37

S(n) =T (1)T (n)

(3.2)

En ocasiones no solo es importante el valor de speedup para una cantidad determi-nada de procesos, sino que tambien es relevante observar la variacion de la ganancia amedida que crece la cantidad de procesadores utilizados. En este caso se puede utilizar lametrica eficiencia, que corresponde al valor normalizado del speedup, relativo al numerode procesadores utilizados. La metrica se define por la Ecuacion 3.3, y dependiendo delmodo de calcular el speedup se tendra un valor de eficiencia absoluta o de eficienciaalgorıtmica (tambien denominada eficiencia relativa).

E(n) =S(n)

n(3.3)

La situacion ideal al utilizar un algoritmo paralelo es la de lograr el speedup lineal, esdecir al utilizar n procesadores obtener una mejora de factor n en el tiempo de ejecucion.Sin embargo, en ciertos casos particulares es posible obtener speedup superlineal (obtenermejoras de factor superior a n). La situacion habitual es que utilizando un algoritmoparalelo sobre n procesadores se obtiene una mejora de factor menor que n, situacionconocida como de speedup sublineal.

Existen varios motivos que impiden el crecimiento lineal del speedup, entre los masnotorios pueden citarse las demoras introducidas por las comunicaciones y el overheadproducido en el trabajo de sincronizacion. Estos factores inclusive pueden producir queel uso de mas procesadores sea contraproducente para el objetivo de lograr una mejoraen el desempeno de la aplicacion paralela.

Otro aspecto a tener en cuenta al desarrollar programas paralelos es la presenciade tareas no paralelizables, siendo el tiempo de ejecucion de las tareas seriales unacota inferior del tiempo total de ejecucion del algoritmo paralelo. El enunciado de esteconcepto es conocido como ley de Amdahl [58].

3.5. Tecnicas de alto desempeno aplicadas a modelosnumericos

En general, las tecnicas de resolucion de modelos numericos implican la utilizacionde una importante cantidad de poder de computo. No resulta extrano entonces que elcampo de investigacion en los metodos numericos sea una de las areas con mayor aportea la computacion de alto desempeno. Como consecuencia, es posible afirmar que existemucho mas que una relacion entre la computacion de alto desempeno y los modelosnumericos, se puede ver como una especie de simbiosis en el que uno crece en base alotro y viceversa.

Page 46: PEDECIBA INFORMATICA´ - fing.edu.uy

38 Tecnicas de programacion de alto desempeno

La extension del area de aplicacion de las tecnicas de trabajo paralelo-distribuidoa los metodos numericos dificulta realizar un estudio en forma generica del tema. Sinembargo, una gran cantidad de aplicaciones numericas poseen como parte fundamentaly mas costosa en tiempo de computo la resolucion de sistemas lineales. Dentro de estaclase de aplicaciones se enmarcan, entre otros, los metodos de elementos finitos. Debidoa las razones mencionadas anteriormente, el relevamiento de tecnicas de alto desempenoaplicadas a modelos numericos que se presenta en esta seccion se focaliza sobre lastecnicas de resolucion de sistemas lineales, sin incluir el estudio de otras estrategiasnumericas que de antemano no son de interes directo para el proyecto.

A continuacion se presenta un breve resumen de las metodologıas de resolucion desistemas lineales, luego se exponen algunas estrategias para la aplicacion de paralelismoa las tecnicas de resolucion de sistemas lineales. Por ultimo, se presentan algunas de lasbibliotecas mas difundidas en el area del algebra lineal numerica.

3.5.1. Sistemas Lineales

Una gran cantidad de metodos numericos involucran la resolucion de sistemas li-neales. Por este motivo, los metodos de resolucion de sistemas lineales concentran graninteres en la comunidad cientıfica y han tenido amplio desarrollo.

En muchas ocasiones el tamano de los sistemas lineales con los que se trabaja haceimposible manejarlos en forma convencional. Si la matriz posee una gran cantidad deceros se pueden utilizar estrategias de almacenamiento disperso para resolver el pro-blema. Las tecnicas de almacenamiento disperso intentan almacenar en forma eficienteunicamente los coeficientes no nulos del sistema lineal. En el Anexo A se profundizasobre matrices dispersas.

En forma matricial, un sistema lineal se expresa como Ax = b donde A es una matrizcuadrada de dimension n y tanto b como x son vectores columna de dimension n.

Para la resolucion numerica de sistemas lineales suelen utilizarse dos grandes familiasde metodos: los metodos directos y los metodos iterativos.

Los metodos iterativos son tecnicas que intentan aproximar la solucion del siste-ma lineal mediante una sucesion generada iterativamente. Si el metodo convergese obtiene una solucion aproximada del problema, cuyo error satisface algun cri-terio prefijado. Se distingue entre dos clases de metodos iterativos: los metodosestacionarios y los no estacionarios, segun si el valor del paso k de la iteracionsolo depende del valor del paso k − 1 (xk = f(xk−1)) o de varios pasos anteriores(xk = f(xk−1, xk−2, xk−3, ....)), respectivamente. Dentro de los metodos iterativosestacionarios se encuentran por ejemplo los metodos de Jacobi y Gauss-Seidel,mientras que los metodos iterativos no estacionarios incluyen al Gradiente Con-jugado, Mınimos Residuos, Gradiente Biconjugado Cuadrado, etc. Ambas clasesde metodos tienen en general problemas con las matrices mal condiciondas. Pa-ra acelerar la convergencia de los metodos iterativos suelen utilizarse tecnicas depre-condicionamiento, consistentes en pre-multiplicar el sistema a resolver por unamatriz precondicionadora para obtener un sistema equivalente pero cuya resolu-cion sea presumiblemente mas sencilla. Ciertas tecnicas de precondicionamientoson exclusivas para matrices simetricas o definidas positivas, existiendo tambientecnicas de pre-condicionamiento genericas. Los metodos iterativos son muy utili-zados para la resolucion de sistemas lineales que involucran matrices dispersas.

Page 47: PEDECIBA INFORMATICA´ - fing.edu.uy

3.5 Tecnicas de alto desempeno aplicadas a modelosnumericos 39

Los metodos directos poseen como principal caracterıstica que llegan a la soluciondel problema en un numero especıfico de pasos, que es funcion del tamano delsistema a resolver. La mecanica de trabajo por lo general consiste en factorizar lamatriz A para convertir el sistema lineal en otro equivalente pero de resolucion massencilla (operativa similar a la eliminacion gaussiana). Estos metodos consiguen,a menos de errores numericos, la solucion exacta del sistema lineal. Disponen deestrategias para reducir los efectos de los problemas ocasionados por el mal con-dicionamiento de las matrices, como son el pivoteo parcial y el pivoteo completo.Para la resolucion de matrices dispersas utilizando metodos directos es necesariocontrolar la aparicion de nuevos coeficientes no nulos, problema conocido comofill − in.

En el Capıtulo 4 se profundiza en los metodos directos para la factorizacion y re-solucion de sistemas lineales, estudiando con especial enfasis a los metodos frontales ymultifrontales.

3.5.2. Paralelismo para la resolucion de sistemas lineales

Como se menciono anteriormente, las necesidades de poder de computo para resolvermodelos numericos son generalmente muy importantes. Por este motivo, se ha destacadola difusion de las tecnicas de paralelismo en el area. En este sentido, los metodos deresolucion de sistemas lineales no son una excepcion.

En esta seccion se presentan algunas de las estrategias mas difundidas de aplicacionde paralelismo a los metodos de resolucion de sistemas lineales. En una primera etapa sepresentan las aplicaciones de tecnicas de programacion paralela a los metodos iterativosy luego a los metodos directos.

La aplicacion de tecnicas de programacion paralela a los metodos iterativos de reso-lucion de sistemas lineales se da principalmente de dos maneras: efectuando en paralelolas operaciones de cada paso de la iteracion y en menor medida efectuando el precondi-cionamiento en paralelo.

Un ejemplo sencillo de como aplicar las tecnicas de programacion paralela a losmetodos iterativos es el caso del metodo Jacobi paralelo. La version serial del metodo deJacobi se basa en la iteracion xk(i) = 1/A(i, i)(b(i)

∑j 6=i A(i, j)xk−1(j)) y la aplicacion

de paralelismo se basa en resolver en paralelo diferentes bloques de filas, teniendo quesincronizar unicamente el vector x al finalizar el calculo de cada paso de la iteracion.

En los casos de metodos iterativos mas complejos, en los cuales existen dependenciasde datos incluso dentro de cada uno de los pasos de la iteracion, es necesario aplicarestrategias mas complejas de division de datos para lograr buenos desempenos. Algunasde las estrategias mas conocidas son las Red-Black y las Multicolor, que buscan ordenarlos coeficientes de forma de que las dependencias de datos se puedan resolver dentro deun mismo proceso. Sobre estas y otras estrategias de paralelismo aplicadas a los metodositerativos se puede profundizar en el libro de Kumar et al. [134].

Page 48: PEDECIBA INFORMATICA´ - fing.edu.uy

40 Tecnicas de programacion de alto desempeno

El trabajo de Dongarra et al. [96] categoriza los niveles posibles de paralelismo enaplicaciones numericas cuando se trata de la resolucion de sistemas lineales con metodosdirectos. Se reconocen tres niveles que se comentan a continuacion:

A nivel de sistema: cuando se utilizan grandes estructuras de datos, es posible divi-dir el problema en varios subproblemas mas pequenos que seran resueltos en formaindependiente por cada procesador, para luego combinar las distintas solucionesen un pequeno problema de conexion. Un ejemplo tıpico de este nivel de aplicacionde paralelismo surge al resolver problemas mediante el enfoque de descomposicionde dominio.

A nivel de matriz: consiste en la aplicacion del paralelismo en las distintas etapasde resolucion de un sistema lineal.

A nivel de sub-matriz: Cuando se resuelve en paralelo operaciones sobre vectoresimplicadas en la resolucion de los sistemas lineales.

En el Capıtulo 4 se profundiza sobre la aplicacion de paralelismo a los metodosdirectos con especial atencion en las aplicaciones a los metodos multifrontales.

3.5.3. Bibliotecas de uso publico

Al igual que lo ocurrido con las bibliotecas de pasaje de mensajes, en los ultimos anosvarios investigadores han intentado estandarizar la interfase de rutinas frecuentementeutilizadas en aplicaciones numericas. En particular, han intentado ser estandarizadas unaamplia gama de operaciones del algebra lineal, como la multiplicacion de un vector poruna matriz, las operaciones matriz-matriz (sumas, multiplicaciones, etc), la resolucionde sistemas lineales triangulares, etc.

Existen diversos esfuerzos para desarrollar este tipo de bibliotecas, de manera quesirvan de base para futuros sistemas complejos. A continuacion se presenta una breveresena de algunas de las bibliotecas mas difundidas en el area, las cuales fueron utilizadasdurante el proyecto. El relevamiento incluye las bibliotecas BLAS , LAPack , ScaLAPack,PBLAS y BLACS.

Existen multiples bibliotecas de caracterısticas similares a las bibliotecas presentadasa continuacion, ası como esfuerzos exitosos para desarrollar soluciones a problemas masespecıficos. En el repositorio NetLib [2] se encuentra un buen compendio del trabajoen el area, teniendo disponible una amplia gama de bibliotecas, algoritmos y artıculoscientıficos en el area.

BLAS

En 1973, Hanson, Krogh y Lawson [147, 172] dieron cuenta de la necesidad de adop-tar un conjunto de rutinas basicas para problemas de algebra lineal. Pretendıan definirun estandar para las operaciones elementales entre vectores, que permitiera mejorar laclaridad, portabilidad y modularidad de las rutinas numericas, simplificando el mante-nimiento y desarrollo de futuro software.

Page 49: PEDECIBA INFORMATICA´ - fing.edu.uy

3.5 Tecnicas de alto desempeno aplicadas a modelosnumericos 41

La idea tuvo un exito considerable; la biblioteca BLAS (Basic Linear Algebra Sub-programs) fue desarrollada por varias empresas de fabricacion de computadoras, queimplementaron el estandar optimizando las operaciones para la arquitectura de sus equi-pos.

Al correr los anos, con la evolucion de las arquitecturas y en especial con la difu-sion de las computadoras vectoriales, la biblioteca BLAS paso a ser una limitante almomento de mejorar el desempeno de los codigos numericos. Como consecuencia, en elano 1984 comenzo a discutirse la extension de los subprogramas incluidos en la primeraespecificacion de BLAS. Luego de varias reuniones y publicaciones se presento la ex-tension, agregando funciones elementales para las operaciones matriz-vector. Las nuevasfunciones se denominaron BLAS de segundo nivel, reservandose el termino de BLAS deprimer nivel para las funciones originales.

Nuevamente, la evolucion de la tecnologıa, en especial el creciente manejo de losconceptos sobre memoria jerarquica y la difusion de los procesadores de memoria com-partida, motivaron la extension de la biblioteca. Esto debido a que en hardware con estascaracterısticas los BLAS de segundo nivel no desarrollaban un buen equilibrio entre lasoperaciones de punto flotante realizadas y los movimientos de datos entre los distintosniveles de memoria. La extension incluyo operaciones de tipo matriz-matriz, que fuerondenominadas funciones BLAS de tercer nivel.

Los tres niveles de BLAS resuelven multiples operaciones de vectores y varios tiposde matrices (completas, de banda, triangulares) para varios tipos de datos (reales, com-plejos). En el Cuadro 3.9 se presenta en forma general la especificacion de algunas delas operaciones mas representativas de la biblioteca BLAS, clasificadas por nivel, y unabreve descripcion de su funcionalidad. En el trabajo de Dongarra et al. [95] se puedeobtener una descripcion completa de los distintos niveles de funciones de la bibliotecaBLAS.

Una extension sobre los BLAS consistio en dotarlos de la capacidad de ejecutaren paralelo sobre un modelo de memoria compartida. En este sentido existen imple-mentaciones que utilizan estrategias de multi-threading como las presentada por TomasGuignon, denominada BLASTH [223] y la desarrollada por Kazushige Goto disponibleen su sitio web [12].

Otro intento de extension sobre la biblioteca BLAS, aunque en este caso sin muchoexito, fue la creacion de BLAS que trabajen con vectores y matrices dispersas. Algunasimplementaciones son la NIST Sparse BLAS [36] de la division de matematicas y cienciasde la computacion del National Institute of Standars and Technology de Estados Unidosy la implementacion disponible en el repositorio Netlib de Dodson, Grimes y Lewis [52].

LAPack

En el ano 1987 se desarrollo en la Universidad de Tennesse, Knoxville Estados Uni-dos un proyecto para implementar una biblioteca que permitiera la resolucion de losproblemas mas comunes de algebra lineal. El esfuerzo se vio cristalizado en la biblio-teca LAPack [92, 68] (Linear Algebra PACKage), una coleccion de rutinas que incluyefunciones para la resolucion de sistemas lineales, aproximacion de mınimos cuadrados,busqueda de valores propios y de valores singulares.

Page 50: PEDECIBA INFORMATICA´ - fing.edu.uy

42 Tecnicas de programacion de alto desempeno

Nivel Operacion DescripcionNivel 1 x↔ y swap, intercambio de valores.

x← αx multiplicacion de un vector por un escalar.y ← αx + y multiplicacion de un vector por un escalar

mas otro vector.dot← x′y multiplicacion escalar de dos vectores.α← ||x||2 norma 2 de un vector.

Nivel 2 x← Tx multiplicacion de una matriz triangularpor un vector.

y ← aAx + βy multiplicacion de un coeficiente por unamatriz por un vector mas la multiplicacionde otro coeficiente por un vector.

A← αxy′ + A multiplicacion de un coeficiente por unvector por un vector traspuesto mas unamatriz.

A← αxy′ + αyx′ + H multiplicacion de un coeficiente por unvector por un vector traspuesto el mismocoeficiente por el segundo vector por el pri-mer vector traspuesto mas una matriz.

x← T−1x multiplicacion de la inversa de una matriztrianglar por un vector.

Nivel 3 C ← αAB + βC multiplicacion de un coeficiente por unamatriz por otra matriz mas la multiplica-cion de otro coeficiente por otra matriz.

C ← αAA′ + βC multiplicacion de una matriz con su tras-puesta mas otra matriz.

C ← αAB′ + αBA′ + βC suma de la multiplicacion de un coeficientepor una matriz por otra matriz traspusta.

B ← αTB multiplicacion de un coeficiente por unamatriz triangular por otra matriz.

B ← αT ′B multiplicacion de un coeficiente por latraspuesta de una matriz triangular porotra matriz.

Cuadro 3.9: Algunas operaciones definidas en la biblioteca BLAS.

Page 51: PEDECIBA INFORMATICA´ - fing.edu.uy

3.5 Tecnicas de alto desempeno aplicadas a modelosnumericos 43

La biblioteca LAPack se basa en otras dos bibliotecas anteriores de gran suceso en lacomunidad cientıfica, como lo fueron EISPack [4] y LINPack [6]. Como factor a resaltardel nuevo paquete, su diseno se basa en la utilizacion de la biblioteca BLAS para efectuarlas operaciones sobre vectores y matrices elementales. Este hecho permite la portabi-lidad y adaptacion de LAPack a diferentes arquitecturas sin afectar negativamente sudesempeno.

La biblioteca LAPack esta desarrollada en el lenguaje Fortran 77, es de dominiopublico y se puede obtener en el repositorio Netlib [5].

ScaLAPack

El aumento en la utilizacion de computadoras paralelas de bajo costo y en especialaquellas que poseen arquitecturas de memoria distribuida motivo la evolucion de labiblioteca LAPack a una nueva version que utilice tecnicas de programacion paralela,esta nueva biblioteca se denomino ScaLAPack (SCAlable LAPACK). La primera versionfue publicada en el ano 1995 [85].

Una de las principales caracterısticas de la biblioteca ScaLAPack es que su disenoespecifica distintos niveles de abstraccion, buscando encapsular diferentes tareas en di-ferentes componentes. En la Figura 3.1 se puede observar el diseno de la bibliotecaScaLAPack.

Al igual que LAPack, ScaLAPack posee distintas funciones ampliamente utilizadasen el campo del algebra lineal numerica, disponiendo operaciones tales como la descom-posicion LU y la descomposicion QR.

Las rutinas de ScaLAPack estan orientadas a la resolucion por particionamiento enbloques de los datos, de forma de reducir la frecuencia de movimientos de datos entrelos diferentes niveles de la jerarquıa de memoria. Las matrices y vectores se distribuyenentre las unidades de proceso en forma cıclica asumiendo una estructura de comunicacion2D.

PBLAS

Al disenar la biblioteca ScaLAPack se decidio encapsular las operaciones en formadistribuida sobre vectores. En este sentido, y debido a la notable influencia que tuvoen la comunidad cientıfica la biblioteca BLAS, se creo la especificacion de la bibliotecaPBLAS (Parallel BLAS) [86].

La especificacion de la biblioteca PBLAS posee las mismas operaciones que dispone labiblioteca BLAS, pero en este caso las operaciones estan disenadas para ser ejecutadasen paralelo sobre memoria distribuida mediante el paradigma de pasaje de mensajes(MPI, PVM, etc.).

Las operaciones de comunicaciones mediante pasaje de mensajes son resueltas me-diante la invocacion a funciones de la biblioteca BLACS, cuya descripcion se presenta acontinuacion.

En el repositorio Netlib se puede obtener una implementacion de la biblioteca PBLAS[7].

Page 52: PEDECIBA INFORMATICA´ - fing.edu.uy

44 Tecnicas de programacion de alto desempeno

Figura 3.1: Diseno simplificado de la biblioteca ScaLAPack. Tomado del repositorioNetlib [2].

BLACS

El diseno de la biblioteca ScaLAPack especifica que las operaciones de vectores ymatrices en forma paralela son resueltas mediante invocaciones a la biblioteca PBLAS,y para resolver la interfaz entre PBLAS y las bibliotecas de pasaje de mensajes se espe-cifico una capa independiente en la que se encapsulan todas las tareas de comunicacion.Para esta tarea se definio la biblioteca BLACS (Basic Linear Algebra CommunicationSuprograms) [84].

La biblioteca BLACS consta de un conjunto de rutinas para el manejo de pasaje demensajes que son de gran utilidad para realizar operaciones de algebra lineal numericaen paralelo. La biblioteca incluye la especificacion de rutinas de envıo y recepcion demensajes en forma sincronica y asincronica, tanto para realizar la comunicacion de ma-trices y submatrices entre procesadores, como para realizar envıos en forma de broadcasty reducciones globales (sumas, maximo, mınimo, etc.).

En el repositorio NetLib [3] se pueden obtener versiones de la biblioteca BLACSimplementadas para diversas bibliotecas de pasaje de mensaje (MPI, PVM, NX) y coninterfaz para los lenguajes Fortran y C.

Page 53: PEDECIBA INFORMATICA´ - fing.edu.uy

3.6 Conclusiones 45

3.6. Conclusiones

Existe una amplia gama de opciones disponibles al momento de buscar la mejoradel desempeno de un programa, y este capıtulo presenta una resena de las opciones masrelevantes para el proyecto. Es de destacar que cada una de las opciones se encuentrafuertemente ligada a una determinada arquitectura de computador.

En lo referente a la evolucion de las distintas estrategias de alto desempeno, se puedeobservar por un lado la busqueda continua para lograr mejoras en el desempeno de lasdistintas rutinas. Simultaneamente, por otro lado cada vez mas se percibe la busqueda deestandares, sistemas interoperables y especificaciones claras que permitan la reutilizacionde esfuerzos, posibilitando la construccion modular de sistemas mas complejos.

Las estrategias de trabajo utilizando tecnicas de programacion paralela-distribuidageneralmente implican mayores esfuerzos de inversion economica en hardware y laborextra para lograr software que trabaje en forma eficiente. Sin embargo, se posicionancomo la opcion que brinda mayores posibilidades de capacidad de computo y mejora deldesempeno de los modelos numericos, como lo indica la gran cantidad de trabajos en elarea.

Dentro del contexto de hardware de bajo costo, las estrategias de paralelismo dememoria compartida parecen tener mejor rendimiento en ambientes de pocas unidadesde proceso, debido al bajo costo que implican las comunicaciones, mientras que lasestrategias de memoria distribuida muestran mayor capacidad para escalar cuando seutiliza un mayor numero de recursos computacionales.

Page 54: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 55: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 4

Los metodos multifrontales

4.1. Introduccion

En el Capıtulo 3 se presento la importancia que poseen los metodos de resolucionde sistemas lineales para la computacion cientıfica. Cuando se trata de resolver sistemaslineales de grandes dimensiones, no es una buena opcion aplicar los metodos directosdebido a los grandes requerimientos de memoria y poder de computo que demandan. Sinembargo, cuando las matrices a resolver son mal condicionadas los metodos iterativospueden ser difıciles de aplicar. Por estas razones existen diversos trabajos desarrolladoscon el objetivo de minimizar el uso de memoria y tiempo de computo en los metodosdirectos.

Una de las familias de metodos directos que ha experimentado mayor desarrollo enlos ultimas decadas es la de los metodos frontales y multifrontales. El metodo frontal fuepresentado por Iron en el ano 1970 [158], siendo disenado inicialmente para la resolucionde sistemas lineales involucrados en la resolucion de los MEF, en especial para matricessimetricas y definidas positivas. Luego el metodo fue extendido en diversos aspectos entrelos que se destacan la capacidad para resolver cualquier tipo de matriz y la presentacionde los metodos multifrontales.

Debido a la importancia de los metodos multifrontales para la computacion cientıfi-ca, en este capıtulo se describe su funcionamiento. Tambien se ofrece un resumen dela evolucion historica de las tecnicas frontales, las distintas extensiones a las tecnicasmultifrontales, su relacion e influencia en el desarrollo de otros metodos directos de reso-lucion de sistemas lineales y las consecuencias del avance de las tecnicas de optimizacionsobre grafos en los metodos.

El capıtulo se organiza de la siguiente forma. Primero se resumen diversos aspectosde los metodos directos de resolucion de sistemas lineales, profundizando en las tecni-cas de eliminacion gaussiana, la descomposicion LU y la descomposicion de Cholesky.Tambien se ofrece el relacionamiento entre las tecnicas de grafos y los metodos directosde resolucion de sistemas lineales dispersos. A continuacion, se presenta la evolucion delas tecnicas de ordenamiento de los pivotes. Luego, se presentan en detalle las estra-tegias de trabajo frontal y multifrontal, profundizando en la aplicacion de tecnicas deprogramacion paralela a estas estrategias. Posteriormente, se enumeran distintas biblio-tecas disponibles en forma publica que implementan la resolucion de sistemas linealesdispersos. Por ultimo se presentan las conclusiones del capıtulo.

47

Page 56: PEDECIBA INFORMATICA´ - fing.edu.uy

48 Los metodos multifrontales

4.2. Metodos directos de resolucion de sistemas linealesdispersos

En esta seccion se presentan los metodos directos de resolucion de sistemas lineales,con particular atencion en el relacionamiento entre la teorıa de grafos y la factorizacionde matrices dispersas, la evolucion de las estrategias de reordenamiento de filas/columnasy las tecnicas de factorizacion simbolica.

4.2.1. Metodos directos

Dentro de los metodos directos de resolucion de sistemas lineales regulares la tecnicamas conocida es sin duda el metodo de escalerizacion, tambien denominado metodo deeliminacion de Gauss, en homenaje al matematico Karl Gauss (1777-1855) quien propusoel metodo.

La resolucion de sistemas lineales mediante la tecnica de eliminacion gaussiana sedivide en dos etapas:

1. Transformacion de la matriz a resolver en otra matriz equivalente pero con unaestructura mas sencilla (generalmente triangular).

2. Sustitucion (generalmente sustitucion hacia atras).

Considerese un sistema lineal de ecuaciones Ax = b, donde A es una matriz cuadradade dimensiones n×n, b es un vector constante de tamano n y x es el vector incognita detamano n. La etapa de transformacion del metodo de Gauss se puede resolver medianteel Algoritmo 2.

Algoritmo 2 Eliminacion gaussiana.1: for k= 1, n-1 do2: for i = k+1, n do3: z = aik/akk

4: aik = 05: for j = k+1, n do6: aij = aij - zakj

7: end for8: bi = bi − zbk

9: end for10: end for

En el metodo de eliminacion de Gauss, luego de realizar la transformacion de lamatriz original a una matriz triangular, es necesario efectuar la etapa de sustitucionpara obtener el vector solucion x, esta etapa consiste en realizar la operacion xk = bk -∑

akjxj para cada fila, comenzando de la ultima fila si se transformo la matriz originalen triangular superior.

Para resolver conjuntamente varios sistemas lineales de la forma Axh = bh conh = 1..p se puede modificar el metodo para trabajar escalerizando la matriz A y losdiferentes bh simultaneamente. La unica diferencia en el Algoritmo 2 para resolver variossistemas lineales en forma simultanea es en el paso 8 del algoritmo, en caso de resolvervarios sistemas este paso debe reflejar los cambios en los distintos bh.

Page 57: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 49

El metodo de eliminacion gaussiana efectua aproximadamente 13n3 + 1

2n2(p − 1)operaciones de multiplicacion y suma para realizar la transformacion de la matriz originala una triangular, mas aproximadamente 1

2n2 multiplicaciones para realizar la sustitucionpara atras. Si se resuelven pocos sistemas lineales en forma simultanea (p n), lacantidad de operaciones del metodo de Gauss esta dominada por el factor 1

3n3 siendo elorden del algoritmo O(n3).

En el paso 3 del Algoritmo 2 si el coeficiente akk es nulo la eliminacion falla alintentar dividir sobre 0. Ademas, si el coeficiente akk es cercano a 0 el metodo de escale-rizacion puede aumentar los errores numericos al dividir un numero relativamente grandeen valor absoluto sobre uno muy pequeno. Para combatir estos problemas se utilizanlas tecnicas conocidas como de pivoteo o reordenamiento, que consiste en intercambiarfilas/columnas.

Las dos tecnicas de pivoteo mas difundidas son:

El pivoteo parcial, donde se busca en la fila que se esta escalerizando (k) lacolumna c en la que se encuentra el mayor coeficiente en valor absoluto (|ak

kc| =maxj=k..n|ak

kj |) y se intercambian las columnas k y c.

El pivoteo completo, donde se busca en toda la submatriz pendiente de escalerizar(A(k : n, k : n)) el mayor coeficiente (|ak

rc| = maxi,j=k..n|akij |) y se intercambian

las filas k y r y las columnas k y c.

Si la matriz a resolver posee propiedades especiales no es necesario aplicarle estra-tegias de pivoteo. En particular si la matriz es diagonal dominante (‖aii‖ >

∑i6=j ‖aij‖

con j = 1, 2, ..n) o simetrica y definida positiva (A = At y xtAx > 0 ∀x 6= 0), no esnecesario efectuar estrategias de pivoteo.

Existe amplia literatura sobre los temas de precision numerica y las distintas estra-tegias de pivoteo sobre matrices completas. Los trabajos de Wilkinson [226] y Bunch yParlett [81] son referencias del tema.

Otro metodo directo para la resolucion de sistemas lineales ampliamente difundido esla factorizacion LU, en donde la matriz A se factoriza en dos matrices L y U triangularinferior y superior respectivamente, tales que A = LU .

Algoritmo 3 Factorizacion LU.1: for k= 1, n do2: Akk = LkkUkk

3: for i = k+1, n do4: Lik = aikU

−1kk

5: end for6: for j = k+1, n do7: Ukj = L−1

kk Akj

8: for i = k+1, n do9: aij = aij − LikUkj

10: end for11: end for12: end for

Page 58: PEDECIBA INFORMATICA´ - fing.edu.uy

50 Los metodos multifrontales

El metodo LU para la resolucion de sistemas lineales se compone de dos etapas, en unprimer paso se calculan las matrices L y U con un algoritmo del estilo de la eliminaciongaussiana y luego se resuelven dos sistemas triangulares Ly = b y Ux = y.

El algoritmo de factorizacion LU aplicado a matrices completas implica O(13n3) de

operaciones para la etapa de factorizacion y O(n2) operaciones para realizar las dossustituciones.

El metodo LU es una buena opcion cuando se necesita resolver varios sistemas delestilo Axh = bh con h = 1..p, pero los distintos bh no estan disponibles desde el comienzode la factorizacion. En este caso no es posible utilizar la eliminacion gaussiana ya queno se disponen todos los vectores bh, sin embargo si se puede aplicar la factorizacion LUporque el calculo de la matrices L y U se realiza una unica vez y luego se utilizan, amedida que estos esten disponibles, los distintos bh.

En caso de trabajar con matrices que puedan producir resultados no exactos, seutilizan las tecnicas de pivoteo parcial o completo. La aplicacion de las tecnicas depivoteo en la factorizacion LU consiste en multiplicar la matriz a resolver segun laEcuacion 4.1 para el pivoteo parcial y la Ecuacion 4.2 para el pivoteo completo.

PA = LU (4.1)

En caso de pivoteo parcial luego de la descomposicion hay que resolver Ly = Pb yUx = y, mientras que para el pivoteo completo hay que resolver Ly = Pb, Uw = y yx = Qw.

PAQ = LU (4.2)

Si la matriz a resolver es simetrica y definida positiva, se puede utilizar una variantede la factorizacion LU denominada factorizacion de Cholesky.

El metodo de Cholesky factoriza la matriz A en dos matrices LLt, donde la ma-triz L es triangular inferior y Lt su traspuesta (triangular superior). Para realizar lafactorizacion el metodo de Cholesky necesita 1

6n3 operaciones.Existe una variante de Cholesky para el caso de trabajar con matrices simetricas

pero indefinidas, en la cual se descompone la matriz A en LDLt [81].En el Algoritmo 4 se presenta un ejemplo de algoritmo de factorizacion de Cholesky,

en este caso la ejecucion se realiza “in place”, es decir no se necesita almacenamientoextra para las matrices L y Lt, pero como contrapartida se pierde la matriz A original.

Algoritmo 4 Factorizacion de Cholesky.1: for j = 1, n do2: for k = 1, j-1 do cmod(j,k)3: for i = j, n do4: aij = aij - aikajk

5: end for6: end for7: ajj =

√ajj

8: for k = j+1, n do cdiv(j)9: akj = akj/ajj

10: end for11: end for

Page 59: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 51

Existen variantes de los algoritmos presentados anteriormente en la seccion, que sediferencian en el patron de acceso a memoria, es decir en la forma de recorrer la matriza factorizar. Esto se consigue cambiando el orden de los ciclos de los algoritmos presen-tados. Las tres variantes mas difundidas de la factorizacion de Cholesky se describen acontinuacion.

Cholesky por filas. Se recorre la matriz por filas, utilizando para la factorizacionde la fila i-esima las filas antes factorizadas. Es necesario resolver un sistema linealpor cada fila calculada. (orden ijk)

Cholesky por columnas. Se recorre la matriz por columnas, para factorizar lacolumna i-esima se utilizan los coeficientes de las columnas ya factorizadas. Estavariante tambien es denominada left-looking, update retrasado y fan-in. (ordenjki)

Cholesky por sub-matriz, tan pronto como la columna k es computada, se calculansus efectos a las demas columnas. Esta variante tambien es denominado right-looking, update inmediato y fan-out. (orden kji)

En la primera matriz de la Figura 4.1 se puede apreciar la estrategia de acceso amemoria del metodo de Cholesky por filas, en la segunda matriz se presenta la estrategiapor columnas y por ultimo la estrategia por sub-matriz. Las zonas punteadas en la figurasignifican las partes de las matrices que son accedidas durante determinado paso de lafactorizacion, mientras que las zonas coloreadas con gris oscuro son las partes de lasmatrices actualizadas en el mismo paso.

Figura 4.1: Patron de acceso a memoria e la factorizacion de Cholesky por filas, porcolumnas y por sub-matriz.

Existe gran cantidad de trabajos enfocados en la aplicacion de los metodos directos amatrices dispersas. Una aplicacion antigua para matrices no simetricas se puede observaren el trabajo de Eisenstat y Sherman del ano 1973 [109], mientras que un relevamientode los distintos aspectos que implica trabajar con sistemas dispersos se puede leer en elartıculo de Duff [98]. Un ejemplo de la importancia del tema en la comunidad cientıficase puede observar en el relevamiento realizado por Duff en el ano 1976 [98] en el que sereferencian 604 trabajos.

Page 60: PEDECIBA INFORMATICA´ - fing.edu.uy

52 Los metodos multifrontales

En general, al resolver sistemas lineales dispersos se trabaja en varias etapas, segunEisenstat y Sherman [109]. Chang en el ano 1969 [83] fue el primer autor en proponerdividir en tres etapas la factorizacion LU para matrices dispersas:

Factorizacion simbolica, etapa donde se calcula la estructura que tendran las ma-trices L y U .

Factorizacion numerica, etapa en la cual se computan las entradas de las matricesL y U .

Sustituciones, etapa en la que se resuelven los sistemas triangulares.

Los metodos directos de resolucion de sistemas lineales dispersos estan fuertementecondicionados por la aparicion de nuevos coeficientes no nulos durante la factorizacion,problema conocido como problema de fill-in. Debido a este fenomeno, muchos autoresincluyen una etapa preliminar de reordenamiento de filas/columnas como parte de lasbibliotecas. Un ejemplo de esta situacion se puede observar el trabajo de George y Liudel ano 1979 [121].

En lo que resta del capıtulo se asume que las matrices con las que se trabaja sonirreductibles, en caso contrario los conceptos que se exponen se puede aplicar a cadabloque irreductible. Una matriz se dice reductible si se puede separar en distintos bloquesy resolver cada uno de ellos en forma autonoma.

4.2.2. Relacion con la teorıa de grafos

Los grafos son una herramienta ampliamente utilizada para el modelado de depen-dencias en diversas areas de estudio. En los metodos directos de resolucion de sistemaslineales dispersos se utilizan los grafos para representar en forma sencilla la estructurade las matrices dispersas, para modelar la etapa de reordenamiento y para representarla factorizacion simbolica. Uno de los primeros trabajos en aplicar la teorıa de grafos ala factorizacion de matrices dispersas fue el de Parter del ano 1961 [200].

Las herramientas de grafos tambien son utilizadas con frecuencia cuando se apli-can tecnicas de programacion paralela a los metodos directos de resolucion de sistemaslineales.

En esta seccion se resumen los conceptos basicos de la teorıa de grafos utilizados enel area de sistemas lineales dispersos, luego se presentan las estrategias seguidas pararepresentar matrices dispersas y por ultimo se describen alguna de las tecnicas utilizadaspara la modelacion con grafos de la factorizacion numerica.

La aproximacion a la teorıa de grafos que se presenta en esta seccion no es exhaustivay se centra en las herramientas utilizadas para la resolucion de sistemas lineales dispersos.Existe diversa literatura que aborda diferentes aspectos de la teorıa de grafos, duranteel proyecto se utilizo como referencia el libro de Aho et al. [57] en lo concerniente al usode estructura de datos para la implementacion de grafos.

Definiciones basicas de grafos

Un grafo G(V,E) es un conjunto de vertices (o nodos) V = v1, v2, ..., vn y un conjuntode aristas E = (vi, vj). Si el conjunto de aristas es ordenado el grafo de define comodirigido, en caso contrario se denomina grafo no dirigido.

Page 61: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 53

Un grafo etiquetado (por vertices) es un grafo en el cual los vertices tienen asignadosetiquetas. Generalmente se asignan a los vertices valores de 1 a |V |.

Un camino en un grafo del nodo vi al nodo vk se define como una secuencia de aristas(vi, vj), (vj , vl), ...., (vp, vk). Si vi = vk el camino se denomina ciclo. Se dice que un grafoes conexo si existe por lo menos un camino entre todo par de nodos. Una cuerda en uncamino es una arista que une dos vertices no consecutivos.

El grafo G(V,E) se denomina completo si el conjunto de aristas cumple que existeuna arista (u, v) ∈ E para todo u, v ∈ V .

Se dice que H(U,F ) es un subgrafo de G(V,E) si H es un grafo y ademas el conjuntode vertices U ⊆ V y el conjunto de aristas F ⊆ E. Se denomina clique a un sub-grafocompleto.

Se denomina conjunto de vertices adyacentes al vertice v a aquellos vertices queposeen aristas incidentes desde el vertice v. En este trabajo se representa al conjuntode vertices adyacentes de un vertice v mediante AdjG(v). El grado de un vertice v delgrafo G se define como la cardinalidad del conjunto de vertices adyacentes: gradoG(v) =|AdjG(v)|.

Si el conjunto de vertices de un grafo G se puede dividir en dos subconjuntos dis-juntos, y en cada conjunto no existen vertices adyacentes, entonces el grafo G se definebipartito.

Un grafo Cordal es aquel que no posee ciclos sin cuerdas. Un ciclo sin cuerdas es unciclo de largo mayor o igual a 4 sin cuerdas. Sobre las propiedades de los grafos Cordalse puede profundizar en el trabajo de Blair y Peyton [76].

Un arbol es un grafo acıclico en el cual hay un unico nodo raız y cada nodo (exceptola raız) tiene un unico padre.

Representacion de matrices dispersas con grafos

Una matriz dispersa A cuadrada de dimensiones n×n se puede representar medianteun grafo etiquetado dirigido G = (V,E) donde el conjunto de vertices es V = 1..n y elconjunto de aristas se compone de (i, j) si aij 6= 0. En la Figura 4.2 se puede ver unamatriz no simetrica y como representarla utilizando grafos dirigidos.

x x

x

x x

Figura 4.2: Matriz no simetrica y su representacion mediante un grafo dirigido.

Para representar una matriz con estructura simetrica se puede utilizar un grafoetiquetado no dirigido G = (V,E) donde V = 1..n y (i, j) ∈ E si aij 6= 0 (aji 6= 0). Enla Figura 4.3 se puede ver una matriz simetrica y como representarla utilizando grafosno dirigidos.

Page 62: PEDECIBA INFORMATICA´ - fing.edu.uy

54 Los metodos multifrontales

x x x

x x

x x

Figura 4.3: Matriz simetrica y su representacion mediante un grafo no dirigido.

Factorizacion y grafos

El arbol de eliminacion de una matriz simetricas permite describir las dependenciasentre las filas y columnas en la factorizacion de Cholesky. Los nodos del arbol de eli-minacion son enteros entre 1 y n, que representan las columnas (filas) de la matriz. Elpadre de la fila i es el menor j tal que j > i y que el elemento A(i, j) sea distinto decero.

Schreiber [218] presento en su trabajo el arbol de dependencia para las matricessimetricas. Luego Duff y Reid [104] explicaron en forma detallada la utilizacion delarbol en algoritmos de factorizacion. En el artıculo de Liu [182] se puede obtener unrelevamiento de la evolucion y utilizacion del arbol de eliminacion. En la Figura 4.4 sepresenta una matriz simetrica y su arbol de eliminacion.

12

x 3x x 4x x 5

x x 6

Figura 4.4: Matriz simetrica y su arbol de eliminacion.

Gilbert y Liu extiendieron el concepto de arbol de eliminacion de las matrices simetri-cas para matrices no simetricas en su trabajo publicado en el ano 1993 [130]1. La pro-puesta se basa en la utilizacion de dos grafos dirigido acıclicos (directed acyclic graph- DAG) que llaman DAGs de eliminacion (elimination DAG). Los DAGs se obtienenmediante reducciones transitivas [56] de los grafos (dirigidos) asociados a las matrices Ly U . Si se calculan los DAGs de una matriz simetrica se obtiene el arbol de eliminacion.En la Figura 4.5 se puede observar una matriz A no simetrica y las matrices L y Uresultado de factorizarla, en la Figura 4.6 se presentan sus dos DAGs asociados.

1Los mismos resultados son expuestos previamente por los autores en un reporte tecnico del ano 1990[129].

Page 63: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 55

A =

1 x

2x 3 x

x x 4 x

x x 5x x 6

=

12

x 3x x 4x x 5

x x + 6

1 x

23 x

4 x +5 +

6

Figura 4.5: Matriz no simetrica y su factorizacion LU.

Figura 4.6: DAGs de la matriz A de la Figura 4.5.

4.2.3. Ordenamiento

El esfuerzo computacional y el almacenamiento necesario para realizar la factoriza-cion de una matriz dispersa depende fuertemente de la estructura de la matriz. Por estarazon se estila reordenar las filas/columnas de la matriz a factorizar.

Un ejemplo de la situacion descrita en el parrafo anterior se puede observar al utilizarlos metodos de resolucion de sistemas lineales de banda, cuyo costo computacional porlo general depende del ancho de la banda de la matriz a resolver, es decir el max|j − k|tal que aik 6= 0 y aij 6= 0. Reordenando las filas/columnas generalmente puede cambiarel ancho de la banda de una matriz y por ende el costo del metodo de resolucion. Esfacil observar el cambio del ancho de la banda utilizando herramientas de grafos, ya queel reordenamiento se interpreta como la renumeracion de los vertices del grafo asociadoy el ancho de banda se define por max|v1 − v2| : (v1, v2) ∈ E(G).

Los principales objetivos de las estrategias de ordenamiento son minimizar el fill-iny buscar la estabilidad numerica del proceso de factorizacion.

En general, se intenta realizar la etapa de reordenamiento en forma simbolica, esdecir sin contar con los valores de los coeficientes, no permitiendo realizar el estudio dela estabilidad numerica. Por esta razon, la mayor parte del trabajo sobre metodos dereordenamiento se centra en minimizar el fill-in.

La metodologıa de trabajo en forma simbolica posee como gran ventaja que si elinteres es procesar varias matrices con la misma estructura pero con distintos coeficientesse puede efectuar en una unica ocasion el reordenamiento y utilizarlo para todas lasmatrices. Esta problematica es altamente frecuente en el ambito cientıfico, en especialcuando se trabaja con metodos de resolucion de sistemas no lineal del tipo Newton-Raphson.

Page 64: PEDECIBA INFORMATICA´ - fing.edu.uy

56 Los metodos multifrontales

La aparicion de coeficientes no nulos durante la factorizacion se debe a operacionesdel estilo de la que se presenta en la Ecuacion 4.3, en donde el coeficiente aij es cero enla matriz A original y los coeficientes ak

ik, akkk y ak

kj no son cero.

ak+1ij ← ak

ij − akik[a

kkk]

−1akkj (4.3)

En la Figura 4.7 se puede observar la estructura de una matriz A y de la matrizPA resultante de efectuar un reordenamiento. Ademas se presentan las estructuras “inplace” de las matrices L y U que se obtienen al factorizar cada una de las matrices.En este ejemplo se puede apreciar la importancia de obtener un buen ordenamiento defilas/columnas para efectuar menos calculos y utilizar poca memoria.

A =

x x x x x x x x

x x

x x

x x

x x

x x

x x

x x

−→ LU =

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

PA =

x x

x x

x x

x x

x x

x x

x x

x x x x x x x x

−→ LU =

x x

x x

x x

x x

x x

x x

x x

x x x x x x x x

Figura 4.7: Dos ordenamientos de una misma matriz y las estructuras de las matricesLU resultantes de factorizarlas.

Desafortunadamente encontrar el orden de las filas/columnas que genera el mınimofill-in es un problema de optimizacion NP-Completo, en el trabajo de M. Yannakakis delano 1981 [228] se puede obtener la demostracion. Por esta razon, es difıcil la aplicacionde estrategias exactas para resolver el problema, siendo una buena opcion la utilizacionde heurısticas.

Existen dos grandes clases de heurısticas aplicadas al problema de la minimizaciondel fill-in: las estrategias locales (estrategias greedy, bottom-up) y las estrategias globales(top-down).

Page 65: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 57

Estrategias globales

Las estrategias globales de reordenamiento parten del problema en su totalidad y lovan dividiendo en nuevos sub-problemas de ordenamiento, hasta obtener instancias consoluciones triviales.

Uno de los primeros trabajos de reordenamiento fue presentado por Cuthill y McKeeen el ano 1969 [88], cuyo objetivo fue minimizar el ancho de la banda de las matrices. Laestrategia procede por niveles, tomando el vertice v de menor grado y el conjunto L1 =AdjG(v) de vertices adyacentes a v, posteriormente se toma el conjunto L2 compuesto porlos vertices adyacentes a los vertices de L1 que no pertenezcan a L1 y ası sucesivamentehasta completar todos los vertices. En cada nivel se ordenan los vertices en base al menorgrado, asignandoles a los vertices de cada clase numeros correlativos.

George propuso utilizar el ordenamiento inverso de Cuthill McKee y emplear unaforma eficiente de encontrar los nodos perifericos [121]. Luego, Liu y Sherman [185]demostraron que el Cuthill-McKee inverso (Reverse Cuthill-McKee - RCM) obtiene me-jores resultados que la estrategia original.

Otra opcion similar a minimizar el ancho de la banda es la propuesta por King [166]que consiste en minimizar el area de la banda. La propuesta trabaja de la siguiente forma:se numera el vertice con menor grado, luego se dividen los vertices del grafo asociado ala matriz en 3 conjuntos, los vertices eliminados, los adyacentes a los eliminados y losno adyacentes. En cada etapa se numeran los vertices de la segunda particion de formade minimizar la cantidad de vertices de la particion 3 que pasarıan a la particion 2.

Otra lınea de trabajo diferente es la denominada diseccion recursiva (nested dissec-tion) que propuso George en el ano 1973 para numerar grillas de MEF [117]. La esenciadel metodo es recursiva, particionando la grilla por un conjunto divisor (que se numera aposteriori) en partes balanceadas, y a cada parte se le aplica recursivamente la heurısti-ca. En el ano 1978 George y Liu [126] presentaron la diseccion recursiva automatica(automatic nested dissection - AND). El metodo fue extendido en el ano 1979 por Lip-ton et al. [178] y luego por Gilbert en el ano 1980 [127], presentando el metodo diseccionrecursiva generalizado (generalized nested dissection - GND) que se basa en el separador√

n. Un buen relevamiento de los metodos de diseccion recursiva se puede obtener en eltrabajo de Khara et al. [165].

Durante las decadadas de 1970 y 1980 las estrategias globales no fueron muy exitosas,debido a que las estrategias locales logran ordenamientos que implican menos fill-in. Sinembargo, con la difusion de las tecnicas de descomposicion de dominio y la extensionde las aplicaciones de estrategias de paralelismo a los metodos de resolucion de sistemaslineales, las estrategias globales sufrieron un resurgimiento en el campo de investigacion.Este resurgimiento se debe a la capacidad de generar particionamientos de los grafosbalanceados.

El trabajo reciente sobre metodos globales se ha centrado en las tecnicas de particio-namiento de grillas mediante distintas extensiones de los metodos de diseccion recursiva[205, 151, 150, 79, 80, 141]. Generalmente se toman los grafos originales como grafosponderados, donde todos los vertices y aristas poseen peso unitario, luego los gruposde vertices conectados se colapsan en un super-vertice con valor igual a la suma delos pesos. Una vez que el grafo se encuentra lo suficientemente colapsado, se comienzacon el particionamiento, en general usando variaciones de la heurıstica propuesta deKernighan-Lin [164]. Por ultimo, se descompactan las particiones iniciales y se refinan.Algunos de los paquetes disponibles para particionar grafos en forma balanceada son:

Page 66: PEDECIBA INFORMATICA´ - fing.edu.uy

58 Los metodos multifrontales

CHACO [13], Watson Graph Partitioning Package WGPP [142] y el METIS [163].En la Seccion 4.4.1 se profundiza en algunas estrategias de ordenamiento globales

utilizadas para la aplicacion de tecnicas de paralelismo.

Estrategias locales

Las estrategias locales de ordenamiento de filas/columnas van tomando un pivotea la vez en base a la informacion local disponible, actualizando luego el resto de lasub-matriz, para continuar con el calculo del orden de los restantes pivotes.

Entre las heurısticas locales para minimizar el fill-in, el trabajo marcado como elpionero en la literatura es la propuesta de Markowitz del ano 1957 [189]. El metodo fuedenominado fill-in local mınimo (Minimum Local Fill- MF) o deficiencia mınima (mini-mum deficiency). El nombre se debe a que el algoritmo busca en cada paso minimizarla deficiencia, es dedir la cantidad de aristas necesarias para convertir al conjunto devertices adyacentes a un vertice v en un clique, valor que se corresponde con el fill-in aleliminar el vertice v. Se puede demostrar que la heurıstica deficiencia mınima obtieneordenes con mınimo fill-in para grafos Cordal. Si bien los ordenamientos obtenidos condeficiencia mınima son mejores que los obtenidos con otras estrategias locales, el altocosto de computo que implica la heurıstica condiciono su desarrollo. En los ultimos anosalgunos autores han propuesto variantes aproximadas de deficiencia mınima buscandoobtener buenos ordenamientos con un menor costo computacional. Algunos trabajosen este sentido son los de Rothberg y Eisenstat [212] y Reibig [209] que proponen elfill-in local mınimo aproximado (approximate minimum local fill - AMF) y el fill-in lo-cal mınimo promedio (approximate minimum mean local fill -AMMF) y el trabajo deNg y Raghavan [196] en el cual se presenta la heurıstica mınima deficiencia modificada(Modified Minimum Deficiency MMDF).

Tinney y Walker en su trabajo del ano 1967 [224] presentan la contraparte paramatrices simetricas del algoritmo de Markowitz, al que llaman S2. Su propuesta sebaso en estimar el fill-in usando las entradas distintas de cero por fila y por columnade la sub-matriz pendiente de factorizar. La formula para estimar el fill-in en el pivoteaii es (ci − 1) × (ri − 1), siendo ci la cantidad de entradas no nulas en la columna iy ri la cantidad de entradas en la fila i. El producto de estos factores es comunmentedenominado producto de Markowitz.

Ademas, Rose en el ano 1972 [210] presento la interpretacion de la factorizacionutilizando herramientas de grafos, mostrando que la seleccion realizada por el algoritmoS2 es equivalente a elegir el nodo con menor cantidad de aristas incidentes (menor grado)del grafo asociado. Por esta razon al algoritmo de Tinney y Walker se le denomina comoalgoritmo de grado mınimo (Minimum Degree -MD).

En general, al utilizar el criterio de Markowitz en el caso no simetrico por razonesde estabilidad numerica se restringe la seleccion del pivote mediante un umbral definidopor la expresion de la Ecuacion 4.4.

‖akkk‖ ≥ u‖ak

ik‖ donde i ≥ k, 0 < u ≤ 1 (4.4)

Otra tecnica para preservar la estabilidad numerica propuesta por Duff y Koster enel ano 1999 [103] es el preordenamiento para situar las entradas con valores grandesen la diagonal de la matriz. Esta estrategia esta implementada en la rutina MC64 delos laboratorios Harwell [11]. En cuanto a estrategias dinamicas, es decir aquella que seefectuan durante la factorizacion numerica, se destacan las estrategias de 1× 1 y 2× 2

Page 67: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 59

de Bunch y Parlett [81] y la busqueda del pivot restringido a la matriz frontal. En eltrabajo Zlatev de [229] se puede obtener un relevamiento de las tecnicas de pivoteo sobresistemas dispersos e indefinidos.

El pseudo-codigo del algoritmo de grado mınimo se puede observar en el Algoritmo5, donde G denota al arbol de eliminacion, y Gv representa el arbol luego de reflejar laeliminacion del nodo v. El grafo Gv se obtiene borrando el nodo v y todas sus aristasincidentes del grafo G y agregando las aristas necesarias para crear un clique con losnodos adyacentes a v en G.

Algoritmo 5 Pseudocodigo del algoritmo de mınimo grado.while G 6= do

seleccionar el nodo v con menor grado del grafo G y numerarlo.G = Gv.

end while

Es facil observar que si se quiere eliminar el vertice u del grafo G se cumple que:

si los vertices u y v son adyacentes en G:

AdjGu(v) = AdjG(u)⋃

AdjG(v)− v, ugradoGu(v) ≥ gradoG(v)− 1 ≥ gradoG(u)− 1

en caso contrario:

AdjGu(v) = AdjG(v)

gradoGu(v) = gradoG(v)

El Algoritmo 5 no esta completamente definido ya que en cada paso del metodopuede haber varios nodos con mınimo grado y la eleccion por uno u otro nodo afecta losresultados. La disyuntiva es conocido como problema de tie-breaking. Existen diversostrabajos que intentan encontrar estrategias generales para la eleccion de los nodos, al-gunos ejemplos son los trabajos de Duff, Erisman y Reid de 1976 [102] y el de Berman ySchniteger del ano 1990 [75]. Sin embargo, estos trabajos no presentan buenos resultadosmas que para determinados tipos de matrices.

La actualizacion del grafo de adyacencias del Algoritmo 5 posee dos grandes incon-venientes. Por un lado el importante costo computacional que implica y por otro que nopermite predecir la memoria a utilizar, ya que en cada actualizacion se pueden agregarvarias aristas al grafo. Ademas, en cada paso es necesario actualizar el grado de losnodos que aun no se han procesado.

Para solucionar el problema de la prediccion de la memoria a utilizar, se propuso tra-bajar con cliques, mediante la tecnica denominada grafos Cociente (Quotient GraphModel). Varios autores, entre otros Geroge y Liu [123], atribuyen al trabajo de Speel-penning [221] ser el primero en utilizar cliques para representar los grafos de eliminacion.La propuesta se basa en que cada arista del grafo G se representa como un clique detamano dos, luego para eliminar un pivot unicamente es necesario borrar los cliques quecontengan al nodo eliminado y crear un nuevo clique con todos los vertices adyacentes.Esta tarea unicamente implica la union de listas.

Page 68: PEDECIBA INFORMATICA´ - fing.edu.uy

60 Los metodos multifrontales

En el Algoritmo 6 se muestra la mecanica de eliminacion con grafos Cociente de unvertice v del grafos G representado por el conjunto de cliques K1,K2, ...,Kq, en dondeel vertice v pertenece al conjunto de cliques Kv1 ,Kv2 , ....,Kvs .

Algoritmo 6 Grado mınimo utilizando grafos Cociente.while G 6= do

v = nodo de menor grado de G.Crear el nuevo clique Kv =

⋃Kvi − v.

Remover de G los cliques Kv1 ,Kv2 , ....,Kvs .Agregar a G el clique Kv.

end while

En base al Teorema 4.2.1 se puede afirmar que el tamano del nuevo clique al eliminarun vertice v es estrictamente menor que la suma de los tamanos de los cliques de los queformaba parte el vertice v. Esto implica que el almacenamiento necesario para guardarGv siempre sera menor que el utilizado para guardar G. Por otra parte, la actualizaciondel grafo requiere unicamente de la union de listas de nodos, ya que las aristas no sonrepresentadas.Teorema 4.2.1. [123] Dado un conjunto de s cliques Kv1 ,Kv2 , ....,Kvs que contienenal vertice pivote v, el clique Kv resultado de eliminar el vertice v cumple que |Kv| <∑|Kvi |.Algunas de las primeras bibliotecas en utilizar los grafos Cociente son: la MA27 del

laboratorio Harwell [11], la Waterloo Sparse Linear Equations PAckage (SPARSPAK)[87] y la Yale Sparse Matrix Package (YSMP) [30].

Ademas de los aportes al algoritmo de grado mınimo en cuanto a la representaciondescritos anteriormente, varios autores realizaron diversas propuestas para la mejora delmetodo. A continuacion se presenta un breve relevamiento de los trabajos mas impor-tantes.

George y McIntyre [126] presentaron el concepto de eliminacion de masa (Mass Eli-mination), observando que en ocasiones el nodo v de grado mınimo pertenece a un clique,lo que implica que el conjunto de nodos en el clique se puede eliminar inmediatamentedespues de v en cualquier orden. Esta idea se resume en el Teorema 4.2.2.Teorema 4.2.2. Sea v el nodo de menor grado en el grafo G, entonces los nodos delsubconjunto Y = u ∈ AdjG(v)|gradoGv(u) = gradoG(v) − 1 pueden ser eliminadosdespues de v en cualquier orden.

Otra forma de ver el Teorema 4.2.2 es mediante la propiedad descrita en el Teorema4.2.3.Teorema 4.2.3. [123] Dado u ∈ AdjG(v) entonces AdjGv(u) = AdjG(v) − 1 si y solo siAdjG(u) ∪ u = AdjG(v) ∪ v.

Extendiendo la idea de eliminacion de masa George y Liu [122] definen los nodosindistinguibles segun el Teorema 4.2.3, demostrando que si dos nodos son indistinguiblesen el grafo G entonces seran indistinguibles en Gv. Por lo tanto, los nodos indistinguiblespueden ser tratados como un solo nodo en la estructura, lo que llaman super-nodos (tam-bien denominados por otros autores supervariables o nodos prototipos). La utilizacionde super-nodos posee como ventaja que se utiliza una cantidad menor de cliques pararepresentar los arboles y entonces son necesarias menos operaciones de actualizacion delgrafo de eliminacion.

Page 69: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 61

Eisenstat, Gursky, Schultz y Sherman [106] presentaron el concepto denominadoactualizacion incompleta de grado (incomplete degree updating). La propuesta se basaen que no es necesario actualizar el grado de todos vertices en cada paso de la eliminacion.Por esto se utiliza el concepto de dominado (outmatched). Un nodo v es dominado poru, si AdjG(u) ∪ u ⊂ AdjG(v) ∪ v. Una consecuencia directa de la definicion es queel nodo u siempre tiene menor grado que el nodo v.

Como consecuencia del Corolario 4.2.1, si el nodo v se transforma en dominado poru en alguna etapa de la eliminacion no es necesario actualizar el grado de v hasta queel nodo u sea eliminado.

Teorema 4.2.4. [179] Si un nodo v es dominado por u en G, tambien lo es en Gy ∀y ∈ V .

Corolario 4.2.1. [179] Si un nodo v se convierte en dominado por u en G, entonces elnodo u puede ser eliminado antes de v.

Otra inovacion en el proceso de ordenamiento se debe a Duff y Reid [104] que intro-dujeron la idea de absorcion de elementos (element absorption). La propuesta se basaen quitar del grafo de eliminacion la informacion redundante, esto significa que si existeun clique Ks que esta incluido en otro clique Kt entonces el clique Ks se puede eliminardel grafo G sin perdida de informacion.

Liu en su trabajo del ano 1985 [179] propuso el concepto de eliminacion multiple(multiple elimination) en el algoritmo de grado mınimo multiple (Multiple MinimumDegree - MMD). Si dos nodos poseen el mismo grado y no son adyacentes se puedeneliminar en forma paralela, o por lo menos suspender la actualizacion del grado de losnodos en AdjG(v) y seleccionar para eliminar un nodo con el mismo grado que v en elsubgrafo G− (AdjG(v)

⋃v). El procedimiento se repite hasta que no queden nodos con

el mismo grado.Otro aporte realizado por Liu en el ano 1985 [179] es la tecnica grado externo (ex-

ternal degree). Se propone trabajar en vez de con el grado verdadero de un nodo con elgrado externo, definido como la cantidad de aristas que posee el vertice que van a nodosde fuera del clique al cual pertenece. La estrategia apunta a mejorar la calidad de losresultados en cuanto a fill-in.

Trabajos como el de Gilbert, Moler y Schreiber [131] propusieron el uso de unacota superior del grado el grado externo. Amestoy, Davis y Duff en el ano 1996 usaronuna aproximacion mas sofisticada que llamaron algoritmo de grado mınimo aproximado(Approximated MD - AMD) [60, 171], que demuestran logra ordenes de calidad similara los obtenidos con MD y posee mejor desempeno computacional.

Existe otra gran cantidad de trabajos en el area; en el relevamiento realizado porGeorge y Liu del ano 1989 [123] se puede obtener mas informacion. Otros relevamientosmas actuales se pueden obtener en los trabajos de Dobrian et al. [94] y de Heggernes etal. [149].

Estrategias hıbridas

En los ultimos anos se han desarrollado varias estrategias hıbridas buscando explotarlas mejores caracterısticas tanto de las estrategias globales como de las locales. Lasestrategias hıbridas consisten en dividir en una primera etapa los grafos con estrategiasglobales, y luego, una vez que cada particion posee pocos vertices (algunos cientos), seordenan mediante estrategias locales.

Page 70: PEDECIBA INFORMATICA´ - fing.edu.uy

62 Los metodos multifrontales

Algunos de los primeros trabajos sobre estrategias hıbridas son los de Ashcraft y Liuque presentaron el orden multisector (multisection ordering) [73] que combina diferentesversiones de diseccion recursiva con el algoritmo MMD y la heurıstica propuesta porHendrickson y Rothberg denominado BEND [152].

Pellegrini et al. muestran que las estrategias que dividen los grafos con tecnicas dediseccion recursiva y luego aplican a cada componente un algoritmo local, privilegian losvertices de las fronteras de cada componente local al aplicar las heurısticas bottom-up,ya que estos poseen menor grado que los vertices interiores. Por esta razon, proponen elalgoritmo que combina diseccion recursiva con Halo-AMD. En la etapa de la heurısticaglobal, se divide el grafo en diversas componentes utilizando diseccion recursiva; cadacomponente es procesada por un algoritmo local que dispone, ademas de la informacionde los vertices de su particion, de la informacion de los vertices adyacentes [201]. Laheurıstica esta disponible en la biblioteca SCOTCH [21].

4.2.4. Factorizacion simbolica

Un paso importante en la factorizacion de sistemas lineales dispersos es predecirla estructura de las matrices resultado, etapa generalmente denominada factorizacionsimbolica. Esta etapa permite prever y reservar en forma anticipada la memoria de lasdistintas estructuras de datos a utilizar.

Para calcular la estructura de la matriz resultado de una transformacion se puedenseguir dos estrategias: simbolica o exacta. Las estrategias exactas calculan las posicionesen base a los valores de los coeficientes; en este caso se trabaja al mismo tiempo que lafactorizacion numerica. Por otra parte las estrategias simbolicas implican trabajar con laestructura de la matriz (las posiciones no nulas) y no con los coeficientes; en estos casosse asume que toda operacion sobre elementos no nulos resultara no nula, por esta razonse obtiene una estimacion de la estructura (cota superior).

El trabajo de Schreiber de 1982 [218] es la base de muchos de los trabajos sobrefactorizacion simbolica en los ultimos anos. En el trabajo se propone representar lasrelaciones de las matrices al efectuar la factorizacion de Cholesky con un grafo G ≡G(L) = (V,E) donde los vertices V = 1, 2, .., n se definen por las n filas/columnasy las aristas se definen por E = (i, j)|i > j y lij 6= 0, siendo L el resultado dela factorizacion de Cholesky de la matriz A. Como se menciono anteriormente, estetrabajo es considerado uno de los pioneros en utilizar la nocion de arbol de eliminacion(elimination tree).

En la Figura 4.8 se puede observar la estructura de datos propuesta por Schreiberpara el almacenamiento de la matriz L. La estructura es un arbol que conecta cadacolumna k < n de la matriz A con la primera columna j > k tal que lij 6= 0, siendoj = next(k).

col(j) ≡ i > j|lij 6= 0, 1 ≤ j < nrow(j) ≡ k < j|ljk 6= 0, 1 < j ≤ n

next(j) ≡ minj ∈ col(j), 1 ≤ j < nN(L) ≡ (j, next(j) ∈ E|1 ≤ j ≤ n− 1), 1 ≤ j ≤ n− 1

Figura 4.8: Representacion de matrices dispersas de Schreiber para factorizacion deCholesky.

Page 71: PEDECIBA INFORMATICA´ - fing.edu.uy

4.2 Metodos directos de resolucion de sistemas lineales dispersos 63

La importancia de la propuesta se debe a la capacidad de predecir la estructurade la matriz resultado. Los Teoremas 4.2.5, 4.2.6 y el Corolario 4.2.2 demostrados enel trabajo de Schreiber, brindan las herramientas necesarias para llevar adelante dichatarea.

Teorema 4.2.5. Si existe un camino entre los vertice j y k en el grafo G(L), que utilizavertices con etiquetas menores que j y k entonces (j, k) pertenecen a E.

Corolario 4.2.2. Si j = next(k) y lik 6= 0 entonces lij 6= 0.

El Corolario 4.2.2 permite expresar la Ecuacion 4.5.

col(k) ⊂ col(next(k)) ∪ next(k) (4.5)

Teorema 4.2.6. Para cada k entre 1 ≤ k < n, col(k) no es vacıo.

Gilbert [128] provee una interpretacion simple de la estructura de las columnas de lasmatrices simetricas mediante la funcion de la Ecuacion 4.6, presentando resultados equi-valentes a los del Teorema 4.2.5 mediante el concepto de conjunto de vertices alcanzable(reacheable set).

Struct(w) = i ∈ V |wi 6= 0 (4.6)

Por mucho tiempo se utilizo para la factorizacion simbolica de matrices no simetri-cas diferentes artilugios. Por ejemplo, para factorizar una matriz no simetrica A utilizarcomo estructura la suma booleana de A+A′. Los trabajos de Gilbert y Liu [130], Gilberty Ng [131] y Liu, Ng y Peyton [184] extendieron los resultados de Schreiber permitien-do abordar en forma directa la factorizacion simbolica de matrices no simetricas. Lapropuesta se basa en los DAGs de eliminacion.

Basados en el Teorema 4.2.7 se puede afirmar que si lij 6= 0 entonces existe un caminoentre el vertice i y el j en el DAG G(L).

Teorema 4.2.7. Si A = LU y hay un camino en el G(A) desde el vertice i hasta el j,entonces existe un vertice entre 1 ≤ k ≤ n tal que el DAG de G(U) tiene un camino delvertice i al vertice k y el DAG G(L) tiene un camino del vertice k al j.

Teorema 4.2.8. [211] Struct(L∗j) = Struct(A∗j) ∪⋃Struct(L∗k)|k < j, ukj 6= 0 −

1, .., j − 1.

Corolario 4.2.3. [211] Dado k < y y ukj 6= 0 entonces Struct(L∗k) − 1, ..., j − 1 =Struct(L∗j).

En terminos de matrices, los Teoremas 4.2.7 y 4.2.8 permiten determinar la estruc-tura de la columna j de la matriz L tomando la union de las estructuras de las columnasde A∗j con numeros menores a j. Estas columnas estan dadas por la estructura de lacolumna j de U .

Solo se necesita un subconjunto de las columnas para el calculo, el Teorema 4.2.9expone dicho concepto.

Teorema 4.2.9. [130] Struct(L∗j) = Struct(A∗j) ∪⋃Struct(L∗k)| < k, j >∈ Go(U) −

1, ..., j − 1

Utilizando las mismas ideas se puede determinar la estructura de la matriz U . En eltrabajo de Davis y Duff [91] se presentan implementaciones del algoritmo.

Page 72: PEDECIBA INFORMATICA´ - fing.edu.uy

64 Los metodos multifrontales

Algunos autores basados en el alto costo que implica el calculo de las reduccionestrasitivas para obtener los DAGs mınimos propusieron realizar transformaciones parcia-les, obteniendo DAGs no mınimos [91, 107]. Si bien este tipo de estrategias mejoran eldesempeno computacional de la etapa de factoriacion simbolica, implican aumentos enlos requerimientos de memoria en las posteriores etapas.

Gupta presento en su trabajo del ano 2002 [143] una modificacion al algoritmo deGilbert y Liu. La propuesta reordena los pasos del algoritmo original y modifica el patronde acceso a las matrices L y U . De esta manera logra la deteccion en forma automaticade los supernodos. Esta capacidad le permite ejecutar las transformaciones completas aun costo computacional razonable.

4.3. Los metodos frontales y multifrontales

El metodo frontal es una variante de los metodos de factorizacion (eliminacion gaus-siana, factorizacion LU y factorizacion de Cholesky) para la resolucion de sistemas li-neales dispersos cuya principal caracterıstica es que trabaja de a bloques.

El metodo fue presentado inicialmente por Irons en el ano 1970 [158]. La propuestase baso en la necesidad de resolucion de grandes matrices simetricas y definidas positivasresultantes de la aplicacion del metodo de los elementos finitos a problemas de analisisestructural (ejecutando en computadoras de la epoca que poseıan poca memoria).

La estrategia frontal esta inspirada en la metodologıa de trabajo de los MEF. Enespecial, se puede observar la relacion existente entre la forma de construccion de lamatriz de rigidez global por los MEF a traves del ensamblaje de las matrices de rigidezde cada elemento segun la Ecuacion 4.7 (en donde Be son las matrices de rigidez de losdistintos elementos y A es la matriz de rigidez global) y la evolucion de la factorizacionpor la estrategia frontal.

A =∑

e

Be (4.7)

En la Figura 4.9 se puede observar la discretizacion de un problema utilizando MEFy la estructura (coeficientes no nulos) de la matriz de rigidez asociada al problema. Enel ejemplo se utilizan 4 elementos triangulares de 3 nodos cada uno y una sola variablelibre lo que implica que la matriz de rigidez global posea 6 ecuaciones.

En la Figura 4.10 se puede observar la estructura de cada una de las matrices derigidez asociadas a cada uno de los 4 elementos del problema planteado en la Figura 4.9.

El principal aporte realizado por Irons en su trabajo [158] es la observacion de que noes necesario calcular toda la matriz de rigidez global para luego factorizarla, sino que sepuede realizar un secuencia de factorizaciones, a medida que las submatrices (matricesde rigidez de cada elemento) se encuentren completas, es decir que se puede factorizaruna fila y columna una vez que esta haya recibido todos los aportes. En terminos de lassentencias a ejecutar, la operacion de la Ecuacion 4.8 puede efectuarse al momento quelas filas y columnas esten completamente sumadas, es decir cuando se realizaron todaslas operaciones de la Ecuacion 4.9 para los coeficientes aik, akj y akk involucrados.

aij = aij − aika−1kk akj (4.8)

aij = aij + bij (4.9)

Page 73: PEDECIBA INFORMATICA´ - fing.edu.uy

4.3 Los metodos frontales y multifrontales 65

Figura 4.9: Discretizacion con MEF de un problema y estructura de la matriz de rigidezgeneral asociada. Tomado del libro de Saad [216].

Figura 4.10: Matrices de rigidez de los cuatro elementos del problema de la Figura 4.9.

La estrategia seguida por los metodos frontales permite resolver matrices dispersasde importantes dimensiones utilizando poca memoria. Esta situacion se debe a que elmetodo no necesita cargar en memoria toda la matriz para factorizarla, alcanza contener en memoria la matriz de aporte de un elemento y las partes de la matriz globalque ya se encuentran parcialmente sumadas.

Si bien el metodo frontal se basa en la metodologıa de ensamblado de las matricesde rigidez de cada elemento en los MEF, el metodo es completamente extensible parala resolucion de cualquier sistema lineal, ya que toda matriz puede verse como la sumade varias sub-matrices.

Page 74: PEDECIBA INFORMATICA´ - fing.edu.uy

66 Los metodos multifrontales

El Algoritmo 7 presenta una version simplificada del pseudocodigo del metodo fron-tal.

Algoritmo 7 Pseudocodigo del metodo frontal.1: Calcular los coeficientes que aportan los elementos mientras se puedan agregar a la

matriz frontal.2: Buscar en la matriz frontal, dentro de las filas/columnas que se encuentran comple-

tamente sumadas (aquellas que no recibiran mas aportes) un pıvot.3: Se elimina el pivot.4: Mientras se puedan eliminar pıvot se repiten los pasos 2 y 3.5: Luego se agregan los coeficientes de la matriz del siguiente elemento a la matriz

frontal y se repiten los pasos 2 y 3.6: Cuando se eliminan todos los pıvot se resuelve mediante sustitucion para atras.

Presentado en forma matricial, el metodo frontal se puede ver de la siguiente forma:Si se dispone de una matriz A segun la Ecuacion 4.10 en la que la submatriz B seencuentra completamente sumada.

A =(

B CD E

)(4.10)

Primero se factoriza la submatriz B en dos matrices LBUB y se actualiza el resto dela matriz con los siguientes pasos:

C ′ = CU−1B

D′ = L−1B D

Luego se actualiza la submatriz E mediante el complemento de Schur E′ = E−C ′D′

A2 =(

LBUB C ′

D′ E′

)(4.11)

Por ultimo, en este paso se cuenta con la matriz A2, segun la Ecuacion 4.11, con elbloque superior factorizado. Para continuar la factorizacion es necesario especificar unnuevo frente, para luego calcular el aporte a esa sub-matriz y ası continuar.

Un aspecto sumamente importante en el metodo frontal es la gran dependencia queposee con el orden de las ecuaciones, o en terminos de MEF, la numeracion que se leda a los distintos nodos en la malla utilizada. Distintos ordenes implican en generalgrandes diferencias en la cantidad de ecuaciones completamente sumadas disponiblesen cada paso en la matriz frontal y por ende grandes diferencias tanto de memoria autilizar ası como de calculos a ejecutar. La aplicacion de estrategias de reordenamiento degrillas de MEF no implica necesariamente la renumeracion de los elementos en la malla,se puede solucionar generando un vector con el orden en el cual agregar las ecuacionesa la matriz frontal, en terminos de MEF el orden en el cual se procesan los distintoselementos.

Otro aspecto importante de los metodos frontales es que pueden realizan las opera-ciones de eliminacion sobre matrices densas. Esto permite sacar partido de la utilizacionde las operaciones de la biblioteca BLAS optimizadas para distintas arquitecturas decomputadoras y no utilizar direccionamiento indirecto.

Page 75: PEDECIBA INFORMATICA´ - fing.edu.uy

4.3 Los metodos frontales y multifrontales 67

La similitud entre las estrategias de ventana utilizadas por los metodos de banda yel manejo de la submatriz frontal de los metodos frontales llevo a que algunos autoresclasifiquen a los metodos frontales como metodos de banda [96].

Hood extendio en 1974 el esquema frontal, siendo publicado sus resultados en 1976[156]. La extension propuesta permite resolver matrices no simetricas siempre y cuandoestas matrices sean estructuralmente simetricas, es decir si aij = 0 entonces aji = 0.

La posibilidad de trabajar con matrices no simetricas y definidas positivas exige,como se menciono con anterioridad, la utilizacion de estrategias de pivoteo. Otro aspectoimportante del trabajo de Hood, es que su trabajo proporciona el codigo en Fortran 77del metodo propuesto y explica en forma detallada como utilizarlo en aplicaciones deelementos finitos.

Una de las principales extensiones a los metodos frontales es la especificacion de losmetodos multifrontales presentado por Duff y Reid en su trabajo del ano 1983 [104]. Elgran aporte de los metodos multifrontales es que estan disenados para trabajar con variosfrentes en forma independiente, calculando la factorizacion de un frente y guardando losaportes del mismo a otros frentes hasta que sea necesario utilizarlos. En los metodosmultifrontales no es necesario calcular el aporte (complemento de Schur) hasta que seeste por factorizar un frente que tenga dependencia de datos.

Es importante hacer notar que varios autores, incluso los propios Duff y Reid [104],afirman que el modelo de union de elementos (element merge model) de Eisenstat,Schultz y Sherman de 1976 [108] encierra las mismas ideas que los metodos multifron-tales. Incluso se menciona la similitud con el trabajo de Speelpenning que propuso laestrategia de los elementos generalizados (generalized element) en un manuscrito nopublicado de 1973 [221]2.

El metodo multifrontal necesita realizar en una etapa previa a la factorizacion elanalisis de la dependencia de datos entre los distintos frentes. Una vez establecido elorden de eliminacion de los metodos multifrontales, teniendo el arbol de eliminacion, sevan resolviendo los distintos frentes. Antes de factorizar un frente es necesario ensamblarlas matrices de rigidez de los elementos del frente y cargar y calcular el aporte de loscomplementos de Schur pendientes.

En forma de ejemplo en la Figura 4.11 se puede ver una matriz A y su arbol deeliminacion. Para la matriz A la tecnica multifrontal factoriza el primer frente definidopor la matriz de la Figura 4.12, y luego guarda en alguna estructura auxiliar los aportesde este frente ya que el frente 2 no posee dependencias de datos con el primer frente.

A =

x x

x x

x x x

x x x

Figura 4.11: Matriz dispersa y su arbol de eliminacion.

2Durante el trabajo no se pudo acceder a ninguno de los dos trabajos mencionados, pero la afirmacionse debe ademas de a Duff y Reid a autores como Liu en su relevamiento de los metodos multiforntales[183].

Page 76: PEDECIBA INFORMATICA´ - fing.edu.uy

68 Los metodos multifrontales

( 1 31 x x3 x

)

Figura 4.12: Primer frente de la matriz A de la Figura 4.11.

En este caso, para calcular el segundo pivote no es necesario calcular aportes deotros frentes por lo que la unica tarea a realizar es calcular los coeficientes del frente 2especificado en la Figura 4.13.

( 2 42 x x4 x

)

Figura 4.13: Frente dos de la matriz A de la Figura 4.11.

Por ultimo, se factoriza el frente compuesto por la supervariable resultante de amalga-mar los pivotes 3 y 4, pero antes es necesario calcular por completo las filas/columnas3 y 4 y el aporte que generan los frentes 1 y 2.

Generalizando la idea presentada anteriormente y utilizando la notacion de matrizde actualizacion y suma extendida, los metodos multifrontales se pueden formalizar dela manera que se presenta a continuacion.

Sea T [j] el sub-arbol de eliminacion que tiene al vertice j como raız, tomando lacolumna j-esima de la matriz L y definiendo i0, i1, ..., ir a los subındices de las filas conentradas no nulas en L∗j , siendo i0 = j la matriz de actualizacion de la columna j sedefine por la Ecuacion 4.12.

Uj = −∑

k∈T [j]−j

lj,kli1,k

.

.lir,k

(lj,k li1,k .. lir,k) (4.12)

La matriz contiene las contribuciones de las columnas precedentes que son descen-dientes de j en el arbol de eliminacion. La j-esima matriz frontal, Fj de A esta dadapor la matriz Fj de la Ecuacion 4.13.

Fj =

aj,j aj,i1 ... aj,ir

ai1,j

. 0air,j

+ Uj (4.13)

Page 77: PEDECIBA INFORMATICA´ - fing.edu.uy

4.3 Los metodos frontales y multifrontales 69

El orden r + 1 de la matriz frontal Fj y de la matriz de actualizacion del subarbolUj es el numero de entradas no nulas de la columna j de L.

La matriz de actualizacion Uj esta presente en la Ecuacion 4.14.

Uj = −∑

k∈T [j]−j

li1,k

.

.lir,k

(li1,k .. lir,k) (4.14)

Las matrices Uj y Uj se diferencian en que Uj se utiliza para computar la j-esimamatriz frontal Fj y la matriz Uj se genera a partir del paso de eliminacion Fj .

Fj =

aj,j aj,i1 ... aj,ir

ai1,j

. 0air,j

+ Uc1 + ... + Ucs (4.15)

Muchos autores utilizan los conceptos de suma extendida (Ecuacion 4.15) y matrizde actualizacion (Ecuacion 4.14) para la formulacion de las distintas variantes de losmetodos multifrontales [104, 90].

Un aporte a los metodos multifrontales se debe a Duff y Reid [104] que presentaron laidea de parametrizar la union de pivotes (amalgamation). Cuanto mayor sea el parametrose tendran frentes mayores, por lo tanto se realizara una mayor cantidad de operacionesen forma completa, pero generalmente se produce mayor cantidad de fill-in. Esta opcionpuede ser interesante cuando se trabaja con maquinas vectoriales o en PC que puedansacar partido de la memoria cache, ya que se reduce en forma notoria la cantidad dedireccionamiento indirecto. Resultados en este sentido fueron publicados por Amestoyy Duff [61] y Ashcraft [71].

Como ya se menciono, una forma de trabajar con matrices A no simetricas es uti-lizando como estructura de matriz la suma booleana de las matrices A y A′. Si bienesta estrategia no es muy buena, funciona bien con matrices que posean estructuracuasi-simetrica.

Davis y Duff [90] presentan el metodo multifrontal para matrices no simetricas.Su propuesta se basa en la utilizacion de los DAGs presentados por Geroge y Liu envez de los arboles de eliminacion para representar la factorizacion. Como principalescaracterısticas de la propuesta se destacan el manejo de frentes rectangulares a diferenciadel metodo multifrontal original que utiliza frentes cuadrados y la combinacion de laetapa de analisis y factorizacion numerica.

David y Duff [89] tambien propusieron una version de los metodos que combina laestrategia frontal con la multifrontal.

Posteriormente, los grandes aportes a los metodos multifrontales se han dado en lasetapas de ordenamiento (trabajos ya resenados) y factorizacion simbolica. Tambien sehan presentado varios trabajos para explotar caracterısticas de los distintas arquitecturasde computadores, hacer un uso eficiente de las distintas memorias [140] y principalmenteen aplicaciones de estrategias de paralelismo, tecnicas que se relevan a continuacion enel capıtulo.

Page 78: PEDECIBA INFORMATICA´ - fing.edu.uy

70 Los metodos multifrontales

4.4. Aplicacion de estrategias de paralelismo

Al igual que lo sucedido con las distintas etapas (ordenamiento y factorizacionsimbolica) de los metodos de resolucion de sistemas lineales dispersos, la evolucion de lasestrategias de paralelismo sobre los metodos multifrontales se ha visto nutrida por lasexperiencias al aplicar tecnicas de paralelismo a otros metodos directos de resolucion desistemas lineales, entre otros a los metodos de factorizacion LU orientados a columna.Por esta razon, el relevamiento de la aplicacion de tecnicas de programacion parale-la que se presenta a continuacion incluye trabajos que no se centran en los metodosmultifrontales.

Ademas, en los primeros anos de trabajo (aproximadamente hasta los comienzos delos anos 1990) la evolucion de la aplicacion de estrategias de paralelismo sobre metodosdirectos se enfoco en aplicaciones sobre matrices simetricas y definidas positivas debidoa que en estos casos no es necesario aplicar tecnicas de pivoteo, situacion que dificultafuertemente la ejecucion en paralelo.

Como se vio en el Capıtulo 3, otro aspecto importante de la aplicacion de tecnicas deprogramcion paralela es que estas estan condicionadas a las arquitecturas de hardwarepara la cual se desarrollan, en particular las estrategias difieren en forma importante sise trabaja con arquitecturas de memoria compartida o memoria distribuida.

En cuanto a la clasificacion de los niveles de paralelismo, en el Capitulo 3 se pre-sento la propuesta de Dongarra et al. [96] para aplicaciones de paralelismo al calculocientıfico en especial a la resolucion de sistemas lineales en forma directa. La clasificacionse base en el nivel de particionamiento del dominio que se utiliza.

De las distintas etapas de los metodos numericos directos de resolucion de sistemaslineales, en general la factorizacion numerica es la principal fuente de consumo de tiempode computo. Esta caracterıstica es el motivo de que la mayorıa de los esfuerzos poraplicar tecnicas de programacion paralela se han centrado en paralelizar la etapa defactorizacion numerica.

Algunos trabajos que proponen aplicaciones de programacion paralela a las otras eta-pas de los metodos directos de resolucion de sistemas lineales dispersos (ordenamiento,factorizacion simbolica y resolucion triangular) se presentan a continuacion.

Aplicacion de paralelismo al ordenamiento. Pan y Reif en el ano 1985 [197] pro-pusieron una version paralela de diseccion recursiva. En el trabajo de Joshi etal. [161], se emplea una formulacion paralela del algoritmo de diseccion recursivamulti-nivel utilizando el metodo Cholesky multifrontal.

Aplicacion de paralelismo a la factorizacion simbolica. Una de las primeras pro-puestas trabajando con memoria distribuida fue el trabajo de George et al. [120]extendido en el trabajo de Ng [195]. Otro trabajo que abordo la aplicacion deparalelismo a esta etapa es el de Joshi et al. [161].

Aplicacion de paralelismo a la resolucion triangular. Los trabajos de George et al.[120] y Joshi et al. [161] presentados en el item anterior tambien utilizan para-lelismo en la etapa de resolucion triangular. Utilizando estrategias right-lookingsobre arquitecturas de memoria distribuida se puede mencionar la biblioteca Su-perLu Dist [26].

Otros trabajos sobre aplicaciones de paralelismo a las tres etapas son relevados enel artıculo de Heath [148].

Page 79: PEDECIBA INFORMATICA´ - fing.edu.uy

4.4 Aplicacion de estrategias de paralelismo 71

Una clasificacion similar a la de Dongarra et al. pero enfocada a la aplicacion de lastecnicas de programacion paralela a la etapa de factorizacion numerica de los metodosmultifrontales se puede observar en el trabajo de Amestoy et al. [64], donde se identificantres niveles.

Nivel 1. Cuando se resuelven en paralelo los distintos nodos del arbol de elimi-nacion (en el caso simetrico). Este nivel se corresponde con las estrategias dedescomposicion de dominio.

Nivel 2. Cuando las dimensiones de los frentes son importantes se puede dividir lamatriz frontal en distintos bloques resolviendo cada uno de los bloques en paralelo.Este nivel se corresponde al paralelismo a nivel de matriz en la clasificacion deDongarra et al. [96].

Nivel 3. Otra opcion de aplicacion de estrategias de paralelismo a los metodosmultifrontales es mediante la utilizacion de la biblioteca ScaLAPack para resolvercada subbloque.

Una tercera clasificacion de los niveles de paralelismo en los metodos directos deresolucion de sistemas lineales dispersos fue propuesta por Liu [180]. En esta clasifica-cion se determinan tres niveles de aplicacion de paralelismo en base a la cantidad deoperaciones realizadas en paralelo (granularidad).

Grano fino, cuando se paralelizan algunas pocas operaciones de punto flotante.Este nivel de paralelismo se puede utilizar tanto para solucionar matrices dispersasası como matrices densas. Generalmente es una buena opcion en arquitecturasvectoriales.

Grano medio, cuando se realizan en paralelo las operaciones sobre las diferentescolumnas (cmod o cdiv). Este nivel de paralelismo entrega un buen balance entrecomunicacion y computacion pero no ofrece capacidad de escalado.

Grano grueso, cuando los bloques de trabajo que se resuelven en paralelo sonvarias columnas (un nodo del arbol de eliminacion). Este nivel de paralelismo soloesta disponible para la factorizacion de matrices dispersas.

La forma mas sencilla de aplicar paralelismo a los metodos multifrontales es medianteuna tecnica de grano fino, ya que cuando se ejecuta sobre computadores vectorialeso sobre arquitecturas de multiprocesadores de memoria compartida la aplicacion deparalelismo es inmediata. Por ejemplo, puede utilizarse implementaciones multi-threadsde la bibliotecas BLAS sobre computadores de memoria compartida.

Ademas de las etapas de ordenamiento, factorizacion simbolica, factorizacion numeri-ca y resolucion triangular presentes en los metodos multifrontales, en las versiones queutilizan tecnicas de programacion paralela es necesario disponer de una nueva etapa enla cual se calcula la asignacion de las distintas tareas a los procesadores (scheduling),siendo esta etapa crucial para la obtencion de buenos resultados. Los objetivos de laetapa de scheduling son minimizar las comunicaciones entre procesos y lograr un buenbalance de carga entre los procesadores.

Page 80: PEDECIBA INFORMATICA´ - fing.edu.uy

72 Los metodos multifrontales

4.4.1. Scheduling

Como se menciono en la seccion anterior, la mayorıa de las aplicaciones de tecnicas deprogramacion paralela a los metodos directos de resolucion de sistemas lineales dispersosse centran en la etapa de factorizacion numerica. Por dicha razon, en esta seccion sepresenta una pequena resena unicamente de trabajos orientados a realizar el schedulingde la mencionada etapa.

El scheduling se puede realizar en forma estatica, dinamica o combinada. Realizarel scheduling en forma dinamica permite obtener buenos valores de balance de cargaen forma automatica, ya que especificando un buen tamano de tarea (granularidad) esposible identificar cuando un procesador queda libre y asignarle una nueva tarea. Sinembargo, el costo que implican las comunicaciones en esta estrategia la transforman enprohibitiva en arquitecturas de memoria distribuida.

Cuando el scheduling se realiza en forma estatica se conforma el mapeo antes decomenzar a realizar las operaciones. En estos casos, el mapeo se realiza generalmente enforma conjunta con la factorizacion simbolica. Esta situacion implico que en los primerostrabajos en el area, en especial cuando se aplica paralelismo de nivel 1, se utilizara pararealizar el scheduling el mapeo de los nodos del arbol de eliminacion en los procesadoresdisponibles. Uno de los primeros trabajos en este sentido es el de George et al. [119], elcual propone aplicar paralelismo al algoritmo de Cholesky por columnas sobre memoriadistribuida.

La estrategia de ordenamiento local mas utilizada al aplicar tecnicas de programacionparalela es el MMD de Liu [179], ya que permite efectuar eliminaciones en paralelo,siendo necesario tener en cuenta esta caracterıstica al momento de mapear los nodos delarbol de eliminacion en los distintos procesadores.

La difusion de la utilizacion del arbol de eliminacion para realizar el scheduling detareas implico la modificacion de eleccion de las estrategias de ordenamiento utilizadas,debido a que el objetivo del ordenamiento en este contexto no es solo minimizar el fill-in(y evitar errores numericos) sino buscar ordenamientos que permitan dividir el problemaen forma balanceada. En este sentido, las estrategias de ordenamiento locales si bien encontextos de ejecucion seriales son buenas debido a que consiguen bajos niveles de fill-in, en contextos de ejecucion en paralelo no siempre producen arboles de eliminacionbien balanceados, situacion que intuitivamente no permite alcanzar buenos niveles deconcurrencia.

Una lınea de trabajo sin mucho exito fue la que presentaron Jess y Kess [160], Liu[181] y Lewis et al. [174] trabajando con estrategias de ordenamiento locales buscandoreordenar el arbol de eliminacion para disminuir su altura pero manteniendo los nivelesde fill-in. Si bien la aplicacion de estas estrategias en algunos casos presentan resul-tados positivos, en problemas irregulares no se obtienen resultados satisfactorios. Estasituacion genero que en las aplicaciones paralelas hayan proliferado la utilizacion deestrategas derivadas de las de diseccion recursiva.

Una de las primeras propuestas de mapeo de tareas a procesadores se debe a Georgeet al. [124] para la factorizacion de Cholesky por columnas, denominada subarbol a sub-cubo (subtree-to-subcube). La estrategia fue disenada para utilizarse con ordenamientosde diseccion recursiva y con cantidades de procesadores que sean potencia de 2. La es-trategia mapea los nodos del arbol de eliminacion en forma circular, comenzando porla raız, una vez que se encuentra un nodo del arbol de eliminacion que tiene dos hijosse realiza el mapeo para cada subarbol en forma recursiva, asignando para el mapeo de

Page 81: PEDECIBA INFORMATICA´ - fing.edu.uy

4.4 Aplicacion de estrategias de paralelismo 73

cada subarbol la mitad de los procesadores. Se continua trabajando en forma recursivahasta que se tengan conjuntos de un solo procesador y se mapea el subarbol restante aese procesador.

Una de las principales desventajas del mapeo subarbol a subcubo es que necesita dearboles de eliminacion bien balanceados para obtener resultados positivos. En busca deabatir dicha limitante, en 1988 Geist y Ng [116] presentaron otra estrategia, denominadamapeo proporcional (proportinal mapping).

Dado un arbol de eliminacion y p procesadores, el mapeo proporcional consiste enbuscar el conjunto mas chico de ramas (del arbol de eliminacion) tal que el conjuntose pueda dividir en p clases (o recipientes) y que las distintas particiones no estendesbalanceadas (mas que por una holgura definda como parametro). El algoritmo recorreel arbol en amplitud, agregando ramas a p recipientes en forma iterativa. Si los recipientesse encuentran blanceados el algoritmo termina, en caso contrario se toma la mayor ramadel recipiente con mayor peso, se busca el primer nodo con dos hijos y se divide asignandouna de las ramas al recipiente original y la otra al recipiente de menor peso. Por ultimo,se mapean los nodos pertenecientes a las ramas de cada recipiente a un procesador ylos nodos que no se encuentran en ningun recipiente se mapean en forma circular entretodos los procesadores.

Pothen y Sun, trabajando con el metodo multifrontal, propusieron modificar la es-trategia de Geist y Ng buscando disminuir las comunicaciones [206]. En su propuestaagregan una restriccion para el mapeo de los nodos que no pertenecen a los recipien-tes, permitiendo asignarlos solo al subconjunto de procesadores tal que tengan algundescendiente asignado al mismo.

Li y Demmel presentaron en su trabajo [176] un scheduing estatico de dos niveles.En la primera fase, de particionamiento, se asigna cada supernodo j a un conjunto deprocesadores candidatos. Los procesadores del conjunto candidato se escogen utilizandola extension del mapeo proporcional de Pothen y Sun. La segunda fase, de mapeo,simula la factorizacion paralela para ordenar las tareas asociadas con la computacion decada supernodo. La computacion de cada frente se realiza en un unico procesador (encaso de utilizar distribucion en una dimension) o varios en el caso de distribucion dedos dimensiones, dependiendo del trabajo asociado a cada nodo y de los procesadoresdisponibles en el conjunto candidato.

Pardines et al. [198] propusieron un mapeo estatico para el metodo de Choleskymultifrontal. El mapeo se realiza en dos etapas, en la primera se asignan conjuntos deprocesadores a cada arbol de eliminacion; en la segunda etapa se realiza un particiona-miento de los arboles que poseen mas de un procesador asociado.

Amestoy et al. [65] presentaron una estrategia combinada, estatica para el parale-lismo de nivel 1 y dinamica para paralelismo de nivel 2. En forma estatica se mapeanlos distintos nodos a los procesadores segun el algoritmo de Pothen y Sun, luego cadaprocesador puede particionar un frente para resolverlo en forma paralela (nivel 2). Enestos casos se utiliza una estrategia maestro-esclavo.

En un trabajo posterior, Amestoy et al. [62] propusieron una variante de su estrate-gia anterior con scheduling estatico para el paralelismo de nivel 1 y scheduling dinamicopara el paralelismo de nivel 2, pero restringiendo la eleccion de los procesadores esclavos(paralelismo de nivel 2) a un sub-conjunto de procesadores candidatos evaluados en laetapa de analisis.

Page 82: PEDECIBA INFORMATICA´ - fing.edu.uy

74 Los metodos multifrontales

Ademas de los trabajos comentados, existen muchas otras propuestas en el area,algunas de ellas son el trabajo de Lee [173] en el cual se propone utilizar la heurısticaEarly-Start-Clustery, el trabajo de Padines y Rivera [199] que utilizan la heurısticasimulated annealing para realizar el mapeo y el artıculo de Fu y Yang [114, 113, 227] quepropone utilizar la heurıstica RAPID propuesta por los mismos autores. En el trabajode Lin y Sips se puede obtener un relevamiento sobre distribucion de datos en algoritmosde factorizacion de Cholesky en paralelo [177].

4.4.2. Evolucion historica

Algunos de los trabajos marcados como pioneros en la literatura [100, 105, 97, 101] enla aplicacion de paralelismo a los metodos de Cholesky multifrontales son el trabajo deDuff del ano 1986 [99] propuesta implementada en el ano 1989 en el paquete MA41 [61]y Benner et al. [74] ambos trabajos implementados para memoria compartida. Mientrasque utilizando estrategias de de memoria distribuida se destacan los trabajos de Georgeet al. [118] y Lucas et al. [186].

Los primeros trabajos sobre paralelismo aplicado a algoritmos fan-out sobre matricesdispersas son los de George et al [125] para arquitecturas de memoria compartida delano 1988 y George et al. [123] del ano 1989 que utiliza estrategias distribuidas.

Ashcraft et al. [72] presentron una version de memoria distribuida para estrategiasfan-in en el ano 1990.

Gilbert y Schreiber en el ano 1992 presentaron dos algoritmos paralelos para laresolucion de sistemas lineales [132], el Router y el Grid Cholesky. Los algoritmos sonvariantes del algoritmo de Cholesky por columnas al cual se le aplica paralelismo de granofino, implicando gran cantidad de comunicaciones no estructuradas. Por este motivo, nofueron capaces de obtener buenos resultados.

En el trabajo de Amestoy et al. [67] se presento la utilizacion del metodo multifrontalcon estrategias de paralelismo para la descomposicion QR.

Un buen relevamiento de los primeros trabajos sobre aplicacion de paralelismo a losmetodos de resolucion de sistemas lineales dispersos se puede obtener en el trabajo deDemmel et al. [93].

Uno de los principales trabajos sobre metodos de Cholesky multifrontales es el quepresentaron Gupta y Kumar en el ano 1994 [145]. Los autores proponen aplicar unadistribucion cıclica de datos, ordenar mediante diseccion recursiva espectral (spectralnested dissection) y realizar el scheduling con una estrategia similares a subarbol asubcubo. En el trabajo se presentan valores de speedups de 70 al utilizar 256 procesadoresy de 225 al utilizar 1024 procesadores, siendo los mejores resultados conseguidos en esosanos.

Basado en el trabajo de Davis y Duff [90] sobre el metodo multifrontal no simetrico,Hadfield [214] estudio la aplicacion de estrategias de pivoteo combinadas. La propuestautiliza ordenamientos en forma simbolica y preve la utilizacion de estrategias dinamicasen forma paralela en la etapa de factorizacion numerica.

Otro enfoque es el desarrollado por Mallya et al. [187, 188] que proponen reordenarla matriz a un formato diagonal a bloques con borde y luego aplicar las tecnicas deparalelismo al metodo frontal. Trabajan con dos niveles de paralelismo, uno a nivel decada frente y otro para permitir la resolucion de los distintos frentes en paralelo.

Page 83: PEDECIBA INFORMATICA´ - fing.edu.uy

4.5 Bibliotecas 75

Li y Demmel [176] presentaron la biblioteca SuperLU DIST para la resolucion desistemas lineales no simetricos en arquitecturas de memoria distribuida mediante unalgoritmo fan-out. La biblioteca utiliza pivoteo estatico mediante el algoritmo GESPpropuesto por los mismos autores [175, 135].

En el trabajo de Amestoy et al. [66] se compara el desempeno de las biblioteca Su-perLU y MUMPS. La biblioteca MUMPS trabaja con metodos multifrontales utilizandodos niveles de paralelismo, paralelismo de nivel 1 y de nivel 2. La biblioteca Super-LU emplea metodos de columna utilizando una distribucion de datos 2D. Los autorespresentan resultados que permiten concluir que MUMPS se desempena mejor cuando laestructura de la matriz es casi simetrica, mientras que SuperLU tiene mejores resultadospara matrices no simetricas. En el trabajo de Amestoy et al. [63] se realiza el estudio delimpacto del tamano del buffer y la utilizacion de receives asincronicos en las bibliotecasMUMPS y SuperLU.

Gupta [144] presento la biblioteca el WSMP que es una version de algoritmo multi-frontal paralelo, disenado tanto para explotar memoria compartida y/o memoria distri-buida. El algoritmo se basa en la propuesta de Hadfield [214], por lo que utiliza los DAGde datos y tareas, empleando balance estatico pero manteniendo para cada proceso unheap dinamico de tareas. Cada tarea se pude mapear en un solo procesador o varios, eneste caso los procesadores se ven como una grilla que puede ser uni o bi-dimensional.Gupta compara en su trabajo las bibliotecas WSMP, MUMPS y SuperLU Dist, presen-tando resultados que le permiten concluir que la biblioteca WSMP logra mejores nivelesde eficiencia computacional.

4.5. Bibliotecas

En esta seccion se presentan algunas de las bibliotecas para el manejo y resolucionde matrices dispersas. Mayor informacion sobre el tema se puede obtener en los si-tios web de Dongarra www.netlib.org/utk/people/JackDongarra/la-sw.html y de Davishttp://www.cise.ufl.edu/research/sparse/codes/.

Algunas bibliotecas para la manipulacion de matrices son SparseLib++ [23] y SPARS-KIT de Saad [24].

Para la resolucion directa de sistemas lineales dispersos se pueden utilizar las si-guientes bibliotecas de uso publico:

DSCPACK [14]. Biblioteca implementada en C para matrices simetricas con op-ciones para trabajar en paralelo con MPI.

HSL [11]. En forma libre se disponen de versiones antiguas de las bibliotecasMAXX del Harwell Subroutine Library.

MFACT [15]. Solver multifrontal implementado en C, puede trabajar en paralelomediante MPI.

Page 84: PEDECIBA INFORMATICA´ - fing.edu.uy

76 Los metodos multifrontales

MUMPS [1]. Solver multifrontal implementado en Fortran 90, que permite la re-solucion de sistemas no simetricos y puede ser ejecutado en paralelo medianteMPI.

PARDISO [17]. Desarrollada en Fortran 77 y C. Una version de la bibliotea es labase de la distribucion MKL de Intel [16].

PaStiX [18]. Biblioteca desarrollada en el INRIA para la factorizacion LU de ma-trices dispersas. Esta basada en la biblioteca Scotch [21] para el particionamientode grafos.

SPARSE [22]. Conjunto de rutinas implementadas en C para resolver sistemaslineales con valores reales y complejos.

Sparspak [87]. Biblioteca de la Universidad de Waterloo que provee rutinas pa-ra la resolucion de sistemas lineales y herramientas para problemas de mınimoscuadrados.

SPOOLES [25]. Biblioteca orientada a objetos, desarrollada en C++ que puedeejecutarse en paralelo utilizando multi-threads o MPI.

SuperLU [26]. Biblioteca que resuelve matrices genericas, tanto reales como com-plejas. Posee versiones multi-threads (SuperLU mt) y de memoria distribuida (Su-perLU Dist).

S+ [20]. Biblioteca que implementa el algortimo right-looking permitiendo la eje-cucion en forma distribuida.

TAUCS [27]. Biblioteca secuencial para la resolucion de sistemas lineales que re-suelve cualquier tipo de matrices. Desarrollada en C.

UMFPACK [28]. Una version de investigacion del paquete MA38, desarrollada enC para resolver matrices no simetricas.

WSMP [29]. Biblioteca con rutinas para la solucion de matrices generales y matri-ces simetricas y definidas positivas. Desarrollada en Fortran 90 y C, basada en labiblioteca PSPASES [19]. Permite explotar paralelismo de memoria compartida yde memoria distribuida (PWSMP).

Yale Sparse Matriz Package(YSMP) [30]. Una de las primeras bibliotecas para laresolucion de sistemas lineales dispersos. Desarrollada en las decadas de 1970 y1980 en la universidad de Yale.

Y12M [53]. Solver secuencial desarrollado en Fortran.

Algunos trabajos que estudian y comparan varias de las bibliotecas listadas ante-riormente son el de Gould et al. del ano 2005 [133] y el de Gupta [143].

Page 85: PEDECIBA INFORMATICA´ - fing.edu.uy

4.6 Conclusiones 77

4.6. Conclusiones

En el capıtulo se presentan distintos aspectos de los metodos multifrontales, queconstituyen una de las tecnicas mas promisorias para la resolucion de sistemas linealesdispersos en forma directa.

Los metodos frontales datan de los anos 1970 y fueron propuestos para la resolucionde grandes sistemas lineales provenientes de los metodos de elementos finitos resolviendolimitantes de memoria. Sin embargo, en el correr de los anos los metodos multifrontalesfueron adaptandose a la evolucion de las distintas arquitecturas de hardware, en principiosacando partido de la ejecucion en forma densa de los distintos frentes mediante lautilizacion de la biblioteca BLAS y posteriormente mediante la aplicacion de tecnicasde programacion paralela.

La aplicacion de paralelismo a los metodos multifrontales obtuvo diferentes nivelesde exito. Los trabajos en los que se aplicaron estrategias de grano fino no demostra-ron buenos niveles de speedup. Por esta razon, las aplicaciones de grano intermedioy grano grueso concentraron el mayor esfuerzo de desarrollo. Si bien la utilizacion detecnicas combinadas para el scheduling y varios avances en el manejo de los distintosniveles de memoria permiten conseguir niveles de speedup aceptables al aplicar tecnicasde programacion paralela de grano grueso a los metodos multifrontales, el alto costoen comunicaciones que implican los metodos directos continua siendo una importantebarrera.

Page 86: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 87: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 5

Mejora del desempeno del modeloRMA-10

5.1. Introduccion

En los primeros capıtulos de la Tesis se presento la importancia de disponer de unaherramienta capaz de modelar el comportamiento del Rıo de la Plata; herramienta quebrinde la capacidad de realizar simulaciones del rıo permitiendo predecir su reaccion antedeterminados sucesos. Como se menciono en el Capıtulo 2, este objetivo ha implicadodiversos esfuerzos, gran parte del trabajo desarrollado en Uruguay se ha concentradoen el IMFIA, primero investigando la utilizacion de esquemas de diferencias finitas paraluego estudiar estrategias de elementos finitos para realizar las simulaciones.

El modelo RMA-10 fue escogido en el IMFIA para realizar la modelacion medianteel paradigma de elementos finitos. Si bien las capacidades de modelado del RMA-10 handemostrado ser muy buenas, el alto costo computacional que implica la ejecucion desimulaciones de varios dıas dificulta su uso.

Por otra parte, en el Capıtulo 3 se presentaron diversas estrategias para mejorar eldesempeno computacional de sistemas informaticos, prestando especial atencion a lasestrategias de alto desempeno para metodos numericos. En este sentido en el Capıtulo4 se realiza un compendio de los metodos frontales y multifrontales para la resolucionde sistemas lineales, siendo esta tarea el corazon de un amplio numero de sistemasnumericos, entre ellos aquellos basados en los MEF.

Tomando como base la informacion resumida en los capıtulos anteriores, en estecapıtulo se presentan diversas propuestas de trabajo secuencial buscando mejorar eldesempeno computacional del modelo RMA-10. Para lograr dicho objetivo, el estudiose centro en la utilizacion del hardware disponible (o posiblemente adquirible) en laFacultad de Ingenierıa.

El capıtulo, comienza con una descripcion de los casos de prueba utilizados para me-dir, comparar los tiempos de computo y validar los resultados numericos de las distintaspropuestas con respecto a la version original. Luego se presentan las caracterısticas delas distintas computadoras utilizadas para ejecutar el modelo. A continuacion se pre-senta un breve estudio de los tiempos de ejecucion de las distintas etapas del modeloRMA-10 y las principales propuestas secuenciales estudiadas durante el trabajo con susrespectivos resultados. Por ultimo, se presentan las conclusiones del capıtulo.

79

Page 88: PEDECIBA INFORMATICA´ - fing.edu.uy

80 Mejora del desempeno del modelo RMA-10

5.2. Casos de prueba

Para lograr mejorar el desempeno computacional del modelo RMA-10 fue necesariorealizar un estudio de los tiempos insumidos por las distintas rutinas originales, pa-ra luego disenar las posibles variantes y por ultimo comparar las distintas propuestasimplementadas con la version original. Esta comparacion se realizo tanto desde el pun-to de vista del desempeno computacional como de los resultados numericos obtenidos,permitiendo por un lado evaluar las posibles mejoras en el desempeno computacionalalcanzadas y por otro lado validar los resultados numericos obtenidos con las versionesnuevas.

Se utiliza, en todo los casos probados, el modelo RMA-10 en su version integrada enla vertical para el calculo del campo de velocidades (en las coordenadas X e Y y profun-didad) y el campo de salinidad para las simulaciones de los procesos hidrodinamicos delRıo de la Plata. El dominio modelado se extiende desde la plataforma oceanica hasta laparte interior del Rıo de la Plata.

Para realizar las comparaciones de desempeno computacional y de resultados numeri-cos fue necesario disponer de un conjunto de casos de prueba. En cada uno de los casosse utilizo una grilla con definicion especıfica y/o niveles de profundidad distintos. Porlo tanto, cada uno de los casos utilizados difiere de los otros ejemplos en la cantidad deelementos, nodos y capas con las que se discretiza el dominio a simular, ası como en lascondiciones de borde inpuestas.

Los casos de prueba utilizados para evaluar las diferentes propuestas fueron creadosen el IMFIA por Ismael Piedra-Cueva y Monica Fosatti.

Para la identificacion de los primeros tres casos de prueba se emplea el numeromayor de ecuaciones presentes en los sistemas lineales involucrados en la resolucion delos sistemas no lineales correspondientes denominandose los casos N-131, N-30787 y N-39759. Mientras que la definicion del cuarto caso es variable en la cantidad de capasque se utilizan para discretizar en la vertical el dominio, lo que implica que la cantidadde ecuaciones presente en los sistemas lineales sea variable y dependiente de las capasespecificadas, por esta razon el caso se denomina N-V.

Las principales caracterısticas de cada uno de los cuatro casos de prueba se detallana continuacion.

Caso N-131

Este caso es un ejemplo completamente artificial, disenado especialmente para depu-rar las estrategias a implementar, ya que el escaso volumen de informacion que manejapermite visualizar la evolucion de los datos de forma sencilla. Por ejemplo, los siste-mas lineales que se generan son de dimensiones tratable en forma densa por cualquierherramienta de manejo de matrices (Matlab, Octave, Scilab, etc) en un computadorde configuracion estandar (PC, con procesador pentium III de 500 Mhz y 256 Mb dememoria RAM).

En este caso el modelo RMA-10 se utiliza con una unica capa de discretizacion enla vertical, disponiendo de 26 elementos y 69 nodos en el plano, lo que implica sistemasde 131 ecuaciones.

Page 89: PEDECIBA INFORMATICA´ - fing.edu.uy

5.2 Casos de prueba 81

Figura 5.1: Imagen de una grilla del Rıo de la Plata.

Caso N-30787

El caso de prueba N-30787 se define por 1630 elementos y 5113 nodos en el plano,siendo la cantidad de capas variables entre los distintos elementos, como maximo seutilizan 3 capas. Estos valores implican un maximo de 30787 ecuaciones presentes en lossistemas lineales.

Este caso corresponde al modelado real del Rıo de la Plata que se cuenta en el IMFIAen la actualidad. Utilizando esta discretizacion se han realizado estudios en los cuales sevalidaron resultados con valores empıricos [111].

Caso N-39759

El caso N-39759 utiliza para la descripcion del dominio 4578 elementos y 9950 nodosen un plano, teniendo un numero variable de capas para cada uno de los elementos.La cantidad de ecuaciones de las matrices de los primeros pasos de las iteraciones deNewton-Raphson es 39759.

Page 90: PEDECIBA INFORMATICA´ - fing.edu.uy

82 Mejora del desempeno del modelo RMA-10

Caso N-V

El caso de prueba N-V constituye otro ejemplo de modelo artificial. El caso se di-seno para trabajar con la misma cantidad de capas en todos los elementos pero permitevariar el numero de capas a utilizar dependiendo de un parametro de entrada. Estadecision de diseno modifica drasticamente el tamano de los sistemas lineales generados,pudiendo llegar a matrices de 113000 ecuaciones cuando se utilizan 5 capas. Si bienel modelo permite utilizar mas capas, la memoria de los computadores disponibles nopermite trabajar con modelos de mas ecuaciones.

La cantidad de elementos y nodos especificados en el plano base son 4578 y 9950respectivamente.

La principal motivacion para crear este caso con capas variables fue la necesidad deestudiar la capacidad de escalabilidad de las diferentes propuestas ante el aumento delos tamanos de los sistemas lineales.

5.3. Hardware utilizado

Durante el trabajo se realizaron pruebas utilizando cuatro computadoras diferentes,los cuales disponen de mas de una unidad de proceso. Los computadores tienen diferentesarquitecturas, las cuales poseen caracterısticas particulares que, como ya se expuso enel Capıtulo 3, privilegian distintas estrategias de trabajo.

A continuacion se realiza una breve descripcion de las caracterısticas de cada unode los computadores disponibles y sus arquitecturas. En lo que resta del trabajo sereferira a las computadoras mediante su nombre: obras07, dieste, cluster CeCal y clusterGeronimo.

5.3.1. obras07

La computadora obras07 es un computador Dell, con dos procesadores Pentium IVde 1.8 GHz, que dispone de 1 GB de memoria RAM y tiene instalado el sistema operativoLinux Red Hat version 7.3.

El compilador Fortran disponible en el computador obras07 es el Intel 7.0. En lacomputadora se instalo MPICH [35] version 1.2.6 como implementacion del estandar depasaje de mensajes MPI.

5.3.2. dieste

Dieste es un multiprocesador de memoria compartida SUNSPARCenter 2000 e dearquitectura SPARK8 cuya implementacion es SuperSPARK 2.

El computador dispone de 4 GB de memoria RAM y 16 unidades de procesamiento de85 MHz de velocidad. Cada unidad de procesamiento dispone de una memoria cache L2de 2 MB. En el trabajo de Ares [69] se puede profundizar sobre la configuracion de estecomputador.

El compilador Fortran utilizado en dieste es la version del g95 de SUN para UNIX,y dispone de la implementacion LamMPI [32] de MPI.

Page 91: PEDECIBA INFORMATICA´ - fing.edu.uy

5.4 Evaluacion de tiempos del modelo RMA-10 83

5.3.3. cluster CeCal

El cluster disponible en la Facultad de Ingenierıa de la UdelaR, denominado CeCal,es un cluster heterogeneo de PC’s que consta en la actualidad de tres maquinas. Lascaracterısticas de cada uno de los nodos se presentan a continuacion.

winux: posee un procesador Pentium II de 400 MHz de velocidad y 256 Mb dememoria RAM.

loki: posee un procesador Pentium II de 400 MHz de velocidad y 256 Mb dememoria RAM.

billtux: tiene un procesador Pentium III de 930 MHz de velocidad y 512 Mb dememoria RAM.

La velocidad de transmision de la red que une las tres computadoras es de 10Mbit/sec.

Las maquinas utilizan la distribucion SuSe del sistema operativo Linux version 9.3,disponiendo de MPICH como implementacion del estandar MPI. Se cuenta con el com-pilador Intel Fortran 7.0 en el cluster.

5.3.4. cluster Geronimo

Geronimo [42] es un cluster de tipo beowulf perteneciente al Centro Internacional deMecanica Computacional (CIMEC) de Santa Fe, Argentina.

El cluster consta de un servidor y 20 nodos con procesadores Pentium IV, 10 nodosdisponen de procesadores de 2,4 Ghz de velocidad, 1 MB de memoria RAM (DDR 333MHz), mientras que los restantes 10 son de 2,8 GHz y poseen memoria RAM de 2 MB(DDR 400 Mhz).

Los computadores del cluster Geronimo estan interconectados mediante una redNetwork Encore ENH924-AUUT+ Fast Ethernet switch, cuya velocidad de transmisiones de 100 Mbit/sec.

Las computadoras utilizan sistemas operativos Red Hat, versiones 5.2 a la 7.1. Elcompilador Fortran disponible en el cluster es el g95 de la distribuciones Red Hat ycomo implementacion de MPI se utilizo MPICH.

Si bien el computador no pertenece a la Facultad de Ingenierıa ni se encuentradisponible en forma on-line, el cluster Geronimo estuvo disponible para su utilizaciondurante la estadıa realizada en el CIMEC. Entre otras cosas el cluster fue de gran utilidadpara evaluar posibles lıneas de trabajo, algunas desarrolladas y otras propuestas parallevar a cabo en el futuro.

5.4. Evaluacion de tiempos del modelo RMA-10

En esta seccion se presentan los resultados obtenidos de evaluar los tiempos deejecucion del modelo RMA-10 en su implementacion original. Para realizar esta etapadel trabajo se utilizo el caso de prueba N-30787, realizando el total de las ejecucionesen el computador obras07, utilizandolo en forma dedicada.

Page 92: PEDECIBA INFORMATICA´ - fing.edu.uy

84 Mejora del desempeno del modelo RMA-10

Es importante hacer notar que para cada una de las propuestas que se presentan eneste trabajo se realizo una etapa preliminar en la cual se busco optimizar las opcionesdel compilador, buscando los mejores tiempos de computo sin perder calidad en losresultados. En el caso de la implementacion original del modelo RMA-10 se utilizo laoptimizacion de opciones de compilacion sugeridas por Vincent Ho et al. en reportetecnico no publicado [155]. Como consecuencia, los tiempos de ejecucion que se presentanen lo que resta del trabajo son los resultantes de aplicar a las distintas versiones utilizadaslas optimizaciones de compilacion.

En cuanto a la configuracion del criterio de parada del metodo Newton-Raphsonse ha utilizado en forma general como cota superior de la iteracion 6 pasos, sin em-bargo en algunos casos particulares se utilizaron otras configuraciones que se aclaranoportunamente.

5.4.1. Tiempos de ejecucion del modelo RMA-10

En el Cuadro 5.1 se resumen los tiempos de ejecucion evaluados para las distintasetapas del modelo RMA-10 especificadas en el Algoritmo 1 (presentado en el Capıtulo2 del trabajo).

Etapa Tiempo (seg)Inicializacion. 0.59

Calcular estructuras auxiliares. 0.02Resolver sistema lineal para calcular aporte. 35.57

Resolver velocidad vertical. 0.55Desafectar ecuaciones que cumplen condicion de convergencia. 0.10

Modificar las condiciones iniciales y registrar resultados. 0.06

Cuadro 5.1: Tiempos de ejecucion de las distintas etapas del modelo RMA-10.

El tiempo de ejecucion de la etapa de inicializacion se calculo sin efectuar reorde-namiento de nodos en forma explıcita. Realizar la etapa de inicializacion efectuandoreordenamiento de nodos en forma explıcita insume aproximadamente 10 segundos (untiempo poco significativo). Es importante hacer notar que el tiempo de ejecucion de laetapa de inicializacion es independiente de la cantidad de pasos a simular, por lo que eltiempo que implica aun si fuese importante la influencia serıa asimismo poco significati-va al trabajar con simulaciones de periodos importantes. En el caso evaluado el tiempode inicializacion es poco significante, siendo menor al requerido para efectuar un pasode la iteracion del metodo de Newton-Raphson.

Otro aspecto a destacar del estudio, es que el calculo del tiempo de ejecucion de laetapa de resolucion de sistemas lineales se realizo en base al promedio de los tiemposde resolucion de los sistemas de ecuaciones de mayor tamano, es decir los sistemaslineales de las primeras iteraciones del metodo de Newton-Raphson cuando aun no sehan desacoplado ecuaciones. Esta decision se justifica por el argumento que se presentaa continuacion.

Page 93: PEDECIBA INFORMATICA´ - fing.edu.uy

5.4 Evaluacion de tiempos del modelo RMA-10 85

Tıpicamente la iteracion de Newton-Raphson de 6 pasos implica para el caso utilizado(N-30787) en las dos o tres primeras iteraciones la resolucion de los sistemas linealescompletos (30787 ecuaciones) para luego decrementar entre 1000 y 5000 el numero deecuaciones en cada paso, dependiendo de la no linealidad del sistema a resolver. Estecomportamiento del algoritmo implica grandes reducciones en los tiempos de calculo dela rutina FRONT. Por ejemplo la resolucion de un sistema de 24760 ecuaciones insumeaproximadamente 16 segundos de computo, implicando que un reduccion del 20 % menosde ecuaciones significa una disminucion en mas del 50% del tiempo de calculo. Masadelante en el capıtulo se puede observar mayor informacion sobre esta peculiaridad delmodelo.

Teniendo en cuenta las ideas expuestas en los parrafos anteriores y considerandolos resultados resumidos en el Cuadro 5.1, se puede concluir que la mayor fuente deconsumo de tiempo de computo es la etapa de calculo y resolucion de las matrices derigidez. Esta etapa se realiza en cada paso de la iteracion del metodo Newton-Raphsonpara la resolucion de los sistemas no lineales y es efectuada por la rutina FRONT delmodelo RMA-10.

5.4.2. Tiempos de ejecucion de la rutina FRONT

Debido a que la rutina FRONT resulto ser la mas costosa en el estudio presentado enla seccion anterior y de forma de profundizar en los resultados, se realizo una segundainstancia de estudio orientada a evaluar los tiempos de computo de las distintas etapasde la rutina FRONT.

Como se menciono en el Capıtulo 2, la rutina FRONT utiliza el metodo frontal para laresolucion de los sistemas lineales. El metodo no necesita realizar el calculo de todos loscoeficientes de la matriz de rigidez para comenzar a realizar la factorizacion, sino que sumodalidad de trabajo es ir evaluando los distintos elementos (calculando los coeficientesque aportan) y factorizar los distintos frentes (subconjunto de filas y columnas de lamatriz de rigidez, que poseen todos los coeficientes calculados), de forma de utilizar unamenor cantidad de memoria. Sin embargo, para intentar identificar de forma clara laszonas crıticas del codigo, se delimitaron y calcularon los tiempos de los tres fragmentoslogicos que a priori posee la rutina:

el calculo de los coeficientes.

la factorizacion de los distintos frentes de la matriz dispersa.

la resolucion.

Par calcular los tiempos de cada una de las etapas logicas de la rutina FRONT seefectua la sumatoria de los tiempos de ejecucion de las partes practicas que las componen.Por ejemplo, el tiempo de factorizacion de la rutina se calculo como la sumatoria de lostiempos de ejecucion para factorizar cada uno de los frentes.

En el Cuadro 5.2 se puede observar la relacion de tiempos de computo de las trespartes identificadas de la rutina FRONT. Los tiempos presentados son el promedio de 10ejecuciones.

En base a los tiempos calculados se puede concluir que la factorizacion es en formacategorica la etapa mas costosa de la rutina FRONT.

Page 94: PEDECIBA INFORMATICA´ - fing.edu.uy

86 Mejora del desempeno del modelo RMA-10

Etapa Tiempo (seg) Desv. Est.Calculo de coeficientes 2.88 0.11

Factorizacion 32.14 0.16Sustitucion hacia atras 0.55 0.01

Total 35.57 0.19

Cuadro 5.2: Tiempos de ejecucion de las distintas etapas logicas de la rutina FRONT.

5.5. Propuesta secuencial

Posteriormente al estudio de los tiempos de ejecucion del modelo RMA-10, el cualrevelo que la rutina FRONT era la principal fuente de consumo de tiempo de computo, yluego de una ardua etapa de estudio y comprension de las tareas que realiza la rutina,se presentaron dos lıneas de trabajo bien diferentes. Por una parte mejorar el desem-peno computacional de la estrategia frontal o la alternativa de cambiar la estrategia deresolucion de los sistemas lineales.

La primera lınea de trabajo consiste en mantener la estrategia de trabajo frontalpara la resolucion de los sistemas lineales. Intentando disminuir los tiempos de ejecucionde la etapa de factorizacion, buscando mejorar diversos aspectos de la implementaciondel metodo frontal o intentando aplicar tecnicas de programacion paralela/distribuidaa la rutina.

La segunda opcion consiste en cambiar la metodologıa de trabajo que utiliza larutina FRONT por otra. En este caso serıa necesario establecer una primera etapa degeneracion de la matriz de rigidez1. Luego se tendrıa que disponer de un algoritmo parafactorizar y resolver los sistemas lineales, ya sea implementando un algoritmo especıficoo adaptando alguna biblioteca disponible. Debido a las importantes dimensiones de lasmatrices de rigidez, para su manejo, esta lınea de trabajo necesariamente tendrıa queutilizar estrategias de almacenamiento disperso.

La segunda opcion de trabajo descrita permite capitalizar el avance en un area quecomo se presento en los Capıtulos 3 y 4 posee un amplio desarrollo y una gran cantidadde grupos de investigacion trabajando en ella en la actualidad. Como contrapartida,es imprescindible manejar una buena estructura de datos auxiliares para ser capaz degenerar la matriz de rigidez en tiempos de computo razonables y por ende tambien esnecesario la utilizacion de una cantidad mayor de memoria para llevar esta lınea detrabajo adelante.

Ante las dos opciones mencionadas se opto por la segunda lınea de trabajo. La deci-sion se baso fuertemente en ponderar la flexibilidad que brinda, ya que permite por unlado utilizar gran cantidad de trabajo desarrollado previamente y por otro cambiar en unfuturo el metodo de resolucion de una forma relativamente sencilla ante la aparicion denuevos algoritmos o ante posibles cambios de la arquitectura del hardware a utilizar.En

1Existen diversas bibliotecas para la resolucion de sistemas lineales involucrados en los MEF quepermiten ingresar la matriz en formato elemental, es decir ir agregando los coeficientes asociados a cadaelemento. Si se utiliza una biblioteca con las caracteristicas mencionada no es necesario disponer deuna etapa de generacion de la matriz en formato disperso. Sin embargo, por lo general los tiempos deejecucion de este tipo de estrategias son superiores a los obtenidos al utilizar estrategias que trabajandirectamente sobre la estructura de datos.

Page 95: PEDECIBA INFORMATICA´ - fing.edu.uy

5.5 Propuesta secuencial 87

adicion a estos argumentos, la gran limitante actual del modelo es el tiempo de calculoy no la utilizacion de memoria, siendo esta la principal desventaja de la segunda opcion.

Basados en la informacion expuesta en los parrafos anteriores, la primera propuestapara mejorar el desempeno computacional del modelo RMA-10 consiste en una nuevaimplementacion de la rutina FRONT.

La logica e implementacion de la nueva rutina FRONT se puede dividir (a diferencia dela rutina FRONT original) en tres fases independientes, que se describen a continuacion.

Calculo de los coeficientes: en esta etapa se calculan todos los coeficientes de lamatriz aportados por los distintos elementos. Los valores calculados se cargan enuna estructura auxiliar.

Generacion de la matriz: en base a los resultados de los calculos de la etapa previa,filtrando y reordenando distintos coeficientes se genera la matriz dispersa en algunformato.

Resolucion del sistema: en la ultima etapa se realiza la factorizacion y resoluciondel sistema lineal.

5.5.1. Calculo de los coeficientes

La primera etapa de calculo de los coeficientes se compone de una iteracion sobretodos los elementos de la malla, en la cual para cada elemento se calcula el aporte a loscoeficientes de la matriz de cada uno de los nodos para cada una de las variables libresdefinidas. Para esta tarea se utilizan las rutinas originales del sistema (rutinas COEFXX),que calculan los coeficientes y los almacenan en una estructura local que como maximoposee 80 valores (20 nodos por elemento y 4 variables libres).

A continuacion se almacenan los valores anteriormente calculados en una estructuraauxiliar de tipo tabla de dispersion abierta [57]. Esta estructura se utiliza para almacenarglobalmente toda la matriz.

La estrategia de las tablas de dispersion (comunmente denominadas hash) se basa endividir el conjunto de datos a almacenar en una cantidad especifica de clases (tambiendenominadas cubetas). Para esta tarea es necesario la definicion de una funcion dedispersion, la cual para cada objeto del conjuto de datos devuelve una unica clase. Alutilizar hash abiertos, cada cubeta de la tabla de dispersion dispone de una lista deelementos.

En esta propuesta la funcion de dispersion utilizada queda definida por la fila delcoeficiente a almacenar, como se presenta en la Ecuacion 5.1 y la lista de las cubetas secompone de varios nodos en donde cada uno de ellos es una dupla en el que se disponedel indicador de columna y el valor.

fdispersion(coefij) = i (5.1)

Page 96: PEDECIBA INFORMATICA´ - fing.edu.uy

88 Mejora del desempeno del modelo RMA-10

Para cargar los datos se aplica la funcion de dispersion a cada coeficiente (por ejemplocoefij), y una vez obtenida la cubeta (la i en el ejemplo) de la tabla de dispersion, serecorre la lista que tiene asociada la cubeta buscando si ya existe alguna entrada cuyovalor de columna sea igual al de la columna del coeficiente a almacenar (j en el ejemplo),en caso afirmativo se suma al valor de la entrada el valor del coeficiente calculado, encaso contrario se agrega un nuevo nodo al final de la lista con el valor e indicador decolumna correspondiente.

Al finalizar esta etapa de la rutina se cuenta con todos los coeficientes de la matrizen un formato disperso simple (en el Anexo A se puede obtener mas informacion sobrematrices dispersas). Sin embargo, por la forma de construccion pueden existir entradasde fila y columna que posean valores nulos.

5.5.2. Generacion de la matriz

La segunda etapa de la rutina propuesta consiste en llevar a cabo diversas tareas dedepuracion, que se realizan para poder invocar al metodo de resolucion que se este uti-lizando. Entre otras tareas de depuracion se pueden filtrar los coeficientes nulos que sehayan generado, ordenar los coeficientes de la matriz dispersa y/o generar las estructurasauxiliares de forma de disponer de la matriz en el formato y almacenamiento necesariopara la siguiente etapa.

Si bien conceptualmente esta etapa es adaptable para cualquier solver, se desa-rrollo una version particular para la biblioteca utilizada. En este caso se filtran loscoeficientes nulos y no se establece ningun orden (mas que el dado por la agrupacion delos coeficientes de las mismas filas), debido a que la biblioteca utilizada en la etapa defactorizacion no lo requiere.

5.5.3. Resolucion

La ultima etapa de la nueva rutina FRONT se encarga de la factorizacion y resoluciondel sistema de ecuaciones propiamente dicho. Para esta tarea se propuso utilizar laversion serial de la biblioteca de uso libre MUltifrontal Massively Parallel sparse directSolver (MUMPS) version 4.3 [65, 62], biblioteca que se basa en el paradigma de losmetodos multi-frontales.

La biblioteca permite optar entre diferentes estrategias de ordenamiento de los pi-votes de forma de mejorar el tiempo de calculo y de minimizar los errores numericos.Como se menciono en el Capıtulo 4, encontrar un ordenamiento optimo de los pivotes esun problema NP-difıcil, por lo que las distintas estrategias se basan en heurısticas queintentan lograr una solucion de compromiso entre el tiempo de calculo de la heurısti-ca, los posibles errores numericos y la minimizacion del fill-in ( la aparicion de nuevoscoeficientes no nulos en la matriz durante su factorizacion). La biblioteca dispone de lasestrategias de ordenamientos AMD (approximate minimum degree ordering) [60], AMF(approximate minimum fill-in ordering) [212], PORD [219] que utiliza una estrategiahıbrida y fuera presentada por Jurgen Schulze de la Universidad de Paderborn, Alema-nia y QAMD (approximate minimum degree ordering with automatic quasi dense rowdetection) [59].

La version secuencial de la biblioteca MUMPS necesita disponer de la bibliotecaBLAS. En el trabajo se utilizaron dos implementaciones de la biblioteca BLAS, la im-plementacion del repositorio netlib [2] y la de Kazushige Goto disponible en su sitio

Page 97: PEDECIBA INFORMATICA´ - fing.edu.uy

5.6 Resultados 89

web [12]. Se utilizan las versiones serial y multithreads de la biblioteca BLAS de Gotooptimizada para procesadores pentium IV con 512 Kb de cache bajo sistemas operativosLinux.

Ademas de utilizar la biblioteca MUMPS se realizaron diversos estudios preliminaresutilizando otras estrategias para la resolucion en forma independiente de un sistemalineal extraıdo de los calculos del modelo. Se evaluo la biblioteca y12 [53] que se basanen metodos directos de resolucion. Tambien se evaluo la biblioteca itpack [51] que utilizanestrategias iterativas, ademas se implementaron los algoritmos Jacobi, Gauss-Seidel yS.O.R.. En todos los casos se obtuvieron malos resultados, en el caso de los metodosdirectos y algunos metodos iterativos (BCGM) se obtuvieron tiempos de computo muysuperiores a los obtenidos con la biblioteca MUMPS, mientras que en la mayorıa delos metodos iterativos el mal condicionamiento de las matrices hacıa que los metodosdivergieran, no siendo capaces de obtener soluciones al problema.

5.6. Resultados

En esta seccion se presentan los estudios llevados a cabo con el objetivo de evaluarla version de la rutina FRONT propuesta. Los estudios se realizaron sobre los casos deprueba descritos en la Seccion 5.2, utilizando en forma exclusiva el computador obras07.

En primer termino se presenta la evaluacion de los resultados numericos de la pro-puesta en cinco puntos distribuidos en el dominio, para luego comparar los tiempos decomputo al realizar simulaciones con la version original del modelo RMA-10 y con la ver-sion propuesta. A continuacion se presenta la evaluacion de la utilizacion de las distintasestrategias de ordenamiento disponibles en la version 4.3 de la biblioteca MUMPS. Porultimo, se presenta un breve estudio de la escalabilidad de la propuesta realizada.

Resultados numericos

No es necesario profundizar en detalles sobre la necesidad de que la version pro-puesta logre obtener resultados numericos similares a los que se obtienen con la versionoriginal. Es importante resaltar la dificultad de alcanzar dicho objetivo, considerandoque como se menciono en el Capıtulo 2 las matrices involucradas en la resolucion delmodelo RMA-10 aplicado al Rıo de la Plata son altamente mal condicionadas, generan-do que pequenas perturbaciones en los calculos puedan implicar grandes cambios en losresultados numericos en pocos pasos de simulacion. En este sentido, y con el objetivode realizar la validacion desde el punto de vista numerico de la version propuesta, secomparo el resultado de efectuar una simulacion de importancia media que implica 576pasos de tiempo equivalente a 192 horas (8 dıas) de simulacion, utilizando la compu-tadora obras07, sobre cinco puntos distribuidos en distintas zonas de la malla para elcaso N-30787.

Los resultados obtenidos se pueden observar en el Cuadro 5.3, que presenta valoresde velocidad total, elevacion y salinidad. El estudio de la informacion que brinda la tablapermite afirmar que ambas versiones obtuvieron resultados sumamente similares, ya quelas diferencias en los resultados numericos finales en ninguna ocasion superan el 0,01 %.

Page 98: PEDECIBA INFORMATICA´ - fing.edu.uy

90 Mejora del desempeno del modelo RMA-10

Nodo Version Vel. Total Elevacion SalinidadNodo 1519 Original 0.111316 0.784859 33.9156Nodo 1519 Propuesto 0.111293 0.784851 33.9156Nodo 2421 Original -0.395645 0.885763 33.6970Nodo 2421 Propuesto -0.395656 0.885757 33.6970Nodo 3021 Original 0.365118 1.19102 23.4713Nodo 3021 Propuesto 0.365115 1.19102 23.4713Nodo 3215 Original -1.09168 0.888560 22.4547Nodo 3215 Propuesto -1.09166 0.888556 22.4547Nodo 4226 Original 0.567655 2.08858 0.179923E-04Nodo 4226 Propuesto 0.567654 2.08858 0.179923E-04

Cuadro 5.3: Resultados numericos de la version original y propuesta.

Evaluacion de tiempos de computo

En cuanto a la evaluacion de tiempos de computo, el estudio se centro en la compa-racion de los tiempos de ejecucion del modelo original y el resultante de las variacionespropuestas por un lado y en la comparacion de los tiempos de la rutina FRONT originaly la rutina FRONT propuesta por otro.

En el Cuadro 5.4 se presentan los tiempos de ejecucion de realizar una simulacion de576 pasos de tiempo utilizando el modelo en la version original y la propuesta. Se puedeobservar que el tiempo de ejecucion de la version propuesta es casi una cuarta parte dela version original.

Version Tiempo (minutos)Original 1578,6

Propuesta 450,7

Cuadro 5.4: Comparativo de tiempos de la version original y la propuesta.

En cuanto a los tiempos que insume la nueva rutina FRONT en el Cuadro 5.5 sepresentan los tiempos de ejecucion promedio de cada una de las tres etapas especificadasen la seccion de diseno de la version propuesta, ası como el tiempo de ejecucion de larutina en su totalidad. El resumen de los tiempos de ejecucion de la rutina FRONT originalya fue presentado en el Cuadro 5.2.

Estudiando los resultados del Cuadro 5.5 y comparandolos con los tiempos de ejecu-cion de la rutina original se pude observar que la rutina FRONT original implica aproxima-damente cuatro veces el tiempo que insume la rutina propuesta. Ademas, si comparamosel tiempo de ejecucion de la etapa de factorizacion de la rutina original con la suma delos tiempos de cargar la estructura auxiliar, el reordenamiento, mas el tiempo de facto-rizacion y resolucion del sistema lineal de la rutina FRONT propuesta, es posible concluirque la relacion de costo es de aproximadamente 6 a 1.

Page 99: PEDECIBA INFORMATICA´ - fing.edu.uy

5.6 Resultados 91

Etapa Tiempo (seg) Desv. Est.Calculo de coeficientes 3.48 0.10

Reordenamiento 0.20 0.02Resolucion 4.91 0.05

Total 8.59 0.06

Cuadro 5.5: Tiempo de calculo de las distintas etapas de la rutina FRONT propuesta.

Estrategias de ordenamiento

Al momento de resolver sistemas lineales con los metodos multifrontales es importan-te la aplicacion de estrategias de ordenamiento de las filas/columnas para la obtencionde buenos tiempos de ejecucion.

Las estrategias de ordenamiento de pivotes, como ya se menciono en el Capıtulo 4,se basan en general en heurısticas que explotan diferentes caracterısticas de las matri-ces. Esto implica que la aplicacion de una estrategia de ordenamiento puede ser muybuena para un tipo de matrices, pero no ser efectiva para otro tipo. En este sentido serealizo un breve estudio de la afectacion de los tiempos de ejecucion al variar las estrate-gias de reordenamiento. Se probaron las distintas estrategias disponibles en la bibliotecaMUMPS que son AMD, AMF, PORD y QAMD.

El estudio consistio en evaluar en el computador obras07 los tiempos de ejecucion dela nueva rutina FRONT sobre sistemas lineales del caso de prueba N-30787, utilizando lasdiferentes estrategias de ordenamiento. Los resultados que se presentan son el promediode 10 ejecuciones. En el Cuadro 5.6 se pueden observar el tiempo de ejecucion de lafactorizacion al utilizar las distintas estrategias de reordenamiento.

Ordenamiento Tiempo (seg) Desv. Est.AMD 8.59 0.06AMF 8.75 0.04PORD 8.85 0.06QAMD 8.50 0.04

Cuadro 5.6: Tiempo de calculo de la rutina FRONT propuesta utilizando diferentes estra-tegias de ordenamiento.

En base a los resultados obtenidos se puede afirmar que las estrategias evaluadasalcanzan resultados similares sobre la clase de sistemas lineales que se intentan resolver.Aunque las estrategias QAMD y AMD logran una pequena ventaja, siendo esta ultimala estretegia que por defecto escoge la bibloteca para resolver los sistemas con los quese prueba en esta seccion.

Page 100: PEDECIBA INFORMATICA´ - fing.edu.uy

92 Mejora del desempeno del modelo RMA-10

Escalabilidad

Si bien los resultados presentados anteriormente permiten afirmar que la versionpropuesta posee mejor desempeno en lo que se refiere a tiempo de computo, tambien esimportante saber como varıa el desempeno al cambiar las dimensiones de los problemasa resolver. Por este motivo es conveniente estudiar si al aumentar la complejidad delproblema se continua obteniendo un buen desempeno computacional, o si la performancese deteriora. En este sentido se realizaron diversas pruebas para evaluar la escalabilidadde la propuesta.

El Cuadro 5.7 y la Figura 5.2 muestran la evolucion del tiempo de ejecucion en elequipo obras07 de la rutina FRONT original y la propuesta, al resolver sistemas linealesresultantes de desacoplar ecuaciones del sistema principal del caso de prueba N-30787.Esto permite variar la cantidad de ecuaciones de los sistemas lineales a resolver.

Figura 5.2: Escalabilidad de la rutina propuesta al aumentar el numero de ecuaciones aresolver.

Los resultados que se obtienen son sumamente alentadores con respecto a la rutinaFRONT propuesta. Cuando se resuelven pocas ecuaciones (menos de 7000), el desempenode la version original de la rutina es igual o superior al de la version propuesta. Sinembargo, a medida que se incrementa el numero de ecuaciones a resolver, las diferenciasen los tiempos de ejecucion a favor de la rutina propuesta aumentan considerablemente

Page 101: PEDECIBA INFORMATICA´ - fing.edu.uy

5.6 Resultados 93

Version original Version propuestaEcuaciones Tiempo (seg.) Ecuaciones Tiempo (seg.)

1774 0.55 1774 0.594485 0.96 4485 1.036460 1.06 6460 1.0713666 4.03 13666 2.6513690 4.02 13690 2.6814933 4.09 14933 2.7616464 5.41 16264 3.9918586 8.57 18003 4.4721010 10.80 21020 5.8224759 16.18 24241 6.5926290 29.41 26342 7.9027102 32.11 27108 8.2127415 32.84 27400 8.1429370 33.62 29462 8.4329761 34.13 29806 8.4630787 35.57 30787 8.59

Cuadro 5.7: Tiempo de computo de la rutina FRONT original y propuesta al aumentar lacantidad de ecuaciones.

hasta llegar a su punto maximo para el caso del mayor sistema lineal evaluado, de 30787ecuaciones. En este ultimo caso, la version propuesta resulta aproximadamente 4 vecesmas rapida con respecto a la version original.

Una vez obtenidos los resultados sobre la escalabilidad de la version propuesta con elcaso de prueba N-30787, se intentaron validar dichos resultados trabajando con sistemaslineales del caso N-39759.

Al utilizar el caso N-39759 no solo se valido la hipotesis, sino que se descubrio unhecho relevante. Una cualidad de los sistemas lineales del caso de prueba N-39759 esque si bien las matrices con las que trabaja poseen un numero mayor de ecuaciones quelas involucradas en la resolucion de los sistemas lineales del caso N-30787, la densidad(cantidad de coeficientes no nulos sobre cantidad total de coeficientes) de las matricesdel caso N-39759 es mucho menor.

Como ejemplo de las diferencias de densidad mencionadas anteriormente se puedeobservar que las matrices de mayor tamano en el caso N-30787 son de 30787 ecuacionesy poseen en el entorno de 2854000 coeficientes no nulos, lo que implica una densidad enel entorno de 0,0030. Por su parte, las mayores matrices en el caso N-39759 son de 39759ecuaciones y cuentan con aproximadamente 2333000 coeficientes no nulos implicando,una densidad cercana a 0,0015.

Las cualidades de los sistemas lineales presentes en ambos casos permiten estudiarla dependencia de los tiempos de computos de la rutina FRONT original y de la versionpropuesta con respecto al numero de ecuaciones, ası como la dependencia con respectoa la cantidad de coeficientes no nulos presentes en las matrices. El Cuadro 5.8 presentadichos resultados.

Al observar los resultados del Cuadro 5.8 es posible detectar dos hechos relevantes.

Page 102: PEDECIBA INFORMATICA´ - fing.edu.uy

94 Mejora del desempeno del modelo RMA-10

Caso Coef. no nulos Version Tiempo (seg) Desv. EstN-30787 2853756 Original 35.57 0.19N-30787 2853756 Propuesta 8.59 0.06N-39759 2332752 Original 54.01 0.14N-39759 2332752 Propuesta 6.06 0.13

Cuadro 5.8: Tiempos de la rutina FRONT original y propuesta para los casos N-30787 yN-39759.

El primero, que las diferencias en los tiempos de computo entre la version original yla propuesta en el caso N-39759 son mucho mayores que las obtenidas para el caso deprueba N-30787, ya que para el caso N-39759 la version de la rutina FRONT propuesta fuecasi nueve veces mas rapida que la rutina original. Estos resultados permiten confirmarla capacidad de escalabilidad de la rutina FRONT propuesta en comparacion con la rutinaoriginal.

El segundo hecho a destacar es que la version de la rutina FRONT propuesta obtieneun mejor desempeno en cuanto a tiempo de ejecucion para la resolucion del sistema linealdel caso N-39759 que el que obtiene para el sistema lineal del caso de prueba N-30787,aun teniendo el primer sistema lineal aproximadamente un 30 % mas de ecuaciones queel segundo.

Este hecho permite conjeturar que el tiempo de computo de la version propuestadepende debilmente de la cantidad de ecuaciones de los sistemas lineales a resolver, yse encuentra fuertemente ligada a la cantidad de coeficientes no nulos de las matricesinvolucradas. Este resultado es sumamente importante por dos razones, por un ladoporque generalmente la densidad en las matrices vinculadas a la resolucion de modelos deelementos finitos es baja, pero tambien porque brinda una vıa de trabajo para disminuirel tiempo de computo al trabajar con sistemas lineales de grandes dimensiones, buscandodisminuir la densidad de las matrices involucradas.

Por ultimo, se realizaron algunos experimentos para evaluar la escalabilidad de larutina propuesta con sistemas lineales del caso N-V. Se evaluaron los tiempos de eje-cucion de la rutina FRONT propuesta para distintos sistemas lineales, los cuales poseencantidades mayores de ecuaciones que los evaluados anteriormente. Los resultados de losexperimentos se resumen en el Cuadro 5.9.

Ecuaciones Coef. no nulos Tiempo (seg) Desv. Est.67035 4676347 12,24 0,2090021 6729391 25,84 0,33113007 8782516 35,95 0,51

Cuadro 5.9: Tiempos de ejecucion de la rutina FRONT propuesta para sistemas linealesdel caso N-V.

Al observar los datos de el Cuadro 5.9 se puede corroborar los resultados obtenidosal estudiar la escalabilidad con el caso N-39759, ya que los tiempos de ejecucion estanligados a la cantidad de coeficientes no nulos.

Page 103: PEDECIBA INFORMATICA´ - fing.edu.uy

5.7 Conclusiones 95

5.7. Conclusiones

En el capıtulo se presenta primero el estudio de los tiempos de ejecucion del modeloRMA-10. A continuacion se describen los distintos modelados del Rıo de la Plata ycomputadores utilizados durante el trabajo. Luego se presenta una propuesta secuencialpara modificar el modelo RMA-10 que en base a los resultados obtenidos durante elestudio de los tiempos de ejecucion se centra en la rutina FRONT.

La version propuesta demostro conseguir resultados numericos sumamente similaresa la version original, mientras que en lo referente a costo computacional la propuestademostro insumir en el entorno de la cuarta parte de tiempo que la version original parala simulacion de un caso real.

Por otra parte, los experimentos que estudian la escalabilidad de la propuesta handemostrado que a medida que aumenta el tamano de los sistemas lineales a resolver,las diferencias en los tiempos de ejecucion con respecto a la version original aumentan,alcanzando relaciones de 9 a 1 para el caso N-39759.

En resumen se consiguio una version ampliamente superior en cuanto a la velocidadde computo, mientras que los resultados numericos obtenidos se pueden considerar debuena calidad. Sin embargo es previsible, por utilizar metodos directos en la propuesta,que la escalabilidad de la aplicacion no vaya mucho mas alla de la resolucion de sistemaslineales de unas cuantas decenas de miles de ecuaciones a lo sumo algunos cientos demiles de ecuaciones. Si la intencion fuese lograr superar dicha barrera serıa necesarioencarar otro tipo de estrategias, como por ejemplo metodos iterativos.

Page 104: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 105: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 6

Tecnicas de procesamientoparalelo aplicadas al modeloRMA-10

6.1. Introduccion

En el Capıtulo 3 se presentaron diversas estrategias generales para lograr la mejoradel desempeno computacional de sistemas informaticos, tratandose con especial enfasislas aplicaciones de calculo cientıfico. En el Capıtulo 4 se profundiza en las tecnicasmultifrontales para la resolucion de sistemas lineales. En base a la informacion relevadaen ambos capıtulos, en el Capıtulo 5 se presentan algunas propuestas para mejorar eldesempeno del modelo RMA-10, logrando una nueva version serial del modelo que hademostrado alcanzar tiempos de computo mas que aceptables.

El principal objetivo de este trabajo era mejorar el desempeno computacional delmodelo, objetivo que como se presenta en las conclusiones del Capıtulo 5 se ha alcan-zado con creces. Sin embargo, la ambicion de lograr mayores mejoras del desempenocomputacional del modelo y la necesidad de resolver los problemas de escalabilidadmencionados en el capıtulo anterior, motivaron la busqueda de nuevas alternativas.

Ante los nuevos desafıos planteados, la aplicacion de estrategias de trabajo en paralelo-distribuido se presento como una opcion capaz de lidiar con las limitantes encontradas.En lo que resta del capıtulo se evaluan distintas opciones para la aplicacion de tecnicasde programacion paralela-distribuida al modelo RMA-10. Por distintas razones, en espe-cial por falta de tiempo, algunas de las opciones que se describen no fueron investigadasen profundidad.

El estudio se divide en tres etapas, en base a la clasificacion propuesta por Dongarra[96] segun el nivel de paralelismo utilizado: a nivel de sub-matriz, a nivel de matriz o anivel de sistema. Primero se presentan las estrategias a nivel de sub-matriz, describiendolas tecnicas automaticas disponibles en el compilador Intel Fortran 7.0 y la utilizacionde una implementacion de la biblioteca BLAS multi-threads. A continuacion se mues-tra una aplicacion de paralelismo a nivel de matriz al modelo RMA-10, explicando sudiseno y mostrando resultados. Por ultimo se presentan algunos trabajos preliminaresde paralelismo a nivel de sistema sobre arquitecturas de memoria distribuida.

97

Page 106: PEDECIBA INFORMATICA´ - fing.edu.uy

98 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

6.2. Paralelismo a nivel de sub-matriz

Los estudios referentes a la aplicacion de estrategias de programacion paralela anivel de sub-matriz consistieron en la evaluacion de las opciones de utilizacion de lastecnicas de paralelizacion y vectorizacion automaticas del compilador Intel Fortran 7.0y la realizacion de diversas pruebas con implementaciones de la rutina FRONT utilizandola API OpenMP [37]. Adicionalmente, se estudio la utilizacion de una version de labiblioteca BLAS multi-threads. En lo que resta de la seccion se presentan las distintaspropuestas ası como los resultados obtenidos en cada una de ellas.

6.2.1. Opciones del compilador

Como se menciono en el Capıtulo 3, el compilador utilizado en el computador obras07es el Intel Fortran 7.0. Este compilador dispone de opciones para la aplicacion de tecnicasde vectorizacion y paralelizacion en forma automatica sobre el codigo fuente.

De acuerdo a lo presentado en el Capıtulo 5, durante una etapa preliminar a estetrabajo se investigaron las distintas capacidades del compilador Intel Fortran 7.0 deaplicacion de tecnicas automaticas de optimizacion sobre el codigo fuente del modeloRMA-10, tarea que incluyo las tecnicas de paralelizacion y vectorizacion. Estas estrate-gias de optimizacion se aplican a nivel de compilacion y su utilizacion es general a todaslas rutinas del modelo RMA-10.

En cuanto a la aplicacion en particular de las capacidades de paralelizacion automati-ca del compilador, los resultados obtenidos han mostrado que los cambios en los tiemposde ejecucion no son significativos al aplicar dicha estrategia. En cambio, al aplicar es-trategias de vectorizacion sobre el codigo del modelo, los cambios en los tiempos deejecucion son mas significativos. En el Cuadro 6.1 se exponen la cantidad de veces queel compilador pudo aplicar cada una de las estrategias.

Estrategia AplicacionesParalelizacion 94Vectorizacion 278

Cuadro 6.1: Aplicaciones de las estrategias de vectorizacion y paralelizacion sobre elmodelo RMA-10.

El compilador Intel Fortran 7.0 tambien permite la utilizacion de la API OpenMP1

implementada para el lenguaje Fortran. Al comienzo del trabajo y guiados por la ilusionde sacar partido a una estrategia semi-automatica de paralelizacion sin grandes costosde desarrollo, se investigo la aplicacion de la API al modelo RMA-10. Se realizo unaimportante cantidad de pruebas, en las cuales se declararon distintas secciones de codigode la rutina FRONT para que se ejecutaran en paralelo utilizando OpenMP. Sin embargo,los resultados obtenidos (no documentados) en cuanto a tiempo de ejecucion sobre elequipo obras07 tuvieron en todos los casos inferior desempeno al obtenido por la versionoriginal.

1Recordar que con OpenMP se pueden realizar las mismas operaciones que con HPF.

Page 107: PEDECIBA INFORMATICA´ - fing.edu.uy

6.2 Paralelismo a nivel de sub-matriz 99

Los resultados obtenidos utilizando la API de OpenMP no permiten afirmar que noexista la posibilidad de mejoras en los tiempos de ejecucion aplicando esta biblioteca,ya que los pobres desempenos obtenidos se pueden deber a multiples factores, entre losque se destacan elecciones erroneas de las secciones de codigo a trabajar en paralelo y elexceso numero de variables a duplicar. Sin embargo, los resultados fueron de gran uti-lidad para deducir que lograr mejoras en el tiempo de ejecucion siguiendo esta lınea detrabajo implica un mayor esfuerzo en estudio, diseno y desarrollo, abatiendo la hipote-sis de que era posible obtener rapidamente resultados positivos. Esta situacion llevo arecorrer otras estrategias de trabajo.

6.2.2. BLAS multi-threads

Como ya se menciono en el Capıtulo 4, una opcion para aplicar tecnicas de paralelis-mo a nivel de sub-matriz a modelos que utilizan metodos multifrontales es mediante lautilizacion de implementaciones de la biblioteca BLAS multi-threads. Esta estrategia esaplicable principalmente cuando se esta trabajando con computadores de arquitecturade memoria compartida.

Los metodos de resolucion multifrontales invocan a la biblioteca BLAS para efectuarlas operaciones matriciales (operaciones vector-matriz y matriz-matriz) sobre los distin-tos frentes (aunque las matrices a resolver sean dispersas, estas operaciones se realizansobre matrices completas). En caso de utilizar una biblioteca BLAS multi-threads lasoperaciones se procesan en paralelo.

Entre las distintas implementaciones de bibliotecas BLAS multi-threads disponiblesse opto por utilizar la implementacion realizada por Kazushige Goto [12] (de libre uso).La eleccion se baso en el buen desempeno obtenido al utilizar la version serial de labiblioteca y el conocimiento de su forma de utilizacion. Se empleo la version 0.97 dela biblioteca, optimizada para ser utilizada en procesadores Pentium IV con 512 Kb dememoria cache bajo sistemas operativos Linux.

El estudio consistio en evaluar la rutina FRONT propuesta en el Capıtulo 5 utilizandoel computador obras07 para la resolucion de sistemas lineales del caso de prueba N-30787en su mayor expresion (30787 ecuaciones), y utilizando la biblioteca BLAS multi-threadsconfigurada para que utilice uno o dos procesos.

El Cuadro 6.2 presenta los tiempos promedio de 10 ejecuciones de la rutina FRONTpropuesta en el Capıtulo 5 utilizando la biblioteca de Goto configurada para utilizar unoo dos threads.

Version Tiempo promedio (seg.) Desv. Est.Un-thread 8.59 0.06Dos-threads 8.98 0.05

Cuadro 6.2: Tiempos de ejecucion de la rutina FRONT propuesta utilizando uno o dosthreads.

Como se puede observar en el Cuadro 6.2, los resultados de aplicar la biblioteca BLASimplementada para ejecutar con multi-threads en lo referente a tiempo de computo nopresentan mejora alguna. Por el contrario, los tiempos de ejecucion obtenidos son aunmayores que los de utilizar la biblioteca BLAS serial.

Page 108: PEDECIBA INFORMATICA´ - fing.edu.uy

100 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

En base a estos resultados, se puede conjeturar que explotar el paralelismo de sub-matriz, utilizando estrategias a nivel de instrucciones, ciclos u operaciones matricialessimples (suma, multiplicacion, etc), tiene pocas probabilidades de exito. En cuanto a lasrazones por las que se obtienen estos resultados, se puede resaltar el bajo nivel de con-currencia, ya que la forma de trabajo de los metodos multifrontales, que van resolviendomatrices completas relativamente pequenas, implica que el tiempo ganado al paralelizarlas operaciones sobre cada matriz se pierde en comunicaciones y sincronizaciones.

Sin contradecir lo descrito en el parrafo anterior, parece importante realizar pruebascon otras implementaciones multi-threads de la biblioteca BLAS. Debido a la falta detiempo y para poder priorizar otras lıneas de trabajo, se decidio postergar esta tareay llevarla a cabo en un trabajo futuro. Otro aspecto a tener en cuenta en el futuro esla evaluacion de estas tecnicas ante cambios en cuanto a la disponibilidad de equiposcon algun tipo de arquitectura con memoria compartida, debido a que el desempeno delas estrategias que utilizan muti-threads se encuentra estrechamente ligado al tipo dearquitectura de hardware utilizada.

6.3. Paralelismo a nivel de matriz

En la seccion anterior se presentaron distintas estrategias para la aplicacion de pa-ralelismo a nivel de sub-matriz al modelo RMA-10. En todos los casos, exceptuandola estrategia de vectorizacion, los resultados obtenidos no fueron satisfactorios. Unade las causas probables del mal desempeno de las estrategias de paralelismo a nivelde sub-matriz es la perdida de tiempo de ejecucion debido a la alta relacion entre lascomunicaciones efectuadas y el tamano de las tareas paralelizadas.

Buscando evitar los problemas encontrados en las ideas anteriores, en esta seccion sepresenta una propuesta en la que se aplican tecnicas de paralelismo al modelo RMA-10 anivel de la resolucion de los sistemas lineales. La propuesta se centra en la rutina FRONT,tomando como punto de partida para el diseno del algoritmo paralelo la rutina FRONTpresentada en el capıtulo anterior.

En lo que sigue de la seccion se presenta el diseno de la propuesta de rutina FRONTparalela a nivel de matriz y los tiempos de ejecucion obtenidos al utilizar los distintoscomputadores descritos en la Seccion 5.3.

6.3.1. Rutina FRONT paralela

El estudio de los tiempos de ejecucion del modelo RMA-10 presentado en la Seccion5.2 mostro que la rutina FRONT consume la mayor parte del tiempo de ejecucion. Eneste sentido, mediante la version de la rutina FRONT propuesta en el capıtulo anteriorse logro disminuir en forma importante el peso relativo que tiene la rutina en el tiempode ejecucion global del modelo. Sin embargo, la rutina FRONT propuesta en el Capıtulo5 continua siendo la principal fuente del consumo de tiempo de ejecucion del modeloRMA-10.

La propuesta que se describe se centra en paralelizar las etapas de factorizacion yresolucion de la matriz de rigidez de la rutina FRONT, utilizando la capacidad de ejecucionen paralelo de la biblioteca MUMPS.

Page 109: PEDECIBA INFORMATICA´ - fing.edu.uy

6.3 Paralelismo a nivel de matriz 101

La biblioteca MUMPS dispone de una rutina que realiza la factorizacion y resolucionde matrices dispersas en paralelo. La rutina esta disenada para explotar las caracterısti-cas de las arquitecturas de memoria distribuida mediante la utilizacion de la estrategiade pasaje de mensajes.

La version paralela de la biblioteca MUMPS necesita disponer, ademas de la biblio-teca BLAS (tambien necesaria en la version serial), alguna implementacion del estandarMPI para el pasaje de mensajes e implementaciones de las bibliotecas BLACS, PBLAS,LAPack y ScaLAPack. Las caracterısticas de todas estas bibliotecas ya fueron descritasen el Capıtulo 3.

La estrategia de paralelizacion seguida por la biblioteca MUMPS utiliza los tresniveles de paralelismo propuestos en el trabajo de Amestoy et al. [64], descritos en elCapıtulo 4.

Un aspecto a tener en cuenta sobre la utilizacion de la version paralela de la bibliotecaMUMPS, es que esta disenada para la resolucion de un solo sistema lineal por invocacion.En cambio, en el modelo RMA-10 es necesario resolver en forma independiente variossistemas lineales (uno por cada paso del metodo de Newton-Raphson). Conjuntamentea este problema, las implementaciones disponibles del estandar MPI no permiten lacreacion de procesos en tiempos de ejecucion, por lo que tampoco se puede implementaruna rutina que cree procesos en cada ocasion que sea necesario.

Los problemas descritos anteriormente implicaron que para obtener la nueva versionfuese necesario, ademas de realizar modificaciones en la rutina FRONT presentada en elCapıtulo 5, implementar varios cambios en otras secciones del modelo RMA-10. Losprincipales cambios realizados tanto en la rutina FRONT como en el modelo RMA-10 seresumen a continuacion:

Fue necesaria la implementacion de un nuevo programa principal (ORQUEST), elcual se ejecuta en tantos procesos como se especifique en la invocacion del pro-grama, mediante la instruccion mpirun de MPI. En cada proceso, si el valor delidentificador de proceso2 (idp) posee un valor dado (idp = 0), se invoca a la versionoriginal del programa principal del modelo RMA-10 (ahora transformado en unarutina de nombre RMA10) y, en caso contrario, se invoca a una nueva rutina (llama-da SOLVER) que se describe en el siguiente ıtem. Una vez terminada la ejecucion dela rutina RMA10 en el proceso que la invoco (aquel con idp = 0), el control vuelve alprograma principal ORQUEST, que envıa a todos los otros procesos un mensaje conla clave para que terminen su ejecucion, para luego proceder a finalizar su propiaejecucion.

Se realizo la implementacion de una nueva rutina denominada SOLVER que tieneuna estructura de ciclo. En la primera instruccion del ciclo se espera recibir unmensaje (mediante un receive bloqueante de MPI); dependiendo del mensaje re-cibido la rutina SOLVER terminara su ejecucion o invocara al solver paralelo de labiblioteca MUMPS. En caso de invocar a SOLVER se fijan antes los valores de losparametros necesarios de la biblioteca MUMPS, los cuales estan especificados enel Manual de Usuario de la biblioteca [1].

2En MPI los identificadores de proceso son numeros enteros entre 0 y n− 1, siendo n la cantidad deprocesos ejecutados.

Page 110: PEDECIBA INFORMATICA´ - fing.edu.uy

102 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

Se modifica la rutina FRONT serial propuesta en el Capıtulo 5 (esta rutina soloejecuta en el proceso con identificador 0) para que por un lado fije los valoresde los parametros necesarios para poder ejecutar la version paralela del solver dela biblioteca MUMPS y por otro lado para que antes del comienzo de la etapade factorizacion de la matriz envıe un mensaje (mediante un send de MPI) a losrestantes procesos activos de forma de habilitarlos a invocar al solver.

Todas las modificaciones realizadas al modelo RMA-10 se implementaron en Fortran90. En cuanto a las versiones de MPI, dependiendo del equipo a ejecutar se utilizarondistintas implementaciones del estandar (MPICH y LAM MPI). El uso de una u otraimplementacion de MPI no implica cambios en la codificacion del modelo, sino tan soloen la forma de invocacion al programa.

6.3.2. Resultados

En esta seccion se presentan los tiempos de ejecucion de la propuesta de rutinaFRONT paralela a nivel de matriz en las distintas opciones de hardware disponible yaplicada sobre los diferentes casos de prueba descritos en el Capıtulo 5. Para realizar lascomparaciones de speedup y eficiencia se tomaron como base los tiempos de ejecucion encada una de los equipos de la version serial de la rutina FRONT propuesta en el Capıtulo5. En todos los casos los tiempos de ejecucion que se presentan son el promedio de 10ejecuciones.

Experimentos en el cluster Geronimo

En el cluster Geronimo se efectuaron diversas evaluaciones de los tiempos de ejecu-cion de la rutina FRONT paralela. Las pruebas resumidas en esta seccion se realizaronsobre un ejemplo del caso N-V, el cual posee 4578 elementos y 9950 nodos. Esto setraduce en sistemas lineales de 44049 ecuaciones.

Los experimentos preliminares consistentes en ejecutar la rutina FRONT paralela utili-zando dos procesadores del cluster Geronimo mostraron tiempos de ejecucion del mismoorden que los obtenidos por la version serial ejecutando en un nodo del mismo equipo,sugiriendo que no existe una mejora significativa en el tiempo de ejecucion de la rutina alutilizar dos procesadores. Sin embargo, los experimentos efectuados no permiten extraerenunciados conluyentes debido a que se utilizo el cluster en forma no dedicada.

Experimentos en el cluster CeCal

Debido a la heterogeneidad en las caracterısticas de los nodos que componen el clusterCeCal, es una tarea compleja obtener resultados representativos que permitan llegar aconclusiones. Para lidiar con este problema se realizaron diversas pruebas ejecutando laversion paralela con diferentes configuraciones del cluster. En todos los casos presentadosse evalua la rutina FRONT para la resolucion de sistemas lineales completos presentes enla simulacion del caso N-30787.

Page 111: PEDECIBA INFORMATICA´ - fing.edu.uy

6.3 Paralelismo a nivel de matriz 103

En primer termino se efectuaron pruebas con la configuracion original del clusterCeCal empleando los 3 computadores que lo componen y utilizando una red de 10Mbit/s. Los resultados obtenidos al realizar las pruebas no fueron positivos, ya que laversion paralela demando tiempos similares a los empleados por la version serial paraejecutar la rutina FRONT.

La primer hipotesis de trabajo sobre las causas del mal desempeno computacional fuela pobre velocidad de la red sobre la que se trabajo. Por esta razon, durante el proyectose modifico la configuracion del cluster, logrando disponer de una red de interconexioncon velocidad de 100 Mbit/s.

En el primer experimento utilizando la nueva configuracion de la red se evaluaronlos tiempos de ejecucion de la rutina FRONT serial y la rutina propuesta en su versionparalela utilizando dos procesos. Para trabajar en un contexto de homogeneidad, eneste caso se utilizan unicamente los equipos lentos (Winux y Loki). En el Cuadro 6.3 sepresentan los promedios de los tiempos de ejecucion obtenidos, mientras que el Cuadro6.4 presenta el speedup y eficiencia alcanzados.

Tiempo promedio (seg.) Desv. Est.secuencial 97.81 3.102 procesos 80.05 4.67

Cuadro 6.3: Tiempos de ejecucion de las rutinas FRONT serial y paralela utilizando dosequipos en el cluster CeCal.

2 procesosspeedup 1.22eficiencia 0.61

Cuadro 6.4: Speedup y eficiencia de la rutina FRONT paralela en el cluster CeCal utili-zando 2 equipos lentos.

La interpretacion de los resultados de los Cuadros 6.3 y 6.4 permite afirmar quesi bien los resultados no son del todo positivos, se pueden considerar aceptables. Sinembargo, es importante destacar que por las caracterısticas del cluster (red rapida yprocesadores lentos) se pueden estar disimulando importantes retardos debido a lascomunicaciones, ya que al tener tiempo de procesamiento (tproc) alto la influencia deltiempo de comunicacion (tcom) en el ratio tcom

tproces poco significativa.

El segundo experimento consiste en la utilizacion de la version paralela con tresprocesos, en este caso utilizando todos los equipos del cluster. Para poder realizar lacomparacion de tiempos en forma justa, se evaluo el tiempo de ejecucion de la versionserial tanto en uno de los equipos lentos como en billtux (nodo rapido). Un resumende los tiempos promedio de 10 ejecuciones obtenidos con las distintas configuracionesse muestra en el Cuadro 6.5. Los valores de speedup y la eficiencia obtenidos en estosexperimentos se presenta en el Cuadro 6.6.

Page 112: PEDECIBA INFORMATICA´ - fing.edu.uy

104 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

Tiempo promedio (seg.) Desv. Est.secuencial (lento) 97.81 3.10secuencial (rapido) 54.64 0.19

2 procesos 50.10 0.853 procesos 49.01 0.13

Cuadro 6.5: Tiempos de ejecucion de las rutinas FRONT serial y paralela utilizando tresequipos en el cluster CeCal.

2 procesos 3 procesosspeedup 1.09 1.11eficiencia 0.55 0.37

Cuadro 6.6: Speedup y eficiencia de la rutina FRONT paralela en el cluster CeCal.

Si bien los resultados de la version paralela del Cuadro 6.5 se pueden tomar comopositivos al comparar contra los resultados obtenidos por la version serial ejecutando enlos nodos lentos, realizar este tipo de comparaciones conduce a conclusiones de validezrelativa ya que en los experimentos realizados con la version paralela gran parte delmodelo (la parte serial) se ejecuta en billtux. Evaluando el tiempo de ejecucion de larutina FRONT serial en billtux y teniendo en cuenta la observacion hecha anteriormentese puede intuir que la version propuesta no logro buenos niveles de paralelismo en estaspruebas.

En el Cuadro 6.6 se presentan los valores de speedup y eficiencia de la version paralelaen el cluster CeCal. En base a estos resultados se puede afirmar que la propuesta muestrano poseer capacidad para escalar ante el aumento en la cantidad de unidades de proceso(escalabilidad decreciente).

Los resultados de speedup realizados en base a los tiempos totales de ejecucion de laversion paralela y serial no han mostrado ser del todo positivos. Sin embargo, la versionde la rutina FRONT propuesta mejora en forma importante el desempeno computacional,si se observan unicamente los tiempos de la etapa de factorizacion y resolucion excluyen-do los tiempos de comunicacion y sincronizacion. El analisis discriminado del promediode los tiempos en cada etapa evaluados sobre 10 ejecuciones se presenta en el Cuadro6.7.

Tiempo de factorizaciony resolucion (seg.)

secuencial (lento) 85.64secuencial (rapido) 47.66

2 procesos 41.233 procesos 39.79

Cuadro 6.7: Tiempos de factorizacion y resolucion de las rutinas FRONT serial y paralelautilizando tres equipos en el cluster CeCal.

Page 113: PEDECIBA INFORMATICA´ - fing.edu.uy

6.3 Paralelismo a nivel de matriz 105

Los diferentes experimentos realizados permiten conjeturar que la aplicacion de estetipo de tecnicas sobre clusters, en especial en clusters que tengan coeficientes bajos enla relacion entre la velocidad de red y la velocidad de procesamiento, no es una buenaopcion. Entre las principales causas que conspiran con la obtencion de mejores resultadosse puede destacar por un lado el bajo acoplamiento de la version propuesta y por otrolos altos costos de comunicacion involucrados.

Experimentos en dieste

Como se presenta en las subsecciones anteriores, no se lograron mejoras significativasen los tiempos de ejecucion de la version propuesta de la rutina FRONT paralela sobreequipos que se conectan mediante redes de datos lentas. Sin embargo, los tiempos de eje-cucion de la rutina paralela para realizar la etapa de factorizacion de los sistemas lineales(descontando el tiempo de comunicaciones) resultaron ser menores que los tiempos deejecucion de la version serial de la rutina FRONT.

Ante el hecho descrito en el parrafo anterior, se busco disminuir el tiempo insumidopor las comunicaciones. Con este objetivo se realizaron pruebas utilizando computado-ras con arquitecturas de memoria compartida. En particular, se utilizaron las distintasunidades de proceso del computador dieste realizando las comunicaciones mediante laestrategia de pasaje de mensajes (MPI).

La utilizacion del computador dieste implico diversas modificaciones tanto al modeloRMA-10 como a los casos de pruebas utilizados. Algunas de las modificaciones masdestacadas se presentan a continuacion:

Modificacion del formato de las grillas: El modelo RMA-10 trabaja con los archivosde las grillas en formato binario. Las computadoras en las que se trabaja en elIMFIA con el modelo RMA-10 utilizan el sistema numerico de representacionlittle-endian (es decir que el byte de menor valor significativo se almacena en ladireccion mas baja de memoria y el byte de mayor valor significativo en la masalta), mientras que el computador dieste utiliza big-endian (almacena en el ordeninverso a little-endian). Esta situacion implico rehacer los casos de prueba paragenerar los archivos en formato binario big-endian3.

Utilizacion de LAM MPI: En el computador dieste no se dispuso de MPICH comoimplementacion del estandar MPI, sino que se utilizo la implementacion LAM MPI.Esto implico la introduccion de cambios en la forma de ejecutar los programas.

Utilizacion de la biblioteca BLAS de netlib: Para las distintas pruebas hasta ahorapresentadas se utilizaron las implementaciones de Kazushige Goto de la bibliotecaBLAS. En el caso del computador dieste no fue posible utilizar estas bibliotecasdebido a que no se dispone de versiones implementadas para el sistema operativoUNIX. Por esta razon se utilizo la version de la biblioteca BLAS para UNIXdisponible en el repositorio Netlib.

3Los nombre provienen de la novela Los viajes de Gulliver de Jonathan Swift en la que los habitantesde los imperios de Lilliput y Blefuscu libran una encarnizada guerra por una disputa sobre el lado por elque debıan empezar a comerse los huevos. Los liliputienses defienden la postura de que deben ser rotospor el lado mas angosto (Little-endians), mientras que los blefuscuenses creen en romperlos por el ladomas grueso (Big-endians).

Page 114: PEDECIBA INFORMATICA´ - fing.edu.uy

106 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

En las condiciones descritas anteriormente se realizaron experimentos con la versionparalela de la rutina FRONT en el computador dieste. A continuacion se presentan resul-tados sobre la resolucion de sistemas lineales del caso N-V, resolviendo sistemas linealesde 57616 ecuaciones con aproximadamente 3900000 coeficientes no nulos. En el Cuadro6.8 se presentan los tiempos de ejecucion promedio de la version paralela de la rutinaFRONT utilizando 2, 3 y 4 procesadores y los tiempos de ejecucion promedio de la ver-sion secuencial sobre 10 ejecuciones realizadas. Las pruebas con mas procesos mostraronnotorios deterioros en los valores de desempeno computacional.

Tiempo promedio (seg.) Desv. Est.secuencial 583.43 3.222 procesos 503.77 4.683 procesos 463. 82 8.014 procesos 438.03 3.30

Cuadro 6.8: Tiempos de ejecucion de las rutina FRONT (serial y paralela) en dieste.

En el Cuadro 6.9 se puede observar el speedup y la eficiencia resultante de los ex-perimentos presentados en el Cuadro 6.8. La interpretacion de los resultados obtenidospermite afirmar que si bien existen mejoras en los tiempos de computo al usar mas deun procesador, el speedup obtenido se encuentra notoriamente por debajo de la cotateorica de speedup lineal. Por otra parte, los resultados demuestran no escalar, decre-ciendo notoriamente la eficiencia al usar mayor numero de procesadores. En la Figura6.1 se grafica el speedup conseguido contra el speedup lineal.

2 procesos 3 procesos 4 procesosspeedup 1,16 1,26 1,33eficiencia 0,58 0,42 0,33

Cuadro 6.9: Speedup y eficiencia de la rutina FRONT paralela en dieste.

Experimentos en obras07

Como se describio en el Capıtulo 5, el equipo obras07 dispone solamente de dosunidades de procesamiento. Por esta causa la evaluacion de la version paralela de larutina FRONT propuesta se realiza solamente con 2 procesos. Si bien este hecho no poseegran interes en cuanto al estudio de las tecnicas de programacion paralela, si lo tieneen el campo practico, ya que es el computador generalmente utilizado en la actualidadpara ejecutar este tipo de programas en el IMFIA.

Las evaluaciones realizadas en el computador obras07 se efectuaron sobre el caso deprueba N-30787.

En el Cuadro 6.10 se presenta el tiempo promedio de ejecucion de la rutina FRONTpara la version serial y la version paralela sobre 10 ejecuciones realizadas utilizando 2procesos. Tambien se pueden observar el speedup y la eficiencia obtenidos de la versionparalela.

Page 115: PEDECIBA INFORMATICA´ - fing.edu.uy

6.3 Paralelismo a nivel de matriz 107

Figura 6.1: Speedup lineal y el obtenido en dieste.

Del estudio del Cuadros 6.10 se puede concluir que existe una leve mejora en eltiempo de computo de la rutina FRONT al utilizar la version paralela, si se compara conla propuesta serial. La mejora mencionada es del orden de 15 %, implicando un valor deeficiencia lejana a uno.

Por otra parte, si se extrapolan los datos obtenidos en estudios similares con dieste,es de esperar que este resultado no escale en buena forma en caso de disponer de unequipo similar pero con mas unidades de proceso.

Tiempo (seg.) Desv. Est. speedup eficienciasecuencial 8.59 0.06 - -2 procesos 7.48 0.04 1.15 0.58

Cuadro 6.10: Tiempos de ejecucion, speedup y eficiencia de la rutina FRONT (serial yparalela) en obras07.

Si bien los resultados obtenidos no son del todo positivos, es importante observarque la etapa de factorizacion y resolucion de los sistemas lineales en la version originalde la rutina FRONT del modelo RMA-10 implica un 92 % del tiempo total de computo,mientras que en la version serial propuesta en la Seccion 5.5 implica solamente un 57%del tiempo de ejecucion. La etapa de factorizacion y resolucion de los sistemas lineales

Page 116: PEDECIBA INFORMATICA´ - fing.edu.uy

108 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

es la unica etapa a la que se le aplican estrategias de paralelismo en la propuesta, esdecir que la etapa de calculo de coeficientes (que en la nueva version representa un 41 %del tiempo total) en la version paralela continua ejecutandose completamente en formaserial.

Los resultados obtenidos confirman el enunciado de la ley de Amdhal, ya que elspeedup obtenido por la propuesta paralela esta fuertemente condicionado por las etapasque se ejecutan en forma serial.

Si se evaluan los tiempos en base a la puntualizacion anterior, calculando unicamentelos tiempos de ejecucion de la etapa de factorizacion y resolucion de los sistemas lineales(descontando los tiempos de comunicacion y sincronizacion), se obtienen los tiempos deejecucion, speedup y eficiencia expuestos en el Cuadro 6.11.

Tiempo de factorizacion (seg.) speedup eficienciasecuencial 4.09 - -2 procesos 3.11 1.32 0.66

Cuadro 6.11: Tiempos de factorizacion, speedup y eficiencia de la rutina FRONT propuestaen obras07.

Aunque los valores de speedup del Cuadro 6.11 continuan siendo lejanos a los desea-dos, el valor obtenido se puede considerar como bueno, pudiendo afirmar que la etapaparalelizada logra un buen nivel de concurrencia.

Conclusiones de la aplicacion de tecnicas de paralelismo a nivel de matriz

Los resultados de la propuesta en los equipos que son poco acoplados (clusters)fueron poco satisfactorios. Por su parte, en los computadores de memoria compartidase consiguen mejores desempenos, pero aun los resultados de speedup y eficiencia son“apenas aceptables”. Fue posible detectar que la propuesta obtiene buenos desempenosen computadores donde la velocidad de comunicacion es importante y los nodos poseenescaso poder de procesamiento.

Un aspecto negativo de la propuesta paralela es que no consigue buenos valores deeficiencia.

Las causas probables de los resultados poco positivos son por un lado los importan-tes tiempos de comunicacion implicados en la version paralela propuesta y por otro lacondicion de no ejecutar en paralelo la totalidad de las operaciones con mayores tiemposde ejecucion del modelo.

Como principal punto a destacar de esta etapa del estudio, debe mencionarse laobtencion de una version del modelo RMA-10 que implica menor tiempo de computoque la version secuencial anteriormente propuesta en el Capıtulo 5, ejecutando sobre elmismo equipo (obras07).

Page 117: PEDECIBA INFORMATICA´ - fing.edu.uy

6.4 Paralelelismo a nivel de sistema 109

6.4. Paralelelismo a nivel de sistema

Como se vio en la seccion anterior, el speedup obtenido por la aplicacion de parale-lismo a nivel de matriz no proporciona buenos resultados. La gran cantidad de comuni-caciones al aplicar las tecnicas de programacion paralela a ese nivel y la reduccion delpeso relativo del tiempo de computo de la factorizacion con respecto al tiempo total deejecucion de la rutina FRONT en la version presentada en la Seccion 5.5, son dos de lasgrandes limitantes para dicha propuesta.

En esta seccion se presentan algunos trabajos preliminares en el sentido de inten-tar combatir las dos limitantes mencionadas anteriormente. Por un lado se proponedisminuir las comunicaciones y por otro abarcar otras secciones del codigo que en lanueva version poseen un importante peso relativo en tiempo de ejecucion con respectoal tiempo de ejecucion total.

6.4.1. Paralelizar el ciclo de calculo de los coeficientes de los elementos

La primera aproximacion busca aplicar tecnicas de programacion paralela a otrassecciones del codigo del modelo RMA-10. En este sentido se busca paralelizar el ciclode calculo de los coeficientes de los nodos de cada elemento de la malla, tarea realiza-da por la rutina FRONT. Este ciclo se efectua en cada paso de tiempo del metodo deNewton-Raphson e implica en un ejemplo del caso N-30787 en el computador obras07aproximadamente 3,48 segundos sobre los 8,59 segundos de tiempo de ejecucion de larutina FRONT (41 % del total del tiempo).

El calculo de la matriz de rigidez de cada elemento de la malla es completamenteindependiente del calculo de los demas elementos de la matriz. Entonces, atendiendodicha situacion se pueden dividir los distintos elementos entre las diferentes unidades deprocesamiento a utilizar. Por ejemplo, si se esta trabajando con un modelo que utiliza4000 elementos y 4 procesadores, entonces se pueden calcular las matrices de rigidez delos primeros 1000 elementos en el primer procesador, los segundos 1000 en el segundo yası sucesivamente.

La implementacion de esta estrategia se encuentra condicionada con la tecnica deparalelismo a utilizar, dependiendo si se trabaja con memoria compartida o memoriadistribuida. A continuacion se presenta una descripcion de las implementaciones sobrecada tipo de arquitectura paralela.

Memoria compartida: En este caso se trabaja con una unica estructura auxiliar(la tabla de dispersion) la cual es actualizada por los distintos procesos. Varioselementos de la malla aportan valores a un mismo coeficiente de la matriz derigidez, pudiendo coincidir varios procesos al intentar actualizar algun coeficiente.Por esta razon, es necesario controlar (garantizando la exclusion mutua) la etapade actualizacion de la estructura auxiliar.

Memoria distribuida: Con esta estrategia se dividen los elementos entre los distin-tos procesos. Cada proceso dispone de una estructura auxiliar en la que almacenalos distintos valores calculados y al terminar la etapa de calculo de los coeficien-tes es necesario unir las distintas estructuras en una unica estructura centralizada(tarea comunmente denominada merge).

Page 118: PEDECIBA INFORMATICA´ - fing.edu.uy

110 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

Si bien la opcion de memoria compartida permitirıa mejorar el desempeno compu-tacional, su estrategia de trabajo que utiliza una estructura de datos centralizada nopermite mejorar la escalabilidad del modelo. Por esta razon se opto por trabajar con laestrategia de memoria distribuida. Sin embargo, parece interesante estudiar en un futuroimplementaciones utilizando la estrategia de memoria compartida. Otra tarea que nose investigo y parece interesante es el estudio de estructuras de datos mas adecuadastanto para la exclusion mutua trabajando con memoria compartida como para realizarel merge en memoria distribuida.

El diseno de una estructura de datos adecuada se encuentra estrechamente liagadoa la estrategia utilizada para la division de los elementos entre los procesos.

En lo que sigue de la seccion se describe la opcion de paralelizar el ciclo de calculode los coeficientes de los elementos utilizando tecnicas de memoria distribuida. Comoaspecto importante de esta propuesta se destaca su habilidad de trabajar con problemasde mayor tamano, dado que las necesidades de memoria pueden ser menores si se utilizauna estructura auxiliar (de tipo tabla de dispersion) en cada procesador, realizando elmerge sin overhead de memoria.

Al comenzar la seccion se presento una estrategia simple para realizar la asignacionde elementos a los procesadores. Es posible utilizar otras divisiones mas inteligentes, porejemplo, si las distintas unidades de proceso son homogeneas se puede realizar la divisionde forma de minimizar la presencia de elementos en distintos bloques que actualizan unmismo coeficiente. Asimismo, si el poder de computo de los distintos procesadores esheterogeneo, se puede dividir ponderando las diferencias en las velocidades de computo,etc.

Debe destacarse que el trabajo a realizar por cada procesador es naturalmente bienbalanceado, dado que los calculos para cada nodo son similares. Entonces, por un lado lagran independencia entre las tareas y por otro la posibilidad de utilizar un buen balancede cargas permiten suponer la obtencion de buenos resultados al utilizar esta propuesta,previendo buenos valores de speedup y de eficiencia computacional ante el aumento delas unidades de proceso.

A modo de ejemplo se realizaron algunas pruebas preliminares para evaluar los tiem-pos de computo de la propuesta paralela a nivel de sistema trabajando sobre un ejemplodel caso N-V que utiliza sistemas lineales de 44049 ecuaciones y 2623318 coeficientes nonulos en la computadora obras07. En el Cuadro 6.12 se presentan la cantidad de elemen-tos no nulos que implica dividir el procesamiento de los elementos en dos particiones.Particion A que calcula los primeros 7266 elementos y Particion B que calcula los 7266restantes.

Elementos Coeficientes no nulosCompleta 14532 2623318Particion 1 7266 1422896Particion 2 7266 1204673

Cuadro 6.12: Cantidad de coefientes no nulos al particionar la cantidad de elementos endos.

Page 119: PEDECIBA INFORMATICA´ - fing.edu.uy

6.4 Paralelelismo a nivel de sistema 111

En el Cuadro 6.13 se presenta el tiempo de calculo de los coeficientes correspondientesa los distintos elementos, el tiempo de carga de las estructuras auxiliares y el tiempo totalevaluando primero todos los elementos y luego unicamente los coeficientes pertenecientesa la Particion A. Esta particion es la que posee mayor cantidad de coeficientes no nulosy por esta razon es la mas costosa en tiempo de computo.

En todos los casos los tiempos presentados son el promedio de efectuar 10 ejecucionesindependientes. Es importante hacer notar que no se efectuo el estudio de los tiemposde comunicacion ni del merge al momento de centralizar los datos.

Tiempo de Desv. Tiempo de Desv. Tiempo Desv.calculo Est. de carga Est. total Est.

de coef. (seg.) (seg.) (seg.)Completa 2,18 0,07 0,70 0,07 2,88 0,02

Particion A 1,07 0,06 0,38 0,06 1,45 0,09

Cuadro 6.13: Tiempo de calculo de los coeficientes, de carga de las estructuras auxiliaresy totales sobre todos los elementos y los de la Particion A.

Si bien los estudios realizados son preliminares, los resultados obtenidos son suma-mente alentadores con respecto a la aplicacion de tecnicas de paralelismo a esta etapadel calculo.

6.4.2. Ingreso de la matriz en forma distribuida

Extendiendo la idea expuesta en la seccion anterior y relacionandola con la lınea detrabajo expuesta en la Seccion 6.3.1, se puede plantear resolver el sistema lineal en formadistribuida calculando los coeficientes necesarios para cada proceso en el mismo proce-sador (aplicando la idea presentada en la Seccion 6.4.1), para evitar las comunicacionesanteriores y posteriores al calculo de los coeficientes.

De esta forma se realiza la division de los datos entre los distintos procesadores alcomienzo de la ejecucion del modelo y luego solo es necesario para cada sistema resueltocomunicar algunos coeficientes y el vector resultado.

Para aplicar esta estrategia, la division de los elementos entre los distintos procesosse debe efectuar en base a los criterios de division de datos necesarios para la etapade factorizacion numerica, buscando minimizar la comunicacion entre los procesadores.Dicha tarea tiene como complejidad extra que la division de datos en la etapa de calculode coeficientes se realiza generalmente a nivel de elementos de la grilla, mientras queen la resolucion de los sistemas lineales se debe hacer a nivel de ecuaciones o nodos (ygrados de libertad).

Una opcion de trabajo es tener un proceso activo que distribuya a los distintos pro-cesadores los datos necesarios para realizar el calculo de los coeficientes. En muchoscasos es difıcil efectuar la division de datos, ademas el volumen y la cantidad de datosa comunicar puede ser grande, por lo que se puede trabajar con otra estrategia queconsiste en mantener todos los procesos con los que se quiera trabajar en forma activa,replicando los datos en todos los procesadores.

Page 120: PEDECIBA INFORMATICA´ - fing.edu.uy

112 Tecnicas de procesamiento paralelo aplicadas al modelo RMA-10

En forma resumida, la idea serıa activar tantos procesos como sea necesario y trabajarde la forma siguiente:

Cada proceso realizara toda la tarea de lectura de datos, inicializacion de variables,etc. Es necesario disponer de una nueva etapa en la cual se calcule la division delos elementos entre los distintos procesos (por ejemplo un vector cuyo tamano seala cantidad de elementos con el numero de procesador que le corresponde a cadauno).

Luego, al momento de la resolucion del sistema lineal, cada proceso calcula unica-mente los aportes de los elementos asignados a su numero de proceso y comunicalos coeficientes necesarios a los demas procesos.

Por ultimo, se distribuye a todos los procesadores el vector solucion del sistema(en forma completa), para que cada uno de los procesos actualice los datos en laiteracion de Newton-Raphson.

La biblioteca MUMPS prevee el ingreso de la matriz en forma distribuida, aunque ladocumentacion disponible es incompleta en este sentido. Las distintas pruebas efectuadashacen suponer que el ingreso de valores intermedios del mismo coeficiente en distintosprocesos no es soportado.

En caso de confirmar esta hipotesis, serıa necesario disponer de una etapa intermediaentre el calculo de los coeficientes y la resolucion del sistema, etapa en la que se deberıancomunicar los coeficientes que no corresponden a un procesador para lograr no tenerentradas repetidas.

Esta lınea de trabajo se incluye como trabajo futuro.

6.4.3. Descomposicion de dominio

Por ultimo, se destacan algunas pruebas realizadas en el CIMEC referentes a lautilizacion de estrategias de descomposicion de dominio para la resolucion de sistemaslineales resultantes de aplicar el modelo RMA-10 al Rıo de la Plata.

El estudio cosistio en obtener un sistema lineal presente en el caso de estudio N-30787y aplicarle herramientas de resolucion de sistemas lineales mediante descomposicion dedominio.

Aunque los tiempos de ejecucion obtenidos mostraron peor desempeno que los al-canzados con la version propuesta en la Seccion 5.5, la experiencia recabada permiteconjeturar que la utilizacion de estas tecnicas permitirıa resolver eficientemente proble-mas de dimensiones mayores.

Esta afirmacion se basa en la metodologıa de trabajo de los metodos de descompo-sicion de dominio. Estos metodos particionan el dominio de calculo (la grilla) en variossub-dominios buscando que tengan la frontera mınima (interfaz). Para resolver el siste-ma lineal es necesario primero, solucionar cada sub-dominio en una unidad de procesoy luego, se resuelve el problema con las ecuaciones de la frontera (problema interfaz).Esta tecnica de trabajo permite resolver problemas de grandes dimensiones (millones deecuaciones), solucionando sistemas lineales de dimensiones intemedias (decenas de milesde ecuaciones) en cada procesador.

Sobre las estrategias de descomposicion de dominio se puede profundizar en el trabajo[170].

Page 121: PEDECIBA INFORMATICA´ - fing.edu.uy

6.5 Conclusiones 113

6.5. Conclusiones

En el capıtulo se presentan varias estrategias para dotar de tecnicas de paralelismo almodelo RMA-10. Algunas de ellas se han implementado, mientras que otras solo fueroninvestigadas en forma preliminar.

Las tecnicas automaticas utilizando el compilador Intel Fortran 7.0 si bien son de facilimplementacion no han mostrado buenos resultados. Otra tecnica de sencilla adopciones la utilizacion de bibliotecas BLAS multi-threads, pero las pruebas que se realizaronno presentaron resultados promisorios.

En cuanto a la utilizacion de tecnicas de paralelismo a nivel de sub-matriz, se desa-rrollo una version que si bien en la computadora obras07 tiene un rendimiento aceptable,no es una opcion que parezca escalable ni posee caracterısticas que le permitan resolversistemas no resolubles por la version serial.

Como se ha visto en los capıtulos anteriores, las tendencias en cuanto a hardwareparalelo es la utilizacion de cluster de bajo costo (en especial en paıses como Uruguay).La implementacion de tecnicas de paralelismo sobre estas maquinas de memoria distri-buida exigen dividir los problemas en grandes bloques para poder explotar el poder decomputo y no decaer el rendimiento al realizar muchas comunicaciones. Sin embargo,estas estrategias normalmente son las mas difıciles de implementar. En este sentido sepresentaron algunas opciones y estudios preliminares que presentaron resultados alenta-dores tanto desde el punto de vista del desempeno como de las capacidades de resolucion.Llevar adelante dichas estrategias requiere de significativos cambios en el software y sepropone abordarlas como trabajo futuro.

Page 122: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 123: PEDECIBA INFORMATICA´ - fing.edu.uy

Capıtulo 7

Conclusiones y Trabajo Futuro

7.1. Introduccion

En el Capıtulo 2 de esta Tesis se presento una breve descripcion del Rıo de la Platay los distintos esfuerzos realizados para obtener un modelo numerico de sus corrientes.En especial, se profundizo en la utilizacion por parte del IMFIA del modelo RMA-10,que posee como gran limitante los importantes tiempos de ejecucion que necesita pararealizar simulaciones. Luego, en el Capıtulo 3 se presentaron distintas tecnicas para laprogramacion de alto desempeno, con particular atencion en los metodos de resolucion desistemas lineales. En este sentido en el Capıtulo 4 se relevan los metodos multifrontales.En el Capıtulo 5 se presento el estudio de los tiempos de ejecucion del modelo RMA-10, que unido a la informacion de los capıtulos anteriores sirvio como insumo paradesarrollar una propuesta de modificacion del modelo RMA-10, que se describe en elmismo capıtulo. Por otro lado, en el Capıtulo 6 se presentaron varias estrategias paraaplicar tecnicas de programacion paralela al modelo RMA-10.

El desarrollo de las distintas etapas del proceso de elaboracion de este trabajo demaestrıa permitio obtener diversas conclusiones. Las conclusiones mas importantes parael proyecto se resumen en este capıtulo.

En variadas ocasiones durante el transcurso del trabajo se presentaron multiplesopciones para la resolucion de algunos de los problemas vinculados con el proyecto. Ge-neralmente, ante este tipo de encrucijadas se opto, en base a la informacion disponible,por algun camino en particular relegando las otras lıneas de trabajo. Si bien las opcio-nes descartadas no parecıan las mejores en el contexto actual, en muchos casos poseenaspectos que las posicionan como interesantes para ser estudiadas en trabajos futuros.Ademas de las opciones que se postergaron, existen distintas lıneas de trabajo cercanasa los objetivos del proyecto que en su momento se decidio quedaran por fuera del alcan-ce del trabajo de esta Tesis y que presumiblemente pueden ser de interes para futurosdesarrollos en el area.

Algunas de las lıneas de trabajo mencionadas en el parrafo anterior estan siendoabordadas actualmente, mientras que otras se preve hacerlo en el futuro cercano. Resu-mir dichas inquietudes se marco como una tarea importante del trabajo esta Tesis, demodo de ser un mojon claro en futuros trabajos.

El presente capıtulo se estructura en dos partes. En la primera seccion se presentanlas conclusiones del trabajo y en la segunda seccion se resumen las lıneas de trabajofuturo.

115

Page 124: PEDECIBA INFORMATICA´ - fing.edu.uy

116 Conclusiones y Trabajo Futuro

7.2. Conclusiones

En base a los objetivos planteados al comienzo del trabajo de la Tesis de Maestrıay realizando un analisis general del proyecto, se puede concluir que se cumplieron enforma mas que aceptable las metas inicialmente fijadas.

Un primer aspecto importante de este trabajo es que se desarrollo en el marco deun proyecto conjunto entre el CeCal y el IMFIA. Esto exigio el intercambio de ideascon investigadores de otras areas, permitiendo la realizacion del trabajo en un contextointerdisciplinario. Por otra parte, en el marco del proyecto se establecieron relaciones detrabajo con investigadores del CIMEC, permitiendo la incorporacion de conocimiento atraves de las experiencias adquiridas por un grupo de investigacion de prestigio a nivelinternacional en temas de mecanica computacional y computacion de alto desempeno.

En cuanto a los temas de estudio, debe indicarse que se profundizo en el conocimientode las caracterısticas del Rıo de la Plata y de las estrategias de modelado numerico defluidos. Asımismo, se estudio el modelo RMA-10, disenado para realizar simulacioneshidrodinamicas mediante el paradigma de los elementos finitos en tres dimensiones. Enespecial, se logro acumular conocimiento y documentacion respecto al funcionamientocomputacional del modelo, lo que incluye el estudio de los tiempos de ejecucion de lasdistintas rutinas que lo componen. El estudio de los tiempos de ejecucion revelo quela rutina FRONT y en particular la etapa de factorizacion y resolucion de los sistemaslineales involucrados en la resolucion de sistemas no lineales mediante el metodo deNewton-Raphson constituye la principal fuente de consumo de tiempo de proceso.

Otro aspecto a destacar es la realizacion de un relevamiento de las estrategias deprogramacion de alto desempeno con especial enfasis en las aplicaciones numericas.El estudio permitio un acercamiento a un area de investigacion de intenso trabajo anivel mundial. En particular, se estudiaron las estrategias que mejor se adaptan a lasarquitecturas de hardware de bajo costo, que son las arquitecturas a las que se puedeacceder en Uruguay.

Se realizo un relevamiento de los metodos directos de resolucion de sistemas linealesdispersos. El relevamiento incluye el estudio de las estrategias de ordenamiento de pivotespara minimizar la aparicion del fill-in y un estado del arte de los metodos multifrontalescon especial enfasis en la evolucion historica y las distintas aplicaciones de tecnicas deparalelismo a los metodos.

Como se menciono anteriormente, la rutina FRONT mostro ser la principal fuente deconsumo de tiempo de ejecucion. Este hecho motivo que las propuestas realizadas en eltrabajo se centraran en mejorar el desempeno computacional de dicha rutina.

En este sentido, en el Capıtulo 5 se presenta un version de la rutina FRONT disenadapara ejecutar en forma secuencial en la cual se modifica la estrategia de resolucion de lossistemas lineales. La rutina FRONT propuesta, a diferencia de la version original, separa lageneracion de la matriz de rigidez global de la resolucion propiamente dicha del sistemalineal. Para llevar adelante dicho objetivo, se utiliza una estructura auxiliar de tipo tablade dispersion abierta para almacenar temporalmente los coeficientes de la matriz derigidez de cada elemento. Luego, se invoca una etapa de reordenamiento y consolidacionde coeficientes de modo de generar la matriz de rigidez global en algun formato dispersopreestablecido. Por ultimo, se resuelve el sistema de ecuaciones mediante el uso de labiblioteca MUMPS 4.3 en su version secuencial, utilizando la implementacion de labiblioteca BLAS de Kazushige Goto optimizada para los computadores utilizados.

Page 125: PEDECIBA INFORMATICA´ - fing.edu.uy

7.2 Conclusiones 117

La comparacion de los resultados numericos de la version propuesta del modelo RMA-10 con la version original resulto satisfactoria. Los resultados numericos en cinco puntosdistribuidos en la grilla obtenidos al efectuar pruebas con simulaciones de perıodos im-portantes de tiempo (8 dıas) mostraron que las diferencias entre los resultados numericosobtenidos con ambas versiones nunca superaron el 0,01 %.

En cuanto al desempeno computacional de la version propuesta, evaluado en tiem-po de ejecucion, se puede concluir que la nueva rutina logra un desempeno mas queaceptable. Las pruebas realizadas mostraron que la version propuesta necesita aproxi-madamente la cuarta parte del tiempo que necesita la version original para efectuarsimulaciones sobre un caso de prueba real (de aproximadamente 30000 ecuaciones) delmodelo del Rıo de la Plata.

Se realizo un breve estudio de la influencia en el desempeno computacional de utilizarlas distintas estrategias de ordenamiento de pivotes disponibles en la biblioteca MUMPS.La biblioteca incluye implementaciones de las estrategias AMF, AMD, QAMD y PORD.En todos los casos probados, los tiempos de ejecucion para resolver los sistemas linealesinvolucrados en la aplicacion del modelo RMA-10 al Rıo de la Plata con las distintasestrategias de ordenamiento fueron similares, mostrando una leve ventajas las estrategiasAMD y QAMD.

Un aspecto relevante de la rutina FRONT propuesta son los resultados de escalabilidadque presenta ante el aumento de ecuaciones. Ante aumentos en las dimensiones delproblema, la version propuesta muestra su capacidad de escalar en mejor forma que laversion original, Esta afirmacion se confirma observando que al resolver sistemas linealesde aproximadamente 7000 ecuaciones los tiempos de ejecucion de ambas versiones sonequivalentes, mientras que al resolver sistemas del entorno de 30000 ecuaciones la versionpropuesta es aproximadamente 4 veces mas rapida que la original y al resolver sistemasde 40000 ecuaciones las diferencias entre los tiempos de ejecucion llegan a ser de 9 a 1a favor de la nueva rutina.

Otro aspecto importante de la rutina FRONT propuesta es que su tiempo de ejecuciondepende debilmente de la cantidad de ecuaciones de los sistemas lineales a resolver, yse encuentra fuertemente ligado a la cantidad de coeficientes no nulos. Este resultadoes importante por dos razones, por un lado porque generalmente la densidad en lasmatrices vinculadas a la resolucion de modelos de elementos finitos es baja, pero tambienporque brinda una vıa de trabajo para disminuir el tiempo de computo al trabajar consistemas lineales de grandes dimensiones, buscando disminuir la densidad de las matricesinvolucradas.

Se realizo un estudio de las capacidades de optimizacion y paralelizacion automati-cas del compilador Intel Fortran 7.0 y se adquirio experiencia en la aplicacion de la APIOpenMP y los compiladores HPF. Ademas, se realizaron pruebas con otras estrategiasde paralelismo a nivel de sub-matriz aplicadas al modelo RMA-10 utilizando imple-mentaciones multi-threads de la biblioteca BLAS. En todas las pruebas realizadas losresultados obtenidos no permiten sacar conclusiones positivas de la aplicacion de estetipo de estrategias sobre el hardware disponible.

Se desarrollo una version del modelo RMA-10 que utiliza tecnicas de programacionparalela a nivel de matriz. La version se basa en las capacidades de ejecucion en paralelosobre arquitecturas de memoria distribuida mediante el paradigma de pasaje de mensajesde la biblioteca MUMPS. La propuesta paralela a nivel de matriz se evaluo en diversasarquitecturas y configuraciones de hardware. La diversidad de arquitecturas y sistemas

Page 126: PEDECIBA INFORMATICA´ - fing.edu.uy

118 Conclusiones y Trabajo Futuro

operativos implico profundizar en particularidades de cada uno de los computadores. Losresultados obtenidos en cuanto a los tiempos de ejecucion y speedup han sido variados.Las pruebas realizadas sobre arquitecturas de tipo cluster no lograron buenos nivelesde speedup, principalmente cuando las redes de interconexion utilizadas son lentas olas unidades de procesamiento rapidas. Por otro lado, en las arquitecturas de memoriacompartida se lograron niveles de speedup lejanos a la cota teorica de speedup lineal,aunque los resultados obtenidos se pueden considerar aceptables.

Por ultimo, se realizaron diversos estudios preliminares de aplicacion de tecnicas deprogramacion paralela a nivel de sistema al modelo RMA-10. Los estudios abarcan laaplicacion de tecnicas de paralelismo a nivel del ciclo de calculo de los nodos, ası como lacarga y resolucion en forma distribuida de la matriz de rigidez. Los resultados obtenidosfueron sumamente alentadores, permitiendo inferir que se puede disminuir en formaimportante el tiempo de ejecucion de una etapa del algoritmo que en la version propuestaposee un costo computacional relativo importante.

En resumen, el trabajo presenta una variante del modelo RMA-10 que mejora eldesempeno computacional en forma notoria. La mejora de desempeno permite ampliarla utilizacion del modelo, posibilitando mejorar la definicion de la grilla que discreti-za el dominio de calculo. De este modo, la version propuesta hace viable la ejecucionde simulaciones de perıodos de tiempos prolongados, que para la version original eranprohibitivos.

7.3. Trabajo Futuro

A continuacion se describen las lıneas de trabajo que se estan llevando adelante enla actualidad o se plantean abordar en un futuro cercano.

El proceso de generacion de la matriz de rigidez global puede mejorarse signifi-cativamente. Entre otras opciones, resulta interesante aprovechar la re-utilizacion deinformacion de pasos anteriores para la ubicacion de los coeficientes en la matriz. Em-pleando esta estrategia, la estructura de las matrices no sufre mayores cambios salvopor la eliminacion de ecuaciones desacopladas por criterios de convergencia del metodode resolucion de los sistemas no lineales.

Un aspecto que se considera promisorio es abordar la estrategia de ordenamientode los pivotes al factorizar los sistemas lineales. Entre otras opciones se destacan laevaluacion de distintas tecnicas de ordenamiento y el uso de mecanismos para tratar desacar partido de la igualdad de la estructura simbolica de las matrices para calcular elordenamiento en una unica ocasion. Esta segunda opcion permite efectuar un calculo masriguroso y costoso en tiempo de ejecucion, pero obtiene como resultado ordenamientosque implican menor fill-in.

La resolucion de sistemas lineales dispersos es un area de investigacion sumamentedinamica y parece interesante el estudio de otras bibliotecas de uso publico, entre lasque se destaca la biblioteca WSMP propuesta por Gupta.

Un camino que no se exploro durante el trabajo es el cambio de estrategia de re-solucion de los sistemas no lineales. Si bien es cierto que la mayor parte del tiempode ejecucion del modelo RMA-10 se debe a la resolucion de los sistemas lineales, nomenos cierto es que dichas resoluciones son necesarias por la utilizacion del metodo deNewton-Raphson. Por esta razon, es necesario investigar otros metodos de resolucion desistemas no lineales.

Page 127: PEDECIBA INFORMATICA´ - fing.edu.uy

7.3 Trabajo Futuro 119

Un aspecto relacionado con las posibles mejoras del desempeno del modelo RMA-10es trabajar con matrices bien condicionadas. En este sentido es necesario estudiar elmodelado del Rıo de la Plata con el RMA-10 modificando estrategias que puedan traeraparejado matrices mejor condicionadas. Entre otros topicos, es necesario revisar lasunidades utilizadas para las diferentes magnitudes, los valores de contorno especificados,etc.

Durante el trabajo se estudio la utilizacion de versiones multi-threads de la bibliotecaBLAS y diversas aplicaciones de la API de OpenMP. Como lınea de investigacion futuraparece razonable profundizar en la aplicacion de ambas estrategias, relevando otrasimplementaciones multi-threads de la biblioteca BLAS y ampliando en el estudio dela aplicacion de la API de OpenMP y los compiladores HPF sobre el modelo RMA-10.

Una opcion relegada durante el trabajo fue la de emplear tecnicas de memoria com-partida para realizar en paralelo el ciclo de calculo de los coeficientes de la matriz derigidez. Si bien se presume que esta opcion no es escalable ante el aumento de unidadesde procesamiento, puede servir para mejorar el tiempo de ejecucion del modelo en loscomputadores utilizados por el IMFIA. A tales efectos se preve implementar la estrategiadescripta en la Seccion 6.4.1.

Una de las acciones que se preve permtirıa mejorar en forma drastica el speedup de laversion propuesta es la carga y calculo de las matrices en forma distribuida. Sin embargo,esta tarea implica rehacer gran parte del modelo original, disenado para Fortran 77 queentre otras cosas no manejaba almacenamiento dinamico.

En la medida que sea de interes dar un salto importante en cuanto a las dimensio-nes de los problemas a resolver (involucrando sistemas lineales de cientos de miles deecuaciones) parece imperioso el estudio de la aplicacion de metodos iterativos para suresolucion. Esta lınea de trabajo implica la busqueda de precondicionadores especialespara el problema con el objetivo de lograr buenos niveles de convergencia de los metodos.

Por ultimo, parece importante el estudio de los metodos de paralelismo basado en ladescomposicion de dominio. En especial, debe estudiarse la aplicacion de esta estrategiade descomposicion a los MEF, ya que existe diversa literatura que proporciona resultadosalentadores en cuanto a la capacidad de paralelizacion y escalabilidad de este tipo deestrategias.

Page 128: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 129: PEDECIBA INFORMATICA´ - fing.edu.uy

Anexo A

Almacenamiento de matricesdispersas

Las necesidades de memoria asociadas al almacenamiento de grandes matrices gene-ralmente son una gran limitante informatica. Sin embargo, con frecuencia las matricesque se obtienen al modelar problemas numericos poseen gran cantidad de valores nulos,teniendo niveles de densidad (cantidad de valores no nulos / cantidad total de valores)sumamente bajos. Situacion que se observa por ejemplo al utilizar tecnicas de diferenciasfinitas y elementos fintos.

Una alternativa muy utilizada cuando se esta trabajando con matrices de dimensionesimportantes y bajo nivel de densidad1 es la utilizacion de estrategias de almacenamientodisperso o ralos, es decir almacenar solamente aquellos coeficientes cuyo valor no sea cero.

Existen diversas estrategias para almacenar matrices dispersas, la eleccion por algunade ellas se realiza sopesando varios factores como por ejemplo si la matriz es simetrica ono, si solo se requiere consultar los valores o se pretende modificarlos, el algoritmo conel que se desea trabajar, la mayor distancia de un elemento no nulo a la diagonal, ellenguaje de programacion a utilizar, etc.

En lo que resta del Anexo se exponen algunas de las estrategias de almacenamientodisperso que normalmente se utilizan o que por su simplicidad u originalidad puedenresultar interesantes. El trabajo no intenta ser un estudio de los distintos metodos niun relevamiento del estado del arte del tema. Si el lector esta interesado en profundizarsobre el tema puede encontrar diversa literatura en el area. Algunos ejemplos son eltrabajo de Pooch y Neider [203], el libro de Saad [215], el artıculo de Duff [98] y la Tesisde Asenjo [70].

Las distintas estrategias de almacenamiento disperso se pueden agrupar en dos gran-des clases: las estrategias estaticas y las estrategias dinamicas.

1Si bien no existe un consenso sobre que es un buen nivel de densidad para trabajar con estrategiasdispersas y el valor depende de muchas circunstancias, en gran parte de la literatura se especifica elvalor de 0.2 de densidad como un buen nivel.

121

Page 130: PEDECIBA INFORMATICA´ - fing.edu.uy

122 Almacenamiento de matrices dispersas

Estrategias estaticas. Se utilizan normalmente cuando la estructura de la matriz(el patron de coeficientes no nulos) no sufrira grandes modificaciones. Por lo ge-neral, utilizan menos memoria y poseen velocidad de acceso a los coeficientes masrapido que las estrategias dinamicas. Entre las estrategias estaticas que se utilizanfrecuentemente se destacan: el formato simple o coordenada - valor (coordinate for-mat), el formato comprimido por fila (Compress Row Storage – CRS), el formatocomprimido por columna (Compressed Column Storage – CCS), almacenamientopor diagonales (diagonal format – DIA), el formato Ellpack-itpack (ELL).

Estrategias dinamicas. Se eligen cuando la frecuencia de modificacion de la estruc-tura de la matriz es alta ya que permiten de forma facil agregar nuevos coeficientes.Entre las distintas estrategias dinamicas se pueden destacar: lista bidimensionaldoblemente enlazada (Linked List Row-Column Storage – LLRCS), listas enlaza-das por filas (Linked List Row Storage – LLRS) y listas enlazadas por columna(Linked List Column Storage – LLCS).

Existe otra gran cantidad de estrategias generales de almacenamiento tanto estati-cas como dinamicas, ası como propuestas de almacenamiento disperso especialmentedisenadas para determinados tipos de matrices y/o para utilizar con determinados al-goritmos.

A continuacion se describen las distintas estrategias de almacenamiento dispersolistadas anteriormente. Para facilitar la comprension de las estrategias en algunos casosse muestra la aplicacion de las estrategias descritas a la matriz A (que se puede observaren la Figura A.1)

A =

1 2 0 0 3 4 00 5 0 6 0 0 00 7 8 9 0 0 01 0 0 2 0 0 00 3 0 0 4 5 00 0 6 0 7 8 00 0 0 0 0 0 9

Figura A.1: Matriz A ejemplo.

En todos los casos se supone que se almacenan matrices que poseen k coeficientesno nulos en punto flotante.

A.1. Estrategias estaticas

A.1.1. Formato simple

Este formato utiliza tres vectores para el almacenamiento de la matriz, un vector dde tipo punto flotante para los datos y dos vectores (f y c) de enteros para los ındices(fila, columna). Cada valor no nulo de la matriz esta asociado a 3 valores, uno por cadavector componente del formato.

Page 131: PEDECIBA INFORMATICA´ - fing.edu.uy

A.1 Estrategias estaticas 123

En cuanto a las necesidades de memoria del metodo, si la matriz tiene k coeficientesno nulos entonces se utilizan k entradas de tipo punto flotante y 2 ∗ k entradas de tipoentero para los ındices.

d =(

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9)

f =(

1 1 1 1 2 2 3 3 3 4 4 5 5 5 6 6 6 7)

c =(

1 2 5 6 2 4 2 3 4 1 4 2 5 6 3 5 6 7)

Figura A.2: Formato simple.

En la Figura A.1 se puede observar como quedarıa la matriz A de la Figura A.1. Sise desea acceder al valor A(i, j) es necesario saber el p tal que f(p) = i y c(p) = j yel valor buscado es d(p). Se puede almacenar los coeficientes conservando algun orden(recorriendo por fila o columna) o en forma aleatoria.

Como ventaja de la estrategia de almacenamiento se puede destacar que es suma-mente sencilla e intuitiva y que es igual de facil el acceso por columna que por fila. Encontra se destaca la necesidad de memoria, ya que si la densidad por fila/columna esmayor a uno (situacion normal) utiliza mas memoria que otros metodos.

A.1.2. CRS

El formato comprimido por fila (tambien conocida como CSR-Compressed StorageRow), utiliza al igual que el formato simple tres vector. Un vector d de tamano k y tipopunto flotante en el que se almacenan los valores de los coeficientes. Otro vector c detamano k en el que se almacenan los numeros de columna de los elementos distintos decero, por ultimo, un vector f de tamano n+1 siendo n la cantidad de filas de la matriz,en el cual se almacena la posicion de la primera ocurrencia de cada fila.

d =(

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9)

f =(

1 5 7 10 12 15 18 19)

c =(

1 2 5 6 2 4 2 3 4 1 4 2 5 6 3 5 6 7)

Figura A.3: Formato CRS.

En la Figura A.1 se muestra como se representa la matriz A utilizando la estrategiaCRS. Para acceder al valor A(i, j) de la matriz A, se obtienen primero los ındice p1 = f(i)y p2 = f(i + 1), posteriormente se busca el ındice p tal que p1 ≤ p < p2 y f(p) = j,luego se puede obtener el valor buscado accediendo a d(p).

Si la matriz tiene mas coeficientes no nulos que cantidad de filas, la estrategia CRSutiliza menos cantidad de memoria que el formato simple. Es necesario conocer todoslas posiciones de los coeficientes para generar la estructura en forma eficiente, o dichode otra forma es muy difıcil agregar un nuevo valor a la estructura. Es facil acceder alos elementos de una fila pero no a los de una columna.

Page 132: PEDECIBA INFORMATICA´ - fing.edu.uy

124 Almacenamiento de matrices dispersas

A.1.3. CCS

El formato comprimido por columna es similar al CRS pero utilizando el vector com-primido para las columnas. En la Figura A.1 se muestra como se aplica esta estrategiaa la matriz A.

d =(

1 1 2 5 7 3 8 6 6 9 2 3 4 7 4 5 8 9)

f =(

1 4 1 2 3 5 3 6 2 3 4 1 5 6 1 5 6 7)

c =(

1 3 7 9 12 15 18 19)

Figura A.4: Formato CCS.

Se mantienen las necesidades de memoria del formato CRS y en cuanto a las carac-terısticas de acceso se invierten los conceptos con respecto a filas y columnas.

A.1.4. DIA

Cuando la matriz a almacenar es de banda, se puede utilizar estrategias de almacena-miento por diagonales. Entonces se almacena la matriz original en una matriz rectangularde tamano n ∗ d siendo n la dimension de la matriz y d la cantidad de diagonales.

Si se desea almacenar una matriz que posee d diagonales no consecutivas, una va-riante de formato es el Diagonal Storage Format que utiliza una matriz de tamano n ∗ den la que se almacenan las d diagonales y otro vector de tamano d en el que se especificael offset de cada diagonal con la diagonal principal.

A.1.5. ELL

En el formato Ellpack-itpack almacena una matriz con m elementos por fila en dosmatrices de tamano n∗m. En la primera se tienen los valores de los coeficientes mientrasque en la segunda se puede obtener el offset de cada elemento a la diagonal.

A.2. Estrategias dinamicas

Las distintas estrategias dinamicas generalmente utilizan punteros para implementarlas estructuras, por lo tanto para implementar las variantes es necesario utilizar lenguajesque soporten allocate dinamico por ejemplo C y Fortran 90.

A.2.1. LLRCS

En esta estrategia se utiliza una multiestructura bidimensional. Se dispone de dosvectores de tamano igual a la cantidad de filas y columnas, en cada entrada se disponede un puntero para recorrer las distintas entradas por fila en un vector o por columnaen el otro.

La memoria que se necesita para implementar la estrategia LLRCS, si k es la cantidadde coeficientes no nulos, se necesitan k posiciones de punto flotante, 4 ∗ k punteros, kenteros, mas la memoria necesaria para almacenar los dos vectores (2 ∗ n punteros).

Page 133: PEDECIBA INFORMATICA´ - fing.edu.uy

A.2 Estrategias dinamicas 125

Para acceder al valor A(i, j) se puede recorrer la lista de la entrada i por el vector defilas buscando el valor cuya columna sea j, o recorrer la lista de la entrada j del vectorde columnas hasta encontrar la fila i.

A.2.2. LLRS

En esta estrategia se utiliza una estructura unidimensional, en la cual se emplea unvector de tamano igual a la cantidad de filas y de cada posicion del vector se puedeobtener la lista de entradas de esa fila.

En cuanto a memoria se necesitan k posiciones de punto flotante, k enteros, k pun-teros mas el vector de entrada (n punteros).

A.2.3. LLCS

Al igual que en la propuesta anterior, en la estrategia LLCS se utiliza una estructuraunidimensional, pero el vector base de la estructura es de tamano igual a la cantidad decolumnas y de cada posicion del vector se puede obtener la lista de coeficientes no nulosde esa columna.

La estrategia LLCS posee las mismas necesidades de memoria que la LLRS.

Page 134: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 135: PEDECIBA INFORMATICA´ - fing.edu.uy

Anexo B

Elementos finitos

Este anexo presenta una breve descripcion del paradigma de los elementos finitos(MEF), se profundiza en el metodo de Galerkin y en especial se resaltan aspectos desu utilizacion en el modelo RMA-10. El material presentado no es mas que la union yresumen del material presente en el libro de Reddy [208] sobre MEF, la breve descripcionrealizado por I. King [167] del modelo matematico del modelo RMA-10 y la recopilaciony experiencia sobre la aplicacion de los MEF en el RMA-10 aportada por M. Fossattien su Tesis de Maestrıa [111].

El metodo de los elementos finitos es una de las estrategias disponibles al momentode resolver en forma aproximada ecuaciones diferenciales. Pertenecen a la familia demetodos de aproximacion por porciones, su metodologıa de trabajo es mediante la apro-ximacion de una funcion continua (en determinado dominio) en un conjunto de puntosdiscretos. Para llevar adelante dicha tarea se especifica una malla o grilla de calculo,la cual se compone de una cantidad finita de elementos. Cada uno de los elementos secompone de dos o mas nodos.

La discretizacion que realizan los MEF del dominio de calculo le brindan la capa-cidad de poder adaptarse a problemas de gran complejidad y geometrıa inusual. Dichacapacidad aunada con el avance de las computadoras, situan a los MEF como una he-rramienta elegible por sobre otras metodologıas al momento de resolver problemas detamano importante, principalmente cuando las soluciones analıticas no son practicablesy/o el dominio es irregular.

Metodo de los residuos ponderados

Una de las aproximaciones mas utilizadas cuando se emplean los metodos de ele-mentos finitos es la de los residuos ponderados, tecnica que se aplica directamente sobrela ecuacion diferencial y sus condiciones de contorno. Para explicar estos metodos seconsidera una ecuacion diferencial generica de variable u definida sobre un dominio Ω,segun la Ecuacion B.1, que esta sujeta a condiciones de contorno sobre su frontera Γ,segun Ecuacion B.2. La Ecuacion B.1 se verifica en Ω y la Ecuacion B.2 en Γ, siendoA(u) y M(u) operadores diferenciales.

A(u)− f = 0 (B.1)M(u)− g = 0 (B.2)

127

Page 136: PEDECIBA INFORMATICA´ - fing.edu.uy

128 Elementos finitos

Si se reemplaza la solucion exacta u por una solucion aproximada u∗ en la ecuaciondiferencial B.1 y en sus condiciones de contorno B.2, entonces estas ecuaciones no secumpliran exactamente y van a generar un residuo RΩ en el dominio y un residuo RΓ

en el contorno. Esto es presentado en las Ecuaciones B.3 y B.4.

RΩ(u∗) = A(u∗)− f 6= 0 (B.3)RΓ(u∗) = M(u∗)− g 6= 0 (B.4)

La idea basica de los metodos de residuos ponderados es imponer la condicion expre-sada en la Ecuacion B.5 para cualquier par de funciones arbitrarias W y W ′ que seanintegrables y no identicamente nulas. Se ha demostrado que si esto se cumple entoncesla funcion u∗ debe ser la solucion exacta de la ecuacion diferencial y de sus condicionesde contorno naturales. ∫

ΩWRΩ(u∗)dΩ +

∫Γ

W ′RΓ(u∗)dΓ = 0 (B.5)

A partir de la idea anterior es posible generar soluciones aproximadas de este sistemade la forma:

u∗ =n∑

i−1

aiNi(x, y) (B.6)

donde las funciones Ni(x, y) se denominan funciones de prueba. Estas pueden serelegidas arbitrariamente mientras satisfagan las condiciones esenciales de contorno. Lasn constantes ai son coeficientes a determinar que se calculan al imponer las n condicionesdefinidas en la Ecuacion B.7, donde los Wi y W ′

i se denominan funciones de ponderacion.

∫Ω

WiRΩ(u∗)dΩ +∫

ΓW ′

iRΓ(u∗)dΓ = 0 i = 1, 2, ..., n (B.7)

Segun el tipo de funciones de peso o ponderacion Wi empleadas en la formulacionse definen diferentes metodos de aproximacion. El modelo RMA-10 utiliza el metodo deGalerkin de los pesos residuales, en el cual se adoptan las funciones de ponderacion Wi

iguales a las funciones de prueba Ni, utilizadas en la representacion de las variables enla formulacion en elementos finitos. Con esto la condicion B.7 queda de la forma:

∫Ω

NiRΩ(u∗)dΩ +∫

ΓN ′

iRΓ(u∗)dΓ = 0 i = 1, 2, ..., n (B.8)

En este metodo las funciones de prueba Ni deben tener derivadas definidas hastael maximo orden que aparece en el residuo, esto es, del mismo orden que la ecuaciondiferencial.

Formulacion en elementos finitos

La Ecuacion B.6 define las soluciones aproximadas de las variables del sistema aresolver, que como se menciono con anterioridad en el caso de la aplicacion del RMA-10al Rıo de la Plata son las componentes de la velocidad, la profundidad y la salinidad.

Page 137: PEDECIBA INFORMATICA´ - fing.edu.uy

129

En la formulacion realizada se ha asumido implıcitamente que las funciones de prue-ba Ni estan definidas por una expresion simple valida en todo el dominio Ω. Esta idea esposible implementarla sobre dominios con geometrıa sencilla como rectangulos, cırculos,etc., pero no si se intenta trabajar sobre geometrıas de gran tamano o de formas irregu-lares, como es el caso del Rıo de la Plata. Esta restriccion frecuentemente encontrada alutilizar este tipo de metodos motiva la division que realizan los metodos de elementosfinitos dividiendo el dominio en una serie de subdominios o elementos Ωe que no sesuperponen, logrando definir las funciones de prueba de forma mas facil. Las aproxima-ciones u∗ se construyen entonces por trozos usando definiciones simples (locales) de lasfunciones de prueba sobre cada uno de los elementos.

Dentro de los elementos se definen diferentes puntos, que pueden ser por ejemplosus extremos o puntos pertenecientes a los lados de cada elemento. A cada uno de estospuntos denominados nodos se asocia un valor de la variable ai, de forma que la sumatoriadefinida en la Ecuacion B.6 se toma en todos los nodos del dominio. Por lo general cadanodo pertenece a mas de un elemento.

En definitiva, en la aproximacion por elementos finitos se divide el dominio de calculoen elementos y nodos, y se reemplaza la variable continua por la aproximacion en ele-mentos finitos, parametrica dentro de cada elemento utilizando las funciones de prueba.

En el modelo numerico RMA-10 las variables del sistema se describen de diferentesmaneras. Las componentes de la velocidad y la salinidad se describen dentro de cadaelemento utilizando funciones de prueba cuadraticas y la profundidad se define utilizandouna funcion de prueba lineal.

Page 138: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 139: PEDECIBA INFORMATICA´ - fing.edu.uy

Anexo C

Modulos y manejo de archivos delmodelo RMA-10

En este anexo primero se presenta una breve descripcion de los modulos de mayorimportancia del modelo RMA-10. Luego, se describe en forma resumida el manejo dearchivos de entrada y salida de datos que utiliza el modelo.

La informacion que se presenta en este anexo esta basada en el trabajo del Dr. I.King [169], la Tesis de Maestrıa de M. Fossatti [111] y experiencias recabadas al utilizarel modelo RMA-10 durante el transcurso de este proyecto.

C.1. Modulos del RMA 10

En esta seccion se describen los modulos principales del modelo RMA-10, los modulosse presentan agrupados por la etapa en la cual son utilizados.

Rutinas Globales

MAIN: Es el progrma principal, maneja el flujo de control del programa y se encargadel control de la escritura de los archivos de re-comienzo (ante posibles cortes en laejecucion del programa) y los archivos de salida.

FILE: Subrutina que encapsula el manejo de los archivos (apertura y clausura enlos distintos sistemas operativos) que utiliza el modelo.

Etapa de inicializacion

BFORM: Subrutina invocada por la rutina INPUT que carga en varios vectores lascondiciones iniciales.

BLINE: Subrutina que computa el angulo y el flujo paralelo de las condiciones deborde.

DEL: Subrutina que establece la red en la configuracion de nodo seco, generandolos nodos necesarios.

DSFCT: Subrutina para generar el flujo promedio y los coeficientes de momento.ELFLOWS: Subrutina para cargar el flujo entrante de los elementos.GETBC: Subrutina que controla la carga de las condiciones de borde.GETGEO: Subrutina encargada de la carga de los elementos de la geometrıa del

sistema.

131

Page 140: PEDECIBA INFORMATICA´ - fing.edu.uy

132 Modulos y manejo de archivos del modelo RMA-10

GETH: Subrutina encargada de la carga de la informacion de la marea.GETHSPCL: Subrutina encargada de la carga de la informacion de la marea para

un nivel especificado.GETMET: Subrutina para ingresar los datos meteorologicos.GETQ: Subrutina que lee los datos hidrograficos iniciales desde los archivos de

entrada y carga las estructuras necesarias.GETQSPCL: Subrutina que carga los datos hidrograficos de una capa en determi-

nado nivel.GTIDE: Subrutina para ingresar los datos de armonicos de la marea.HEATEX: Subrutina que genera las componentes de flujo en base a los datos me-

teorologicos.HGEN: Subrutina que genera las condiciones de borde de elevacion fijas.INITL: Subrutina encargada de inicializar las distintas estructuras auxiliares (prin-

cipalmente vectores).INMET: Subrutina para la carga inicial de los datos meteorologicos.INPUT: Es la subrutina principal en el contexto del manejo y control de flujo de

los datos de entrada.INPUTD: Subrutina que realiza la carga de los datos de entrada para cada paso

de tiempo.LNFLO: Subrutina que computa afluencias individuales de un elemento segun lo

determinado por la rutina ELFLOWS.LOAD: Subrutina que genera la equivalencia entre el numero de nodo y grado de

libertad con el numero de ecuacion.QGEN: Subrutina para generar las condiciones de borde para un flujo especıfico.ROIN: Subrutina para generar los gradientes de densidad horizontal para los ele-

mentos tri-dimensionales.SBGEN: Subrutina que controla la generacion de las condiciones de borde en base

a los valores iniciales.THREED: Subrutina que genera la malla en tres dimensiones en base a una es-

tructura bi-dimensional.

Etapa de resolucion de sistemas lineales

FRONT: Subrutina encargada de la solucion de los sistemas lineales utilizando elmetodo frontal.

COEF1: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos uni-dimensionales.

COEF2: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos bi-dimensionales.

COEF2D: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos bi-dimensionales utilizando la clausura de Smagorinsky.

COEF3: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos tri-dimensionales.

COEF3D: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos tri-dimensionales utilizando la clausura de Smagorinsky.

COEFV: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos bi-dimensionales en elevacion.

Page 141: PEDECIBA INFORMATICA´ - fing.edu.uy

C.1 Modulos del RMA 10 133

SURCOF: Subrutina que genera la matriz de coeficientes elementales para los ele-mentos de superficie tri-dimensionales.

SA3,XN3: Subrutina y funcion para calcular la funcion de forma de los puntos deGauss (en tres dimensiones).

SA2,XN2: Subrutina y funcion para calcular la funcion de forma de los puntos deGauss (en dos dimensiones).

SAN: Subrutina para calcular la funcion de forma en los nodos.RED,WRT: Subrutinas para escribir y leer de archivos bloques de ecuaciones en

etapas intermedias del proceso de resolucion del metodo frontal. En las versiones utili-zadas del modelo estas rutinas no son invocadas por razones de performance.

Calculo de velocidades verticales

VRTVEL: Subrutina que calcula las velocidades verticales.

Desafectar ecauciones de la iteracion de Newton-Raphson

DRPOUT: Subrutina que se encarga de controlar las ecuaciones que cumplen elcriterio de convergencia en la iteracion de Newton-Raphson.

Etapa de modificacion en pasos intermedios

ICETHK: Subrutina encargada del calculo del flujo de calor, necesario para con-trolar la formacion de hielo.

PLANAR: Subrutina que calcula el slope y gradiente necesarios para la evaluacionde la velocidad vertical en las condiciones de borde.

SETUP: Subrutina que se encarga de actualizar la estructura de ecuaciones cuandoresuelve las velocidades verticales.

STGEN: Subrutina que genera una condicion de borde etapa-flujo.UPDATE: Subrutina que realiza la actualizacion del conjunto de valores para las

variables primarias del sistema de ecuaciones.

Etapa de finalizacion

OUTNRM: Subrutina que establece la direccion de la normal saliente para laslineas de borde.

OUTPUT: Subrutina usada para imprimir las ultimas velocidades y profundidades.REWET: Subrutina que restaura la grilla original ante profundidades negativa,

utilizada al finalizar la solucion.VVELF: Subrutina encargada de establecer la velocidad vertical en la ultima solu-

cion.

Miscelaneas

ARAA: Subrutina que computa el largo de los elementos uni-dimensionales.CHECK: Subrutina que realiza diversos chequeos de continuidad en determinadas

secciones del modelo.

Page 142: PEDECIBA INFORMATICA´ - fing.edu.uy

134 Modulos y manejo de archivos del modelo RMA-10

C.2. Manejo de archivos

El modelo RMA-10 maneja varios archivos de entrada y salida de datos. El primerpaso del modelo es solicitar el nombre de un archivo1 en donde se encuentra diversainformacion inicial, en especial en el archivo se tiene que especificar los nombres de losrestantes archivos de entrada y salida a utilizar. Los archivos a utilizar dependen delas caracterısticas de las distintas ejecuciones, dependiendo del tipo de nodos utilizados,variables a calcular, etc.

Los nombres de archivo de salida especificados en el archivo inicial deben ser espe-cificados sin sufijo ya que el modelo preve anadir distintos sufijos dependiendo del tipode dato que se gurdan, ası el sufijo:

.ech: pertenece a los archivos en los que se guardan los datos de entrada al sistema.

.itr: se reserva para los archivos en los que se listan los parametros de convergenciade cada iteracion.

.out pertenece a los archivos con los resultados, grabados con la frecuencia especi-ficada.

A continuacion se describen los archivos que componen, junto al archivo de iniciali-zacion, el modelo RMA-10.

Archivo de entrada con la geometrıa bi-dimensional, creada con RMA1 o RMA-GEN.

Archivo de salida con la geometrıa bi-dimensional.

Archivo de entrada con las condiciones de borde, se puede omitir este archivo eincluir los datos en el archivo de inicializacion.

Archivo de salida de la geometrıa tri-dimensional, generalmente utilizado para elpost-procesamiento.

Archivo de salida de la geometrıa bi-dimensional.

Archivo de entrada de la geometrıa tri-dimensional.

Archivo de entrada con los datos de re-inicio, se utiliza en caso de continuar unaejecucion previa.

Archivo de salida con los datos necesarios para posibles re-inicios.

Archivo de salida con las velocidades y profundidades calculadas durante cadapaso de la simulacion.

Archivo de entrada con resultados previamente calculados, utilizado cuando lasvelocidades o concentraciones ya fueron calculadas en ejecuciones previas.

Archivo de entrada conteniendo los datos hidrograficos del flujo entrante en loselementos, necesario para las interpolaciones.

1Durante este trabajo se modifico la estrategia interactiva para que el modelo utilizara un archivoespecıfico permitiendo la ejecucion del modelo en modo batch.

Page 143: PEDECIBA INFORMATICA´ - fing.edu.uy

C.2 Manejo de archivos 135

Archivo de entrada conteniendo los datos hidrograficos para las interpolaciones.

Archivo de entrada conteniendo la informacion de la mareas, necesario para lasinterpolaciones.

Archivo de entrada conteniendo los datos de los armonicos de la marea.

Archivo de entrada conteniendo los datos atmosfericos.

Page 144: PEDECIBA INFORMATICA´ - fing.edu.uy
Page 145: PEDECIBA INFORMATICA´ - fing.edu.uy

Bibliografıa

[1] MUltifrontal Massively Parallel Solver (MUMPS version 4.5.3), Users Guide, 2005.Ultimas versiones disponibles en http://graal.ens-lyon.fr/MUMPS/doc.html.Consultado abril 2006.

[2] Repositorio Netlib. www.netlib.org/. Consultado noviembre 2005.

[3] Repositorio Netlib, biblioteca BLACS. www.netlib.org/blacs/. Consultadonoviembre 2005.

[4] Repositorio Netlib, biblioteca Eispack. www.netlib.org/eispack/. Consultadonoviembre 2005.

[5] Repositorio Netlib, biblioteca LAPack. www.netlib.org/lapack/. Consultadonoviembre 2005.

[6] Repositorio Netlib, biblioteca Linpack. www.netlib.org/linpack/. Consultadonoviembre 2005.

[7] Repositorio Netlib, biblioteca PBLAS. www.netlib.org/scalapack/pblas_qref.html. Consultado noviembre 2005.

[8] Sitio web de benchmarks. www.netlib.org/benchmark/. Consultado noviembre2005.

[9] Sitio web de Fraunhofer-institute for algorithms and scientific computing (SCAI).http://www.scai.fraunhofer.de/index.php. Consultado setiembre 2005.

[10] Sitio web de HPF de PGI. www.pgroup.com/doc/pghpf_ref/hpfwsr.htm. Con-sultado setiembre 2005.

[11] Sitio web de HSL. http://hsl.rl.ac.uk/archive/hslarchive.html. Consul-tado febrero 2006.

[12] Sitio web de Kazushige Goto. www.tacc.utexas.edu/~kgoto/. Consultadonoviembre 2005.

[13] Sitio web de la biblioteca CHACO. www.cs.sandia.gov/~bahendr/chaco.html.Consultado febrero 2006.

[14] Sitio web de la biblioteca Dscpack. www.cse.psu.edu/~raghavan/Dscpack/ Con-sultado febrero 2006.

137

Page 146: PEDECIBA INFORMATICA´ - fing.edu.uy

138 BIBLIOGRAFIA

[15] Sitio web de la biblioteca MFACT. www.cs.utk.edu/~padma/mfact.html. Con-sultado febrero 2006.

[16] Sitio web de la biblioteca mkl. http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/index%.htm. Consultado febrero 2005.

[17] Sitio web de la biblioteca PARDISO. www.computational.unibas.ch/cs/scicomp/software/pardiso/. Consultado febrero 2006.

[18] Sitio web de la biblioteca PaStiX. www.labri.fr/perso/ramet/pastix/. Con-sultado febrero 2006.

[19] Sitio web de la biblioteca PSPASES. www-users.cs.umn.edu/~mjoshi/pspases/index.html. Consultado febrero 2006.

[20] Sitio web de la biblioteca S+. www.cs.ucsb.edu/projects/s+/. Consultado fe-brero 2006.

[21] Sitio web de la biblioteca SCOTCH. http://www.labri.fr/perso/pelegrin/scotch/. Consultado febrero 2006.

[22] Sitio web de la biblioteca SPARSE. www.netlib.org/sparse/index.html. Con-sultado febrero 2006.

[23] Sitio web de la biblioteca Sparselib++. http://math.nist.gov/sparselib++/.Consultado febrero 2006.

[24] Sitio web de la biblioteca SparsKit. www-users.cs.umn.edu/~saad/software/SPARSKIT/sparskit.html. Consultado febrero 2006.

[25] Sitio web de la biblioteca Spooles. www.netlib.org/linalg/spooles/spooles.2.2.html. Consultado febrero 2006.

[26] Sitio web de la biblioteca SuperLU. http://crd.lbl.gov/~xiaoye/SuperLU/.Consultado febrero 2006.

[27] Sitio web de la biblioteca TAUCS. www.tau.ac.il/~stoledo/taucs/. Consulta-do febrero 2006.

[28] Sitio web de la biblioteca UMFPACK. http://www.cise.ufl.edu/research/sparse/umfpack/. Consultado febrero 2005.

[29] Sitio web de la biblioteca WSMP. www-users.cs.umn.edu/~agupta/wsmp. Con-sultado febrero 2006.

[30] Sitio web de la biblioteca YSMP. www.netlib.org/ode/yale.f. Consultado fe-brero 2006.

[31] Sitio web de la herramienta RMAGEN. www.bossintl.com/html/rmagen-features.html. Consultado setiembre 2005.

[32] Sitio web de la organizacion LamMPI. www.lam-mpi.org/. Consultado setiembre2005.

Page 147: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 139

[33] Sitio web de la organizacion Top500. www.top500.org/. Consultado setiembre2005.

[34] Sitio web de mike-3. www.dhisoftware.com/mike3/. Consultado setiembre 2005.

[35] Sitio web de MPICH. www-unix.mcs.anl.gov/mpi/mpich/. Consultado setiem-bre 2005.

[36] Sitio web de NIST Sparse BLAS. http://math.nist.gov/spblas/. Consultadofebrero 2006.

[37] Sitio web de OpenMP. www.openmp.org/drupal/. Consultado setiembre 2005.

[38] Sitio web de PGI. www.pgroup.com/.Consultado setiembre 2005.

[39] Sitio web de resource management associates. www.rmanet.com/. Consultadosetiembre 2005.

[40] Sitio web del ANL. www.anl.gov/. Consultado noviembre 2005.

[41] Sitio web del cima. www.cima.at.fcen.uba.ar/. Consultado noviembre 2005.

[42] Sitio web del cluster Geronimo. http://venus.ceride.gov.ar/twiki/bin/view/Cimec/GeronimoCluster. Consultado noviembre 2005.

[43] Sitio web del compilador ADAPTOR. www.scai.fraunhofer.de/EP-CACHE/adaptor/www/adaptor_home.html.Consultado setiembre 2005.

[44] Sitio web del Earth Simulator Center. www.es.jamstec.go.jp/esc/eng/index.html. Consultado setiembre 2005.

[45] Sitio web del foro de MPI. www.mpi-forum.org/. Consultado setiembre 2005.

[46] Sitio web del high performance fortran forum (HPFF). www.erc.mssate.edu/hpff/home.html. Consultado setiembre 2005.

[47] Sitio web del hydraulics research wallingford sobre la herramienta SULIS. www.hrwallingford.co.uk/consultancy/water_quality.html. Consultado setiem-bre 2005.

[48] Sitio web del INDEC. www.indec.mecon.ar/. Consultado noviembre 2005.

[49] Sitio web del projecto beowulf. www.beowulf.org/. Consultado noviembre 2005.

[50] Sitio web del proyecto HAMSOM en el CIMA. www.cima.fcen.uba.ar/%7Eclaudias/Proplata/ProplataWeb_archivos/page0009%.htm. Consulta-do noviembre 2005.

[51] Sitio web del repositorio Netlib, biblioteca itpack. www.netlib.org/itpack/.Consultado febrero 2005.

[52] Sitio web del repositorio Netlib, biblioteca sparse BLAS. www.netlib.org/sparse-blas/. Consultado febrero 2006.

Page 148: PEDECIBA INFORMATICA´ - fing.edu.uy

140 BIBLIOGRAFIA

[53] Sitio web del repositorio Netlib, biblioteca y12. www.netlib.org/y12/. Consul-tado febrero 2005.

[54] Sitio web del tratado del Rıo de la Plata. www.freplata.org/acerca_del_proyecto/tratado.htm. Consultado noviembre 2005.

[55] J. Aguilar and E. Leiss. Introduccion a la computcion paralela. Universidad de losAndes. Merida – Venezuela, 2004.

[56] A. Aho, M. Garey, and J. Ullman. The transitive reduction of a directed graph.SIAM Journal on Computing, 1(1):131–137, 1972.

[57] A. Aho, J. Hopcroft, and J. Ullman. Data Structures and Algorithms. Addison-Wesley, 1983.

[58] G. Amdahl. Validity of the single-processor approach to achieving large scalecomputing capabilities. In AFIPS, pages 483–485, 1967.

[59] P. Amestoy. Recent progress in parallel multifrontal solvers for unsymmetric sparsematrices. In Proceedings of the 15th World Congress on Scientific Computation,Modelling and Applied Mathematics, IMACS 97, Berlin, 1997.

[60] P. Amestoy, T. Davis, and I. Duff. An approximate minimum degree orderingalgorithm. SIAM Journal on Matrix Analysis and Applications, 17(4):886–905,1996.

[61] P. Amestoy, P. Daydi, and I. Duff. Use of level 3 blas in the solution of fulland sparse linear equations. In In High Performance Computing (Montpellier,France, March 22-24, 1989), pages 19–31, Amsterdam, The Netherlands, 1989.J.-L. Delhaye and E. Gelenbe, Eds. North-Holland Publishing Co.

[62] P. Amestoy, I. Duff, , J. Koster, and J-Y. LExcellent. A fully asynchronous mul-tifrontal solver using distributed dynamic scheduling. SIAM Journal of MatrixAnalysis and Applications, Vol 23 N 1:15–41, 2001.

[63] P. Amestoy, I. Duff, J. Lexcellent, and X. Li. Performance and tuning of twodistributed memory sparse solver. Technical Report RAL-TR-2001-004, 2001.

[64] P. Amestoy, I. Duff, and J-Y. LExcellent. Multifrontal solvers within the PARA-SOL environment. In B. Kagstrom, J. Dongarra, E. Elmroth, and J. Wasniewski,editors, Applied Parallel Computing, PARA’98, Lecture Notes in Computer Scien-ce, No. 1541, pages 7–11, Berlin, 1998. Springer-Verlag.

[65] P. Amestoy, I. Duff, and J-Y. LExcellent. Multifrontal parallel distributed symme-tric and unsymmetric solvers. Comput. Methods in Appl. Mech. Eng., 184:501–520,2000.

[66] P. Amestoy, I. Duff, J-Y. Lexcellent, and X. Li. Analysis and comparison of twogeneral sparse solvers for distributed memory computers. ACM Trans. Math.Softw., 27(4):388–421, 2001.

[67] P. Amestoy, I. Duff, and C. Puglisi. Multifrontal QR factorization in a multipro-cessor environment. Technical Report TR/PA/94/09, Toulouse, France, 1994.

Page 149: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 141

[68] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACKUsers’Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA,third edition, 1999.

[69] G. Ares. Programacion paralela sobre arquitecturas de memoria compartida ysu aplicacion a la resolucion del problema de Steiner en grafos. Tesis de Grado,Ingenierıa en Computacion, Universidad de la Republica – Uruguay, 2005.

[70] R. Asenjo. Factorizacion LU de matrices dispersas en multiprocesadores. Ph.D.Thesis, Technical Report UMA-DAC-97/32, Universidad de Malaga – Espana,1997.

[71] C. Ashcraft. A vector implementation of the multifrontal method for large sparse,symmetric positive definite linear systems. Technical Report ETA-TR-51, En-gineering Technology Applications Division, Boeing Computer Services, Seattle,Washington, 1987, 1984.

[72] C. Ashcraft, S. Eisenstat, J. Liu, B. Peyton, and A. Sheran. A compute-aheadimplementation of fan-in sparse distributed factorization scheme. Technical ReportORNL/TM-11496, 1990.

[73] C. Ashcraft and J. Liu. Robust ordering of sparse matrices using multisection.SIAM Journal on Matrix Analysis and Applications, 19(3):816–832, 1998.

[74] R. Benner, G. Montry, and G. Weigand. Concurrent multifrontal methods: Sharedmemory, cache and frontwidth issues. The International Journal of Supercompu-ting Applications, 1(3):26–45, 1987.

[75] P. Berman and G. Schnitger. On the performance of the minimum degree orderingfor gaussian elimination. SIAM Journal on Matrix Analysis and Applications,11(1):83–88, 1990.

[76] J. Blair and B. Peyton. An introduciton to chordal graphs and cliques trees.Technical Report ORNL/TM-12203, 1992.

[77] F. Bombardelli. Un modelo cuasi-tridimensional para simular flujos en aguas pocoprofundas bajo la accion del viento. Tesis de Master en Simulacion Numerica yControl, Universidad de Buenos Aires, Argentina, 1999.

[78] F. Bombardelli and A. Menendez. Un modelo numerico cuasi-tridimensional paracorrientes inducidas por el viento en aguas poco profundas, 2000. XIX Congresolatinoamericano de hidraulica, Cordoba – Argentina.

[79] C. Bornstein, B. Maggs, and G. Miller. Tradeoffs between parallelism and fill innested dissection. In SPAA ’99: Proceedings of the eleventh annual ACM sym-posium on Parallel algorithms and architectures, pages 191–200, New York, NY,USA, 1999. ACM Press.

[80] I. Brainman and S. Toledo. Nested-dissection orderings for sparse LU with partialpivoting. SIAM Journal of Matrix Analysis and Applications, Vol 23 Issue 4:998–1012, 2001.

Page 150: PEDECIBA INFORMATICA´ - fing.edu.uy

142 BIBLIOGRAFIA

[81] J. Bunch and N. Parlett. Direct methods for solving symmetric indefinite systemsof linear equations. SIAM J. Num. Anal., 8(4):255–269255–269, 1971.

[82] G. Burns, R. Daoud, and J. Vaigl. LAM: An Open Cluster Environment for MPI.In Proceedings of Supercomputing Symposium, pages 379–386, 1994.

[83] Chang. Application of sparse matrix methods in electric power system analysis.In Sparse Matrix Proceedings, pages 113–121, IBM Thomas J. Watson ResearchCenter, Yorktown Heights, NY, 1969.

[84] J. Choi, J. Dongarra, L. Ostrouchov, A. Petitet, D. Walker, and R. Whaley. Aproposal for a set of parallel basic linear algebra subprograms. Computer ScienceDepartment Technical Report CS-95-292, University of Tennessee, Knoxville –USA, 1995.

[85] J. Choi, J. Dongarra, L. Ostrouchov, A. Petitet, D. Walker, and R. Whaley. Des-ign and implementation of the ScaLAPACK LU, QR, and Cholesky factorizationroutines. Sci. Program., 5(3):173–184, 1996.

[86] J. Choi, J. Dongarra, and D. Walker. Pb-blas: A set of parallel block basic linearalgebra subprograms. In Proc. of the 1994 Scalable High Performance ComputingConference, IEEE Computer Society Press, 1994.

[87] E. Chu, A. George, J. Liu, and E. Ng. Sparspak: Waterloo sparse matrix packageuser’s guide for sparspak-a. Technical Report CS-84-36, Department of ComputerScience, University of Waterloo, Waterloo, Ontario, 1984.

[88] E. Cuthill and J. McKee. Reducing the bandwidth of sparse symmetric matrices.In Proceedings of the 1969 24th national conference, pages 157–172, New York,NY, USA, 1969. ACM Press.

[89] A. Davis. A Combined Unifrontal/Multifrontal Method for Unsymmetric SparseMatrices. In Proceedings of the Fifth SIAM Conference on Applied Linear Algebra,Snowbird, Utah, June 1994.

[90] T. Davis and I. Duff. Unsymmetric-pattern multifrontal methods for parallelsparse LU factorization. Technical Report TR-91-023, Gainesville, FL 32611,USA, 1991.

[91] T. Davis and I. Duff. An unsymmetric-pattern multifrontal method for sparseLU factorization. SIAM Journal of Matrix Analysis and Applications, Vol 18 N1:140–158, 1997.

[92] J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, and D. So-rensen. Prospectus for the development of a linear algebra library for high-performance computers. Technical Report ANL/MCS-TM-97, 9700 South CassAvenue, Argonne, IL 60439-4801, USA, 1987.

[93] J. Demmel, M. Heath, and H. van der Vorst. Parallel numerical linear algebra.In Acta Numerica 1993, pages 111–198. Cambridge University Press, Cambridge,UK, 1993.

Page 151: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 143

[94] F. Dobrian, G. Kumfert, and A. Pothen. The design of sparse direct solvers usingobject-oriented techniques. Technical Report TR-99-38, 1999.

[95] J. Dongarra, J. Du Croz, S. Hammarling, and I. Duff. A set of level 3 basic linearalgebra subprograms. ACM Trans. Math. Softw., 16(1):1–17, 1990.

[96] J. Dongarra, I. Duff, D. Sorensen, and H. van der Vorst. Solving Linear Systemson Vector and Shared Memory Computers. SIAM, 1991.

[97] I. Duff. A brief bibliography of recent research and software for the parallel solutionof large sparse linear equations. In ‘Proceedings of the Computational CattleBreeding ’99 Workshop, Tuusula, Finland, March 18-20, 1999’, Bulletin No 20,International Bull Evaluation Service, Uppsala, Sweden, pp. 43–46,1999.

[98] I. Duff. A survey of sparse matrix reserch. In In Proceeding of the IEEE, pages500 – 535, New York, 1977. Prentice Hall.

[99] I. Duff. Parallel implementation of multifrontal schemes. Parallel Computing,3(3):193–204, 1986.

[100] I. Duff. Sparse numerical linear algebra: direct methods and preconditioning.Technical Report TR/PA/96/22, CERFACS 42 Ave G. Corilis, 1996.

[101] I. Duff. The impact of high performance computing in the solution of linearsystems: trends and problems. J. Comput. Appl. Math., 123(1-2):515–530, 2000.

[102] I. Duff, A. Erisman, and J. Reid. On George’s nested dissection method. SIAMJ. Num. Anal., 13(1), 1976.

[103] I. Duff and J. Koster. On algorithms for permuting large enties to the diagonal ofa sparse matrix. Technical Report RAL-TR-1999-030, 1999.

[104] I. Duff and J. Reid. The multifrontal solution of indefinite sparse symmetric linearequations. ACM Trans. Math. Softw., Vol 9:302–325, 1983.

[105] I. Duff and H. van der Vorst. Developments and trends in the parallel solution oflinear systems. Parallel Computing, 25(13–14):1931–1970, 1999.

[106] S. Eisenstat, M. Gursky, M. Schultz, and A. Sherman. Yale sparse matrix packagei, the symmetric codes. Int. J. Numer. Methods in Engin., 18:1145–1151, 1982.

[107] S. Eisenstat and J. Liu. Exploiting structural symmetry in unsymmetric sparsesymbolic factorization. SIAM J. Matrix Anal. Appl., 13(1):202–211, 1992.

[108] S. Eisenstat, M. Schultz, and A. Sherman. Applications of an element modelfor gaussian elimination. In Sparse matrix computations, pages 85–96, AcademicPress, New York, 1976. J.Bunch and D. Rose, editors.

[109] S. Eisenstat and A. Sherman. Efficient implementation of sparse nonsymmetricgaussian elimination without pivoting. In Proceedings of the SIGNUM meeting onSoftware for partial differential equations, pages 26–29, 1975.

[110] M. Flynn. Some computer organizations and their effectiveness. IEEE Trans.Computers, 21:948–960, 1972.

Page 152: PEDECIBA INFORMATICA´ - fing.edu.uy

144 BIBLIOGRAFIA

[111] M. Fossati. Modelacion bidimensional del campo salino en el Rıo de la Plata. Tesisde Maestrıa en Mecanica de los Fluidos Aplicada, Universidad de la Republica –Uruguay, 2005.

[112] M. Fossati and I. Piedra-Cueva. Modelacion numerica del frente salino en el Rıode la Plata. In Proceedings XXI Congreso Latinoamericano de Hidraulica, SanPablo, Brasil, 2004.

[113] C. Fu, X. Jiao, and T. Yang. Efficient sparse LU factorization with partial pi-voting on distributed memory architectures. IEEE Trans. Parallel Distrib. Syst.,9(2):109–125, 1998.

[114] C. Fu and T. Yang. Sparse LU factorization with partial pivoting on distributedmemory machines. Technical Report TRCS96-18, 1, 1996.

[115] A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam.PVM: Parallel Virtual Machine: A Users’Guide and Tutorial for Networked Pa-rallel Computing. MIT Press, Cambridge, MA, USA, 1994.

[116] G. Geist and E. Ng. A partitioning strategy for parallel sparse Cholesky factori-zation. Technical Report ORNL/TM-10937, 1988.

[117] A. George. Nested dissection of a regular finite element mesh. SIAM J. Numer.Anal., 10(2):345–363, 1973.

[118] A. George and E. Chu. Gaussian elimination with partial pivoting and load ba-lancing on a multiprocessor. Technical Report ORNL/TM-10323, 1987.

[119] A. George, M. Heath, J. Liu, and E. Ng. Sparse Cholesky factorization on alocal-memory multiprocessor. Technical Report ORNL/TM-9962, 1986.

[120] A. George, M. Heath, J. Liu, and E. Ng. Solution of sparse positive definite systemson a shared-memoy multiprocessor. Technical Report ORNL/TM-10260, 1987.

[121] A. George and J. Liu. The design of a user interface for a sparse matrix package.ACM Trans. Math. Softw., Vol 5:134–162, 1979.

[122] A. George and J. Liu. Computer solution of large sparse positive definite sys-tems. Prentice-Hall series in computational mathematics. Prentice-Hall, En-glewood Cliffs, NJ, USA, 1981.

[123] A. George and J. Liu. The evolution of the minimum degree ordering algorithm.SIAM Review, Vol 31:1–19, 1989.

[124] A. George, J. Liu, and E. Ng. Communication reduction in parallel sparse Choleskyfactorization on a hypercube. In Hypercube Multiprocessors, pages 576–586. M. T.Heath, editor, 1987.

[125] A. George and E. Ng. Parallel sparse gaussian elimination with partial pivoting.Technical Report ORNL/TM-10866, 1988.

[126] J. George and D. McIntyre. On the application of the minimum degree algorithmto finite element systems. SIAM Journal on Numerical Analysis, 15:90–2072, 1978.

Page 153: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 145

[127] J. Gilbert. Graph separator theorems and sparse gaussian elimination. TechnicalReport PhD thesis, Stanford University, 1980.

[128] J. Gilbert. Predicting structure in sparse matrix computations. SIAM J. MatrixAnal. Appl., 15(1):62–79, 1994.

[129] J. Gilbert and J. Liu. Elimination structures for unsymmetric sparse LU factors.Technical Report CS-90-11, North York, Ontario, 1990.

[130] J. Gilbert and J. Liu. Elimination structures for unsymmetric sparse LU factors.SIAM Journal on Matrix Analysis and Applications, 14(1):334–352, 1993.

[131] J. Gilbert, C. Moler, and R. Schreiber. Sparse matrices in MATLAB: Design andimplementation. SIAM Journal on Matrix Analysis and Applications, 13(1):333–356, 1992.

[132] J. Gilbert and R Schreiber. Highly parallel sparse Cholesky factorization. SIAMJournal on Scientific and Statistical Computing, 13(5):1151–1172, 1992.

[133] N. Gould, Y. Hu, J. Scott P. Amestoy, I. Duff, J. Lexcellent, and X. Li. Completeresults from a numerical evaluation of sparse direct solvers for the solution oflarge, sparse, symmetric linear systems of equations. Technical Report CCLRC-TR-2005-001, 2005.

[134] A. Grama, A. Gupta, G. Karypis, and V. Kumar. Introduction to Parallel Com-puting. Design and Analysis of Algorithms. Benjamin-Cummings Pub Co., 1994.

[135] L. Grigori and X. Li. A new scheduling algorithm for parallel sparse LU fac-torization with static pivoting. In Supercomputing ’02: Proceedings of the 2002ACM/IEEE conference on Supercomputing, pages 1–18. IEEE Computer SocietyPress, 2002.

[136] W. Gropp and E. Lusk. User’s Guide for mpich, a Portable Implementation ofMPI. Mathematics and Computer Science Division, Argonne National Laboratory,1996. ANL-96/6.

[137] W. Gropp, E. Lusk, N. Doss, and A. Skjellum. A high-performance, portable im-plementation of the MPI message passing interface standard. Parallel Computing,22(6):789–828, sep 1996.

[138] R. Guarga, E. Kaplan, S. Vinzon, H. Rodrıguez, and I. Piedra Cueva. Aplicacionde un modelo de corrientes en diferencias finitas al Rıo de la Plata. RevistaLatinoamericana de Hidraulica. San Pablo, Brasil., 1992.

[139] R. Guarga, E. Kaplan, S. Vinzon, H. Rodrıguez, and I. Piedra Cueva. Modelonumerico de corrientes de marea paralelizado mediante descomposicion del domi-nio de calculo en bloques. International Conference on Domain DecompositionBergen, Norway, 9, 1996.

[140] A. Guermouche, J. Excellent, and G. Utard. On the memory usage of a parallelmultifrontal solver. Technical Report INRIA 4617, Rhone-Alpes, France, 2002.

Page 154: PEDECIBA INFORMATICA´ - fing.edu.uy

146 BIBLIOGRAFIA

[141] S. Guha. Nested graph dissection and approximation algorithms. In IEEE Sym-posium on Foundations of Computer Science, pages 126–135, 2000.

[142] A. Gupta. WGPP: Watson Graph Partitioning (and sparse matrix ordering) Pa-ckage. T.J. Watson Research Center, P.O.Box 218, Yorktown Heights, New York10598, 1996.

[143] A. Gupta. Recent advances in direct methods for solving unsymmetric sparsesystems of linear equations. ACM Trans. Math. Softw., Vol. 28 Issue 3:301–324,2002.

[144] A. Gupta. A shared and distributed memory parallel sparse direct solver. InPARA, pages 778–787, 2004.

[145] A. Gupta and V. Kumar. A scalable parallel algorithm for sparse Cholesky fac-torization. In Supercomputing ’94: Proceedings of the 1994 conference on Super-computing, pages 793–802. IEEE Computer Society Press, 1994.

[146] J. Gustafson and Q. Snell. Hint: A new way to measure computer performance.In HICSS (2), pages 392–401, 1995.

[147] R. Hanson, F. Krogh, and L. Lawson. A proposal for standard linear algebrasubprograms. Jet Propulsion Lab., Pasadena, Calif. TM 33-660, 5(3), 1973.

[148] M. Heath. Parallel direct methods for sparse linear systems, 1997. in ParallelNumerical Algorithms, A. S. D. E. Keyes and V. Venkatakrishnan, eds., KluwerAcademic Publishers, 1997, pp. 55–90.

[149] P. Heggernes, S. Eisenstat, G. Kumfert, and A. Pothen. The computational com-plexity of the minimum degree algorithm. 2001. Also available as ICASE Report2001-42, NASA/CR2001 -211421, NASA Langley Research Center, USA. 9.

[150] B. Hendrickson and T. Kolda. Partitioning rectangular and structurally unsymme-tric sparse matrices for parallel processing. SIAM Journal on Scientific Computing,21(6):2048–2072, 2000.

[151] B. Hendrickson and R. Leland. A multi-level algorithm for partitioning graphs.In Supercomputing, 1995.

[152] B. Hendrickson and E. Rothberg. Improving the run time and quality of nesteddissection ordering. SIAM Journal on Scientific Computing, 20(2):468–489, 1999.

[153] J. Hervouet. Hydrodynamique des ecoulements surface libre. Modelisation numeri-que avec la methode des elements finis. Departement edition de Ponts Formationedition SA, 2003.

[154] C. Hirsch, editor. Numerical computation of internal & external flows: fundamen-tals of numerical discretization. John Wiley & Sons, Inc., New York, NY, USA,1988.

[155] V. Ho, M. Pedemonte, and P. Ezzatti. Estudio de opciones de optimizacion au-tomatica con el compilador intel fortran 7.0 sobre el modelo RMA-10. ReporteTecnico no publicado.

Page 155: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 147

[156] P. Hood. Frontal solution program for unsymmetric matrices. International Jour-nal for Numerical Methods in Engineering, 10:379–400, 1976.

[157] Intel. Intel Fortran Compiler 7.0, User Guide. Intel Corporation.

[158] B. M. Irons. A frontal solution program for finite element analysis. InternationalJournal for Numerical Methods in Engineering, 2, 2:5–32, 1970.

[159] P. Jaime and A. Menendez. Modelo hidrodinamico Rıo de la Plata. Report LHA-INA 183-01-99, INA, Argentina, 1999.

[160] J. Jess and H. M. Kees. A data structure for parallel L/U decomposition. IEEETrans. Computers, 31(3):231–239, 1982.

[161] M. Joshi, G. Karypis, V. Kumar, A. Gupta, and F. Gustavson. Pspases: Anefficient and scalable parallel sparse direct solver, 1999. In Proceedings of theNith SIAM Conference on Parallel Processing for Scientific Computing.

[162] E. Kaplan. A shallow water model distributed using domain decomposition. Tesisde Maestrıa, Facultad de Ingenierıa, Universidad de la Republica – Uruguay, 1998.

[163] G. Karypis and V. Kumar. MeTis: Unstrctured Graph Partitioning and SparseMatrix Ordering System, Version 2.0, 1995.

[164] B. Kernighan and S. Lin. An efficient heuristic for partitioning graphs. Bell. Syst.Techn. Journ., 2:291–307, 1970.

[165] M. Khaira, G. Miller, and T. Sheffler. Nested dissection: A survey. TechnicalReport CS-92-106, 1992.

[166] I. King. An automatic reordering scheme for simultaneous equations derived fromnetwork systems. International Journal for Numerical Methods in Engineering, 2,2:479–509, 1970.

[167] I. King. RMA-10, a finite element model for three-dimensional density stratifiedflow. Report prepared in co-operation with Australian Water and Coastal Stu-dies for the Sydney Deepwater Outfalls Environmental Monitoring Program PostCommissioning Phase, 1993.

[168] I. King. RMA-2, a two dimensional finite element model for flow in estuariesand streams. Report Dept. of Civil Engineering. Universitiy of California.Davis,California USA, 1998.

[169] I. King. A finite element model for stratified flow RMA-10 users guide. Version7.1A, 2003.

[170] R.; Priaux J.; Pironneau O.; Widlund O.; Xu J. Kornhuber, R.; Hoppe, editor.Domain Decomposition Methods in Science and Engineering. Springer, 2004.

[171] S. Larimore. An approximate minimum degree column ordering algorithm. MasterThesis, University of Florida, 1998.

[172] C. Lawson, R. Hanson, D. Kincaid, and F. Krogh. Basic linear algebra subpro-grams for fortran usage. ACM Trans. Math. Softw., 5(3):308–323, 1979.

Page 156: PEDECIBA INFORMATICA´ - fing.edu.uy

148 BIBLIOGRAFIA

[173] H. Lee, J. Kim, S. Hong, and S. Lee. Task scheduling using a block dependencyDAG for block-oriented sparse Cholesky factorization. In SAC ’00: Proceedings ofthe 2000 ACM symposium on Applied computing, pages 641–648, New York, NY,USA, 2000. ACM Press.

[174] T. Lewis, B. Peyton, and A.Pothen. A fast algorithm for reordering sparse matricesfor parallel factorization. SIAM J. Sci. Stat. Comput., 10:1146–1173, 1989.

[175] X. Li and J. Demmel. Making sparse gaussian elimination scalable by staticpivoting. In Supercomputing ’98: Proceedings of the 1998 ACM/IEEE conferenceon Supercomputing (CDROM), pages 1–17, Washington, DC, USA, 1998. IEEEComputer Society.

[176] X. Li and J. Demmel. Superlu dist: A scalable distributed-memory sparse directsolver for unsymmetric linear systems. ACM Trans. Math. Softw., 29(2):110–140,2003.

[177] H. Lin and H. Sips. Parallel direct solution of large sparse systems in finite elementcomputations. In International Conference on Supercomputing, pages 261–270,1993.

[178] R. Lipton, D. Rose, and R. Tarjan. Generalized nested dissection. SIAM J. Numer.Anal., 16:346–358, 1979.

[179] J. Liu. Modification of the minimum-degree algorithm by multiple elimination.ACM Trans. Math. Softw., 11(2):141–153, 1985.

[180] J. Liu. Computational models and task scheduling for parallel sparse Choleskyfactorization. In Parallel Computing, pages 327–342, 1986.

[181] J. Liu. Equivalent sparse matrix reordering by elimination tree rotations. SIAMJ. Sci. Stat. Comput., 9(3):424–444, 1988.

[182] J. Liu. The role of elimination trees in sparse factorization. SIAM J. Matrix Anal.Appl., 11(1):134–172, 1990.

[183] J. Liu. The multifrontal method for sparse matrix solution theory and practice.SIAM Review, Vol 34 N 1:82–109, 1992.

[184] J. Liu, E. Ng, and B. Peyton. On finding supernodes for sparse matrix compu-tations. SIAM J. Matrix Anal. Appl., 14(1):242–252, 1993.

[185] W. Liu and A. Sherman. Comparative analysis of the Cuthill-McKee and thereverse Cuthill-McKee ordering algorithms for sparse matrices. SIAM Journal onNumerical Analysis, 13(2):198–213, 1976.

[186] R. Lucas, T. Blank, and J. Tiemann. A parallel solution method for large spar-se systems of equations. IEEE TRANS. COMP. AIDED DES. INTEGRATEDCIRCUITS SYST., 6:981–991, 1987.

[187] J. Mallya, S. Zitney, S. Choudhary, and M. Stadtherr. A parallel frontal solver forlarge scale process simulation and optimization, 1996. AIChE J. 43, 1032–1040.

Page 157: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 149

[188] J. Mallya, S. Zitney, S. Choudhary, and M. Stadtherr. A parallel block frontalsolver for large scale process simulation: Reordering effects, 1997. Comput. ChemEngng 21, S439–S444.

[189] H. Markowitz. The elimination form of the inverse and its application to linearprogramming. Management Sci, 3:255–269, 1957.

[190] A. Marshall. HPF programming course notes. Notas del curso de HPF de laUniversidad de Liverpool, Inglaterra, 1997.

[191] A. Menendez. Sistema HIDROBID II para simular corrientes en cuencas. Revistainternacional de metodos numericos para calculo y diseno en ingenierıa, 6(1),1990.

[192] G. Molinari and A. Menendez. Simulacion numerica de la circulacion en el Rıo dela Plata, 1986. INCYTH, Buenos Aires – Argentina.

[193] S. Nakamura. Metodos numericos aplicados con software. Prentice Hall, 1992.

[194] C. Narus, M. Narus, L. Dagum, D. Kohr, D. Maydan, and J. McDonald. ParallelProgramming in OpenMP. Morgan Kaufmann, 2000.

[195] E. Ng. Supernodal symbolic Cholesky factorization on a local-memory multipro-cessor. Technical Report ORNL/TM-11836, 1991.

[196] E. Ng and P. Raghavan. Performance of greedy ordering heuristics for spar-se Cholesky factorization. Technical Report CS-97-XX, University of Tennes-see,Knoxville, TN 37996, USA, 1997.

[197] V. Pan and J. Reif. Efficient parallel solution of linear systems. In 17th AnnualACM Symposium on Theory of Computing, pages 143–152, ACM,Providence,RI,1985. J.-L. Delhaye and E. Gelenbe, Eds. North-Holland Publishing Co.

[198] I. Pardines, M. Martın, M. Amor, and F. Rivera. Static mapping of the multifrontalmethod applied to the modified Cholesky factorization for sparse matrices. InPARCO, pages 731–734, 1997.

[199] I. Pardines and F. Rivera. Efficient dynamic load balancing strategies for parallelactive set optimization methods. In Euro-Par, pages 206–211, 2003.

[200] S. Parter. The use of linear graphs in Gauss elimination. SIAM Review, 3:119–130,1961.

[201] F. Pellegrini, J. Roman, and P. Amestoy. Hybridizing nested dissection and haloapproximate minimum degree for efficient sparse matrix ordering. Concurrency:Practice and Experience, 12(2-3):69–84, 2000.

[202] I Piedra-Cueva and H. Rodrıguez. Finite element modeling of the Rıo de la Plata.International Conference on Estuaries and Coasts, pages 872–878, 2003.

[203] U. Pooch and A. Nieder. A survey of indexing techniques for sparse matrices.ACM Comput. Surv., 5(2):109–133, 1973.

Page 158: PEDECIBA INFORMATICA´ - fing.edu.uy

150 BIBLIOGRAFIA

[204] L. Portela, L. Lafurcade, and A. Mora. Proyecto de grado, desarrollo de una herra-mienta para la visualizacion y exploracion de grandes volumenes de informacion,con aplicacion a resultados de simulacion hecha con fluidos. www.fing.edu.uy/~pgvfluid/. Consultado setiembre 2005.

[205] A. Pothen, H. Simon, L. Wang, and S. Barnard. Towards a fast implementationof spectral nested dissection. In Supercomputing ’92: Proceedings of the 1992ACM/IEEE conference on Supercomputing, pages 42–51. IEEE Computer SocietyPress, 1992.

[206] A. Pothen and C. Sun. A mapping algorithm for parallel sparse Cholesky factori-zation. SIAM J. Sci. Comput., 14:1253–1257, 1993.

[207] P. Rao. An efficient scalable finite element model for simulating large scale hy-drodynamic flows, 2003.

[208] J. Reddy. An Introduction to the Finite Element Method, second ed. McGraw-Hill,Boston, 1993.

[209] G. Reibig. On the performance of minimum degree and minimum local fill heu-ristics in circuit simulation. Techn. Rep., Massachusetts Institute of Technology,Dept. Chem. Eng., Cambridge, MA, U.S.A, 2001.

[210] D. Rose. A graph-theoretic study of the numerical solution of sparse positive de-finite systems of linear equations. GRAPH THEORY AND COMPUTING, pp.183-217. Academic Press, N.Y., 1972.

[211] D. Rose and R. Tarjan. Algorithmic aspects of vertex elimination. In STOC ’75:Proceedings of seventh annual ACM symposium on Theory of computing, pages245–254, New York, NY, USA, 1975. ACM Press.

[212] E. Rothberg and S. Eisenstat. Node selection strategies for bottom-up sparsematrix ordering. SIAMJMat, 19(3):682–695, 1998.

[213] F. Rueda and S. Schladow. Quantitative comparison of models for the barotropicresponse of homogeneous basins. ASCE, J. Hyd. Engineering, 128(2):201–212,2002.

[214] S. Hadfield. On the LU Factorization of Sequences of Identically Structured SparseMatrices within a Distributed Memory Environment. PhD thesis, 1994.

[215] Y. Saad. Sparskit: a basic tool kit for sparse matrix computations. Version 2,1994.

[216] Y. Saad. Iterative Methods for sparse linear systems. Society for Industrial andApplied Mathematics, Philadelphia, PA, USA, 2003.

[217] S. Sahni and V. Thanvantri. Parallel computing: Performance metrics and models,1995. Research Report, Computer Science Department, University of Florida.

[218] R. Schreiber. A new implementation of sparse gaussian elimination. ACM Trans.Math. Softw., 8(3):256–276, September 1982.

Page 159: PEDECIBA INFORMATICA´ - fing.edu.uy

BIBLIOGRAFIA 151

[219] J. Schulze. Towards a tighter coupling of bottom-up and top-down sparse matrixordering methods. BIT Numerical Mathematics, 41(4):800–828, 2001.

[220] J. Smagorinsky. Some historical remarks on the use of nonlinear viscosities. LargeEddy Simulation of Complex Engineering and Geophysical Flows, edited by B.Galperin and S. A, 36:3, 1993.

[221] B. Speelpenning. The generalized element method. Technical Report Tech. Rep.Technical Report UIUCDCS-R-78-946, Dept. of Computer Science, Univ. of Illi-nois, Urbana, 1978.

[222] J. Squyres and A. Lumsdaine. A Component Architecture for LAM/MPI. In Pro-ceedings, 10th European PVM/MPI Users’Group Meeting, number 2840 in LectureNotes in Computer Science, pages 379–387, Venice, Italy, September / October2003. Springer-Verlag.

[223] G. Thomas. BLASTH, a BLAS library for dual SMP computer, 2000. Proceedingsof the Linux Showcase & Conference, Atlanta, Georgia, USA, October, 2000.

[224] W. Tinney and J. Walker. Direct solutions of sparse network equations by op-timally ordered triangular factorization. IEEE Trans. Computers, 55:1801–1809,1967.

[225] J. Warner. Barotropic and baroclinic convergence zones in tidal channels. Disserta-tion, Department of Civil and Environmental Engineering, University of California,Davis, 2000.

[226] J. Wilkinson. Error analysis of direct methods of matrix inversion. ACM Trans.Math. Softw., 1961.

[227] T. Yang and A. Gerasoulis. PYRROS: Static task scheduling and code generationfor message passing multiprocessors. In Proceedings of the 1992 ACM InternationalConference on Supercomputing, Washington, DC, 1992.

[228] M. Yannakakis. Computing the minimum fill-in is np-complete. J. Alg. Disc.Meth., Vol 2 N 1:77–79, 1981.

[229] Z. Zlatev. On some pivotal stregies in gaussian elimination by sparse technique.SIAM J. Num. Anal., 17(1), 1980.