Métodos Numéricos para Acelerar la Convergencia de Ecuaciones Lineales provenientes de la Mecánica de Fluidos

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

Download "Métodos Numéricos para Acelerar la Convergencia de Ecuaciones Lineales provenientes de la Mecánica de Fluidos"

Transcripción

1 Métodos Numéricos para Acelerar la Convergencia de Ecuaciones Lineales provenientes de la Mecánica de Fluidos Lencina, Luis Javier Director Dr. Enzo Dari CoDirector Dr. Gustavo Buscaglia Instituto Balseiro Comisión Nacional de Energía Atómica Universidad Nacional de Cuyo Junio 2005

2

3 Índice general Resumen Abstract Agradecimientos Introducción IX XI XIII XV 1. Convergencia de la Ecuación de Laplace utilizando diferentes métodos iterativos Descripción del problema Descripción de los métodos utilizados Resolutos de PETSc Precondicionadores de PETSc Determinación del orden de convergencia Efecto del ensanchamiento Descomposición de Dominios y el Complemento de Schur Descomposición de Dominios para resolver Ecuaciones en Derivadas Parciales Complemento de Schur Matriz General Implementación del Complemento de Schur Secuencial Breve descripción del Código Descripción de las funciones schurmalloc generagrafo particionagrafo separadominios schursolve Resultados del Complemento de Schur Secuencial Método de Diferencias Finitas aplicado a la Ecuación de Poisson Partición en dominios y detección de borde Resolución del Sistema Lineal Método de los elementos finitos aplicado a un tubo con condiciones periódicas Partición en dominios y detección de borde resolución del sistema lineal A Γ como precondicionador Conclusiones III

4 5. Implementación del Complemento de Schur Paralelo Breve descripción del código Descripción de las funciones schurmalloc particionagrafo separadominios schursolve Resultados del Complemento de Schur Paralelo Método de los elementos Fínitos aplicado a un tubo con condiciones periódicas GMRES/GMRES/ILU/ILU GMRES/NONE/LU/LU Conclusiones Análisis Económico Cronología Discriminación de Costos Adquisición de Herramientas Introducción a PETSc Desarrollo del programa Laplace 2D Análisis de resultados Desarrollo del programa Schur Secuencial Validación y Análisis de Resultados Desarrollo, Validación y Análisis de Resultados del Programa Schur Secuencial Desarrollo, Validación y Análisis de Resultados del Programa Schur Paralelo Resumen de Costos Bibliografía 41

5 Índice de figuras 1.1. Gradientes Conjugados Métodos TFQMR, CGS, CR Métodos Chebychev, Richardson Métodos GMRES, BCGS y BCGSL Autovalores de la matriz en función del número de incógnitas Representación de un malla de un Dominio Rectangular descompuesta en Subdominios Grafo de la Matriz A Grafo de la Matriz A indicando las incógnitas de borde Esquema de Resolución Secuencial Esquema de funcionamiento de la función schurmalloc Esquema de funcionamiento de la función generagrafo Esquema de funcionamiento de la función particionagrafo Ejemplo de separador Esquema de funcionamiento de la función separadominios Esquema de funcionamiento de la función schursolve número de incógnitas en función del número de dominios tiempos necesarios para separar dominios en función del número de incógnitas Malla del problema del tubo en difentes vistas y cortes. Mallas utilizada por Gabriel Campos en su tesis de Ingenieria [14] descomposición de la malla del tubo en función de la cantidad de dominios esquema de resolución paralelo Esquema de funcionamiento de la función particionagrafo paralelo Esquema de funcionamiento de la función schursolve V

6

7 Índice de cuadros 4.1. tiempos de resolución en función del número de dominios utilizando gmres sin precondicionar para el caso secuencial tiempos de resolución en función del número de dominios utilizando gmres con precondicionar ILU para el caso secuencial tiempos de resolución en función del número de dominios utilizando LU caso secuencial tiempos de resolución en función del número de dominios utilizando gmres y precondicionar jacobi caso secuencial resultados para el problema tubo resolviendo con gmres y precondicionador ILU resultados para el problema tubo resolviendo con gmres y precondicionador LU y precondicionador LU de Schur resultados para el problema tubo resolviendo con gmres y precondicionador LU y precondicionador LU de Schur tiempos de resolución en función del número de dominios y máquinas utilizando ILU caso paralelo tiempos de resolución en función del número de dominios y máquinas utilizando LU caso paralelo Diagrama Gantt VII

8

9 Resumen En esta tesis se presenta el desarrollo de una biblioteca de cálculo para resolver sistemas lineales. La biblioteca está basada en la partición del grafo asociado a una matriz y la generación del separador que permite la resolución independiente de los subgrafos. Está destinanda en especial para problemas en derivadas parciales sobre dominios discretizados. Esto debido al caracter local de las funciones base, donde los nodos de un problema sólo se conecta a un pequeño número de nodos vecinos. Los códigos se realizaron aplicando el método del complemento de Schur. Dentro de él se plantearon dos formas de resolución, a saber: en forma secuencial, donde todas las operaciones son resueltas en un mismo procesador, y en paralelo donde se aprovecha la capacidad de comunicación de los ordenadores para poder distribuir el trabajo. Se realizó una validación del código utilizando el problema de difusión unidimensional discretizada por el método de las diferencias finitas, el cual es un benchmark muy útil para detectar errores sencillos de código, y un problema de flujo incompresible en un tubo vertical por el método de los elementos finitos utilizando el programa GPFEP [15] para generar la matriz del problema. Se realizaron comparaciones de tiempos de resolución tanto en secuencial como en paralelo, aplicando dentro de diferentes métodos de resolución en los subproblemas locales. IX

10

11 Abstract In this thesis we present the development of a library for solve linear system of equations. The library is based in the graph partition asociated to a matrix and the generation of the separator that allow to solve the subgraphs independently. This is destined specially to problems in parcial derivates over discrete domains. This is due to the local caracter of the base functions, where nodes of the problems are only connected to a few number of neighbors nodes. The code is done applying the method of the Schur Complement. It had been formulated on two forms for solving, to know: en secuencial, in which all operations al solved in one processor, and in parallel in which we take advantage of the comunications of the computers to distribute we works. It had been done a validation of the code using the problem of unidimensional diffusion discreted by the method of the finite differences, which is a benchmark very useful for detecting simples mistakes in the code, and a problem of incompressible fluid in a vertical tube by the method of the finite elements using the program GPFEPS [15] to build the matrix of the problem. It had been done comparisons in resolution s time for the secuencial and parallel case, applying diferents methods of resolutions for the local subproblems. XI

12

13 Agradecimientos Agradezco al grupo de Mecánica Computacional del Centro Atómico, en especial a mi Director Enzo Dari que me apoyó y guió en todo mi trabajo, a mi codirector Gustavo Buscaglia y a mi familia. XIII

14

15 Introducción A lo largo de la historia el desarrollo del ordenador ha sufrido grandes avances. Se han clasificado en 5 generaciones de ordenadores según los criterios de construcción y comunicación con el usuario. Primera Generación: abarcó la década de los cincuenta.estas máquinas estaban construidas por medio de tubos de vacío. Eran programadas en lenguaje de máquina. En esta generación las máquinas eran grandes y costosas (de un costo aproximado de ciento de miles de dólares). En 1951 aparece la UNIVAC (UNIVersAl Computer), fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos. Segunda Generación: a principios de la década del 60, se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Estaban construidas con circuitos de transistores y se programan en nuevos lenguajes llamados lenguajes de alto nivel. Tercera Generación: Se caracterizaron por su fabricación electrónica esta basada en circuitos integrados y su manejo es por medio de los lenguajes de control de los sistemas operativos. Cuarta Generación: Aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como Apple. Quinta Generación: Está caracterizado por procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad, manejo de lenguaje natural y sistemas de inteligencia artificial. El avance del ordenador, ha posibilitado la resolución de cálculos de ingenieria de alta complejidad. Partiendo desde la simulación de tipo Monte Carlos en neutrónica donde se realizan cálculos que involucran tiempos de resolución de días a meses hasta simulaciones de fluido-dinámica e interacción fluido-estructura. La incorporación de estas simulación al campo del diseño ha llevado a las empresas a ampliar sus capacidad de diseño en componentes nuevos. La gran mayoría de las empresas en la actualidad realizan diseños estan involucradas con algún software de cálculo o diseño gráfico. Muchos de estos problemas habrían requerido costos altísimos sin la intervención del ordenador moderno, como es el caso del túnel de viento. En este trabajo analizaremos en particular problemas de ingeniería que llevan a la resolución de ecuaciones en derivadas parciales, utilizando por ejemplo: Método de las Diferencias Finitas Método de los Elementos Finitos Método de los Volúmenes Finitos XV

