TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte).

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

Download "TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte)."

Transcripción

1 TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte). SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla 1

2 5.1. Conceptos básicos. INDICE 5.2. Taxonomía y modelos de procesamiento paralelo Multiprocesadores con memoria centralizada Multiprocesadores con memoria distribuida Caracterización de las aplicaciones y Modelos de programación paralela Redes y topologías de interconexión Sincronización y consistencia de memoria Sistemas multicomputadores para HPC Sistemas distribuidos para servicios y almacenamiento de datos (WSC). SPD. Tema 5. 2

3 ESQUEMA DE MULTIPROCESADOR Multiprocesador: término general Remoto Local SPD. Tema 5. 3

4 Componentes del tiempo de ejecución Hallar Areal, Aideal SPD. Tema 5. 4

5 Argumentos a favor de Multiprocesadores Single Processor Performance Move to multi-processor RISC CISC SPD. Tema 5. 5

6 Puntos débiles de Multiprocesadores (I) Recordar Ley de Amdahl Ej: queremos conseguir una aceleración de 80, con 100 procesadores Qué fracción del programa debe ser paralela? F 99,75 EJ : Un compilador intenta paralelizar un código, y lo consigue en la mitad del programa A 1 F 1 F N * N 2N N 1 2 SPD. Tema 5. 6

7 Puntos débiles de Multiprocesadores (II) Difícil extracción de paralelismo: Artesanal Automática sólo si es evidente Difícil analizar si una aplicación es paralelizable. Lentitud en las comunicaciones Si un procesador necesita un dato remoto alta latencia, del orden de microsegundos (Latencia a memoria local es del orden de pocos ns) SPD. Tema 5. 7

8 5.2. Taxonomía y modelos de procesamiento paralelo Clasificación de Flynn (años 60) Single / Multiple Instruction / Data (flows) SISD SIMD MISD MIMD PUNTOS CLAVE EN EL DISEÑO: Red de interconexión La forma de organizar la jerarquía de memoria SPD. Tema 5. 8

9 5.2. Taxonomía y modelos de procesamiento paralelo Según Organización de la memoria principal Disposición física Disposición lógica Espacio direcc. compartido Espacio disjunto de direcc. Memoria centralizada UMA No tiene sentido Memoria distribuida NUMA MPM Igual software, Procesos distinto hardware. en Paralelo Threads en Paralelo SPD. Tema 5. 9

10 UMA (Uniform Memory Access) Tiempo de acceso uniforme para toda dirección Tb.llamados SMP s (Multiprocesadores simétricos) Ej: casi todos los multicore actuales Cuello de botella: acceso a memoria principal : Grandes cachés en cada procesador AB solicitado por cada procesador crece cada vez más Número de procesadores no puede ser alto. Hoy N 32. P1 P2 P3 P4 Caché: 1 ó más niveles Caché: 1 ó más niveles Caché: 1 ó más niveles Caché: 1 ó más niveles Subsistema de interconexión simple: latencia baja y constante Memoria Principal E/S SPD. Tema 5. 10

11 NUMA (NonUniform Memory Access) Tiempo de acceso a memoria No uniforme Ventaja: compatibles con UMA (se aprovecha el código) Hace 10 años poco habituales: supercomputadores investigación Hoy: Intel Core con QuickPath Interconnect, AMD Opteron con HyperTransport Otros diseños posibles: COMA (Caché Only Memory Architecture) y mixtos (investigación) P1 P2 P3 P4 Cachés y memoria Cachés y memoria Cachés y memoria Cachés y memoria Subsistema de interconexión complejo: latencia alta SPD. Tema 5. 11

12 Coherencia entre cachés Comunicación implícita (variables compartidas) Una misma línea replicada en varios procesadores Hard adicional para solucionarlo. En UMA: Protocolos de husmeo (snooping): Protocolo ISX (y otros): similar al de Copy Back Línea Inválida (Invalid) Línea Compartida (Shared) Línea exclusiva (exclusive) 2 cores ejecutan: P1 P2 a[0]++; a[0]++; a[1]++; a[2]++; En NUMA: coherencia más difícil de mantener en hard: directorios CUIDADO: falsas comparticiones (false sharing). SPD. Tema 5. 12

