Algoritmos Matriciales por Bloques

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

Download "Algoritmos Matriciales por Bloques"

Transcripción

1 Master en Nuevas Tecnologías en Informática Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales por Bloques Javier Cuenca & Domingo Giménez Grupo de Investigación en Computación Científica y Programación Paralela Universidad de Murcia 1

2 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 2

3 Trabajo por bloques En las operaciones anteriores los costes son: Coste Computacional Memoria Vector-vector n n Matriz-vector n 2 n 2 Matriz-matriz n 3 n 2 Desarrollando algoritmos con operaciones matriz-matriz, para el mismo número de operaciones aritméticas menos accesos a memoria menor tiempo de ejecución Usado en el desarrollo de librerías desde los 80 (BLAS-3, LAPACK) Posibilidad de migración a rutinas paralelas más escalables 3

4 Trabajo por bloques La reducción varía de un sistema a otro Cómo se sabe el tamaño de bloque óptimo? Varía con: Sistema Problema a resolver Tamaño del problema Con lo que el método preferido también varía con el tamaño y el sistema (polialgoritmos) Difícil determinar a priori mejor método y parámetros métodos de optimización automática 4

5 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 5

6 Multiplicación de matrices void matriz_matriz_ld (double *a,int fa,int ca,int lda, double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc) int i,j,k; Algoritmo sin bloques (normal). Acceso elemento a elemento. double s; for(i=0;i<fa;i++) } for(j=0;j<cb;j++) s=0.; for(k=0;k<ca;k++) s+=a[i*lda+k]*b[k*ldb+j]; c[i*ldc+j]=s; Problemas pequeños: buenas prestaciones pues caben en memoria de niveles bajos de la jerarquía. Problemas grandes: peores prestaciones. 6

7 Multiplicación de matrices A tb B tb j C tb j i k k i s 7

8 Multiplicación de matrices void matriz_matriz_bloques (double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc,int tb) int i,j,k; double *s; Algoritmo por bloques. s=(double *) malloc(sizeof(double)* tb * Acceso tb); y operaciones por for(i=0;i<fa;i=i+ tb) bloques. for(j=0;j<cb;j=j+ tb) Buenas prestaciones independiente del tamaño. matriz_cero(s, tb, tb, tb); El tamaño de bloque es parámetro a determinar. for(k=0;k<ca;k=k+ tb) multiplicar_acumular_matrices(&a[i*lda+k], tb, tb,lda,&b[k*ldb+j],tb, tb,ldb,s, tb, tb, tb); } } free(s); copiar_matriz(s,tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); 8

9 void multiplicar_acumular_matrices(double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc) int i,j,k,kb; double *da,*db,s; Multiplicación de matrices for(i=0;i<fa;i++) da=&a[i*lda]; void for(j=0;j<cb;j++) matriz_matriz_bloques (double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc,int tb) db=&b[j]; int i,j,k; double *s; s=c[i*ldc+j]; for(k=0,kb=0;k<ca;k++,kb=kb+ldb) Algoritmo por bloques. s=(double *) malloc(sizeof(double)* tb * Acceso tb); y operaciones por for(i=0;i<fa;i=i+ s=s+da[k]*db[kb]; tb) bloques. } for(j=0;j<cb;j=j+ tb) Buenas prestaciones c[i*ldc+j]=s; independiente del tamaño. } matriz_cero(s, tb, tb, tb); El tamaño de bloque es } } parámetro a determinar. for(k=0;k<ca;k=k+ tb) multiplicar_acumular_matrices(&a[i*lda+k], tb, tb,lda,&b[k*ldb+j],tb, tb,ldb,s, tb, tb, tb); } } free(s); copiar_matriz(s,tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); 9

10 Multiplicación de matrices void matriz_matriz_bloquesdobles (double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc,int tb,int tbp) int i,j,k; double *s; Algoritmo por bloques dobles. La operación sobre bloques s=(double *) malloc(sizeof(double)* tb * tb); no es la multiplicación for(i=0;i<fa;i=i+ tb) directa, sino por bloques. Tenemos dos tamaños for(j=0;j<cb;j=j+ tb) de bloque. matriz_cero(s, tb, tb, tb); for(k=0;k<ca;k=k+ tb) multiplicar_acumular_bloques(&a[i*lda+k],tb, tb,lda,&b[k*ldb+j],tb,tb,ldb,s,tb,tb, tb, tbp); copiar_matriz(s, tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); } free(s); } 10

11 void multiplicar_acumular_bloques(double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int ldc,int tbp) int i,j,k; double *s; } Multiplicación de matrices s=(double *) malloc(sizeof(double)*tbp*tbp); void matriz_matriz_bloquesdobles (double *a,int fa,int ca,int lda,double *b,int fb,int cb,int ldb,double *c,int fc,int cc,int for(j=0;j<cb;j=j+tbp) ldc,int tb,int tbp) copiar_matriz(&c[i*ldc+j],tbp,tbp,ldc,s,tbp,tbp,tbp); int i,j,k; double *s; Algoritmo por bloques dobles. La operación sobre bloques for(i=0;i<fa;i=i+tbp) for(k=0;k<ca;k=k+tbp) multiplicar_acumular_matrices(&a[i*lda+k],tbp,tbp,lda,&b[k*ldb+j],tbp,tbp,ldb,s,tbp,tbp,tbp); s=(double *) malloc(sizeof(double)* tb * tb); no es la multiplicación for(i=0;i<fa;i=i+ tb) directa, sino por bloques. Tenemos dos tamaños for(j=0;j<cb;j=j+ tb) de bloque. matriz_cero(s, tb, tb, tb); for(k=0;k<ca;k=k+ tb) } copiar_matriz(s,tbp,tbp,tbp,&c[i*ldc+j],tbp,tbp,ldc); } } free(s); } free(s); multiplicar_acumular_bloques(&a[i*lda+k],tb, tb,lda,&b[k*ldb+j],tb,tb,ldb,s,tb,tb, tb, tbp); copiar_matriz(s, tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); 11