16 Cada uno de estos métodos posee ventajas y desventajas sobre el resto. En particular, el método de los elementos finitos posee las ventajas de describir correctamente las fronteras de un dominio y la posibilidad de utilizar elementos polinómicos de alto orden. Este método tuvo su origen en la Elasticidad. El método de los elementos finitos está basado en la formulación variacional de un problema, y busca minimizar el valor de este funcional en el espacio de las funciones de dimensión finita planteadas. Uno de los campos de aplicación actuales de estos métodos es la mecánica de fluidos. Se han modelado una gran cantidad de problemas por este método obteniendo resultados de importancia. El verdadero problema radica cuando se quieren modelar problemas de gran escala en gran detalle. Para los casos de mayor interés los problemas son tridimensionales,ej: DNS simulación numérica directa (Direct Numerical Simulation), por lo que el número de incógnitas del mismo aumentan al menos con el cubo de la discretización (dependiendo del tipo de elemento en cuestión). Pero estos problemas no conducen a matrices llenas, sino a matrices ralas, debido a el carácter local de las funciones base. Esto lleva a plantear métodos de almacenamiento especiales que sólo guarden los no ceros. Para resolver esta clase de problemas se encuentran las siguientes limitaciones en los equipos informáticos: Velocidad del procesador Capacidad de Almacenamiento Velocidad de transmición de datos Los procesadores actuales han llegado a velocidad del orden de los Ghz, sin embargo no es viable utilizar todo este poder de cálculo ya que precisaríamos de una memoria cache 1 lo suficientemente grande para almacenar todo el problema, ya que las memorias RAM 2 y RAM Disk 3 no llegan a las velocidades antes mencionadas. Si bien es posible aumentar la capacidad del cache esto lleva a costos prohibitivos para su realización. También existe la limitación en la capacidad de memoria que puede trabajar un procesador, básicamente limitado por la cantidad de bits en el direccionamiento que puede manejar el procesador 4, actualmente hasta 64bits. Además de ser prohibitivo aumentar mas alla la cantidad de bits que maneja el procesador, llegar a utilizar 64 bits en momeria llevaría a costosos desarrollos en las placas madres. Este problema se resuelve descomponiendo la matriz en varios ordenadores o cluster de cálculo, proceso denominado paralelización. Los costos de esta clase de esquemas aumenta linealmente con el número de procesadores ya que se utilizan equipos de uso común cuyos costos de desarrollo están amortizados y no precisen un desarrollo especial. Salvo para los casos donde se requieran del orden de 1000 unidades de cálculo, el esquema cluster es el más utilizado [1]. Los cálculos son realizados en parte con datos que estan almacenados en el procesador local y datos que deben ser transmitidos por otros procesadores. Este esquema permite utilizar la memoria disponible en cada procesador y el uso de cada unidad de cálculo. Para evaluar las ventajas de uso de un esquema paralelizado se define la escalabidad como la habilidad de un sistema de continuar funcionando correctamente a medida que el tamaño de un problema aumenta. Así un problema será escalable si al aumentar el tamaño de un problema y aumentar en la misma proporción el número de procesadores se puede resolver en tiempos similares. Nótese que la escalabilidad de un problema depende tanto del tipo de problema, del tipo de hardware disponible y del algorítmo utilizado. Así puede darse que un problema puede llegar a ser super escaleable o sea a resolverse en tiempos menores por número de procesadores que en un caso secuencial, pasando luego a no ser escalable por razones de tiempos de comunicación y latencias. Es común interconectar estos procesadores utilizando redes locales debido a su bajo costo. Además de poder distribuir memoria entre los ordenadores, es deseable que la resolución de un problema se 1 El cache es una memoria pequea para almacenar datos recientes, diseãda para acelerar el acceso a los mismos datos 2 RAM Memoria de Acceso Aleatoria (Random Access Memory) que se encuentra separada del procesador y se conectan por al mismo por un bus de datos 3 Es una parte de la memoria RAM que se vuelca al disco para ampliar la capacidad de la RAM o liberar de datos que no se precisen por el momento 4 un procesador de 32 bits puede manejar 2 32 = 4Gb y uno de 64 bits 2 64 = 1, Bytes

17 lleve en forma casi independiente, debido a que los tiempos de comunicación son elevados comparados con los tiempos de acceso a memoria. Si bien existen métodos de interconexión de mayor velocidad, tanto en latencia como en ancho de banda, sus costos también son más elevados y la relación costo beneficio es menor. Una forma de minimizar las comunicaciones es utilizar métodos de descomposición de dominios, en los cuales cada procesador se encarga de resolver una región del dominio. En estos casos, el cálculo que se puede realizar en forma independiente es proporcional al tamaño de los subdominios. Esto garantiza que, para problemas suficientemente grandes, el costo de comunicaciones se hace despreciable frente a los cálculos inter-dominios, completamente paralelizables. Una alternativa algebraica a los algoritmos de descomposición de dominios consiste en particionar el problema, una vez generada la discretización, y calcular la inter-relación de las incógnitas. Esta alternativa es la que desarrollaremos en esta tesis, en particular desarrollaremos el concepto de complemento de Schur, para resolver la matriz del sistema de ecuaciones lineales resultantes de una discretización por elementos finitos de un problema en ecuaciones en derivadas parciales. En la siguiente sección analizaremos un problema típico: la solución del problema de difusión bidimensional, analizando varios métodos iterativos disponibles en una biblioteca de software estándar. A continuación presentamos el método del complemento de Schur, su relación con un método de descomposición de dominios y la estrategia de resolución en paralelo. En el capítulo 3 presentamos la implementación del complemento de Schur secuencial, y un análisis de su comportamiento para el problema de la difusión unidimensional y Navier-Stokes en un tubo. En el capítulo 5 se describe la implementación computacional del algoritmo paralelo, presentando resultados en casos de interés. Finalmente en el cap tulo 7 se realiza el análisis económico del proyecto.

18

19 Capítulo 1 Convergencia de la Ecuación de Laplace utilizando diferentes métodos iterativos En este capítulo se realizaron comparaciones de los tiempos de resolución para diferentes métodos iterativos tomando como tema el problema del laplaciano bidimensional Descripción del problema El problema planteado fue el Laplaciano bidimensional, mostrado en la ecuación 1.1 en una región rectangular discretizada por el método de las diferencias finitas. u(x, y) = 0 uɛω u(x, y) = 0 y = 0 u(x, y) = 1 y = 1 Las condiciones de contorno son del tipo Dirichlet, como se muestra en la ecuación 1.1. Las condiciones de borde para las rectas x = 0 y x = 1 no son impuestas, y esto equivale a tener derivada nula en la dirección normal saliente[11]. Como se puede demostrar sencillamente, está ecuación posee solución analítica en el dominio igual a la función lineal en x como se muestra en la ecuación 1.2 (1.1) u(x, y) = x (1.2) Conociendo la solución este problema es ideal para realizar comparaciones directas del error en las incógnitas Descripción de los métodos utilizados En esta sección se realiza una descripción de los métodos utilizados. Los mismos se encuentran programas en las bibliotecas libres de cálculo numérico PETSC Resolutos de PETSc Los métodos son resueltos en distintas variantes basadas en la construcción de subespacios de Krylov que se describen a continuación. 1

