Paralelización de Programas Secuenciales: OpenMP
|
|
- Gustavo Córdoba Espejo
- hace 7 años
- Vistas:
Transcripción
1 Paralelización de Programas Secuenciales: OpenMP Manuel Arenaz
2 Índice Introducción a la programación paralela Programación con OpenMP Directivas de compilación Librería de funciones Variables de entorno
3 3 Paralelización de Programas Secuenciales: OpenMP Qué es la Programación Paralela? Computador estándar secuencial: Ejecuta las instrucciones de un programa en orden para producir un resultado Idea de la computación paralela: Producir el mismo resultado utilizando múltiples procesadores Objetivos: Reducir el tiempo de ejecución Reducir los requerimientos de memoria Manuel Arenaz, 2006 Introducción a la programación paralela
4 4 Paralelización de Programas Secuenciales: OpenMP Tipos de arquitecturas paralelas Memoria distribuida Memoria compartida UMA Memoria compartida NUMA IBM SP2, Clusters PCs,... Modelo de Programacion: Paso de mensajes Sun HPC, IBM SMP,... SGI Origin 2000 Modelo de Programacion: Memoria Compartida Manuel Arenaz, 2006 Introducción a la programación paralela
5 5 Paralelización de Programas Secuenciales: OpenMP Modelos de Programación Paso de mensajes (e.g. PVM, unix sockets): Espacio de direcciones local (i.e. accesible sólo por un procesador) Intercambio de información y sincronización mediante mensajes Memoria compartida (e.g. OpenMP, threads): Espacio de direcciones global (i.e. accesible por todos los procesadores) Intercambio de información y sincronización mediante variables compartidas Manuel Arenaz, 2006 Introducción a la programación paralela
6 6 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Manuel Arenaz, 2006 Inicializacion(&mytid,&li,&ls) /* Cálculo del contador local */ cont=0 do i=li,ls x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo del contador global */ calculo_cont_global(&contglobal) /* Cáculo de PI */ if( mytid=0 ) pi=4*contglobal/n Inicializacion(&mytid,&li,&ls) { if( pvm_parent() = -1 ) pvm_spawn(prog,...,p,tids) mytid=pvn_mytid() li=mytid*n/p ls=(mytid+1)*n/p } calculo_cont_global(&contglobal) { if( mytid=0 ) do proc=1,p-1 pvm_recv(-1,tag) pvm_upkint(&cont,1,1) cont_global += cont enddo else pvm_initsend(pvmdatadefault) pvm_pkint(&cont,1,1) pvm_send(pvm_parent(),tag) endif } Introducción a la programación paralela
7 Índice Introducción a la programación paralela Programación con OpenMP Directivas de programación Librería de funciones Variables de entorno
8 8 Paralelización de Programas Secuenciales: OpenMP OpenMP es una colección de directivas, librerías y variables de entorno Qué es OpenMP? Modelo portable de programación paralela Los programas se descomponen en varios threads que comparten datos Intercambio de información y sincronización mediante lectura/escritura de variables compartidas entre los threads
9 9 Paralelización de Programas Secuenciales: OpenMP Qué es OpenMP? Fuente: Culler, D.E. y Singh J.P.. Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann Pub., 1999.
10 10 Paralelización de Programas Secuenciales: OpenMP Qué es OpenMP? Paralelización con librería de funciones: El programador tiene que tener en cuenta todos los detalles de sincronización Modifica el código original Ventajas: Flexibilidad, eficiencia Paralelización con directivas: El programador añade directivas de compilación El compilador traduce las directivas en llamadas a la librería de funciones No modifica el código original Ventajas: Sencillez, rapidez de desarrollo Manuel Arenaz, 2006 Programación con OpenMP
11 11 Paralelización de Programas Secuenciales: OpenMP Qué es OpenMP?
12 13 Paralelización de Programas Secuenciales: OpenMP Directiva de Creación/Destrucción de Threads (1/4) Define una región paralela, i.e. un bloque de código ejecutado en paralelo por varios threads Clásulas: DEFAULT PRIVATE SHARED FIRSTPRIVATE REDUCTION!$omp parallel [cláusulas]...código estructurado...!$omp end parallel #pragma omp parallel [cláusulas] {...código estructurado... }
13 14 Paralelización de Programas Secuenciales: OpenMP Directiva de Creación/Destrucción de Threads (2/4) Si un thread encuentra PARALLEL: Crea un equipo de threads (número determinado por variables de entorno o llamadas a la librería) Se convierte en el maestro del equipo La directiva END PARALLEL indica el fin de la región paralela Sólo continúa el thread maestro Barrera de sincronización implícita
14 15 Paralelización de Programas Secuenciales: OpenMP Directiva de Creación/Destrucción de Threads (3/4) Si un thread de un equipo ejecutando una región paralela encuentra otra PARALLEL: crea un nuevo equipo se convierte en el maestro del nuevo equipo Por defecto, las regiones paralelas anidadas se serializan, i.e. el nuevo equipo está formado por 1 thread. Solución: variables de entorno y librería. Thread maestro Creación de 4 threads!! Creación de 3 threads por cada thread de nivel superior!!
15 16 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Manuel Arenaz, 2006 Versión OpenMP /* Cálculo del contadori */ cont=0!$omp PARALLEL do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo!$omp END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions (i.e. problemas de lecturas y escrituras sobre variables compartidas) Programación con OpenMP
16 17 Paralelización de Programas Secuenciales: OpenMP Directivas de Reparto de Trabajo entre Threads (1/6) Dividen la ejecución de un bloque de código entre los miembros del equipo de threads que la encuentran Estas directivas deben ser encontradas por todos los miembros del equipo o por ninguno Deben estar dentro de una región paralela para que se ejecute en paralelo No lanzan nuevos threads No hay una barrera implícita en la entrada Hay una barrera implícita a la salida (excpt. nowait)
17 19 Paralelización de Programas Secuenciales: OpenMP Directivas de Reparto de Trabajo entre Threads (3/6) Ejecución de las iteraciones del bucle en paralelo Reparto de iteraciones del bucle Existe una barrera implícita al final (excepción NOWAIT) Clásulas: PRIVATE FIRSTPRIVATE LASTPRIVATE REDUCTION SCHEDULE!$omp do [cláusulas]...bucle...!$omp end do [nowait] #pragma omp for [cláusulas] {...bucle... }
18 20 Paralelización de Programas Secuenciales: OpenMP Directivas de Reparto de Trabajo entre Threads (4/6) Ejecución de una sección de código por un único thread Los otros threads no ejecutan ese código Barrera implícita al final (excepción NOWAIT). Cláusulas: PRIVATE FIRSTPRIVATE!$omp single [cláusulas]...código estrucutrado...!$omp end single [nowait] #pragma omp single [cláusulas] {...código estructurado... }
19 22 Paralelización de Programas Secuenciales: OpenMP Directivas de Reparto de Trabajo entre Threads (6/6)!$OMP PARALLEL!$OMP DO do I = 1, n-1 b(i) = (a(i) + a(i+1))/2 enddo!$omp END DO!$OMP DO do I = 1,n d(i) = 1.0/c(i) enddo!$omp END DO!$OMP END PARALLEL Primer bucle!! Barrera implícita!! Segundo bucle!! Thread maestro b(1:10) d(1:90) b(11:100) d(91:170) b(111:110) d(170:250) Tiempos de espera debidos a la barrera implícita!! b(111:n-1) d(170:n) No hay dependencias entre los bucles (bucles DO independientes) Usar NOWAIT para eliminar esperas innecesarias
20 23 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Manuel Arenaz, 2006 Versión OpenMP /* Cálculo del contadori */ cont=0!$omp PARALLEL!$OMP DO do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo!$omp ENDDO!$OMP END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions (i.e. problemas de lecturas y escrituras sobre variables compartidas) Programación con OpenMP
21 24 Paralelización de Programas Secuenciales: OpenMP Problema Race Conditions Valor de x cuando finaliza la ejecución del programa paralelo? int x=0; void p1 () { x = x + 1; } void p2 () { x = x + 2; } Manuel Arenaz, 2006 Programación con OpenMP
22 27 Paralelización de Programas Secuenciales: OpenMP Problema Race Conditions Valor de x cuando finaliza la ejecución del programa paralelo? P1 finaliza primero x tomará el valor 3. P2 finaliza primero x tomará el valor 3. P1 y P2 leen el valor inicial de x P1 modifica x antes que P2. x tomará el valor 2. P2 modifica x antes que P1. x tomará el valor 1. int x=0; void p1 () { x = x + 1; } void p2 () { x = x + 2; } p1 x = x + 1; sync; p2 sync; x = x + 2; Manuel Arenaz, 2006 Programación con OpenMP
23 28 Paralelización de Programas Secuenciales: OpenMP Directivas de Sincronización de Threads (1/4) Implementa una sección crítica: Todos los threads ejecutan el bloque pero sólo un thread al mismo tiempo tiene acceso al código Serialización de la ejecución de los threads!$omp critical [(name)]...código estrucutrado...!$omp end critical [(name)] #pragma omp critical [(name)] {...código estructurado... }
24 30 Paralelización de Programas Secuenciales: OpenMP Directivas de Sincronización de Threads (3/4) Sincroniza a todos los threads de un grupo. Espera hasta que todos los threads han alcanzado este punto del programa...código estructurado...!$omp barrier...código estructurado......código estructurado... #pragma omp barrier...código estructurado...
25 31 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Versión OpenMP /* Cálculo del contadori */ cont=0!$omp PARALLEL!$OMP DO do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 )!$OMP CRITICAL(SC1) cont++!$omp END CRITICAL(SC1) enddo!$omp ENDDO!$OMP END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions: Variable compartida x Variable compartida y Variable compartida cont Manuel Arenaz, 2006 Programación con OpenMP
26 32 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (1/10) Problema: Race conditions en el acceso a posiciones de memoria compartidas cuando alguno de los procesadores realiza una operación de escritura Soluciones: Mecanismos de sincronización Alto coste computacional Mecanismos de privatización
27 33 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (2/10) Mecanismo de privatización: Una variable (escalar o array) es privada respecto a cada una de las iteraciones de un bucle si: El valor asignado en una iteración no se utiliza en ninguna otra iteración del bucle En principio sólo existen durante la ejecución del bucle (e.g., variable temporal)
28 34 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (3/10) DEFAULT(PRIVATE SHARED NONE) Todas las variables dentro de la región paralela son declaradas como PRIVADAS, COMPARTIDAS o SIN DEFINIR Por defecto, todas son SHARED excepto los índices de bucle PRIVATE(v 1,...,v n ) Cada thread tiene una copia privada de las variables. Las variables no están definidas ni al entrar ni al salir. SHARED(v 1,...,v n ) Todos los threads comparten una única copia de la variable. Puede accederse a la variable concurrentemente Problemas de race conditions
29 35 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Versión OpenMP /* Cálculo del contadori */ cont=0!$omp PARALLEL!$OMP&PRIVATE(x,y)!$OMP DO do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 )!$OMP CRITICAL(SC1) cont++!$omp END CRITICAL(SC1) enddo!$omp ENDDO!$OMP END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions: Variable compartida x Variable compartida y Variable compartida cont Manuel Arenaz, 2006 Programación con OpenMP
30 36 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (4/10)!$OMP PARALLEL!$OMP DO DO I=1,1000 A(I)=B(I) END DO!$OMP END DO!$OMP END PARALLEL DO I=1,500 A(I)=B(I) END DO DO I=501,1000 A(I)=B(I) END DO Thread 1 Thread 2 Los arrays A y B están compartidas No hay race conditions porque en cada iteración se accede a elementos diferentes del array El escalar I es privado y cogerá un valor inicial y final dependiendo del número de threads
31 37 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (7/10) REDUCTION( operador intrínseca : v 1,...,v n ): Indica una operación de reducción sobre las variables de la lista, que deben ser escalares declarados como SHARED Operador: +, *, -,.AND.,.OR.,.EQV., o.neqv. Intrínseca: MAX, MIN, IAND, IOR o IEOR La variable de reducción se usa en sentencias de la forma: x = x operador expr x = expr operador x (excepto resta) x = intrínseca (x,expr) x = intrínseca (expr,x) donde expr no contiene referencias del escalar x.
32 38 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contadori */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Versión OpenMP /* Cálculo del contadori */ cont=0!$omp PARALLEL!$OMP&PRIVATE(x,y)!$OMP&SHARED(cont)!$OMP DO REDUCTION(+:cont) do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo!$omp ENDDO!$OMP END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions: Variable compartida x Variable compartida y Variable compartida cont Manuel Arenaz, 2006 Programación con OpenMP
33 39 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (5/10) FIRSTPRIVATE(v 1,...,v n ): Las variables de la lista son privatizadas e inicializadas a sus valores previos a la ejecución del bucle. LASTPRIVATE(v 1,...,v n ): Al finalizar la ejecución paralela del bucle, se asigna a la variable el valor correspondiente al procesador que ejecutó la última iteración del bucle secuencial.
34 40 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (6/10) Warning: Puede producir resultados diferentes a la ejecución secuencial!$omp PARALLEL!$OMP DO!$OMP& LASTPRIVATE(I)!$OMP& LASTPRIVATE(X) DO I=1,N IF(...) THEN X=... END IF END DO!$OMP END DO!$OMP END PARALLEL DO PRINT*,I,X El procesador que realiza la última iteración no tiene porque coincidir con el que contiene el último valor actualizado de X!! Por defecto, las variables privadas no existen al terminar la ejecución del bucle, por lo que no conservan su valor!!
35 41 Paralelización de Programas Secuenciales: OpenMP Cláusulas Principales OpenMP (10/10) SCHEDULE(STATIC, chunk): Reparte un subconjunto de iteraciones en cada thread de modo circular El tamaño del subconjunto viene dado por chunk (chunk=1 reparto de trabajo cíclico) Si no se especifica ningún valor de chunk reparte las iteraciones uniformemente entre los procesadores por bloques (raparto de trabajo por bloques)
36 42 Paralelización de Programas Secuenciales: OpenMP Ejemplo: Cálculo PI Versión secuencial /* Cálculo del contador */ cont=0 do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo /* Cálculo de PI */ pi=4*cont/n Versión OpenMP /* Cálculo del contador */ cont=0!$omp PARALLEL!$OMP&PRIVATE(x,y)!$OMP&SHARED(cont)!$OMP DO REDUCTION(+:cont)!$OMP&SCHEDULE(STATIC,1) do i=1,n x=aleatorio() y=aleatorio() if( x 2 +y 2 1 ) cont++ enddo!$omp ENDDO!$OMP END PARALLEL /* Cálculo de PI */ pi=4*cont/n Problemas: Replicación de cálculos Race conditions: Variable compartida x Variable compartida y Variable compartida cont Manuel Arenaz, 2006 Programación con OpenMP
37 43 Paralelización de Programas Secuenciales: OpenMP Variables de entorno de OpenMP OMP_NUM_THREADS Especifica el número de threads a usar en una región paralela (el valor por defecto depende de la implementación). Si el ajuste dinámico del número de threads está habilitado, el valor de esta variable especifica el número máximo de threads a usar. OMP_NESTED Habilita o deshabilita el anidamiento de paralelismo (el valor por defecto es.false.). $ export OMP_NESTED=TRUE
38 44 Paralelización de Programas Secuenciales: OpenMP Variables de entorno de OpenMP OMP_DYNAMIC Habilita o deshabilita el ajuste dinámico del número de threads (el valor por defecto depende de la implementación). $ export OMP_DYNAMIC=TRUE
39 45 Paralelización de Programas Secuenciales: OpenMP Librería OpenMP (1/4) subroutine OMP_SET_NUM_THREADS(integer) Especifica el número de threads a usar con la siguiente región paralela. Tiene que ser llamada desde una región secuencial del programa. Cuando se utiliza el ajuste dinámico de threads esta subrutina establece el número máximo de threads. integer function OMP_GET_NUM_THREADS( ) Devuelve el número de threads que están ejecutando una región paralela. integer function OMP_GET_MAX_THREADS( ) Devuelve el número máximo de threads que puede ser devuelto por llamadas a la función OMP_GET_NUM_THREADS(). integer function OMP_GET_THREADS_NUM() integer function OMP_GET_THREADS_NUM() Devuelve el número del thread dentro del equipo (valor entre 0 y OMP_GET_NUM_THREADS( ) -1)
40 46 Paralelización de Programas Secuenciales: OpenMP Librería OpenMP (2/4) integer function OMP_GET_NUM_PROCS( ) Devuelve el número de procesadores disponibles logical function OMP_IN_PARALLEL( ) Devuelve.TRUE. si es llamada desde una región ejecutándose en paralelo y.false. en caso contrario!$omp PARALLEL DEFAULT(PRIVATE), SHARED(X,NPOINTS) IAM = OMP_GET_THREAD_NUM( ) NP = OMP_GET_NUM_THREADS( ) IPOINTS = NPOINTS/NP CALL SUBDOMAIN(X,IAM,IPOINTS)!$OMP END PARALLEL
41 47 Paralelización de Programas Secuenciales: OpenMP Librería OpenMP (3/4) subroutine OMP_SET_DYNAMIC(logical) Habilita o deshabilita el ajuste dinámico del número de threads disponible en las regiones paralelas (el valor por defecto depende de la implementación). Si está habilitada, el número de threads especificado por el usuario (a través de la función o la variable de entorno) pasa a ser un límite máximo. El número de threads siempre permanece constante dentro de cada región paralela y su número viene dado por la función OMP_GET_NUM_THREADS( ). La función tiene prioridad sobre la variable de entorno OMP_DYNAMIC logical function OMP_GET_DYNAMIC( ) Devuelve.TRUE. si el ajuste dinámico del número de threads está habilitado y.false. en otro caso.
42 48 Paralelización de Programas Secuenciales: OpenMP Librería OpenMP (4/4) subroutine OMP_SET_NESTED(logical) Habilita o deshabilita el anidamiento de paralelismo. Tiene prioridad sobre la variable de entorno OMP_NESTED El número de threads usado para ejecutar una región paralela anidada depende de la implementación (pudiendo ser 1). logical function OMP_GET_NESTED( ) Devuelve.TRUE. si el anidamiento de paralelismo está habilitado y.false. en otro caso.
43
44
45
46
47
48
Computación Matricial y Paralela
Computación Matricial y Paralela Programación en Memoria Compartida Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia
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 detallesOpenMP. Qué es OpenMP?
OpenMP Qué es OpenMP? Modelo de programación paralela Paralelismo de memoria compartida Soporta el paralelismo por datos Escalable Permite paralelización incremental Extensiones a lenguajes de programación
Más detallesEs una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida
Algo de OPENMP Memoria Compartida Threads O hilos, se definen como flujos de instrucciones independientes, que se ejecutan separadamente del programa principal. Con estos hilos se aprovecha mucho una máquina
Más detallesTEMA 2: PROGRAMACIÓN PARALELA (I)
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua
Más detallesSistemas Complejos en Máquinas Paralelas
Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric
Más detallesIntroducción a la Programación de Memoria Compartida.. con OpenMP
Introducción a la Programación de Memoria Compartida.. con OpenMP Carlos Jaime BARRIOS HERNANDEZ, PhD. Escuela de Ingeniería de Sistemas e Informática Universidad Industrial de Santander Las herramientas
Más detalles1 Primitivas básicas de OpenMP
1 Primitivas básicas de OpenMP Consultar la página oficial de la plataforma OpenMP http://www.openmp.org/drupal/ Pragmas Es una directiva para el compilador que permite la definición de nuevas directivas
Más detallesÍndice. 1. Introducción. 1. Introducción. Regiones Paralelas. Ejemplo
Arquitectura de Computadores: Práctica de Multiprocesadores Introducción a OpenMP Índice 2. Regiones Paralelas: a) For b) Sections 3. Distribución del trabajo 4. Gestión de datos 5. Sincronización 6. Tareas
Más detallesProgramación paralela con OpenMP
Programación paralela con OpenMP Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento
Más detallesFrancisco J. Hernández López
Francisco J. Hernández López fcoj23@cimat.mx Ejecución de más de un cómputo (cálculo) al mismo tiempo o en paralelo, utilizando más de un procesador. Sistema de Cómputo Paralelo Hardware Parallel programming:
Más detallesTÉCNICAS DE CÁLCULO EN PARALELO: Directivas OpenMP y MPI (Message Passing Interface)
TÉCNICAS DE CÁLCULO EN PARALELO: Directivas OpenMP y MPI (Message Passing Interface) J. París, H. Gómez, X. Nogueira,F. Navarrina, I. Colominas, M. Casteleiro GMNI GRUPO DE MÉTODOS NUMÉRICOS EN INGENIERÍA
Más detallesAdolfo J. Banchio. FaMAF, IFEG-CONICET, Universidad Nacional de Córdoba. 27 04 10 Seminario de grupo 1
Paralelizar un Código usando OpenMP Adolfo J. Banchio FaMAF, IFEG-CONICET, Universidad Nacional de Córdoba 27 04 10 Seminario de grupo 1 Contenido Introducción Paralelización: por qué OpenMP? Qué es OpenMP?
Más detallesusando OpenMP (Parte I)
(Parte I) Universidad Politécnica de Madrid, España 26 de abril de 2007 Estructura de la clase 1 de OpenMP 2 Características fundamentales de OpenMP 3 y regiones seriales 4 Conceptos generales y habitual
Más detalles2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 1. Herramientas de programación paralela I: Directivas OpenMP
2º curso / 2º cuatr. 2º curso / 2º cuatr. Grado en Ing. Informática Arquitectura de Computadores Seminario 1. Herramientas de programación paralela I: Directivas OpenMP 2 Qué es OpenMP? De dónde viene
Más detallesProgramación de Memoria Compartida - OpenMP
Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Programación de Memoria Compartida - OpenMP Contenido 1 Tipos de paralelismo 2 OpenMP Ejemplo básico Directivas
Más detallesTEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte).
TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte). SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad
Más detallesPROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela
PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela
Más detallesCLUSTER FING: ARQUITECTURA Y APLICACIONES
CLUSTER FING: ARQUITECTURA Y APLICACIONES Gerardo Ares, Pablo Ezzatti Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción Conceptos
Más detalles2. Regiones Paralelas: 3. Distribución del trabajo 4. Gestión de datos 5. Sincronización. 7. Variables del entorno 8. Ejemplo Π
Arquitectura de Computadores: Práctica de Multiprocesadores Introducción a OpenMP 1. Introducción 2. Regiones Paralelas: Índice 3. Distribución del trabajo 4. Gestión de datos 5. Sincronización 6. Funciones
Más detallesProgramación Multihebra con OpenMP. José Miguel Mantas Ruiz Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada
Programación Multihebra con OpenMP José Miguel Mantas Ruiz Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos Modelo de Programación e Introducción Paralelización de bucles Gestión
Más detallesCómputo paralelo con openmp y C
Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27
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 detallesFrancisco Javier Hernández López
Francisco Javier Hernández López fcoj23@cimat.mx http://www.cimat.mx/~fcoj23 Ejecución de más de un cómputo (cálculo) al mismo tiempo o en paralelo, utilizando más de un procesador. Arquitecturas que hay
Más detallesProgramación en Memoria Compartida: OpenMP
Programación en Memoria Compartida: OpenMP Javier Cuenca Departamento de Ingeniería y Tecnología de Computadores Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo
Más detallesProgramación Paralela y Computación de Altas Prestaciones Programación con OpenMP
Programación Paralela y Computación de Altas Prestaciones Programación con OpenMP Javier Cuenca UniversidaddeMurcia Nociones básicas Modelo de programación fork-join, con generación de múltiples threads.
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 detallesParalelismo en monoprocesadores. Introducción
Paralelismo en monoprocesadores Introducción Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura Computadoras y técnicas Digitales Carrera: Ingeniería Sistemas Ciclo: 4º año 1 Técnicas para mejorar el
Más detallesLaboratorio de Paralelismo OpenMP: ejemplos y ejercicios
Laboratorio de Paralelismo OpenMP: ejemplos y ejercicios > Máquinas y directorios Vamos a trabajar con el siguiente multiprocesador SMP: PowerEdge 6850 (DELL) 4 procesadores Intel Xeon 7100 de doble núcleo
Más detallesCon estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:
Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la
Más detallesMultiprocesamiento en lenguaje C Introducción a Open Multiprocessing (OpenMP)
Multiprocesamiento en lenguaje C Introducción a Open Multiprocessing (OpenMP) Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías Algunas preguntas Qué es un proceso? Qué
Más detallesTaxonomía de las arquitecturas
Taxonomía de las arquitecturas 1 INTRODUCCIÓN 2 2 CLASIFICACIÓN DE FLYNN 3 2.1 SISD (SINGLE INSTRUCTION STREAM, SINGLE DATA STREAM) 3 2.2 SIMD (SINGLE INSTRUCTION STREAM, MULTIPLE DATA STREAM) 4 2.2.1
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 detallesModelos de Programación Paralela
Modelos de Programación Paralela Modelos de Programación para Multiprocesadores El Modelo de Variables Compartidas Expresión del Paralelismo en el Modelo de Variables Compartidas Primitivas de Sincronización
Más detallesSoluciones a ejercicios de paralelismo y concurrencia
Soluciones a ejercicios de paralelismo y concurrencia J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores
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 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 detallesLENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS
LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS Programación en Fortran Valentín Moreno ÍNDICE 1. Subprogramas 2. Funciones 3. Subrutinas 2 3 1. SUBPROGRAMAS 1. SUBPROGRAMAS Si necesitamos usar con frecuencia
Más detallesMETODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela
METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Tipos de paralelismo
Más detallesSubprogramas en Fortran 90. Seminario de Computación 2009
Seminario de Computación 2009 1. Algoritmos con nombre en Fortran 90 Un algoritmo con nombre es la generalización de un operador En Fortran 90 los algoritmos con nombre pueden ser: - Intrínsecos (propios
Más detalles1. Introducción. 1. Introducción. Ejemplo. Regiones Paralelas. Modelo de paralelismo: Fork-Join Un maestro crea y gestiona threads según necesidad:
Programación Paralela y Distribuida OpenMP Índice 1. Introducción 2. Regiones Paralelas: a) For b) Sections 3. Distribución del trabajo 4. Gestión de datos 5. Sincronización 6. Afinidad 7. Tareas 8. Funciones
Más detallesProgramación Gráfica de Altas Prestaciones
rogramación Gráfica de Altas restaciones lataformas de altas prestaciones para Infomática Gráfica. Máster de Desarrollo de Software Depto. de Lenguajes y Sistemas Informáticos lsi.ugr.es/~jmantas/ga 1.
Más detallesJavier Ibáñez González
Javier Ibáñez González Despacho 109 Edificio DSIC (1F) Tutorías bajo demanda e-mail: jjibanez@dsic.upv.es http://personales.upv.es/jjibanez Práctica P2 (OpenMP): sesiones 4 y 5 Práctica P3 (MPI): sesiones
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 detallesLección 3 Sentencias de control
3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para
Más detallesMaster SIA 2012/13. Programación de Sistemas Paralelos. OpenMP: Ejercicios prácticos. Facultad de Informática. Ejercicio 1.A. pi.c
Master SIA 2012/13 Facultad de Informática Programación de Sistemas Paralelos OpenMP: Ejercicios prácticos En el directorio templates/practica de tu cuenta msiaxx tienes varios programas que hay que procesar
Más detallesProgramación con OpenMP
Curso de Promoción Educativa Programación en el Supercomputador Ben Arabi Programación con OpenMP Javier Cuenca Universidad de Murcia Indice de la sesión Introducción. Nociones básicas Ejemplo inicial
Más detallesProgramación sobre sistemas de memoria compartida: programación con OpenMP
Programación sobre sistemas de memoria compartida: programación con OpenMP María J. Martín Grupo de Arquitectura de Computadores Universidad de A Coruña España Contenidos del curso Tema 1: Introducción
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 detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesGuía práctica de estudio 11 Introducción a OpenMP.
Guía práctica de estudio 11 Introducción a OpenMP. Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 11 Estructura de datos y Algoritmos II Introducción
Más detallesParalelización especulativa
Sergio Aldea Departamento de Informática Universidad de Valladolid sergio@infor.uva.es MUI-TIC, curso 2013-2014 1 / 48 Índice Conceptos fundamentales Ejecución especulativa por software Especulación +
Más detallesPARTE II PROGRAMACION CON THREADS EN C
PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.
Más detallesGranularidad y latencia
Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación
Más detallesProgramación Multihilo
Proyecto Universidad-Secundaria Incorporación de contenidos de programación paralela en la rama de tecnologías informáticas Facultad Informática, Universidad de Murcia e Instituto de Enseñanza Secundaria
Más detallesTema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas
Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas Arquitectura de Computadores Curso 2009-2010 Transparencia: 2 / 21 Índice Introducción Taxonomía de Flynn
Más detallesModelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación
3 - Paradigmas de Programación En los inicios los lenguajes de programación imitaron y abstrajeron las operaciones de una computadora, lo cual trajo aparejado que el tipo de computadora para el cual fueron
Más detallesINTRODUCCION A LA COMPUTACION PARALELA. 2nd Workshop: New Frontiers of Bioinformatics in Latin America Gridding Biology. Dr.
INTRODUCCION A LA COMPUTACION PARALELA 2nd Workshop: New Frontiers of Bioinformatics in Latin America Gridding Biology Dr. Pablo Guillén Universidad de Los Andes 22-26 de Noviembre de 2004 Qué es el Paralelismo?
Más detallesPARADIGMA y LENGUAJES DE PROGRAMACIÓN
CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre
Más detallesCapítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION
Capítulo 3 Subprogramas Con lo explicado hasta aquí se pueden escribir programas sencillos y no demasiado largos. Pero varias razones justifican la necesidad de disponer de otro tipo de recursos. Por una
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesProgramación Concurrente Recopilación de teoría referente a la materia
UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a
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 detallesEstructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Más detallesCómputo en paralelo con OpenMP 1
Cómputo en paralelo con OpenMP 1 Miguel Vargas-Félix miguelvargas@cimat.mx http://www.cimat.mx/~miguelvargas CIMAT, September 2, 2015 1/34 Velocidad de los procesadores de escritorio Recientemente, la
Más detallesIntroducción a Fortran
mario.merino@upm.es Escuela Técnica Superior de Ingenieros Aeronáuticos Universidad Politécnica de Madrid 4 de marzo de 2011 Índice Introducción 1 Introducción 2 3 4 Fin? Qué es programar? Un ordenador
Más detallesLaboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C
Laboratorio de Arquitectura de Redes Sentencias de control en lenguaje C Sentencias de control en lenguaje C Introducción Sentencia if-else Sentencia switch Sentencia while Sentencia do-while Sentencia
Más detallesIMPLEMENTACIÓN DE COMPUTACIÓN DE ALTO RENDIMIENTO Y PROGRAMACIÓN PARALELA EN CÓDIGOS COMPUTACIONALES CARLOS ANDRÉS ACOSTA BERLINGHIERI
IMPLEMENTACIÓN DE COMPUTACIÓN DE ALTO RENDIMIENTO Y PROGRAMACIÓN PARALELA EN CÓDIGOS COMPUTACIONALES CARLOS ANDRÉS ACOSTA BERLINGHIERI UNIVERSIDAD EAFIT ESCUELA DE INGENIERÍAS ÁREA DE DISEÑO MEDELLÍN 2009
Más detallesCómputo en paralelo con OpenMP 2
Cómputo en paralelo con OpenMP 2 Miguel Vargas-Félix miguelvargas@cimat.mx http://www.cimat.mx/~miguelvargas CIMAT, September 2, 2015 1/30 Variables private y shared En el ejemplo del producto punto: double
Más detallesARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp.
ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip (denominados
Más detallesMemoria compartida simétrica
Memoria compartida simétrica Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
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 detallesAlgoritmo, Estructuras y Programación I Ing. Marglorie Colina
Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona
Más detallesTema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesCARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR
CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA Autor ERIKA VIVIANA RIAÑO BEJAR Director JOSE ORLANDO MALDONADO BAUTISTA DEPARTAMENTO DE INGENIERÍAS ELÉCTRICA
Más detallesMiddlewar Middlew es par ar a es par Sistemas de Alto Re R ndimiento José M. Peña
Middlewares para Sistemas de Alto Rendimiento José M. Peña Contenidos Middlewares: Ejemplo lenguajes/entornos de programación: Lenguaje de programación paralela: OpenMP Ejemplos de servicios HPC: Sistemas
Más detallesEntornos de programación paralela basados en modelos/paradigmas
Program. paralela/distribuida Entornos de programación paralela basados en modelos/paradigmas Sobre la programación paralela 1 Índice Reflexiones sobre la programación paralela MapReduce Propuesta original
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesIntroducción a la. Programación con
Introducción a la Programación con C Objetivo El alumno comprendera los conceptos sobre cuales se rige la programación estructurada mediante una base teórica y un conjunto de prácticas, enfocando dichos
Más detallesPrác%ca 1 Sesión 3 1
Prác%ca 1 Sesión 3 1 Obje%vo Paralelizar códigos mediante los iden%ficadores de hilos Paralelizar dos códigos secuenciales que calculen: 1. El mayor número primo del %po unsigned long long int 2. El número
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 detallesÍndice general 7. Presentación 15
ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.
Más detallesIntroducción a la Programación
0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;
Más detallesLusitania. Pensando en Paralelo. César Gómez Martín
Lusitania Pensando en Paralelo César Gómez Martín cesar.gomez@cenits.es www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de
Más detallesSISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP.
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip
Más detallesConcurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
Más detallesALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Más detallesANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Computacion de alto rendimiento. CURSO ACADÉMICO - SEMESTRE Segundo semestre
ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Computacion de alto rendimiento CURSO ACADÉMICO - SEMESTRE 2014-15 - Segundo semestre FECHA DE PUBLICACIÓN Enero - 2015 GA_10II_105000063_2S_2014-15 Datos
Más detallesLa Máquina de Acceso Aleatorio (Random Access Machine)
La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:
Más detallesIngeniería del software I 9 - Diseño detallado
Diseño detallado Ingeniería del software I 9 - Diseño detallado El diseño de alto nivel no especifica la lógica. Esto es incumbencia del diseño detallado. En este sentido, una notación textual provee mejor
Más detallesFundamentos de Informática
Fundamentos de Informática Tema 5 Estructuras de Control 1 Contenidos La estructura secuencial La estructura condicional Condicional simple Multicondicional Sentencia SELECT CASE Estructuras de control
Más detallesCDI Arquitecturas que soportan la concurrencia. granularidad
granularidad Se suele distinguir concurrencia de grano fino es decir, se aprovecha de la ejecución de operaciones concurrentes a nivel del procesador (hardware) a grano grueso es decir, se aprovecha de
Más detallesEscalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.
Página 1 de 8 Introducción a BSP La motivación para el modelo de computación paralela BSP (The Bulk-Synchronous Parallel Model) surge de una comparación con lo que se observa en el mundo de la computación
Más detallesFunciones y subrutinas
Algorítmica y Lenguajes de Programación Funciones y subrutinas Funciones y subrutinas. Introducción El diseño descendente permite obtener un programa que resuelva un problema dividiendo este en subproblemas
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Sentencias de control en lenguaje Sentencias de control en lenguaje Introducción Sentencia if-else Sentencia switch Sentencia while Sentencia
Más detallesEjercicios de jerarquía de memoria
Ejercicios de jerarquía de memoria J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo ARCOS Departamento
Más detalles