12 Multiplicación de matrices Almacenamiento por bloques: matriz almacenamiento posible acceso más rápido a los datos dentro de las operaciones por bloques 12

13 Multiplicación de matrices Multiplicación de matrices, en portátil antiguo: Método\tamaño normal bloques Reducción 76% bloques dobles

14 Multiplicación de matrices Multiplicación de matrices, en SUN Ultra 1: Método\tamaño Normal Traspuesta Bloques Bloq tras Almac blo Bl tr al bl Bloq dob Reducción 93% 14

15 Multiplicación de matrices Multiplicación de matrices,en kefren, pentium 4: Método\tamaño Normal Traspuesta Reducción 79% Bloques Bloq dob

16 Multiplicación de matrices Multiplicación de matrices,en PC actual (2016): Método\tamaño Normal Traspuesta Bloques

17 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 17

18 Factorización LU Cada A ij, L ij, U ij de tamaño b n : Paso 1: L 00 U 00 =A 00 Factorización sin bloques Paso 2: L 00 U 01 =A 01 Sistema múltiple triangular inferior ( bloques?) Paso 3: L 10 U 00 =A 10 Sistema múltiple triangular superior ( bloques?) Paso 4: A 11 =L 10 U 01 + L 11 U 11 A 11 =A 11 - L 10 U 01, por bloques y seguir trabajando con el nuevo valor de A 11 18

19 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+c],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 19

20 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+c],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 20

21 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 1: L 00 U 00 =A 00 Factorización sin bloques multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 21

22 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 1: L 00 U 00 =A 00 Factorización sin bloques multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 22

23 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 1: L 00 U 00 =A 00 Factorización sin bloques multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 23

24 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 2: L 00 U 01 =A 01 Sistema múltiple triangular inferior multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 24

25 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 2: L 00 U 01 =A 01 Sistema múltiple triangular inferior multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 25

26 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 Paso 2: L 00 U 01 =A 01 Sistema múltiple triangular inferior multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 26

27 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, Paso 3: L 10 U 00 =A 10 Sistema múltiple triangular superior &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 } } } 27

28 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, Paso 3: L 10 U 00 =A 10 Sistema múltiple triangular superior &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 } } } 28

29 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, Paso 3: L 10 U 00 =A 10 Sistema múltiple triangular superior &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 } } } 29

30 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) Paso 4: A 11 =L 10 U 01 + L 11 U 11 A 11 =A 11 - L 10 U 01 sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+c],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 30

31 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) Paso 4: A 11 =L 10 U 01 + L 11 U 11 A 11 =A 11 - L 10 U 01 sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+c],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 31

32 Factorización LU void lu_bloques (double *a,int fa,int ca,int lda,int tb) int i,j,k,f,c; for(i=0;i<fa;i=i+tb) f=(tb<fa-i? tb : fa-i); c=(tb<ca-i? tb : ca-i); lu(&a[i*lda+i],f,c,lda); //1 if(i+tb<fa) Paso 4: A 11 =L 10 U 01 + L 11 U 11 A 11 =A 11 - L 10 U 01 sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i-c,lda); //2 sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i], fa-i-f, c,lda);//3 multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, } } } &a[i*lda+i+c],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); //4 32

33 Factorización LU en mi portátil antiguo: tamaño bloque\matriz sin bloques

34 Factorización LU en PC actual (2016): tamaño bloque\matriz sin bloques

35 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 35

36 Optimización Automática: Tamaño de bloque óptimo Diseño 1.Crear la rutina Ejecución 6. Ejecutar la rutina 2. Modelar la rutina 5. Seleccionar valores de los parámetros algorítmicos 3. Crear el sistema de gestión de la rutina Instalación 4. Obtener información del sistema 36

37 Optimización Automática. Ejemplo: Factorización LU 1.Crear la rutina DGETF2: Paso 1: L 00 U 00 =A 00 Factorización sin bloques DTRSM: Paso 2: L 00 U 01 =A 01 Sistema múltiple triangular inferior DTRSM: Paso 3: L 10 U 00 =A 10 Sistema múltiple triangular superior DGEMM: Paso 4: A 11 =L 10 U 01 + L 11 U 11 A 11 =A 11 - L 10 U 01 37

38 Optimización Automática. Ejemplo: Factorización LU 2. Modelar el tiempo de ejecución: T EXEC 2 3 n 3 k 3 _ DGEMM bn 3 _ DTRSM n: el tamaño del problema a resolver SP: parámetros del sistema k 3_DGEMM, k 3_DTRSM, k 2_DGETF2 2 k 2 _ DGETF2 coste computacional de una operación básica realizada por rutinas utilizadas (DGEMM, DTRSM, DGETF2) 1 3 b 2 nk AP: parámetros algorítmicos b: tamaño de bloque 38

39 Optimización Automática. Ejemplo: Factorización LU 4. Obtener información del sistema 39

40 Optimización Automática. Ejemplo: Factorización LU 5. Seleccionar valores de los AP 40

41 Optimización Automática. Ejemplo: Factorización LU 6. Ejecución de la rutina 41

42 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 42