13 MPM (Message Passing Machines) Espacio de direcciones de memoria distribuido Cada procesador es un computador independiente del resto: multicomputador Fácilmente escalable (excepto AB red) Comunicación explícita a través de mensajes (igual que la comunicación entre procesos del S.O.). P1 P2 P3 P4 Cachés y memoria Cachés y memoria Cachés y memoria Cachés y memoria Subsistema de interconexión complejo: paso de mensajes (latencia muy alta) SPD. Tema 5. 13

14 Herramientas de programación Muchos intentos (y siguen ) Lenguaje de programación paralelo: No es factible: Difícil de imponer Espacio de direcciones compartido OpenMP: estándar (varios fabricantes importantes: HP, IBM, SUN, SG...) de directivas del precompilador. Espacio de direcciones disjuntos: clusters de computación. Librería Message Passing Interface (MPI): especificación para librerías de paso de mensajes SPD. Tema 5. 14

15 OpenMP: descripción (I) Espacio de direcciones compartido Permite paralelismo incremental Modelo de programación paralela SPMD (Single Program Multiple Data) Todos los threads ejecutan la misma copia del código. A cada thread se le asigna un identificador (tid) Para diferenciar lo ejecutado por cada thread: if (tid == 0) then... else... constructores específicos de reparto de tareas (work sharing). SPD. Tema 5. 15

16 OpenMP : descripción (II) No es un nuevo lenguaje, sino API con: directivas para el compilador facilita la portabilidad y la paralelización incremental. unas pocas funciones de biblioteca algunas variables de entorno Un programa puede ser compilado por compiladores que no soportan OpenMP Las directivas son tratadas como comentarios e ignoradas. ATENCIÓN: No olvidar Compatibilidad OpenMP en el compilador SPD. Tema 5. 16

17 Sintaxis de OpenMP Pragma en C y C++: #pragma omp construct [clause [clause] ] En Fortran, directivas : C$OMP construct [clause [clause] ]!$OMP construct [clause [clause] ] *$OMP construct [clause [clause] ] SPD. Tema 5. 17

18 Claves del diseño de una aplicación (I) 1. directivas que especifican una región paralela (código replicado) 2. reparto de tareas (específicas para cada thread) 3. sincronización entre threads Fácil para bucles (paralelizables directa o indirectamente) Sólo paso 1 (2 y 3 los introduce el compilador) SPD. Tema 5. 18

19 Claves del diseño de una aplicación (II) 1. Partiendo de un programa serie, buscar partes del código paralelizables: estructuras de control paralelo (bucles for) reparto de tareas 2. Incluir la comunicación entre hilos a través de variables compartidas (Cuidado con ámbito de las variables) 3. Sincronizar exclusión mutua barreras SPD. Tema 5. 19