20 Métodos de los Gradientes Conjugados (CG) Consiste en un método de minimización de un funcional cuadrático. Debido a su planteo requiere que la matriz sea simétrica y definida positiva. Su convergencia suele ser muy rápida, dependiendo del espectro de autovalores de la matriz. Mínimos Residuos (MINRES) y LQ Simétrico (SYMMLQ) Estos métodos son alternativas computacionales de los gradientes conjugados para matrices simétricas más generales. SYMMLQ genera la misma solución iterativa que CG si la matriz es definida positiva. Gradientes Conjugados en las Ecuaciones Normales (CGNE y CGNR) Se basan en la aplicación del método CG a una de las dos formas de las ecuaciones normales para Ax = b. CGNE resuelve el sistema (AA T )y = b para y y luego calcula la solución x = A T y. CGNR resuelve el sistema (A T A)x = b para el vector x donde b = A T b. Cuando la matriz A es no simétrica, las matrices AA T y A T A son simétricas y definidas positivamente. La convergencia de este método es peor que el CG debido a que el número de condición de estas matrices es mayor con respecto a la matriz original. Generalización de los mínimos residuos (GMRES) El método está basado en la propiedad de minimización de la norma del vector residual sobre el espacio de Krylov. El método requiere almacenar una secuencia de vectores, por lo que requiere alta capacidad de memoria. Esto suele limitarse especificando un número de máximo de vectores a almacenar, luego del cual se desechan los vectores viejos y se reinicia el ciclo. Este método es útil para matrices generales. Gradientes Biconjugados (BiCG) En el mismo se generan dos secuencias de vectores con CG, basado en un sistema de coeficientes originales para A y A T. En vez de ortogonalizar independientemente dicha secuencia de vectores, estos son ortogonalizados mutuamente. El método requiere poco almacenamiento y puede aplicarse a matrices no simétricas. Sin embargo, la convergencia puede ser irregular y el método puede diverger. Cuasi Mínimos Cuadrados (QMR) Este método aplica cuadrados mínimos y actualiza los residuos de BiCG, suavizando la convergencia que posee este último evitando ampliamente el fallo que puede ocurrir en BiCG. Suele requerir un número mayor de iteraciones que BiCG. Gradientes Conjugados cuadráticos (CGS) Este método es una variante de BiCG que aplica las operaciones de actualización para la secuencias A y la secuencia A T ambas a los mismos vectores. Idealmente, tendría una tasa de convergencia del doble, pero en la práctica la convergencia es más irregular que BiCG, que en ocasiones lleva a resultados no confiables. Una ventaja práctica es que el método no requiere la multiplicación de la traspuesta de los coeficientes de la matriz. Gradientes Biconjugados Estabilizados (BiCGSTAB) Este método es una variante de BiCG, pero utiliza diferentes actualizaciones para la secuencia A T para obtener una convergencia más suavizada que CGS. Cuasi Mínimos Residuos con Libre Transpuesta (TFQMR) Este método es aplicable a matrices no hermíticas, el cual hace uso de CGS para generar el espacio de Krylov. El método produce una suave y casi monótona convergencia con respecto a la norma del residuo. A diferencia de CG, TFQMR minimiza con respecto a la norma 1. El método no involucra la multiplicación de matrices vector con el coeficiente de la matriz traspuesta. Ha mostrado ser buen método para sistemas muy grandes porque la norma del residuo del vector está disponible durante el cálculo. Iteración de Chebyshev La iteración de Chebyshev determina coeficientes de interpolación de una función polinómica en base al espectro de autovalores para minimizar la norma del residuo. Este método tiene la ventaja de no requerir productos internos. Método de Richardson La iteración de Richardson determina recursivamente los coeficiente del vector solución con una matriz de orientación, partiendo de una estimación inicial. El método tiene la ventaja de no almacenar los vectores antiguos y como desventaja es que para su convergencia se requiere que todos los autovalores tengan parte real positiva. 2

21 Precondicionadores de PETSc Los precondicionadores son una aproximación de la inversa de la matriz mejorando su número de condición [13]. Los métodos programados en la biblioteca PETSc se describen a continuación. LU Decomposition Método por el cual se descompone la matriz del problema en una matriz triangular inferior L y una matriz triangular superior U. Este método se aplica generalmente sin un método de Krylov ya su aplicación lleva a la solución exacta, aunque las matrices son en general densas por lo que es muy costoso. Incomplete LU (ILU) Genera las mismas matrices que en el caso LU, pero mantiene la estructura de llenado de la matriz original descartando entradas que no pertenezcan a la estructura original. Es el precondicionador por defecto de PETSc. Jacobi Aproxima la inversa de la matriz por medio de la diagonal del problema. Block Jacobi (BJACOBI) Igual que Jacobi pero tomando por diagonales bloques de matrices. Cholesky Utiliza un resolutor directo basado en la factorización de Cholesky. Incomplete Cholesky (ICC) Igual que Cholesky respetando la estructura de la matriz original descartando entradas que no pertenezcan a la estructura original Determinación del orden de convergencia Para determinar el orden de convergencia de cada método se planteado un problema lineal que consiste en resolver la matriz generada por diferencias finitas sobre un rectángulo utilizando coordenadas rectangulares. La matriz resultante del problema sera simétrica por lo que es aplicable el método de los gradientes conjugados, si está definida positivamente. La matriz resultante tendrá 5 no ceros por fila relacionando el punto central con los puntos verticales y horizontales. El programa se desarrolló para tener la capacidad de variar la cantidad de incógnitas en los ejes en forma independiente. Las rutinas de PETSC cuentas con los resolutores antes mencionados por los que se trataron los cada uno de los problemas de estos y Se obtuvieron los tiempos de resolución de los mismos, variando el numero de incógnitas de 150 a 1000 con incrementos de 50. Los programas fueron ejecutados en procesadores de 1GHz en forma independiente A continuación se muestran los resultados obtenidos para cada método graficando en el eje de las ordenadas el número de incógnitas del problema y en el eje de las abscisas el tiempo en segundos utilizando escala doble logarítmica. El método que logró resolver el sistema en menor tiempo es CG que se muestra en la figura 1.3. Este aunque es muy potente es raramente aplicable en casos más generales ya que la matriz debe tener propiedades especiales. El orden del método es de 1.16, el cual es el menor de todos. En la figura 1.2 se muestran los tiempos de resolución para los métodos TFQMR, CGS y CR. Estos métodos han mostrado un buen comportamiento cuando la matriz no es muy grande, TFQMR posiblemente al incorporar el cálculo con la norma 1 requiere de un número menor de cálculos por iteración, mientras que el CGS no requiere la multiplicación por la traspuesta de la matriz. Estos métodos muestran un comportamiento potencial orden 1.5 lo que los convierte en buenos candidatos para matrices dispersas no simétricas. El método CR es otro que ha mostrado un excelente comportamiento para matrices pequeñas y un orden 1.45 lo cual lo pone sobre los dos anteriores. Los métodos de Richardson y Chebyshev muestran un comportamiento no potencial. Estarían descartados inmediatamente por los altísimos tiempo involucrados y su pobre convergencia. El método de Richardson no logra converger para matrices mayores a 750x750, ya que para asegurar la convergencia el espectro de autovalores debe ser positivo, pero este método se ve afectado por la diferencia entre el máximo y el mínimo autovalor. La figura 1.4 muestra los tiempos de resolución para los métodos GMRES, BCGS y BCGSL. Los métodos BCGS, BCGSL y GMRES, muestran un comportamiento similar. Han mostrado ser buenos métodos para este problema, siendo ambos ordenes

22 10 tiempo(s) número de incógnitas Figura 1.1: Gradientes Conjugados tfqmr cr cgs time (s) número de incógnitas Figura 1.2: Métodos TFQMR, CGS, CR 4

23 chebychev richardson time (s) número de incógnitas Figura 1.3: Métodos Chebychev, Richardson time (s) número de incognitas Figura 1.4: Métodos GMRES, BCGS y BCGSL

24 1.4. Efecto del ensanchamiento Cuando la malla es cuadrada, los elementos de matriz del problema resultan ser del mismo orden, dado que el sistema no prefiere ninguna dirección en particular. Al incrementar el paso en una dirección, por ejemplo el eje y, notamos que la definición de la malla se ve afectada en resolución, pero éste no es el único efecto que aparece. Debido a que los elementos dependen del cuadrado del paso y estos son diferentes en ambas direcciones, tenemos que los elementos de matriz diferirían en varios ordenes de magnitud entre ellos, por lo que el problema estará mal condicionado. Esto se refleja al obtener el espectro de autovalores de la matriz sin precondicionar. Figura 1.5: Autovalores de la matriz en función del número de incógnitas Este es un diagrama doble logarítmico en el cual la variable del paso se encuentra en la abscisa y en la ordenada se encuentra el autovalor máximo. Se puede demostrar que si todos los autovalores tienen norma menor o igual 1 todos los métodos son estables. Al aplicar los precondicionadores, llegamos al resultado que el sistema se comporta como si no estuviera con el espaciamiento preferencial en alguna dirección, y todos los autovalores están dentro de del circulo unitario del plano complejo independientemente de h (linea inferior en el gráfico). Aquí se probaron los precondicionadores ILU, JACOBI y BJACOBI. 6