43 Trabajo alumnos. Uso de colas en HeteroSolar $cat matriz_matriz.pbs #!/bin/bash #PBS -q batch #PBS -lnodes=marte:ppn=1 #PBS -lwalltime=01:00:00 #================ INICIO ================= #Cargamos entorno de ejecucion source /etc/profile.d/modules.sh # en este caso no hace falta cargar ningun modulo # module load nada # Nos aseguramos que estamos en el directorio desde el que se envio el trabajo con qsub echo "Me muevo del directorio $PWD al directorio de trabajo $PBS_O_WORKDIR" cd $PBS_O_WORKDIR echo "Nodo donde se ha planificado el trabajo:" cat $PBS_NODEFILE echo "Ahora ejecutamos las tareas secuenciales..../matriz_matriz < matriz_matriz.input #================ FIN ================= 43

44 Trabajo alumnos. Uso de colas en HeteroSolar Matriz de datos de entrada $ cat matriz_matriz.input Envío trabajo a la cola $ qsub matriz_matriz.pbs Luna Compruebo cola $ qstat Job id Name User Time Use S Queue luna...iz_matriz.pbs javiercm 0 R batch Y, transcurrido un tiempo tengo el resultado: $ cat matriz_matriz.pbs.o27714 Me muevo del directorio /home_nfs/javiercm al directorio de trabajo /home_nfs/javiercm/ejemplos_algmatblo_profesor Nodo donde se ha planificado el trabajo: Marte Ahora ejecutamos las tareas secuenciales... De las filas y columnas de la primera matriz y las columnas de la segunda: De los valores inferior y superior: Tama o 1000: seg 44

45 Contenido Trabajo por bloques Multiplicación de matrices Factorización LU Optimización automática: Tamaño de bloque óptimo Trabajo de los alumnos. Uso de colas en HeteroSolar Trabajo de los alumnos. Ejercicios 45

46 Trabajo alumnos. Ejercicios Conectarse a luna.inf.um.es Copiar a tu directorio los ejemplos que están en: /home/javiercm/ejemplos_algmatblo Probar ejemplos: Compilar: gcc o programa programa.c io.c lm Ejecutar: cola batch, maquinas: marte ó mercurio Comparar los tiempos de las multiplicaciones matriciales (bloques y no bloques) En las multiplicaciones matriciales por bloques quitar la restricción de: tamaño de las matrices = multiplo del tamaño de bloque Programar LU con bloques (esquema transparencia 16) Comprobar resultado correcto LU con bloques (compararando con LU sin bloques) Comparar los tiempos de la factorización LU con bloques y LU sin bloques Comparar los tiempos de la factorización LU con bloques usando diferentes multiplicaciones matriciales y/o una combinación de ellas 46

Algoritmos Matriciales por Bloques

Algoritmos Matriciales por Bloques Master en Nuevas Tecnologías en Informática Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales por Bloques Javier Cuenca & Domingo Giménez Grupo de Investigación en Computación

Más detalles

Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales por Bloques

Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales por Bloques Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales por Bloques Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Universidad de Murcia 1 Contenido Trabajo por

Más detalles

Algoritmos Numéricos

Algoritmos Numéricos Algoritmos Numéricos Algoritmos matriciales básicos Almacenamiento de matrices Operaciones básicas con vectores Operaciones básicas con matrices Multiplicación de matrices Factorización LU Operaciones

Más detalles

Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales Básicos

Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales Básicos Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales Básicos Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Universidad de Murcia Contenido Tipos de matrices

Más detalles

Algoritmos Matriciales Básicos

Algoritmos Matriciales Básicos Master en Nuevas Tecnologías en Informática Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales Básicos Javier Cuenca & Domingo Giménez Grupo de Investigación en Computación

Más detalles

Algoritmos Matriciales Básicos

Algoritmos Matriciales Básicos Master en Nuevas Tecnologías en Informática Programación Paralela y Computación de Altas Prestaciones Algoritmos Matriciales Básicos Javier Cuenca & Domingo Giménez Grupo de Investigación en Computación

Más detalles

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar.

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar. CAR Responsable : María del Carmen Heras Sánchez Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar http://acarususonmx 1 Sistema de Colas http://acarususonmx 2 Antes de comenzar Pasos

Más detalles

Universidad de Murcia. Facultad de Informática. Guía rápida del cluster HETEREOSOLAR. Grupo de Computación Cientfíca y Computación Paralela

Universidad de Murcia. Facultad de Informática. Guía rápida del cluster HETEREOSOLAR. Grupo de Computación Cientfíca y Computación Paralela Universidad de Murcia Facultad de Informática Guía rápida del cluster HETEREOSOLAR 2014 Grupo de Computación Cientfíca y Computación Paralela ÍNDICE Guía rápida cluster hetereosolar Índice 1. Características

Más detalles

Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore

Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore Máster en Nuevas Tecnologías en Informática Facultad de Informática Universidad de Murcia Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore Autor: Jesús Cámara Moreno Directores:

Más detalles

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

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

Más detalles

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas Multiplicación de Matrices en Sistemas cc-numa Multicore Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas Índice de Contenido 1. Introducción 2. Línea de Investigación 3. Sistemas Empleados

Más detalles

2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 0. Entorno de programación: atcgrid y gestor TORQUE

2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 0. Entorno de programación: atcgrid y gestor TORQUE 2º curso / 2º cuatr. 2º curso / 2º cuatr. Grado en Ing. Informática Arquitectura de Computadores Seminario 0. Entorno de programación: atcgrid y gestor TORQUE 2 Contenidos Cluster de prácticas (atcgrid)

Más detalles

Nociones básicas de computación paralela

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

Más detalles

Programación en Memoria Compartida: OpenMP

Programación en Memoria Compartida: OpenMP Programación en Memoria Compartida: OpenMP Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Nociones básicas Modelo de programación

Más detalles