20 Programa sencillo Programa Secuencial void main() { double a[1000],b[1000],c[1000]; for (int i = 0; i< 1000; i++){ a[i] = b[i] + c[i]; Programa Paralelo void main() { double a[1000],b[1000],c[1000]; #pragma omp parallel for for (int i = 0; i< 1000; i++){ a[i] = b[i] + c[i]; SPD. Tema 5. 20

21 Programa sencillo: explicación (I) void main() { double a[1000],b[1000],c[1000]; /*Un único pragma, pero el compilador debe previamente crear tantos hilos P como permita en paralelo el procesador */ /* debe decidir que hacer con las variables a[],b[],c[],i: crea copias y las replica? no crea copias:son compartidas?*/ #pragma omp parallel for /*aquí debe trocear en bucle en P hilos */ for (int i = 0; i< 1000; i++){ a[i] = b[i] + c[i]; SPD. Tema 5. 21

22 Programa sencillo: explicación (II) #pragma omp parallel for /*Troceado por defecto (existen otros)*/ //Supongamos P=4 //Hilo 0 for (int i = 0; i< 250; i++){ a[i] = b[i] + c[i]; //Hilo 1 for (int i = 250; i< 500; i++){ a[i] = b[i] + c[i]; //Hilo 2 for (int i = 500; i< 750; i++){ a[i] = b[i] + c[i]; //Hilo 3 for (int i = 750; i< 1000; i++){ a[i] = b[i] + c[i]; SPD. Tema 5. 22

23 Regiones paralelas y críticas El modelo de programación paralela es Fork - Join. El master thread genera P threads que se ejecutan en paralelo. Critical regions SPD. Tema 5. 23

24 OpenMP runtime library omp_get_num_threads() devuelve el número actual de threads omp_get_thread_num() devuelve el identificador de ese thread omp_set_num_threads(n) activa el número de threads Qué parte le corresponde al hilo 0 de este bucle (usar estas func.)? Y al hilo k? for (int i = 0; i< n; i++){ SPD. Tema 5. 24

25 Declarando Ámbito de datos (I) shared: variable es compartida por todos los procesos. Ej: vectores del proceso. private: Cada proceso tiene una copia #pragma omp parallel for shared(a,b,c,n) private(i, temp) for (i = 0; i < n; i++) { temp = a[i]/b[i]; a[i] = b[i] + temp * c[i]; Hay reglas para decidir por defecto el ámbito, pero mejor no arriesgarse Qué pasa si n=2; Lo peligroso son las escrituras float a[2], b[2], c[2];? CUIDADO: false sharing SPD. Tema 5. 25

26 Declarando Ámbito de datos (II) Variables REDUCTION: operaciones colectivas sobre elementos de un array Operadores: + * - & ^ && asum = 0.0; aprod = 1.0; #pragma omp parallel for reduction(+:asum) reduction(*:aprod) for (i = 0; i < n; i++) { asum = asum + a[i]; aprod = aprod * a[i]; SPD. Tema 5. 26

27 Planificación de Tareas: SCHEDULE (I) Diferentes formas de asignar iteraciones a threads schedule(static [,chunk]) chunk iteraciones se asignan de manera estática a los threads en round-robin schedule (dynamic [,chunk]) Cada thread toma chunk iteraciones cada vez que está sin trabajo schedule (guided [,chunk]) Cada thread toma progresivamente menos iteraciones (dinámicamente) SPD. Tema 5. 27

28 Planificación de Tareas: SCHEDULE (II) igual num iteraciones para static, dynamic. exponencialm. decreciente para guided Hilo a b c a b c d g e h f e g d h i f a b c d e g f i Static Dynamic Guided SPD. Tema 5. 28

29 Planificación de Tareas: SCHEDULE (III) RECUERDA: Static : menos coste / mejor localidad datos Dynamic: más coste / carga más equilibrada Static: bucles simples Dynamic: si carga varía según la iteración SPD. Tema 5. 29

30 Regiones Paralelas #pragma omp parallel { /* Bloque básico replicado (ejecutado) por cada thread */ Reparto de tareas en f(tid). Pag 15 Pero carrera entre todos Qué se imprime? SPD. Tema 5. 30

31 Work Sharing (reparto de tareas) 1. Directiva for, para repartir la ejecución de las iteraciones de un bucle entre todos los threads (bloques básicos y número de iteraciones conocido). Se suele usar junto a omp parallel for 2. Directiva sections, para definir manualmente trozos o secciones de una región paralela a repartir entre los threads en función del tid. 3. Directiva single, para definir un trozo de código que sólo debe ejecutar un thread. SPD. Tema 5. 31

32 Secciones (una por hilo) #pragma omp parallel sections { #pragma omp section { printf ("id s1=%d,\n,omp_get_thread_num()); for (i=0; i<tam/2; i++) y[i] = a*x[i] + y[i]; #pragma omp section { printf ("id s2=%d,\n,omp_get_thread_num()); for (i=tam/2; i<tam; i++) y[i] = a*x[i] + y[i]; Escribir esto con #pragma omp parallel (ver 2 pag. antes) SPD. Tema 5. 32

33 #pragma omp parallel {... ; #pragma omp single inicializar(a); Directiva single #pragma omp for // todos // los threads deben alcanzar // la directiva paralela for(i=0; i<n; i++) A[i] = A[i] * A[i] + 1; parallel for single... ; #pragma omp single copiar(b,a); SPD. Tema single

34 Regiones paralelas y críticas Los threads se comunican utilizando variables compartidas. El uso inadecuado de variables compartidas origina carreras (data-race) Uso de sincronización o exclusión para evitarlas NOTA: sincronización es muy costosa en tiempo: usar lo menos posible SPD. Tema 5. 34

35 Exclusión Mutua: Sección Crítica #pragma omp parallel shared(x,y) { #pragma omp critical (section1) actualiza(x); //only one thread usa(x); #pragma omp critical(section2) actualiza(y); //only one thread usa(y); Qué ocurre si no se declara la sección crítica? SPD. Tema 5. 35

36 Exclusión Mutua: Sección Crítica EJ. Qué pasa si cnt++ no se declara como crítico? SPD. Tema 5. 36

37 Sincronización: Barreras Los threads se detienen hasta que alcancen la barrera nt=omp_get_num_threads(); #pragma omp parallel private (i, id) { id=omp_get_thread_num(); for (i=id*tam/nt; i<(id+1)*tam/nt; i++) { y[i] = a*x[i] + y[i]; #pragma omp barrier // aquí seguro que todo y[] está actualizado for (i=id*tam/nt; i<(id+1)*tam/nt; i++) { z[i] = b + y[tam-i-1]; Se pueden fusionar los bucles? Y si fuera y[i]? SPD. Tema 5. 37

38 Cálculo de PI: Secuencial static long num_steps = ; double step; void main () { int i; double x, pi, sum = 0.0; step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); pi = step * sum; arctg ( x) 1 1 arctg(1) 4 arctg(0) 0 x x 0 2 arctg( x) SPD. Tema 5. 38

39 Cálculo de PI: Omp Reduction #include <omp.h> static long num_steps = ; double step; void main () { int i; double x, pi, sum = 0.0; step = 1.0/(double) num_steps; omp_set_num_threads(2); #pragma omp parallel for reduction(+:sum) private(x) for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); pi = step * sum; SPD. Tema 5. 39

40 Cálculo de PI: Omp manualmente #include <omp.h> static long num_steps = ; double step; void main () { int i; double x, pi, sum[2]; step = 1.0/(double) num_steps; omp_set_num_threads(2); #pragma omp parallel { double x; int id; id = omp_get_thread_num(); Qué le pasa al for comentado? Hilo 0 Hilo 1 //for (i=id+1, sum[id]=0.0;i<= num_steps; i=i+2){ for (i=id* num_steps/2, sum[id]=0.0; i<= (id+1)* num_steps/2; i++ ) { x = (i+0.5)*step; sum[id] += 4.0/(1.0+x*x); for(i=0, pi=0.0;i<2;i++) pi+=sum[i]*step; SPD. Tema 5. 40

Sistemas Complejos en Máquinas Paralelas

Sistemas 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 detalles

Cómputo paralelo con openmp y C

Có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 detalles

Es una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida

Es 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 detalles

Computación Matricial y Paralela

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 detalles

Programación paralela con OpenMP

Programació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 detalles

Memoria compartida simétrica

Memoria 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 detalles

Taxonomía de las arquitecturas

Taxonomí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 detalles

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Con 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 detalles

Paralelización de Programas Secuenciales: OpenMP

Paralelización de Programas Secuenciales: OpenMP Paralelización de Programas Secuenciales: OpenMP http://www.openmp.org Manuel Arenaz arenaz@udc.es Índice Introducción a la programación paralela Programación con OpenMP Directivas de compilación Librería

Más detalles

1 Primitivas básicas de OpenMP

1 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

CLUSTER FING: ARQUITECTURA Y APLICACIONES

CLUSTER 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 detalles

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo Arquitectura de Computadoras Clase 9 Procesamiento paralelo Introducción al procesamiento paralelo Sea cual sea el nivel de prestaciones, la demanda de máquinas de mayor rendimiento seguirá existiendo.

Más detalles

Francisco Javier Hernández López

Francisco 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 detalles

Laboratorio de Paralelismo OpenMP: ejemplos y ejercicios

Laboratorio 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 detalles

MULTIPROCESADORES TIPOS DE PARALELISMO

MULTIPROCESADORES TIPOS DE PARALELISMO Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez. Paralelismo Conceptos generales Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez. Ejecución paralela: varias tareas/instrucciones de un programa

Más detalles

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas,

Más detalles

Programació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 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 detalles

INTRODUCCION 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. 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 detalles

Introducción a los Sistemas Multiprocesadores

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

Más detalles

Taller de Programación Paralela

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

Más detalles

Lusitania. Pensando en Paralelo. César Gómez Martín

Lusitania. 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 detalles

Arquitectura de Computadoras para Ingeniería

Arquitectura de Computadoras para Ingeniería Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1 Cuatrimestre 2016 Dra. DCIC - UNS 1 Multiprocesadores 2 Clasificación de Flynn Clasificación de 1966 En función del flujo de instrucciones y datos

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar

Más detalles

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS Computación de Alta Performance Curso 2009 CONTENIDO Arquitecturas secuenciales y paralelas. Clasificación de Flynn. Modelo SIMD. GPUs. Modelo SISD. Modelo SIMD. Arquitectura MIMD MIMD con memoria compartida.

Más detalles

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos:

Más detalles

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores

Más detalles

CDI Arquitecturas que soportan la concurrencia. granularidad

CDI 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 detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Factores de Rendimiento en Entornos Multicore

Factores de Rendimiento en Entornos Multicore Factores de Rendimiento en Entornos Multicore César Allande Álvarez callande@caos.uab.es Computer Architecture & Operating Systems Department (CAOS) Barcelona, Spain Director: Eduardo César Galobardes

Más detalles

Soluciones a ejercicios de paralelismo y concurrencia

Soluciones 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 detalles

TEMA 1: CONCEPTOS BÁSICOS DE PARALELISMO Y ANÁLISIS DE PRESTACIONES

TEMA 1: CONCEPTOS BÁSICOS DE PARALELISMO Y ANÁLISIS DE PRESTACIONES TEMA 1: CONCEPTOS BÁSICOS DE PARALELISMO Y ANÁLISIS DE PRESTACIONES SISTEMAS PARALELOS Y DISTRIBUIDOS www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla 1 Arquitectura:

Más detalles

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005 Universidad del País Vasco Facultad de Informática Dpto. de Arquitectura y Tecnología de Computadores Arquitecturas Paralelas Examen de Febrero 24 Enero 2005 Apellidos: Nombre: Grupo: Firma: 1 / 2 / 3

Más detalles

2º 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. 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 detalles

Taller de Programación Paralela

Taller de Programación Paralela Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile March 17, 2008 Qué es paralelismo? Una estrategia compuesta de elementos de hardware y software para

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar

Más detalles

Granularidad y latencia

Granularidad 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 detalles

Master 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. 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 detalles

Cómputo en paralelo con OpenMP 1

Có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 detalles

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso 2016-2017 Presentación e introducción Félix García Carballeira Grupo de Aruitectura de Computadores felix.garcia@uc3m.es

Más detalles

Paradigma de paso de mensajes

Paradigma de paso de mensajes Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:

Más detalles

Clasificación de las Arquitecturas

Clasificación de las Arquitecturas Clasificación de las Arquitecturas MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Por la taxonomía de Flynn 1 Flynn Flujo de datos Simple Múltiple Flujo de datos Simple Múltiple SISD MISD

Más detalles

Modelos de computadores paralelos

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

Más detalles

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso Proceso Threads, SMP, and Microkernels Capítulo 4 Propiedad de Recurso el proceso se ubica en un espacio de direccionamiento virtual que tiene la imagen del proceso Planificación/ejecución sigue un camino

Más detalles

Paralelización especulativa

Paralelizació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 detalles

EVOLUCIÓN DE LOS PROCESADORES

EVOLUCIÓN DE LOS PROCESADORES EVOLUCIÓN DE LOS PROCESADORES Lecturas recomendadas: * Tanembaum, A. Organización de computadoras. Cap. 1 * Stallings, W. Organización y arquitectura de computadores. Cap. 2 Arquitectura de una computadora

Más detalles

Adolfo J. Banchio. FaMAF, IFEG-CONICET, Universidad Nacional de Córdoba. 27 04 10 Seminario de grupo 1

Adolfo 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 detalles

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

PARADIGMA 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 detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento

Más detalles

Plataformas paralelas

Plataformas paralelas Plataformas paralelas Curso 2011-2012 Elementos de un computador paralelo Hardware: Múltiples procesadores Múltiples memorias Redes de interconexión Software: Sistemas Operativos paralelos Programas orientados

Más detalles

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (II) Facultad de Ingeniería - Universidad de la República Curso 2016

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (II) Facultad de Ingeniería - Universidad de la República Curso 2016 Aspectos avanzados de arquitectura de computadoras Multiprocesadores (II) Facultad de Ingeniería - Universidad de la República Curso 2016 Distributed Shared Memory (1/3) Imagen tomada del libro Computer

Más detalles

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

de Gran Canaria Centro de Tecnología Médica  Programación Concurrente Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales

Más detalles

Indice 1. Introducción al procesamiento paralelo 2. Estructura de los multiprocesadores de memoria compartida

Indice 1. Introducción al procesamiento paralelo 2. Estructura de los multiprocesadores de memoria compartida Tema 8: Multiprocesadores de memoria compartida y distribuida Indice 1. Introducción al procesamiento paralelo 2. Estructura de los multiprocesadores de memoria compartida 3. Medio de interconexión de

Más detalles

Programación en Intel Xeon Phi

Programación en Intel Xeon Phi Programación en Intel Xeon Phi David Corbalán Navarro Máster en Nuevas Tecnologías de la Informática Índice Introducción al paralelismo Niveles de paralelismo Paradigmas de programación paralela Manycores

Más detalles

Paralelismo en el procesador

Paralelismo en el procesador 2017 Paralelismo en el procesador ARQUITECTURA DE COMPUTADORAS ING. ELMER PADILLA AUTOR: GERARDO ROBERTO MÉNDEZ LARIOS - 20111013326 Ciudad universitaria, Tegucigalpa M.D.C., 04 de mayo del 2017. Contenido

Más detalles

Memoria compartida distribuida

Memoria compartida distribuida Memoria compartida distribuida 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 detalles

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 1 Introducción al paralelismo Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 1: Introducción Necesidad del paralelismo Rendimiento de

Más detalles

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI. PREPARACIÓN

Más detalles

Arquitectura de Computadores: Exámenes y Controles

Arquitectura de Computadores: Exámenes y Controles 2º curso / 2º cuatr. Grado en Ing. Informática Doble Grado en Ing. Informática y Matemáticas Arquitectura de Computadores: Exámenes y Controles Examen de Prácticas AC 05/07/2013 resuelto Material elaborado

Más detalles

Threads, SMP y Microkernels. Proceso

Threads, SMP y Microkernels. Proceso Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual

Más detalles

HPC 101 Introducción a la computación de alto rendimiento

HPC 101 Introducción a la computación de alto rendimiento HPC 101 Introducción a la computación de alto rendimiento Costa Rica HPC School 2018 Prof. Alvaro de la Ossa Osegueda, Dr.rer.nat. alvaro.delaossa@ucr.ac.cr Escuela de Ciencias de la Computación e Informática,

Más detalles

Trabajo de investigación Paralelismo en el procesador

Trabajo de investigación Paralelismo en el procesador Universidad Nacional Autónoma de Honduras Facultad de Ingeniería Departamento de Ingeniería en Sistemas Trabajo de investigación Paralelismo en el procesador Saúl Armando Laínez Girón 20101006758 IS603

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) INTRODUCCIÓN MPI (Message Passing Interface) como es un interfaz estandarizada para la realización de aplicaciones paralelas basadas en pasaje de mensajes. El modelo de

Más detalles

Conceptos básicos de procesamiento paralelo (1)

Conceptos básicos de procesamiento paralelo (1) Conceptos básicos de procesamiento paralelo (1) Paralelismo: En un sistema computador hay paralelismo cuando, al menos, durante algunos instantes de tiempo ocurren varios eventos similares Ejecución concurrente

Más detalles

DISEÑO E IMPLEMENTACIÓN DE UN CLUSTER TIPO BEOWULF PARA EL DESARROLLO DE CÓMPUTO CIENTÍFICO AVANZADO

DISEÑO E IMPLEMENTACIÓN DE UN CLUSTER TIPO BEOWULF PARA EL DESARROLLO DE CÓMPUTO CIENTÍFICO AVANZADO INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO DISEÑO E IMPLEMENTACIÓN DE UN CLUSTER TIPO BEOWULF PARA EL DESARROLLO DE CÓMPUTO CIENTÍFICO AVANZADO

Más detalles

Programación Paralela y Distribuida

Programación Paralela y Distribuida Capítulo 1 Programación Paralela y Distribuida Domingo Giménez 1, Murilo Boratto 2 y Leandro Coelho 3 Abstract The following text is the material of the class sessions of the Laboratory of Parallel and

Más detalles

Java. Introducción a la Programación Orientada a Objetos

Java. Introducción a la Programación Orientada a Objetos Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

GRADO EN INGENIERÍA DE COMPUTADORES

GRADO EN INGENIERÍA DE COMPUTADORES GRADO EN INGENIERÍA DE COMPUTADORES Departamento Arquitecturas de Paralelas Automática Prof. Dr. José Antonio de Frutos Redondo Curso 2013-2014 Tema 4. Arquitecturas Paralelas Arquitecturas paralelas.

Más detalles

Programación en Entornos Paralelos: MPI

Programación en Entornos Paralelos: MPI 1-11 Marzo de 2017 FACET -UNT Programación en Entornos Paralelos: MPI Graciela Molina mgracielamolina@gmailcom TRADICIONALMENTE Procesamiento secuencial 2 TRADICIONALMENTE Procesamiento secuencial Si ya

Más detalles

Módulo: Modelos de programación para Big Data

Módulo: Modelos de programación para Big Data Program. paralela/distribuida Módulo: Modelos de programación para Big Data (título original: Entornos de programación paralela basados en modelos/paradigmas) Fernando Pérez Costoya Introducción Big Data

Más detalles

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

ARQUITECTURAS PARA PROCESAMIENTO PARALELO 1 de 6 27/11/11 13:08 ARQUITECTURAS PARA PROCESAMIENTO PARALELO Facultad de Ingeniería de Sistemas Información para el Proyecto REYCYT RESUMEN Se presenta información general relativa a las diferentes

Más detalles

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES Autor: A.P.U. Enzo Rucci Director: Ing. Armando E. De Giusti Co-Director: Lic. Franco Chichizola Tesina de

Más detalles

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

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

Más detalles

Introducción a las arquitecturas paralelas

Introducción a las arquitecturas paralelas Capítulo 4 Introducción a las arquitecturas paralelas Hasta este momento se ha estudiado el procesamiento a nivel del procesador. Se ha visto ya que la segmentación es un primer mecanismo de paralelismo,

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Modelos de programación paralela y concurrente

Modelos de programación paralela y concurrente Modelos de programación paralela y concurrente 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

Más detalles

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional (PCB) adicional (PCB) Preparado Preparado

Más detalles

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos Tema 5: Sistemas Operativos Distribuidos 1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño 1 1. Introducción Sistema Informático Distribuido: Colección de S.I. autónomos

Más detalles

Estructuración del programa en partes más pequeñas y sencillas

Estructuración del programa en partes más pequeñas y sencillas Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías

Más detalles

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 ) FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función

Más detalles

MULTIPROCESADORES EL SOFTWARE EN LOS MULTIPROCESADORES

MULTIPROCESADORES EL SOFTWARE EN LOS MULTIPROCESADORES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

07 y 08 Sistemas distribuidos y paralelos y tarea 02

07 y 08 Sistemas distribuidos y paralelos y tarea 02 07 y 08 Sistemas distribuidos y paralelos y tarea 02 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

Tema 05: Elementos de un programa en C

Tema 05: Elementos de un programa en C Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

Sistemas Operativos. Curso 2016 Introducción

Sistemas Operativos. Curso 2016 Introducción Sistemas Operativos Curso 2016 Introducción Agenda Introducción a los sistemas operativos. Evolución histórica de los sistemas operativos: Sistemas por lotes. Sistemas por lotes multiprogramados. Sistemas

Más detalles

IMPLEMENTACIÓ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 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 detalles

2EMHWLYRV 5HIHUHQFLDV. Procesadores vectoriales

2EMHWLYRV 5HIHUHQFLDV. Procesadores vectoriales 7HPD0XOWLSURFHVDGRUHV 2EMHWLYRV 5HIHUHQFLDV,QWURGXFFLyQ $UTXLWHFWXUDVFHQWUDOL]DGDVGHPHPRULDFRPSDUWLGD $UTXLWHFWXUDVGLVWULEXLGDVGHPHPRULDFRPSDUWLGD 6LQFURQL]DFLyQ 0XOWLFRPSXWDGRUHV 1 esadores vectoriales

Más detalles

Departamento Ingeniería en Sistemas de Información

Departamento Ingeniería en Sistemas de Información ASIGNATURA: ARQUITECTURA DE MODALIDAD: COMPUTADORAS DEPARTAMENTO: ING. EN SIST. DE INFORMACION HORAS SEM.: Anual 4 horas AREA: COMPUTACIÓN HORAS/AÑO: 128 horas BLOQUE TECNOLOGÍAS BÁSICAS HORAS RELOJ 96

Más detalles

Sistemas Operativos. Procesos

Sistemas Operativos. Procesos Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso

Más detalles

Introducción a las Arquitecturas Paralelas. Arquitectura de Computadoras II Fac. Cs. Exactas UNCPBA Prof. Marcelo Tosini 2015

Introducción a las Arquitecturas Paralelas. Arquitectura de Computadoras II Fac. Cs. Exactas UNCPBA Prof. Marcelo Tosini 2015 Introducción a las Arquitecturas Paralelas Arquitectura de Computadoras II Fac. Cs. Exactas UNCPBA Prof. Marcelo Tosini 2015 Procesamiento Paralelo Uso de muchas unidades de proceso independientes para

Más detalles

Modelado de los computadores paralelos

Modelado de los computadores paralelos Modelado de los computadores paralelos Francisco Almeida, Domingo Giménez, José Miguel Mantas, Antonio M. Vidal: Introducción a la rogramación aralela, araninfo Cengage Learning, 2008 Figuras tomadas directamente

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)

Más detalles

Bases de Datos Paralelas. Carlos A. Olarte BDII

Bases de Datos Paralelas. Carlos A. Olarte BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Paralelismo de I/O 3 Paralelismo entre Consultas 4 OPS Introducción Por qué tener bases de datos paralelas? Tipos de arquitecturas:

Más detalles

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

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

Más detalles

El Bueno, el Malo y el Feo

El Bueno, el Malo y el Feo El Bueno, el Malo y el Feo Mejorando la Eficiencia y Calidad del Software Paralelo Ricardo Medel Argentina Systems & Tools SSG-DPD Basado en un guión de Eric W. Moore - Senior Technical Consulting Engineer

Más detalles

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

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

Más detalles

TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA

TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA Relación de Ejercicios Programación Distribuida y Paralela. 4 o de Ingeniería Superior en Informática. Departamento de Lenguajes y Sistemas Informáticos TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA

Más detalles

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

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

Más detalles

Computación Matricial y Paralela

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

Más detalles