25 Capítulo 2 Descomposición de Dominios y el Complemento de Schur En este capítulo se discute la teoría general de la descomposición de dominios, su aplicación a problemas en derivadas parciales y el complemento de Schur 2.1. Descomposición de Dominios para resolver Ecuaciones en Derivadas Parciales Los métodos de descomposición de dominios consiste en la división espacial del dominio de cálculo y la resolución de subproblemas diferenciales en cada subdominio. Estos subproblemas diferenciales pueden resolverse en forma independientemente en paralelo, siendo necesario un método iterativo para ajustar las condiciones de contorno en las fronteras interiores. Supongamos que numeramos las incógnitas del subdominio Ω 1, luego las internas a Ω 2 y finalmente las del borde. Dado el carácter local de las funciones base, las incógnitas internas de cada subdominio no se relacionan con las incógnitas internas de los demás, y la matriz tiene la forma mostrada en la ecuación 2.1. Figura 2.1: Representación de un malla de un Dominio Rectangular descompuesta en Subdominios 7

26 A 1 0 A 1Γ 0 A 2 A 2Γ A Γ1 A Γ2 A Γ X 1 X 2 X Γ = B 1 B 2 B Γ (2.1) Siendo A 1 y A 2 las matrices rectangulares que relacionan los vértices internos de su dominio correspondiente. Estos son las ecuaciones correspondientes a la descomposición en dos dominios, que se generalizan a un sistema de n dominios arbitrarios como se muestra en la ecuación 2.2. A A 1Γ 0 A 2... A 2Γ A Γ1 A Γ2... A Γ X 1 X 2. X Γ = La gran ventaja de descomponer en dominios es la de trabajar matrices de tamaños menores, así como poder procesar los problemas de cada dominio en paralelo. En contra parte, se obtiene en la última fila de la matriz de la ecuación 2.2 un conjunto de ecuaciones que relacionan a las incógnitas de borde X Γ con todo el resto. En un algorítmo iterativo de resolución del sistema en paralelo, esta situación obliga a los que los procesadores se comuniquen entre sí en cada iteración. B 1 B 2. B Γ (2.2) 2.2. Complemento de Schur Dado un sistema de ecuaciones dividido en bloques: ( ) ( ) ( ) A11 A 12 x1 b1 = A 21 A 22 x 2 b 2 y suponiendo que A 11 es no singular, se lo puede resolver mediante eliminación por bloques de la siguiente manera (2.3) x 1 = A 1 11 (b 1 A 12 x 2 ) (2.4) x 2 = (A 22 A 21 A 1 11 A 12) 1 (b 2 A 21 A 1 11 b 1) (2.5) S = (A 22 A 21 A 1 11 A 12) (2.6) La matriz S recibe el nombre de Complemento de Schur y se puede interpretar como la resolución, en primer término, de las incógnitas x 2, y luego el cálculo de x 1 en función de x 2. Comparando la ecuación 2.2 con la 2.3 se observa que si tomamos como x 1 = n i=1 X i y x 2 = X Γ, el cálculo de las X i puede realizarse en forma independiente. Además, el número de incógnitas X Γ es mucho menor que el número de incógnitas total, de manera que puede plantearse la resolución del problema utilizando la siguiente metodología: Se determina un conjunto de incógnitas X Γ tal que dividan el problema como en las ecuaciones 2.2. Se calcula la matriz S y el segundo miembro G. Se resuelve el sistema SX Γ = G Se resuelven los sistemas A 1 i (b i A iγ x Γ ) Para el caso general, el complemento de Schur y su segundo miembro se definen en las ecuaciones 2.7 y 2.8 respectivamente. 8

27 i<n S = A Γ A Γi A 1 i A iγ (2.7) i=0 i<n G = B Γ A Γi A 1 i B i (2.8) i=0 Con este algoritmo la última etapa se puede realizar en paralelo. En el cálculo de la matriz S también pueden procesarse en paralelo cada uno de los términos A Γi A 1 i A iγ 2.3. Matriz General Cuando se tiene una matriz a resolver, proveniente por ejemplo de discretizar un problema por el método de los elementos finitos usando mallas no estructuradas, no resulta obvia la renumeración de incógnitas que produzcan un matriz con la estructura de la ecuación 2.2. Sin embargo, existen algoritmos bien conocidos de la teoría de grafos que nos permiten resolver el problema. Supongamos que tenemos una matriz como la siguiente A = Definimos un grafo asociado a una matriz cuadrada como aquel que cuenta con tantos nodos como filas de la matriz y tantas aristas como no-ceros tiene la misma. Cada arista tiene como nodos extremos a los índices de fila y columna de un no-cero de la matriz. En la figura 2.2 se muestra el grafo asociado a la matriz 2.9. El problema de renumeración del grafo se reduce al encontrar un separador del grafo, esto es, un conjunto de nodos del mismo, tal que, al eliminarlos, el grupo queda con varias componentes conexas, no conectadas entre sí. Por ejemplo en la figura 2.3 se expone un posible separador del grafo. En nuestro caso utilizamos la biblioteca Metis [4] para separar en dominios minimizando las conexiones, y un procesamiento posterior para hallar el separador. (2.9) 9

28 Figura 2.2: Grafo de la Matriz A Figura 2.3: Grafo de la Matriz A indicando las incógnitas de borde 10

29 Capítulo 3 Implementación del Complemento de Schur Secuencial En este capítulo se detalla la implementación realizada para el sistema secuencial, el cual no aprovecha las ventajas del cálculo distribuido pero da una base sólida de desarrollo para el caso paralelo 3.1. Breve descripción del Código La implementación del código fue realizada en el lenguaje ANSI C, en particular utilizando el compilador gcc del sistema operativo tipo GNU/LINUX También se inplementaron funciones de interface para poder enlazar códigos escritos en Fortran 77, compilados con g77 compatible con gcc. Para su implementación se utilizaron las bibliotecas de PETSc 1 versión En las mismas se encuentran programados sistemas de almacenamiento de matrices ralas, sistemas de resolución de sistemas lineales por métodos directos e iterativos, etc, para sistemas secuenciales y paralelos. En cada paso del proceso de resolución mostrado en la figura 3.1, se va procesando información disponible del problema suministrado, procurando no alterar la información original. Para realizar operaciones con las matrices de los dominios llegamos a dos planteos posibles: 1. Ensamblado Explícito: Se generan un conjunto de matrices secuenciales nuevas, copiando los valores correspondientes de cada dominio. Esto lleva a una duplicación de la cantidad de memoria utilizada por el sistema lineal. 2. Ensamblado Implícito: Se generan matrices que no contienen valores numéricos, llamadas en PETSC MatShell, sino que se de definen funciones a operaciones necesarias para la resolución del sistema lineal, incrementando levemente la memoria adicional utilizada. Cada uno de estos enfoques tiene sus ventajas y desventajas. Si bien utilizar Ensamblaje Explícito se duplica el tamaño de la memoria utilizada, se espera que las operaciones queden totalmente definidas por las funciones estándar de PETSC y que el tiempo empleado en su resolución este optimizado. Por otro lado el Ensamblado Implícito utiliza un mínimo adicional de memoria pero se deben definir un conjunto de funciones específicas para cada tipo de implementación y como es de esperar no puede optimizarse como en el caso del ensamblaje explícito. En la Implementación actual el usuario puede seleccionar alguno de los dos tipos ensamblajes antes mencionados dependiendo de sus capacidades de almacenamiento, finalidad, etc. 1 más información sobre esta biblioteca puede encontrarse en 11