Programación: Sistemas unitriangulares inferiores

Programación: Sistemas unitriangulares inferiores Programación: Sistemas unitriangulares inferiores Objetivos. Programar en el lenguaje de MATLAB el método de la sustitución hacia adelante para resolver sistemas de ecuaciones lineales con matrices unitriangulares

Más detalles

Clúster ctcomp2. Diego Rodríguez Martínez

Clúster ctcomp2. Diego Rodríguez Martínez Clúster ctcomp2 Diego Rodríguez Martínez Centro Singular de Investigación en Tecnoloxías da Información CITIUS Universidade de Santiago de Compostela citius.usc.es Índice 1 Introducción 2 Acceso a ctcomp2

Más detalles

Facilidad de cálculo científico. Universitat Jaume I

Facilidad de cálculo científico. Universitat Jaume I Facilidad de cálculo cientíco Universitat Jaume I Índice de contenido Introducción...3 Infraestructura...3 Hardware...3 Software...4 Comenzando a utilizar el sistema de colas...5 Concepto...5 Órdenes básicas...5

Más detalles

Aplicar este algoritmo para resolver el sistema de ecuaciones: º «« º ««

Aplicar este algoritmo para resolver el sistema de ecuaciones: º «« º «« Introducción al Cálculo Numérico y Programación 1 MÓDULO 8: SISTEMA DE ECUACIONES LINEALES. A- MÉTODOS DIRECTOS 6LVWHPDVIiFLOHVGHUHVROYHU Ejercicio 1: Escribe una función MATLAB llamada =sp(a,b) que admita

Más detalles

IN34A - Optimización

IN34A - Optimización IN34A - Optimización Complejidad Leonardo López H. lelopez@ing.uchile.cl Primavera 2008 1 / 33 Contenidos Problemas y Procedimientos de solución Problemas de optimización v/s problemas de decisión Métodos,

Más detalles

Departamento de Ecuaciones Diferenciales y Análisis Numérico. CÁLCULO NUMÉRICO I (Tema 3 - Relación 2)

Departamento de Ecuaciones Diferenciales y Análisis Numérico. CÁLCULO NUMÉRICO I (Tema 3 - Relación 2) CÁLCULO NUMÉRICO I (Tema - Relación 2) 5 Resolver mediante el método de Gauss los siguientes sistemas de ecuaciones. 2x 2 + x = 0 2x + 2x 2 + x + 2x = 2 x x 2 + x = 7 6x + x 2 6x 5x = 6. x + x 2 x = x

Más detalles

Técnicas de Modelado y Optimización del Tiempo de Ejecución de Rutinas Paralelas de Álgebra Lineal

Técnicas de Modelado y Optimización del Tiempo de Ejecución de Rutinas Paralelas de Álgebra Lineal Técnicas de Modelado y Optimización del Tiempo de Ejecución de Rutinas Paralelas de Álgebra Lineal Autor: Luis Pedro García González Directores: Javier Cuenca y Domingo Giménez Universidad de Murcia julio

Más detalles

Arquitecturas de Altas Prestaciones y Supercomputación

Arquitecturas de Altas Prestaciones y Supercomputación Arquitecturas de Altas Prestaciones y Supercomputación Presentación del itinerario Julio de 2014 Arquitecturas de Altas Prestaciones y Supercomputación Julio de 2014 1 / 15 Agenda Introducción 1 Introducción

Más detalles

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática.

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática. 1. Por qué el modelo de programación que se sigue al programar con MPI es independiente de la asignación? 2. Describir gráficamente una solución eficiente para realizar una operación de reducción global

Más detalles

Algoritmos en Árbol y Grafo Computación Pipeline

