Algoritmos Matriciales por Bloques
|
|
- Gloria Franco Valverde
- hace 5 años
- Vistas:
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
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 detallesProgramació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 detallesAlgoritmos 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 detallesProgramació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 detallesAlgoritmos 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 detallesAlgoritmos 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 detallesCAR. 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 detallesUniversidad 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 detallesOptimizació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 detallesHerramientas 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 detallesMultiplicació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 detalles2º 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 detallesNociones 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 detallesProgramació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 detallesProgramació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 detallesClú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 detallesFacilidad 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 detallesAplicar 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 detallesIN34A - 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 detallesDepartamento 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 detallesTé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 detallesArquitecturas 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 detallesRelació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 detallesAlgoritmos 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 detallesPrá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 detallesParalelismo 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 detallesGUÍ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 detallesGrupo 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 detallesComputació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 detallesDESARROLLO 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 detallesEsquemas 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 detallesJosé 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 detallesAdaptació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 detallesParalelizació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 detallesComputació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 detallesESCUELA 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 detallesRelació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 detallesGrupo 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 detallesProgramació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 detallesAntonio 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 detallesAlgorí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 detallesCOMPILACIÓ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 detallesMatrices 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 detallesPrimeros 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 detallesAlgoritmos 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 detallesTarea 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 detallesProgramació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 detallesAutooptimizació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 detallesUniversidad 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 detallesANEXO 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 detallesUNIVERSIDAD 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 detallesMultiplicació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 detallesTaller 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 detallesModelos 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 detallesCONTENIDOS 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 detallesSistemas 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 detallesEs 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 detallesTNT 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 detallesProgramació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 detallesGRADO: 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 detallesITERATIVOS 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 detallesFUNDAMENTOS 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 detallesSEL - 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 detallesUNIVERSIDAD 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 detallesDescripció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 detallesMatLab 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 detallesTEMA 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 detallesGustavo 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 detallesPara 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 detallesModelado 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 detallesEsquemas 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 detallesARQUITECTURA 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 detallesUniversidad 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 detallesFundamentos 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 detallesDepartamento 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 detallesMejoras 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 detallesPrá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 detallesParalelismo. 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 detallesIntroducció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 detallesUniversidad 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 detallesIntroducció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 detalles259. 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 detallesMé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 detallesSEL 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 detallesACTIVIDADES 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 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 detallesGuí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 detallesDada 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 detallesPROGRAMA 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 detallesOctave. 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 detallesCap 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 detallesTaller 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 detallesResolució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 detallesANX-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 detallesDivide 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