30 Figura 3.1: Esquema de Resolución Secuencial 3.2. Descripción de las funciones En esta sección se detalla el funcionamiento de los algoritmos internos de resolución del sistema lineal. schurmalloc: función general para reservar memoria básica de uso en el problema, y parámetros de resolución necesarios para todo el desarrollo posterior. generagrafo: Construye el grafo asociado a una matriz secuencial de PETSC. particionagrafo: Particiona el grafo utilizando la biblioteca Metis[4]. separadominios: Calcula un separador del grafo. destruyegrafo: Libera parcialmente la memoria utilizada para construir el grafo suponiendo que ésta no es necesaria para los cálculos posteriores. schursolve: Teniendo la información de la distribución de la información de los dominios y el separador, resuelve por el método de Schur el problema en planteado. schurdestroy: Libera la información almacenada en el elemento tipo Schur. Cada una de estas funciones es única para la resolución del problema lineal. Sin embargo existe la posibilidad que el usuario final utilice implementaciones propias. Se requirió la construcción de dos estructuras para almacenar los valores de necesarios para el cálculo, Schur info: Es una estructura que guarda información general de todo el proceso, número de incógnitas en cada dominio, grafos, MatShells, Vectores, precondicionadores, punteros a matrices, etc. SubA: Guarda información especial de cada matriz interviniente, requiriendo una de estas estructuras para cada MatShell creada. Debido a que cada iteración para determinar los valores de las incógnitas de borde requiere el cálculo de las inversas las matrices diagonales de cada dominio, se realizó la implementación estática de los vectores y solver de modo de disminuir el tiempo entre reserva y liberación de memoria para estos cálculos. 12

31 schurmalloc int schurmalloc(info **params,mat A,int numero_dominios) En esta función se realizan las operaciones de iniciación necesarias para el cálculo posterior. Se reserva memoria para la estructura Schur info, que va a contener toda la información necesaria para los cálculos posteriores. Esto se realiza por medio del paso de la dirección de memoria donde se va a almacenar la estructura. Además se almacena la cantidad total de incógnitas que se obtiene de la matriz A que es el segundo argumento de la función, que es igual al número de columnas y el número de filas de la misma, así como la dirección de memoria de la matriz A. Cabe la aclaración que las matrices de PETSC son punteros a estructuras por lo que la copia del valor de A, es igual a almacenar su dirección de memoria. El usuario pasa como tercer argumento el número de dominios, que es almacenado en la variable params- numero dominios. Se reserva memoria necesaria para vincular las incógnitas con los dominios, que son almacenados en las variables params->numero incognitas dominio y params->dominio a incognita. Estos vectores darán, una vez llenados, el número de incógnitas que posee cada dominio y las variables que se encuentran en cada dominio. almacena la dirección de memoria de la matriz del problema. Por último se devuelve una señal de error en caso de tener algún problema de almacenamiento o el puntero dado por el usuario no corresponda a una matriz secuencial AIJ, que es el tipo de matrices ralas más comunes utilizadas para cálculos en problemas de en derivadas parciales. En la figura 3.2 es un esquema de funcionamiento de esta función. Figura 3.2: Esquema de funcionamiento de la función schurmalloc 13

32 generagrafo int generagrafo(info *params) Para poder separar los dominios es primero necesario generar el grafo asociado a la matriz. Como ya se mencionó en el capítulo 2, este grafo representa las relaciones entre las incógnitas del sistema lineal. En nuestro caso trabajaremos con grafos no orientados, asociados a matrices de estructura no simétricas, ya que es el caso más común (un operador diferencial de segundo orden hace que la solución en un punto depende de la solución en sus vecinos inmediatos, mientras que los valores numéricos de la matriz por lo general pierden la simetría por la presencia de un operador de primer orden). El grafo es construido en base a la matriz del problema, que está almacenada en el formato CRS (compressed row storage)[17]. Es de aclarar que en este código únicamente es soportado las matrices tipo MatSeqAIJ que respetan el formato antes mencionado. Además existe en PETSC la función MatConvert que da la posibilidad de transformar una matriz de un formato a otro. El mismo sigue la siguiente estructura de almacenamiento 1. El vector de números enteros ((Mat SeqAIJ *)A->data)->i de longitud número filas + 1, almacena en que posición comienza cada fila en el vector de columna. El vector es iniciado con el valor cero, y la diferencia entre dos valores sucesivos da la cantidad de columnas que contiene esa fila. 2. El vector de números enteros ((Mat SeqAIJ *)A->data)->j) es un vector de longitud igual a ((Mat SeqAIJ *)A->data)->i[número de filas], y almacena a que columna corresponde cada entrada. 3. El vector de número de doble presición ((Mat SeqAIJ *)A->data)->a) con longitud igual a la anterior, almacena las entradas propiamente dichas de la matriz. Primero se determina la memoria necesaria para almacenar la estructura del grafo y luego se construye el grafo en sí mismo. Estos dos cálculos son similares en contexto. La estructura del grafo es similar a la estructura CRS y cuenta con dos vectores *xadj y *adjncy que se describen a continuación: 1. El vector de números enteros xadj de longitud número de filas + 1, sigue la misma estructura que el vector ((Mat SeqAIJ *)A->data)->i mencionado anteriormente que contiene el rango de valores de adjncy donde están las conexiones que posee esa incógnita. 2. El vector de números enteros adjncy se almacenan las conexiones con otras incógnitas. Es importante destacar que no debe incluirse a la incógnita en sí misma. El funcionamiento básico de esta función se muestra en la figura 3.3. Por último se guardan los vectores resultantes xadj y adjncy en la estructura Schur info y se devuelve un entero en ierr distinto de cero en caso de ocurrir algún error, imposibilidad de reservar memoria, estructura defectuosa de la matriz, etc. 14

33 Figura 3.3: Esquema de funcionamiento de la función generagrafo particionagrafo int particionagrafo(info *); En esta función se realiza la separación de los dominios por medio de la biblioteca Metis[4]. Esta biblioteca permite generar una clasificación en grupos de nodos del grafo de tal manera que se minimizan las conexiones entre los nodos de distintos grupos. Se generan las funciones de peso de que dan las distribuciones relativas de incógnitas que serán repartidas en cada dominio. Esta función debe ser normalizada, y en esta implementación se realizó una distribución uniforme. La salida de Metis es un vector de longitud igual al número total de nodos que almacena enteros con el número de dominio asignada a cada nodo y es almacenado en la el params->parts. 15

34 Figura 3.4: Esquema de funcionamiento de la función particionagrafo separadominios int separadominios(info *); En esta función se genera el separador del grafo. Utilizando el grafo particionado, se identifican los nodos de cada dominio que se conectan con nodos de otros dominios. En principio sería suficiente tomar a todos estos nodos como integrantes del separador, pero es posible reducir el tamaño del mismo utilizando un proceso no mucho más complicado. Nótese que cuando dos dominios A y B tienen nodos conectados entre sí, es suficiente incorporar al separador los nodos de A conectados con los nodos de B, o los nodos de B conectados con nodos de A, pero no ambos grupos simultáneamente. Cuando el número de dominios es mayor que 2 se determina una secuencia de incorporación de nodos del separador de la siguiente manera: en cada paso se elige el dominio que al eliminar todos los nodos conectados con otros dominios, quede con el máximo número de nodos internos los cuales quedan ya separados del resto del grafo. En la figura 3.5 se ilustra el procedimiento en un caso simple de un grafo particionado en 4 grupos. Los distintos símbolos de los nodos indican el grupo al que pertenecen. Los nodos sobre la linea sólida constituyen el separador. 16

35 D ED GFE C < =< = #" ; 5 ) ) + / 3 Este proceso asegura la minimización del separador, dentro del esquema no acoplado 2 de selección de separador también con el requisito de homogeneizar los tamaños de los dominios. 2 B B B BC $ % $ % >? >? & & & & ' ' ' ' ( ( ( ( * * * *+,,-!!..../ : : : :; Figura 3.5: Ejemplo de separador 2 referido a retirar el separador completamente de cada dominio en forma secuencial. Puede plantearse un algorítmo para determinar la mínima cantidad de incógnitas pero no se ha implementado aún. 17

36 Figura 3.6: Esquema de funcionamiento de la función separadominios schursolve int schursolve(info *params,vec b,vec u) Esta es la función principal del programa debido a que en la misma se resuelve el sistema lineal. La función toma como argumentos un puntero a la estructura schur info que contiene la información de la partición, dos vectores de PETSC, b y u, el término independiente y la incógnita global del problema correspondientemente. El algoritmo comienza reservando memoria para almacenar las submatrices de cada dominio, en la variable params->aij. Se requiere reservar 3*número de dominios + 1 matrices de PETSC, que como ya se mencionó, son punteros a estructuras. Este número surge de que cada dominio requiere 3 matrices, 1 con las conexiones internas, 1 con las conexiones del dominio al separador y otra del sepa- 18