Algoritmos en Árbol y Grafo Computación Pipeline Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Algoritmos en Árbol y Grafo Computación Pipeline Domingo Giménez (Universidad

Más detalles

Práctica 3: Realce de imágenes

Práctica 3: Realce de imágenes Prácticas de laboratorio Práctica 3: Realce de imágenes 1. DESCRIPCIÓN Y REALIZACIÓN DEL PROBLEMA Se trata de desarrollar un conjunto sencillo de algoritmos en C para ejecutar operaciones de REALCE por

Más detalles

Paralelismo Relajado Paralelismo Síncrono

Paralelismo Relajado Paralelismo Síncrono Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelismo Relajado Paralelismo Síncrono Domingo Giménez (Universidad de Murcia) 1

Más detalles

GUÍA BÁSICA DE USO DEL CLUSTER HPC LOVELACE

GUÍA BÁSICA DE USO DEL CLUSTER HPC LOVELACE CLUSTER HPC LOVELACE Guía básica de utilización v.1.0 20/01/2016 GUÍA BÁSICA DE USO DEL CLUSTER HPC LOVELACE Este documento tiene como objetivo proporcionar los datos y aspectos básicos para la conexión

Más detalles

Grupo de Computación Científica y Programación Paralela Universidad de Murcia

Grupo de Computación Científica y Programación Paralela Universidad de Murcia Grupo de Computación Científica y Programación Paralela Universidad de Murcia http://www.um.es/pcgum/ Presentación Líneas de Investigación, Máster en Informática, Universidad de Murcia, diciembre 2013

Más detalles

Computación de Altas Prestaciones Sistemas computacionales

Computación de Altas Prestaciones Sistemas computacionales Computación de Altas Prestaciones Sistemas computacionales Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Motivación Problemas

Más detalles

DESARROLLO DE ALGORITMOS PARA MODELOS DE ECUACIONES SIMULTANEAS EN ALTAS PRESTACIONES. Jose Juan López Espín Universidad Miguel Hernández

DESARROLLO DE ALGORITMOS PARA MODELOS DE ECUACIONES SIMULTANEAS EN ALTAS PRESTACIONES. Jose Juan López Espín Universidad Miguel Hernández DESARROLLO DE ALGORITMOS PARA MODELOS DE ECUACIONES SIMULTANEAS EN ALTAS PRESTACIONES Espín Universidad Miguel Hernández Introducción Motivación Los Modelos de Ecuaciones Simultáneas (M.E.S.) nacen como

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Domingo Giménez (Universidad de Murcia)

Más detalles

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES MÁSTER EN NUEVAS TECNOLOGÍAS EN INFORMÁTICA Diciembre 2010 Introducción Por qué utilizar Matlab paralelo? MATLAB es

Más detalles

Adaptación: Julio J. Águila G. 1 Autores: Enriques Arias 2, Diego Cazorla 1

Adaptación: Julio J. Águila G. 1 Autores: Enriques Arias 2, Diego Cazorla 1 Adaptación: 1 Autores: Enriques Arias 2, Diego Cazorla 1 1 Departamento de Ingeniería en Computación-UMAG 2 Departamento de Sistemas Informáticos-UCLM martes 10 de marzo de 2015 (UMAG) martes 10 de marzo

Más detalles

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelización de problemas de recorrido de árboles Trabajadores replicados

Más detalles

Computación Matricial y Paralela

Computación Matricial y Paralela Computación Matricial y Paralela Programación híbrida Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia http://dis.um.es/~domingo

Más detalles

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ciencias Naturales y Matemáticas SYLLABUS DEL CURSO. Fundamentos de Computación

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ciencias Naturales y Matemáticas SYLLABUS DEL CURSO. Fundamentos de Computación ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ciencias Naturales y Matemáticas SYLLABUS DEL CURSO 1. CÓDIGO Y NÚMERO DE CRÉDITOS CÓDIGO ICM00794 NÚMERO DE CRÉDITOS Teóricos: 4 Prácticos: 0 2. DESCRIPCIÓN

Más detalles

Relación de problemas. Álgebra lineal.

Relación de problemas. Álgebra lineal. Relación de problemas Álgebra lineal Tema 1 Sección 1 Matrices Determinantes Sistemas lineales Matrices Ejercicio 11 Consideremos las siguientes matrices: ( 1 2 A = 1 1 ) ( 1 1 B = 0 1 ) C = 1 0 0 0 1

Más detalles

Grupo de Computación Científica y Programación Paralela

Grupo de Computación Científica y Programación Paralela Grupo de Computación Científica y Programación Paralela Universidad de Murcia domingo@um.es http://dis.um.es/~domingo Reunión de proyecto de investigación, Valencia, 12-13 noviembre 2009 Contents 1 El

Más detalles

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos. .- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación I Ingeniería Electrónica. ECM-043 3-2- 2.- HISTORIA DEL PROGRAMA Lugar

Más detalles

Antonio Carrillo Ledesma Ismael Herrera Revilla

Antonio Carrillo Ledesma Ismael Herrera Revilla Universidad Nacional Autónoma de México Instituto de Geofísica Aplicación del Cómputo Paralelo a la Modelación de Sistemas Continuos en Ciencias e Ingeniería Mediante el Método FETI Dual-Primal Presentan:

Más detalles

Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)

Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i) Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (i) Eficiencia y notación asintótica. Introducción Para resolver un problema pueden existir varios algoritmos. Por tanto, es lógico

Más detalles

COMPILACIÓN, EJECUCIÓN Y OPTIMIZACIÓN DE PROGRAMAS

COMPILACIÓN, EJECUCIÓN Y OPTIMIZACIÓN DE PROGRAMAS COMPILACIÓN, EJECUCIÓN Y OPTIMIZACIÓN DE PROGRAMAS EJERCICIOS DE LABORATORIO Introducción Los siguientes ejercicios forman las prácticas guiadas del curso COMPILACIÓN, EJECUCIÓN Y OPTIMIZACIÓN DE PROGRAMAS.

Más detalles

Matrices bandadas Cálculo de la inversa y determinante Normas vectoriales y matriciales

Matrices bandadas Cálculo de la inversa y determinante Normas vectoriales y matriciales Clase No. 8: MAT 251 Matrices bandadas Cálculo de la inversa y determinante Normas vectoriales y matriciales Dr. Alonso Ramírez Manzanares CIMAT A.C. e-mail: alram@ cimat.mx web: http://www.cimat.mx/ alram/met_num/

Más detalles

Primeros pasos con CUDA. Clase 1

Primeros pasos con CUDA. Clase 1 Primeros pasos con CUDA Clase 1 Ejemplo: suma de vectores Comencemos con un ejemplo sencillo: suma de vectores. Sean A, B y C vectores de dimensión N, la suma se define como: C = A + B donde C i = A i

Más detalles

Algoritmos paralelos para la Multiplicación de Matrices

Algoritmos paralelos para la Multiplicación de Matrices Introducción Paralelizar onclusiones Trabajo ibliografía lgoritmos paralelos para la Multiplicación de Matrices Universidad de Murcia - UM 18 de diciembre de 2008 Introducción Paralelizar onclusiones Trabajo

Más detalles

Tarea 1 INSTRUCCIONES TAREA 1

Tarea 1 INSTRUCCIONES TAREA 1 Universidad de Los Andes Facultad de Ingeniería y Ciencias Aplicadas Tarea 1 Cálculo Numérico Profesores: Takeshi Asahi, Semestre 2016-01 Miguel Carrasco INSTRUCCIONES TAREA 1 1 ) Esta tarea vale por un

Más detalles

Programación dinámica: un último ejemplo