37 rador al dominio, que salvo para el caso simétrico son diferentes 3. En la variable params->ensamblar tipo PetscTruth 4, se define si se realiza un ensamblaje explícito o implícito como se explicó en la sección 3.1. El usuario puede manipular este valor ingresando por línea de comando al lanzar el programa la opcion -ensamblar 1 para el caso de un ensamblaje explícito o cero en caso impícito, aunque ésta es la opción por defecto. Para realizar el ensamblaje explícito se utiliza la función MatGetSubMatrix de PETSC, que obtiene una submatriz con los indices de filas y columnas seleccionados y ensambla una nueva matriz del mismo tipo que la original. Para el caso de ensamblaje explícito se crean matrices tipo MatShell que guardan la información de la matriz original, y de los índices de las filas y columnas correspondientes a la submatriz. También se debe especificar la función para multiplicar una matriz de este tipo por un vector. Dicha función consiste simplemente en multiplicar el rango de índices correspondientes a la submatriz por los elementos del vector. Nótese que esta función es suficiente para las operaciones en que intervienen las matrices A i, A Γi y A iγ. Cuando es necesario resolver sistemas x = A 1 i b se utilizan métodos iterativos (en particular GMRES), que sólo utilizan la matriz para multiplicarla por un vector. La matriz de Schur S (ecuación 2.6) no se calcula explícitamente. Se resuelve utilizando también un método iterativo donde sólo hace falta la matriz para multiplicarla por un vector, por tanto usamos una matriz virtual (o MatShell) donde el producto de S se calcula como en la ecuación 3.1 S n 1 X = A ΓX A Γi A 1 i A iγx (3.1) Para cada dominio hay que realizar dos productos matriz vector y una inversión de matriz. i=0 A Γi A 1 i A iγ Xi = Y i (3.2) se realiza el producto explícito y se guarda el resultado en el vector X 1 i según se muestra en la ecuación 3.3 A iγ Xi = X 1 i (3.3) El producto mostrado en la ecuación 3.4 no puede realizarse directamente porque no se conoce la inversa explícita de A i por lo que se aplica un método de resolución para el sistema equivalente que se muestra en la ecuación 3.5 A 1 i Xi 1 = Xi 2 (3.4) A i X 2 i = X 1 i (3.5) Este es almacenado en otro vector X 2 i, el producto mostrado en la ecuación 3.6 da el resultado buscado. A Γi X 2 i = Y i (3.6) El usuario puede optar por distintos métodos de resolución y precondicionamiento para resolver las matrices de cada subdominio, aunque la totalidad de los métodos disponibles en la biblioteca PETSc sólo pueden utilizarse cuando las matrices son ensambladas en forma explícita. Se generan un conjunto de precondicionares y espacios de Krylov para cada uno de los subdominios que no son destruidos hasta el final del algoritmo para su reutilización, los cuales se encuentran almacenados en la estructura Schur info *params->ksp y *params->pc. También se encuentran en la misma estructura los 3 vectores mostrados en las ecuaciones 3.2, 3.3, 3.4, 3.5 y 3.6. Así en orden de resolver, se determina el vector independiente de la ecuación 2.8 y es almacenado en el vector secuencial de PETSC sx que está definido dentro de esta función, luego la matriz de Schur S y por último los sistemas de cada dominio. Las opciones de resolución del método KSP se pueden dar por lineal de comando -ksp type. 3 En el caso de contar con una matriz simétrica A 1C = A T C1 4 PetscTruth es una lista enumerada definida en el archivo de cabecera petsc.h con valores PETSC FALSE y PETSC TRUE. 19

38 Figura 3.7: Esquema de funcionamiento de la función schursolve 20