Programación dinámica: un último ejemplo Programación dinámica: un último ejemplo Dado: matrices A m n, B n r, C r s de números enteros Para calcular A m n B n r el algoritmo usual realiza m n r multiplicaciones de números enteros Cuántas multiplicaciones

Más detalles

Autooptimización en esquemas paralelos iterativos

Autooptimización en esquemas paralelos iterativos Autooptimización en esquemas paralelos iterativos Autor: Juan Pedro Martínez Gallar Directores: Domingo Giménez Cánovas Universidad de Murcia Francisco Almeida Rodríguez Universidad La Laguna 1 ÍNDICE

Más detalles

Universidad Nacional Autónoma de México Instituto de Geofísica

Universidad Nacional Autónoma de México Instituto de Geofísica Universidad Nacional Autónoma de México Instituto de Geofísica Aplicación del Cómputo Paralelo a la Modelación de Sistemas Continuos en Ciencias e Ingeniería Presentan: Antonio Carrillo Ledesma Ismael

Más detalles

ANEXO XVII DE LA RESOLUCION N

ANEXO XVII DE LA RESOLUCION N Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:

Más detalles

UNIVERSIDAD DE MURCIA

UNIVERSIDAD DE MURCIA UNIVERSIDAD DE MURCIA DEPARTAMENTO DE INFORMÁTICA Y SISTEMAS TESIS DOCTORAL Técnicas de Modelado y Optimización del Tiempo de Ejecución de Rutinas Paralelas de Álgebra Lineal Luis Pedro García González

Más detalles

Multiplicación de matrices dispersas

Multiplicación de matrices dispersas Multiplicación de matrices dispersas Alumno: Irene Sánchez Linares Índice Descripción del problema Representación Algoritmo secuencial Esquemas algorítmicos Elección del esquema OpenMP MPI Estudio experimental

Más detalles

Taller de Lenguajes I

Taller de Lenguajes I Taller de Lenguajes I Carrera: Ingeniería en Computación Profesor Responsable: Lanzarini, Laura Año: 2º Duración: Semestral Carga Horaria Semanal: 6hs Carga Horaria Total: 96hs Objetivos Generales Profundizar

Más detalles

Modelos de computadores paralelos

Modelos de computadores paralelos Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Contenido Programación paralela Modelos

Más detalles

CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 MATRICES

CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 MATRICES CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 Unidades: - Matrices (Bloque Álgebra) - Determinantes (Bloque Álgebra) - Sistemas de ecuaciones lineales (Bloque Álgebra) - Vectores (Bloque

Más detalles

Sistemas operativos, 2ª edición

Sistemas operativos, 2ª edición Sistemas operativos 2ª edición Capítulo 7 Interbloqueos (extracto de las transparencias del libro Contenido Introducción Modelo general del sistema Definición y tratamiento del interbloqueo Detección y

Más detalles

Es decir, det A = producto de diagonal principal producto de diagonal secundaria. Determinante de una matriz cuadrada de orden 3

Es decir, det A = producto de diagonal principal producto de diagonal secundaria. Determinante de una matriz cuadrada de orden 3 1.- DETERMINANTE DE UNA MATRIZ CUADRADA Determinante de una matriz cuadrada de orden 1 Dada una matriz cuadrada de orden 1, A = (a), se define det A = det (a) = a Determinante de una matriz cuadrada de

Más detalles

TNT es una librería que facilita el uso de vectores y matrices en C++.

TNT es una librería que facilita el uso de vectores y matrices en C++. TNT es una librería que facilita el uso de vectores y matrices en C++. Proporciona unas estructuras de datos que con las que se pueden realizar fácilmente operaciones con los vectores y las matrices. Las

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

GRADO: Ingeniería en Tecnologías Industriales CURSO: 1º CUATRIMESTRE: 1º

GRADO: Ingeniería en Tecnologías Industriales CURSO: 1º CUATRIMESTRE: 1º SESIÓN SEMANA DENOMINACIÓN ASIGNATURA: Álgebra Lineal GRADO: Ingeniería en Tecnologías Industriales CURSO: 1º CUATRIMESTRE: 1º La asignatura tiene 28 sesiones que se distribuyen a lo largo de 14 semanas

Más detalles

ITERATIVOS Y DIRECTOS PARA SISTEMAS LINEALES. Ayudante: Rodrigo Torres Aguirre Ejercicios:

ITERATIVOS Y DIRECTOS PARA SISTEMAS LINEALES. Ayudante: Rodrigo Torres Aguirre Ejercicios: Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación MÉTODOS ITERATIVOS Y DIRECTOS PARA SISTEMAS LINEALES Profesor: Jaime Álvarez Maldonado Ayudante:

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN ENTERA

FUNDAMENTOS DE PROGRAMACIÓN ENTERA 02 de Octubre de 2017 FUNDAMENTOS DE PROGRAMACIÓN ENTERA Ingeniería en Informática Ingeniería Industrial Universidad Católica Andrés Bello Programación Entera José Luis Quintero 1 Puntos a tratar 1. Investigación

Más detalles

SEL - Métodos Directos

SEL - Métodos Directos Facultad de Ingeniería Mecánica Universidad Nacional de Ingeniería Métodos Numéricos Contenido 1 Métodos Directos Generalidades sobre Métodos Directos Eliminación Gaussiana Pivoteo Factorización LU Generalidades

Más detalles

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS FORESTALES Y AMBIENTALES ESCUELA DE INGENIERIA FORESTAL PROGRAMA INFORMATICA I (NV)

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS FORESTALES Y AMBIENTALES ESCUELA DE INGENIERIA FORESTAL PROGRAMA INFORMATICA I (NV) UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS FORESTALES Y AMBIENTALES ESCUELA DE INGENIERIA FORESTAL PROGRAMA 1. IDENTIFICACIÓN INFORMATICA I (NV) Prelación: Ninguna Horas Teóricas: 2 Horas/Semana Departamento:

Más detalles

Descripción del problema:

Descripción del problema: PROBLEMA DEL AGENTE VIAJERO USANDO BÚSQUEDA TABU PROYECTO FINAL PROGRAMACIÓN CIENTIFICA ANGELES BAEZ OLVERA 4 JUNIO 2009 Descripción del problema: El problema del agente viajero o TSP como se le conoce

Más detalles

MatLab se puede considerar como un entorno de cálculo técnico, el cual brinda

MatLab se puede considerar como un entorno de cálculo técnico, el cual brinda 3.1 Descripción de MatLab MatLab se puede considerar como un entorno de cálculo técnico, el cual brinda grandes prestaciones para cálculo numérico y visualización de análisis numéricos; cálculo matricial;

Más detalles

TEMA 1 Álgebra de matrices 4 sesiones. TEMA 2 Determinantes 4 sesiones. TEMA 3 Sistemas de ecuaciones 4 sesiones

TEMA 1 Álgebra de matrices 4 sesiones. TEMA 2 Determinantes 4 sesiones. TEMA 3 Sistemas de ecuaciones 4 sesiones 1.1. MATEMÁTICAS II TEMPORALIZACIÓN Y SECUENCIACIÓN: TEMA 1 Álgebra de matrices 4 sesiones TEMA 2 Determinantes 4 sesiones TEMA 3 Sistemas de ecuaciones 4 sesiones TEMA 4 Vectores en el espacio 4 sesiones

Más detalles

Gustavo Rodríguez Gómez. Agosto Dicembre 2011

Gustavo Rodríguez Gómez. Agosto Dicembre 2011 Computación Científica Gustavo Rodríguez Gómez INAOE Agosto Dicembre 2011 1 / 46 Capítulo II 2 / 46 1 Introducción Métodos Directos Sistemas Triangulares Sustitución Hacia Atrás Invertibilidad de una Matriz

Más detalles

Para resolver un sistema lineal estan permitidas tres operaciones en las ecuaciones.

Para resolver un sistema lineal estan permitidas tres operaciones en las ecuaciones. Para resolver un sistema lineal estan permitidas tres operaciones en las ecuaciones. 1. La ecuación E i puede multiplicarse por cualquier costante diferente de cero y se puede usar la ecuación resultante

Más detalles

Modelado y autooptimización en esquemas paralelos de backtracking

Modelado y autooptimización en esquemas paralelos de backtracking Modelado y autooptimización en esquemas paralelos de backtracking Manuel Quesada y Domingo Giménez Universidad de Murcia XX Jornadas de Paralelismo A Coruña, 18 Sept 2009 Índice 1 Introducción 2 Técnica

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Domingo Giménez (Universidad de Murcia) 1 / 31

Más detalles

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR Historia Bloques funcionales Dimensionamiento Estructura CPU Concepto de programa Interrupciones Buses Entrada / Salida Ejemplo de arquitectura:

Más detalles

Universidad de los Andes Ingeniería de Sistemas y Computación. ISIS1205 Algorítmica y Programación 2. Hoja de trabajo teórica Nivel 7 (N7-EE)

Universidad de los Andes Ingeniería de Sistemas y Computación. ISIS1205 Algorítmica y Programación 2. Hoja de trabajo teórica Nivel 7 (N7-EE) Universidad de los Andes Ingeniería de Sistemas y Computación ISIS1205 Algorítmica y Programación 2 Hoja de trabajo teórica Nivel 7 (N7-EE) Cupi2 Enunciado: Desarrolle las modificaciones al programa exposicióncanina

Más detalles

Fundamentos de Programación Entera. A. Revisión. Carlos Testuri Germán Ferrari

Fundamentos de Programación Entera. A. Revisión. Carlos Testuri Germán Ferrari Fundamentos de Programación Entera A. Revisión Carlos Testuri Germán Ferrari Departamento de Investigación Operativa Instituto de Computación Facultad de Ingeniería Universidad de la República 2012-2018

Más detalles

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011 Factorización LU Departamento de Matemáticas, CCIR/ITESM 9 de febrero de 2011 Índice 26.1. Introducción............................................... 1 26.2. Factorización LU............................................

Más detalles

Mejoras computacionales en descomposición anidada estocástica de Benders. Andrés Ramos Santiago Cerisola

Mejoras computacionales en descomposición anidada estocástica de Benders. Andrés Ramos Santiago Cerisola Mejoras computacionales en descomposición anidada estocástica de Benders Andrés Ramos Santiago Cerisola Modelo de coordinación hidrotérmica Determina la producción óptima de los generadores térmicos e

Más detalles

Práctica 7c: Uso de estructuras en C.

Práctica 7c: Uso de estructuras en C. Práctica 7c: Uso de estructuras en C. Objetivos En esta práctica el objetivo principal es el de poner en práctica los principios básicos del uso de estructuras y librerías de funciones en C. Evaluación

Más detalles

Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas

Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas Paralelismo MPI Paso de mensajes Francisco García Sánchez Departamento de Informática y Sistemas Contenido Introducción 1) Uso de MPI 2) Multiplicación de matrices 3) Ordenación por mezcla 4) Programación

Más detalles

Introducción a los Sistemas Multiprocesadores

Introducción a los Sistemas Multiprocesadores Introducción a los Sistemas Multiprocesadores Multiprocesadores estilo Von Neumann Modelos de Organización Modelos de Programación Clasificación de los Multiprocesadores Por qué Sistemas Multiprocesadores?