39 Capítulo 4 Resultados del Complemento de Schur Secuencial En este capítulo se muestran los resultados obtenidos al aplicar el método del complemento de Schur a problemas en derivadas parciales aplicando métodos de elementos finitos y diferencias finitas Método de Diferencias Finitas aplicado a la Ecuación de Poisson El problema que aquí se plantea es resolver la ecuación de Poisson unidimensional con condiciones de Dirichlet y término fuente f unitaria, como se muestran en la ecuación 4.1. { u = f uɛω u = 1 uɛγ (4.1) Planteando un esquema de diferencias finitas se llega a una matriz de rigidez[11] tridiagonal definida positiva. El problema tiene solución exacta, por lo que resulta sencillo el control de errores del algoritmo Partición en dominios y detección de borde En esta sección se muestran los análisis del funcionamiento de los algoritmos de particionamiento de sistema lineal, utilizando la biblioteca Metis como se explicó en la sección Distribución de incógnitas en dominios Para ilustrar los resultados obtenidos mostramos un caso de separación con 20 nodos. En la figura 4.1 se muestran los resultados de la descomposición en dominios del sistema en cuestión. Puede observarse para la misma que el sistema cumple con las exigencias impuestas en la sección o sea se consigue una minimización del tamaño del separador y uniformidad en el tamaño de los dominios. tiempo de resolución A fin de poner a prueba el tiempo demandado por el algoritmo de separación, se realizaron mediciones de tiempo en función del número de incógnitas del problema y el número de dominios. Es importante que este tiempo no sea demasiado elevado debido a que podemos perder toda la eficiencia del resolutor en particionar el dominio. En la figura 4.2 se muestran los resultados estos tiempos para 21

40 numero dominios Figura 4.1: número de incógnitas en función del número de dominios un rango de a de incógnitas y particiones en 2, 3, 5 y 7 dominios. El problema fue resuelto en un procesador Pentium IV de 3GHz dominios 3 dominios 5 dominios 7 dominios tiempo (s) e+06 número incógnitas Figura 4.2: tiempos necesarios para separar dominios en función del número de incógnitas Concluímos de la figura 4.2 que los tiempos empleados para particionar son despreciables frente a cualquier tiempo de resolución de un sistema lineal de tamaños similares Resolución del Sistema Lineal En esta sección analizaremos la convergencia del método iterativo usando el complemento de Schur, en función del número de dominios y de los precondicionadores. En cada caso se mide el tiempo demandado y el residuo obtenido para un tamaño fijo de incógnitas 1e5. En todos los resultados de esta subsección no se utilizarán precondicionamiento para la matriz S. La notación a utilizar en los títulos siguientes corresponden a Resolutor para S/Resolutor para dominios/precondicionador para dominios. El caso NONE corresponde a no aplicar método. GMRES/GMRES/NONE En la tabla 4.1 se muestran los resultados para el caso gmres sin precondicionar. Para el caso de 1 dominio se utilizó el gmres sin descomposición. Podemos ver de los resultados que no es conveniente aplicar un resolutor sin precondicionar debido elevado residuo que se obtiene. Así que para llegar a soluciones aceptables es necesario iterar un 22

41 número dominios tiempo(s) residuo E E E E E E E E+07 Cuadro 4.1: tiempos de resolución en función del número de dominios utilizando gmres sin precondicionar para el caso secuencial número muy elevado de veces. Además que el complemento de Schur no puede superar en tiempo un método sin que se utilice en paralelo. GMRES/GMRES/PCILU Para este caso se resolvió el problema con 1e6 debido a que con 1e5 los tiempos de resolución eran despreciables. En la tabla 4.2 se muestran los resultados para el caso gmres con precondicionar ILU (Incomplete LU decomposition). El precondicionador ILU está dado con las opciones por defecto por lo que no tiene nivel de llenado. número dominios tiempo(s) residuo E E E E E E E E E E E E+02 Cuadro 4.2: tiempos de resolución en función del número de dominios utilizando gmres con precondicionar ILU para el caso secuencial GMRES/NONE/LU En esta parte se utilizó el precondicionar LU que debido es en si un método directo de resolución. Aun así puede aplicarse un método iterativo ya que para matrices grandes el error de redondeo es importante y puede llegar a alejarse demasiado de la solución exacta. Este método mostró ser muy eficiente aunque en gran parte es debido a que la estructura de la matriz es muy sencilla. GMRES/GMRES/JACOBI El precondicionador Jacobi toma como matriz de precondicionamiento la diagonal de la matriz original. En sí su inversa es sencilla de calcular sólo hay que invertir los elementos de la diagonal. En la tabla 4.4 se muestran los resultados obtenidos para este caso. 23

42 número dominios tiempo(s) residuo E E E E E E E E E E E E+00 Cuadro 4.3: tiempos de resolución en función del número de dominios utilizando LU caso secuencial número dominios tiempo(s) residuo E E E E E E E E E E E E+07 Cuadro 4.4: tiempos de resolución en función del número de dominios utilizando gmres y precondicionar jacobi caso secuencial Concluímos por los resultados obtenidos que no es conveniente esta clase de precondicionador para los dominios debido a que no proporciona una solución aproximada en pocas iteraciones Método de los elementos finitos aplicado a un tubo con condiciones periódicas En esta sección mostramos un ejemplo de resolución de un sistema lineal proveniente de la discretización por el método de los elementos finitos de un problema de fluido dinámica. Para la resolución de las ecuaciones de Navier-Stokes se utilizó el programa GPFEP [15], en dominio y la malla se muestra en la figura 4.3, el cual posee nodos y elementos del tipo tetrahedros. El modelo computacional lleva a resolver un sistema lineal de incógnitas en cada paso temporal, correspondientes a una componente de presión y 3 de velocidades por cada nodo de la malla. 24

43 (a) vista 1 (b) vista 2 (c) vista 3 Figura 4.3: Malla del problema del tubo en difentes vistas y cortes. Mallas utilizada por Gabriel Campos en su tesis de Ingenieria [14]. 25

44 Partición en dominios y detección de borde En esta sección se muestran los resultados de la distribución de los nodos en función de la cantidad de dominios. (a) 2 dominios (b) 3 dominios (c) 4 dominios (d) 5 dominios Figura 4.4: descomposición de la malla del tubo en función de la cantidad de dominios Se puede observar de la figura 4.4 los dominios en diferentes colores y el separador en amarillo. Es importante destacar que la base también es parte del separador debido a que la malla es periódica y por tanto esta zona se conecta con la tapa resolución del sistema lineal En las siguientes subsectiones mostramos los tiempos y los residuos involucrados en la resolución. Buscaremos el mejor método de resolución, tanto en tiempo como en el residuo del problema. GMRES/GMRES/PCILU En esta sección probamos los tiempos de resolución en función del número de incógnitas similar al caso del laplaciano en la sección Estos resultados muestran que el método no es más rápido que un método directo ni conduce a resultados mejores. La gran parte del problema se debe a que el la matriz de schur S al no ser ensamblada explícitamente no es precondicionada y el número de iteraciones es elevado. 26

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Descomposición de dominios

Descomposición de dominios Descomposición de dominios Miguel Vargas 27/10/10 1/29 Contenido Contenido Solución de ecuaciones diferenciales con descomposición de dominios Dominios sin traslape, complemento de Schur Método alternante

Más detalles

Tópicos de implementación en paralelo

Tópicos de implementación en paralelo Apéndice C Esquema PGP. Implementación en un entorno paralelo. Para poder abordar eficazmente la simulación computacional de grandes problemas estructurales, es necesario utilizar estrategias numéricas

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

SISTEMAS DE ECUACIONES LINEALES

SISTEMAS DE ECUACIONES LINEALES SISTEMAS DE ECUACIONES LINEALES INTRODUCCIÓN En el presente documento se explican detalladamente dos importantes temas: 1. Descomposición LU. 2. Método de Gauss-Seidel. Se trata de dos importantes herramientas

Más detalles

1.4.- D E S I G U A L D A D E S

1.4.- D E S I G U A L D A D E S 1.4.- D E S I G U A L D A D E S OBJETIVO: Que el alumno conozca y maneje las reglas empleadas en la resolución de desigualdades y las use para determinar el conjunto solución de una desigualdad dada y

Más detalles

Fundamentos del diseño 3ª edición (2002)

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS Instalación y mantenimiento de servicios de Internet U.T.3.- Servicio DNS 1 Qué es el servicio DNS? A los usuarios de Internet les resulta complicado trabajar con direcciones IP, sobre todo porque son

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

Conclusiones. Particionado Consciente de los Datos

Conclusiones. Particionado Consciente de los Datos Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

Metodologías de diseño de hardware

Metodologías de diseño de hardware Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción

Más detalles

4 Pruebas y análisis del software

4 Pruebas y análisis del software 4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran

Más detalles

DIRECTRICES Y ORIENTACIONES GENERALES PARA LAS PRUEBAS DE ACCESO A LA UNIVERSIDAD

DIRECTRICES Y ORIENTACIONES GENERALES PARA LAS PRUEBAS DE ACCESO A LA UNIVERSIDAD Curso Asignatura 2014/2015 MATEMÁTICAS II 1º Comentarios acerca del programa del segundo curso del Bachillerato, en relación con la Prueba de Acceso a la Universidad La siguiente relación de objetivos,

Más detalles

Interoperabilidad de Fieldbus

Interoperabilidad de Fieldbus 2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en www.plantwebuniversity.com. Fieldbus 201 Interoperabilidad de Fieldbus Generalidades Qué es interoperabilidad?

Más detalles

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

a < b y se lee a es menor que b (desigualdad estricta) a > b y se lee a es mayor que b (desigualdad estricta) Desigualdades Dadas dos rectas que se cortan, llamadas ejes (rectangulares si son perpendiculares, y oblicuos en caso contrario), un punto puede situarse conociendo las distancias del mismo a los ejes,

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

6. VECTORES Y COORDENADAS

6. VECTORES Y COORDENADAS 6. VECTORES Y COORDENADAS Página 1 Traslaciones. Vectores Sistema de referencia. Coordenadas. Punto medio de un segmento Ecuaciones de rectas. Paralelismo. Distancias Página 2 1. TRASLACIONES. VECTORES

Más detalles

FUNCIONES CUADRÁTICAS Y RACIONALES

FUNCIONES CUADRÁTICAS Y RACIONALES www.matesronda.net José A. Jiménez Nieto FUNCIONES CUADRÁTICAS Y RACIONALES 1. FUNCIONES CUADRÁTICAS. Representemos, en función de la longitud de la base (), el área (y) de todos los rectángulos de perímetro

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Capítulo 10. Gráficos y diagramas

Capítulo 10. Gráficos y diagramas Capítulo 10. Gráficos y diagramas 1. Introducción Los gráficos y diagramas que se acostumbran a ver en libros e informes para visualizar datos estadísticos también se utilizan con propósitos cartográficos,

Más detalles

Subespacios vectoriales en R n

Subespacios vectoriales en R n Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

Resolución de problemas en paralelo

Resolución de problemas en paralelo Resolución de problemas en paralelo Algoritmos Paralelos Tema 1. Introducción a la computación paralela (segunda parte) Vicente Cerverón Universitat de València Resolución de problemas en paralelo Descomposición

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo es Internet: se trata

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

Análisis de componentes principales

Análisis de componentes principales Capítulo 2 Análisis de componentes principales 2.1. INTRODUCCIÓN El Análisis de componentes principales trata de describir las características principales de un conjunto de datos multivariantes, en los

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION

CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION Como hemos dicho anteriormente, los instrumentos de medición hacen posible la observación de los fenómenos eléctricos y su cuantificación. Ahora

Más detalles

Fundamentos de Matemática Aplicada. (Prácticas)

Fundamentos de Matemática Aplicada. (Prácticas) Fundamentos de Matemática Aplicada (Prácticas) Damián Ginestar Peiró UNIVERSIDAD POLITÉCNICA DE VALENCIA 1 Índice general 1. Matrices dispersas 3 1.0.1. Esquemas de almacenamiento.............. 3 1.0.2.

Más detalles

PROBLEMA 1. 1. [1.5 puntos] Obtener la ecuación de la recta tangente en el punto ( 2, 1) a la curva dada implícitamente por y 3 +3y 2 = x 4 3x 2.

PROBLEMA 1. 1. [1.5 puntos] Obtener la ecuación de la recta tangente en el punto ( 2, 1) a la curva dada implícitamente por y 3 +3y 2 = x 4 3x 2. PROBLEMA. ESCUELA UNIVERSITARIA POLITÉCNICA DE SEVILLA Ingeniería Técnica en Diseño Industrial Fundamentos Matemáticos de la Ingeniería Soluciones correspondientes a los problemas del Primer Parcial 7/8.

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

Metodología. del ajuste estacional. Tablero de Indicadores Económicos

Metodología. del ajuste estacional. Tablero de Indicadores Económicos Metodología del ajuste estacional Tablero de Indicadores Económicos Metodología del ajuste estacional Componentes de una serie de tiempo Las series de tiempo están constituidas por varios componentes que,

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES

RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES 1 La ecuación 2x - 3 = 0 se llama ecuación lineal de una variable. Obviamente sólo tiene una solución. La ecuación -3x + 2y = 7 se llama ecuación lineal de

Más detalles

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA En el capítulo anterior se describió la situación inicial en la que se encontraba la Coordinación de Cómputo Académico (CCA) del Departamento de Ingenierías (DI) de la

Más detalles

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. Filtros Digitales Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. En electrónica, ciencias computacionales y matemáticas, un filtro

Más detalles

4. Se considera la función f(x) =. Se pide:

4. Se considera la función f(x) =. Se pide: Propuesta A 1. Queremos realizar una inversión en dos tipos de acciones con las siguientes condiciones: Lo invertido en las acciones de tipo A no puede superar los 10000 euros. Lo invertido en las acciones

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Unidad 18. Clasificación según el momento en que se determinan los costos.

Unidad 18. Clasificación según el momento en que se determinan los costos. Unidad 18 Clasificación según el momento en que se determinan los costos. Desde este punto de vista, los costos de producción pueden determinarse con posterioridad a la conclusión del periodo de costos,

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DISEÑO DE FUNCIONES (TRATAMIENTOS) DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

APLICACIONES CON SOLVER OPCIONES DE SOLVER

APLICACIONES CON SOLVER OPCIONES DE SOLVER APLICACIONES CON SOLVER Una de las herramientas con que cuenta el Excel es el solver, que sirve para crear modelos al poderse, diseñar, construir y resolver problemas de optimización. Es una poderosa herramienta

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

Motores de Búsqueda Web Tarea Tema 2

Motores de Búsqueda Web Tarea Tema 2 Motores de Búsqueda Web Tarea Tema 2 71454586A Motores de Búsqueda Web Máster en Lenguajes y Sistemas Informáticos - Tecnologías del Lenguaje en la Web UNED 30/01/2011 Tarea Tema 2 Enunciado del ejercicio

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

Nombre de la asignatura: METODOS NUMERICOS. Carrera : Ingeniería Mecánica. Clave de la asignatura: ACB- 9311 Clave local:

Nombre de la asignatura: METODOS NUMERICOS. Carrera : Ingeniería Mecánica. Clave de la asignatura: ACB- 9311 Clave local: Nombre de la asignatura: METODOS NUMERICOS Carrera : Ingeniería Mecánica Clave de la asignatura: ACB- 9 Clave local: Horas teoría horas practicas créditos: -0-8.- UBICACIÓN DE LA ASIGNATURA A) RELACIÓN

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