Más detalles

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I Universidad Nacional de Ingeniería Facultad de Ciencias Física Computacional CC063 Algebra Lineal Prof: J. Solano 2012-I Introduccion Aqui trabjaremos con operaciones basicas con matrices, tales como solucion

Más detalles

Introducción a UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale

Introducción a UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Características generales: Multiusuario, multitasking (Tiempo Compartido) y multiconexiones Permite la creación, modificación y destrucción

Más detalles

259. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m

259. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m 258. Aplicar el algoritmo de programación dinámica para el problema del cambio de monedas sobre el siguiente ejemplo: n = 3, P = 9, c = (1, 3, 4). Qué ocurre si multiplicamos P y c por un valor constante,

Más detalles

Métodos Numéricos. Grado en Ingeniería en Informática Tema 4. Análisis Numérico Matricial I

Métodos Numéricos. Grado en Ingeniería en Informática Tema 4. Análisis Numérico Matricial I Métodos Numéricos. Grado en Ingeniería en Informática Tema 4. Análisis Numérico Matricial I Luis Alvarez León Univ. de Las Palmas de G.C. Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C.

Más detalles

SEL Métodos Directos

SEL Métodos Directos SEL Pantoja Carhuavilca Métodos Numérico Agenda métodos directos Encuentra una solución en un número finito de operaciones(en ausencia de errores de redondeo) transformando el sistema en un sistema equivalente

Más detalles

ACTIVIDADES SELECTIVIDAD MATRICES

ACTIVIDADES SELECTIVIDAD MATRICES ACTIVIDADES SELECTIVIDAD MATRICES Ejercicio 1 Para qué valores de m tiene solución la ecuación matricial? (b) Resuelve la ecuación matricial dada para. Ejercicio 2 Siendo I la matriz identidad de orden

Más detalles

Álgebra Lineal Ma1010

Álgebra Lineal Ma1010 Álgebra Lineal Ma1010 Departamento de Matemáticas ITESM Álgebra Lineal - p. 1/53 La factorización LU de una matriz es una factorización que resume el proceso de eliminación gaussiana aplicado a la matriz

Más detalles

Guía de usuario del clúster ctcomp2. Diego R. Martínez. v1.2 [Septiembre 2013] citius.usc.es

Guía de usuario del clúster ctcomp2. Diego R. Martínez. v1.2 [Septiembre 2013] citius.usc.es Guía de usuario del clúster ctcomp2 Diego R. Martínez v1.2 [Septiembre 2013] citius.usc.es Contenidos 1 Acceso al clúster ctcomp2........ 3 2 Gestión de software con modules... 5 3 Compilación...............

Más detalles

Dada la proporción =, calcula el producto de extremos menos el producto de medios. 4. Halla los determinantes de las siguientes matrices: Solución:

Dada la proporción =, calcula el producto de extremos menos el producto de medios. 4. Halla los determinantes de las siguientes matrices: Solución: 3 Determinantes. Determinantes de orden 2 y 3 por Sarrus Piensa y calcula 3 6 Dada la proporción =, calcula el producto de extremos menos el producto de medios. 4 8 3 8 6 4 = 24 24 = 0 Aplica la teoría.

Más detalles

PROGRAMA DE ESTUDIOS 2004

PROGRAMA DE ESTUDIOS 2004 PROGRAMA DE ESTUDIOS 2004 ASIGNATURA : ÁLGEBRA LINEAL Código : MAT2001 Pre-requisito : Álgebra Requisito de : Ecuaciones Diferenciales N º sesiones semanales : 3 de Cátedra : 1 de Ayudantía o Laboratorio

Más detalles

Octave. Entorno Interactivo. 19/8/2013 Computación 1 - Facultad de Ingeniería 1

Octave. Entorno Interactivo. 19/8/2013 Computación 1 - Facultad de Ingeniería 1 Octave Entorno Interactivo 19/8/2013 Computación 1 - Facultad de Ingeniería 1 Agenda Introducción Entorno interactivo Componentes del entorno interactivo Variables Matrices Operaciones Relaciones 19/8/2013

Más detalles

Cap 3: Álgebra lineal

Cap 3: Álgebra lineal Universidad Nacional de Ingeniería Facultad de Ciencias Cálculo Numérico 1 IF321 Cap 3: Álgebra lineal Prof: J. Solano 2018-I INTRODUCCION Aqui trabjaremos con operaciones basicas con matrices, tales como

Más detalles

Taller de Programación Paralela

Taller de Programación Paralela Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 17, 2008 Motivación Programar aplicaciones paralelas no es una tarea trivial. Paralelismo

Más detalles

Resolución de Sistema de Ecuaciones Lineales

Resolución de Sistema de Ecuaciones Lineales Resolución de Sistema de Ecuaciones Lineales Hermes Pantoja Carhuavilca Facultad de Ingeniería Mecanica Universidad Nacional de Ingenieria Métodos Numérico Hermes Pantoja Carhuavilca 1 de 29 CONTENIDO

Más detalles

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Matematicas de la especialidad ingenieria mecanica

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Matematicas de la especialidad ingenieria mecanica ANX-PR/CL/001-01 GUÍA DE APRENDIZAJE ASIGNATURA Matematicas de la especialidad ingenieria mecanica CURSO ACADÉMICO - SEMESTRE 2016-17 - Segundo semestre GA_05TI_55000054_2S_2016-17 Datos Descriptivos Nombre

Más detalles

Divide y Vencerás Programación Dinámica

Divide y Vencerás Programación Dinámica Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Divide y Vencerás Programación Dinámica Domingo Giménez (Universidad de Murcia) 1 /

Más detalles