SEGURIDAD Y PROTECCION DE FICHEROS

SEGURIDAD Y PROTECCION DE FICHEROS SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

x 10000 y 8000 x + y 15000 a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas.

x 10000 y 8000 x + y 15000 a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas. Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Septiembre 2012 - Propuesta A 1. Queremos realizar una inversión en dos tipos

Más detalles

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1 . ESPACIOS VECTORIALES Consideremos el siguiente subconjunto de R 4 : S = {(x, x 2, x 3, x 4 )/x x 4 = 0 x 2 x 4 = x 3 a. Comprobar que S es subespacio vectorial de R 4. Para demostrar que S es un subespacio

Más detalles

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b La función lineal Una función polinomial de grado uno tiene la forma: y = a 0 + a 1 x El semestre pasado estudiamos la ecuación de la recta. y = m x + b En la notación de funciones polinomiales, el coeficiente

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

ESTIMACIÓN. puntual y por intervalo

ESTIMACIÓN. puntual y por intervalo ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio

Más detalles

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática

Más detalles

Definición de vectores

Definición de vectores Definición de vectores Un vector es todo segmento de recta dirigido en el espacio. Cada vector posee unas características que son: Origen: O también denominado Punto de aplicación. Es el punto exacto sobre

Más detalles

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Trabajo Práctico Introductorio Matlab, Simulink y Métodos de Integración Numérica

Trabajo Práctico Introductorio Matlab, Simulink y Métodos de Integración Numérica Trabajo Práctico Introductorio Matlab, Simulink y Métodos de Integración Numérica Control I Dinámica de los Sistemas Físicos 1. Introducción Los sitemas continuos habitualmente se representan mediante

Más detalles

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3.

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3. GANTT, PERT y CPM Características Conseguir una buena programación es un reto, no obstante es razonable y alcanzable. Ella debe tener el compromiso del equipo al completo, para lo cual se recomienda que

Más detalles

CAPÍTULO 6 SIMULACIONES Y RESULTADOS

CAPÍTULO 6 SIMULACIONES Y RESULTADOS CAPÍTULO 6 SIMULACIONES Y RESULTADOS 6.1 Proceso de Simulación Las simulaciones fueros llevadas a cabo empleando como herramienta la Versión 6.5 Release 13 de Matlab. Para lo cual fue empleado un banco

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 3.1 Metodología del procesamiento de consultas distribuidas 3.2 Estrategias de

Más detalles

Colegio Las Tablas Tarea de verano Matemáticas 3º ESO

Colegio Las Tablas Tarea de verano Matemáticas 3º ESO Colegio Las Tablas Tarea de verano Matemáticas º ESO Nombre: C o l e g i o L a s T a b l a s Tarea de verano Matemáticas º ESO Resolver la siguiente ecuación: 5 5 6 Multiplicando por el mcm(,,6) = 6 y

Más detalles

Introducción al Cálculo Simbólico a través de Maple

Introducción al Cálculo Simbólico a través de Maple 1 inn-edu.com ricardo.villafana@gmail.com Introducción al Cálculo Simbólico a través de Maple A manera de introducción, podemos decir que los lenguajes computacionales de cálculo simbólico son aquellos

Más detalles

CÁLCULO PARA LA INGENIERÍA 1

CÁLCULO PARA LA INGENIERÍA 1 CÁLCULO PARA LA INGENIERÍA 1 PROBLEMAS RESUELTOS Tema 3 Derivación de funciones de varias variables 3.1 Derivadas y diferenciales de funciones de varias variables! 1. Derivadas parciales de primer orden.!

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

1 v 1 v 2. = u 1v 1 + u 2 v 2 +... u n v n. v n. y v = u u = u 2 1 + u2 2 + + u2 n.

1 v 1 v 2. = u 1v 1 + u 2 v 2 +... u n v n. v n. y v = u u = u 2 1 + u2 2 + + u2 n. Ortogonalidad Producto interior Longitud y ortogonalidad Definición Sean u y v vectores de R n Se define el producto escalar o producto interior) de u y v como u v = u T v = u, u,, u n ) Ejemplo Calcular

Más detalles

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

ANALIZANDO GRAFICADORES

ANALIZANDO GRAFICADORES ANALIZANDO GRAFICADORES María del Carmen Pérez E.N.S.P.A, Avellaneda. Prov. de Buenos Aires Instituto Superior del Profesorado "Dr. Joaquín V. González" Buenos Aires (Argentina) INTRODUCCIÓN En muchos

Más detalles

UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO REPORTE DE INVESTIGACION

UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO REPORTE DE INVESTIGACION UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO REPORTE DE INVESTIGACION Qué es el momento en una red backpropagation? U.A. REDES NEURONALES INTEGRANTES: JESUS BARRIOS CRESCENCIO

Más detalles

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo: Titulo: DOMINIO Y RANGO I N D I C E Página DE UNA FUNCIÓN Año escolar: 4to. Año de Bachillerato Autor: José Luis Albornoz Salazar Ocupación: Ing Civil. Docente Universitario País de residencia: Venezuela

Más detalles

Seminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff

Seminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff Seminario Universitario Material para estudiantes Física Unidad 2. Vectores en el plano Lic. Fabiana Prodanoff CONTENIDOS Vectores en el plano. Operaciones con vectores. Suma y producto por un número escalar.

Más detalles