Análisis de algoritmos paralelos

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

Download "Análisis de algoritmos paralelos"

Transcripción

1 METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Análisis de algoritmos paralelos REFERENCIAS La mayoría de los libros de la bibliografía, en particular: Foster, cap 3 Kumar, Grama, Gupta, Karypis, cap 4 Wilkinson, Allen, cap 2.3 y 2.4 Quinn y, por supuesto, el de Introducción a la Programación Paralela 1

2 Análisis de algoritmos paralelos 2 Los procesadores paralelos se usan para acelerar la resolución de problemas de alto coste computacional. La finalidad principal consiste en reducir el tiempo de ejecución: si el tiempo secuencial t(n) se intentará que usando p procesadores el tiempo se reduzca a t(n)/p. Ver algunas medidas que nos dan idea de la "bondad" de un algoritmo paralelo.

3 3 Tiempo secuencial El tiempo de ejecución de un programa secuencial depende de: tamaño de la entrada, compilador, máquina, programador..., si nos olvidamos de valores constantes dependientes del sistema (por ejemplo el coste de una operación aritmética en la máquina donde ejecutamos el programa) podemos considerar el tiempo función del tamaño de la entrada: t(n). El tiempo desde que empieza la ejecución del programa hasta que acaba.

4 4 Tiempo de ejecución paralelo En un programa paralelo la estimación del tiempo es más compleja. Además de los parámetros anteriores, depende de: número de procesadores t(n,p), de la manera en que están conectados entre sí (topología) y con los módulos de memoria (memoria compartida o distribuida) Es el tiempo transcurrido desde que empieza la ejecución del primero de los procesadores hasta que acaba el último de ellos.

5 5 Tiempo de ejecución paralelo DIFICULTADES: No siempre es fácil determinar el orden en que los procesadores empiezan y acaban. A lo largo de la ejecución de un programa paralelo hay puntos de sincronización de los que no siempre podemos determinar su duración al no saber en el orden en que van a llegar los distintos procesos a estos puntos.

6 Tiempo de ejecución paralelo Esquema de programa paralelo: Computación 1 Comunicación 1 Computación 2 Comunicación 2... (sincronización en memoria compartida) t(n,p)=t a (n,p)+t c (n,p) t a (n,p) : suma de los tiempos de las distintas partes de computación t c (n,p) : suma de los tiempos de las distintas partes de comunicación 6

7 Tiempo de ejecución paralelo, ejemplo Programa paralelo en dos procesadores: Computación Comunicación Computación Comunicación t(n,p)=t a (n,p)+t c (n,p)=7 (si se suman los tiempo por separado) t real (n,p)=t a (n,p)+t c (n,p)+t overhead (n,p)=8 7

8 8 Tiempo de ejecución paralelo, ejemplo t(n,p)=t a (n,p)+t c (n,p)=15 t real (n,p)=t a (n,p)+t c (n,p)-t solapamiento (n,p)=14

9 9 Tiempo de ejecución Overhead debido a: sincronización, puesta en marcha de los procesos, sobrecarga de la red de comunicación,... Se suele considerar: t(n,p)=t a (n,p)+t c (n,p)+t o (n,p)-t s (n,p) Minimizar el tiempo de overhead. Maximizar el solapamiento.

10 10 Suma de n números Secuencial: t(n)=n-1 Paralelo con n/2 procesadores, como mínimo t(n)/(n/2)=2 En cada P i, i=0,1,...,n/2-1 inicio=2*i desplazamiento=1 activo=true para k=1,2,...,log n si activo a[inicio]=a[inicio]+a[inicio+desplazamiento] desplazamiento=desplazamiento*2 finsi si i mod desplazamiento <>0 activo=false finsi finpara

11 11 Suma de n números Pasos: log n Trabajo adicional (overhead): Comprobación de si el procesador trabaja, Uso de las variables, Actualización de las variables. Con n=64 si cada paso secuencial y paralelo igual coste: t(n) 8*t(n,p) si cada paso secuencial coste 2 y paralelo coste 5: t(n) 3.5*t(n,p) Y en memoria distribuida problema de acceso a los datos.

12 Suma de n números. En hipercubo Cada procesador tiene dos valores, a y b En cada P i, i=0,1,...,n/2-1 desplazamiento=1 activo=true para k=1,2,...,log n-1 si activo a=a+b desplazamiento=desplazamiento*2 si i mod desplazamiento <>0 activo=false enviar a a i-desplazamiento/2 en otro caso recibir en b de i+desplazamiento/2 finsi finsi finpara si i=0 a=a+b finsi 12

13 Suma de n números. En hipercubo 13 P0 P1 P0 P1 P0 P P2 4 5 P3 P2 P3 P2 P P0 P1 P0 P1 P0 P P2 P3 P2 P3 P2 P

14 14 Suma de n números. En hipercubo Pasos: log n Trabajo adicional (overhead): Comprobación de si el procesador trabaja, Uso de las variables, Actualización de las variables, Comprobación de enviar o recibir, Envío o recepción. Con n=64 si cada paso secuencial coste 2 y paralelo coste 7: t(n) 2,5*t(n,p) si t s =2*t w y t w =2*t c : t(n) 1,5*t(n,p) si t s =10*t w y t w =10*t c : t(n) 0,16*t(n,p)

15 Suma de n números. En malla 15

16 16 Suma de n números. En malla Si p=2 n 2*( n/2-1 )= 2 n/2+1 comunicaciones Con n=64 si t s =2*t w y t w =2*t c : t(n) 1,4*t(n,p) si t s =10*t w y t w =10*t c : t(n) 0,1*t(n,p)

17 Suma de n números. En anillo Si p=2 n n-1 = 2 n 1= p-1 comunicaciones Con n=64 si t s =2*t w y t w =2*t c : t(n) 0,74*t(n,p) si t s =10*t w y t w =10*t c : t(n) 0,04*t(n,p) 17

18 18 Coste de comunicaciones Son de los siguientes órdenes: Comunicación vecinos Comunicación todos hipercubo log p/2 log p/2 malla 2* p log p/2 anillo p-1 log p/2 red p-1 Además, la red puede estar congestionada al haber muchos mensajes por haber muchos procesadores. Problemas: Problema de poco coste y no apropiado para resolver en paralelo, granularidad pequeña, sólo como ayuda para diseñar un programa pero no como programa final.

19 Causas de reducción de las prestaciones Contención de memoria: En memoria compartida el acceso a datos comunes o que están en el mismo bloque de memoria producirá contención. Si los datos son de lectura puede no haber ese problema. En el ejemplo los procesadores escriben en zonas distintas. No hay problema de coherencia, pero puede haber de contención si hay datos en los mismos bloques de memoria. Código secuencial: Puede haber parte imposible de paralelizar, como puede ser la I/O. En el ejemplo la inicialización de variables. Además, si los datos están inicialmente en un procesador y hay que difundirlos el coste es lineal. Tiempo de creación de procesos: El programa empieza a ejecutarse con un proceso que pone en marcha los demás. El coste de creación de los procesos puede ser importante si la granularidad de éstos es pequeña. 19

20 20 Causas de reducción de las prestaciones Computación extra: Si se obtiene programa paralelo a partir de secuencial, son necesarias computaciones adicionales por: uso de variables de control, comprobación de identificadores de proceso, cálculos adicionales o comunicaciones para obtener datos calculados por otro procesador... Comunicaciones: En memoria distribuida, es tiempo adicional al aritmético. Pueden implicar trabajo de procesadores intermedios. Tiempo de sincronización: Cuando un proceso tiene que esperar a que estén disponibles datos procesados por otro. Conlleva comunicaciones en memoria distribuida.

21 21 Causas de reducción de las prestaciones Desbalanceo de la carga: El volumen total de la computación no se distribuye por igual entre todos los procesadores: en el ejemplo, en el primer paso trabajan todos pero en los pasos siguientes va disminuyendo el número de procesadores que trabajan, también es posible que partamos de una entrada que no se puede balancear, por ejemplo si tenemos 12 datos para 8 procesadores, o que el volumen de datos varíe a lo largo de la ejecución, con lo que se necesitaría balanceo dinámico.

22 22 Granularidad de la computación Uso de muchos procesadores no es realista: No dispondremos de tantos procesadores. Aunque dispongamos de ellos hay caída de las prestaciones. La granularidad del sistema (sistema físico+algoritmo) indica la cantidad de computación y datos asignados a cada procesador: Grano fino: si a cada procesador se asignan pocos datos o se realiza poca computación entre comunicaciones. Grano grueso: si a cada procesador se asignan muchos datos o se realiza mucha computación entre comunicaciones. Interesa programación paralela cuando el paralelismo es de grano grueso. A partir de qué punto interesa depende de los costes en el sistema (no será lo mismo en saturno que en marte+mercurio) En sistólicos y GPUs el paralelismo es de grano fino.

23 Suma de n números con p procesadores En cada P i, i=0,1,...,p-1 suma=0 para j=i*n/p,...,(i+1)*n/p-1 suma=suma+a[j] finpara sincronización a[i]=suma inicio=i*2 desplazamiento=1 si i mod 2=0 activo=true en otro caso activo=false finsi para k=1,2,...,log p-1 si activo a[inicio]=a[inicio]+a[inicio+desplazamiento] desplazamiento=desplazamiento*2 finsi si i mod desplazamiento <>0 activo=false finsi finpara 23

24 Suma, en memoria distribuida En cada P i, i=0,1,...,p-1 suma=0 para j=0,...,n/p-1 suma=suma+a[j] finpara si i mod 2=0 recibir en b de i+1 activo=true en otro caso enviar suma a i-1 activo=false finsi desplazamiento=2 para k=1,2,...,log p-2 si activo suma=suma+b desplazamiento=desplazamiento*2 si i mod desplazamiento <>0 activo=false enviar suma a i-desplazamiento/2 en otro caso recibir en b de i+desplazamiento/2 finsi finsi finpara si i=0 suma=suma+b finsi 24

25 25 Suma de n números con p procesadores En memoria compartida todas las variables son locales salvo el array a. En memoria distribuida la sincronización por el paso de mensajes. El tamaño del problema (n) es múltiplo del número de procesadores (p). Se puede generalizar fácilmente. t(n,p)=2*n/p*t c +6*(log p-1)*(t s +t w ) si p<<<n podemos tener en cuenta sólo los términos de mayor orden y t(n)/t(n,p)=p, que es lo mejor que se puede obtener para ir 10 veces más rápido: con t s =2*t w y t w =2*t c, si n= , , 10000, p=10 con t s =10*t w y t w =10*t c, es n=330*p*log p si n= p=10, p=11, no posible

26 Speed-up Mide la ganancia de velocidad que se obtiene con un programa paralelo. Es el cociente entre el tiempo secuencial y el paralelo: S(n,p)=t(n)/t(n,p) Qué t(n)? El del mejor algoritmo secuencial que resuelve el problema, pero cuál es el mejor algoritmo secuencial? depende del tamaño de la entrada, distribución de los datos, máquina..., y puede no conocerse (Por ejemplo, cuál es el coste de la multiplicación de matrices?). El del mejor algoritmo secuencial conocido. Pero depende de los mismos parámetros anteriores. Tiempo de ejecución en un procesador del algoritmo paralelo. Pero puede que el mejor esquema para paralelizar no sea bueno en secuencial. El tiempo de ejecución de un algoritmo secuencial razonablemente bueno. Habrá que indicar cuál se usa. 26

27 27 Speed-up El speed-up será menor que el número de procesadores usado. Si no podría hacerse un algoritmo secuencial mejor que el que se usa, simulando el algoritmo paralelo. En algunos casos puede haber speed-up superlineal por mejor gestión de la memoria al usar más procesadores. Para un tamaño de problema fijo se aleja del valor óptimo al aumentar el número de procesadores. Para un número de procesadores fijo aumenta al aumentar el tamaño del problema p=10 p=20 p=30 p=40 p=50

28 28 Speed-up, suma con n/2 procesadores En memoria compartida: n/log n En hipercubo, y malla o anillo con comunicaciones directas: n/((1+t s +t w )*log n) En malla sin comunicaciones directas: n/(log n+(t s +t w )*2* n) En anillo sin comunicaciones directas y en red: n/(log n+(t s +t w )*n) 1/(t s +t w )

29 29 Eficiencia Da idea de la porción de tiempo que los procesadores se dedican a trabajo útil. Es el speed-up partido por el número de procesadores: E(n,p)=S(n,p)/p=t(n)/(p*t(n,p)) Valor entre 0 y 1. 1 Para un tamaño de 0,9 problema fijo se aleja 0,8 del valor óptimo (1) al 0,7 aumentar el número 0,6 de procesadores. 0,5 Para un número de 0,4 procesadores fijo 0,3 aumenta al 0,2 0,1 aumentar el tamaño 0 del problema p=10 p=20 p=30 p=40 p=50

30 30 Eficiencia, suma con n/2 procesadores En memoria compartida: 2/log n 0 En hipercubo, y malla o anillo con comunicaciones directas: 2/((1+t s +t w )*log n) 0 En malla sin comunicaciones directas: 2/(log n+(t s +t w )*2* n) 0 En anillo sin comunicaciones directas y en red: 2/(log n+(t s +t w )*n) 0

31 31 Speed-up, suma con p procesadores Con p fijo En memoria compartida: n/(n/p+log p) p En hipercubo, y malla o anillo con comunicaciones directas: n/(n/p+(1+t s +t w )*log p) p En malla sin comunicaciones directas: n/(n/p+log p+(t s +t w )*2* p) p En anillo sin comunicaciones directas y en red: n/(n/p+log p+(t s +t w )*p) p

32 32 Eficiencia, suma con p procesadores Con p fijo En memoria compartida: n/(n+p*log p) 1 En hipercubo, y malla o anillo con comunicaciones directas: n/(n+(1+t s +t w )*p*log p) 1 En malla sin comunicaciones directas: n/(n+p*log p+(t s +t w )*2*p* p) 1 En anillo sin comunicaciones directas y en red: n/(n+p*log p+(t s +t w )*p 2 ) 1

33 33 Coste Representa el tiempo (el trabajo) realizado por todo el sistema en la resolución del problema. Es el tiempo de ejecución por el número de procesadores usados: C(n,p)=p*t(n,p) En algoritmo óptimo coincidiría con el tiempo secuencial, pero en general es mayor. La diferencia se llama función overhead: t o (n,p)=c(n,p)-t(n)=p*t(n,p)-t(n) Es distinto de la idea de overhead vista anteriormente y difícilmente medible.

34 34 Distribución del trabajo Es importante para mejorar el balanceo. En memoria distribuida puede reducir el coste de las comunicaciones asignando datos que se comunican frecuentemente a procesadores vecinos. Evita comunicaciones, congestión de la red y colisiones. En memoria compartida puede influir en el coste de los accesos a memoria, si procesadores distintos acceden a bloques distintos. Normalmente que los procesadores accedan a bloques de datos. Esto además mejora el uso de la jerarquía de memoria.

35 35 Distribución de datos. Suma de n números. En malla

36 36 Distribución de datos. Suma de n números. En anillo 7 comunicaciones comunicaciones

37 Escalabilidad Para un sistema paralelo interesa que las prestaciones se sigan manteniendo en cierta medida al aumentar el tamaño de sistema. No se puede seguir manteniendo las prestaciones manteniendo el tamaño del problema fijo y aumentando el número de procesadores. Se tratará de mantener las prestaciones al aumentar el tamaño del sistema pero aumentando el tamaño del problema. Los sistemas (físicos o lógicos) que cumplen esto se dicen escalables. La idea es, para un determinado programa, ser capaces de determinar si en el futuro, cuando aumente el número de procesadores y el tamaño de problemas que se quieren resolver, se seguirán manteniendo las prestaciones. 37

38 38 Función de isoeficiencia Da idea de cómo debe crecer la entrada del problema en función del número de procesadores para mantener la eficiencia constante. t o (n,p)=p*t(n,p)-t(n) t(n,p)=(t o (n,p)+t(n))/p E(n,p)=t(n)/(t o (n,p)+t(n)) t(n)=(e(n,p)/(1-e(n,p))*t o (n,p)=k*t o (n,p) Para obtener cómo debe crecer n en función de p para mantener la eficiencia constante basta comparar el tiempo secuencial con la función overhead del paralelo.

39 39 Isoeficiencia, suma con p procesadores Sin constantes, pues interesa la forma en que crece En memoria compartida, hipercubo, y malla o anillo con comunicaciones directas : t(n)=n t o (n,p)=n+p*log p Función de isoeficiencia: p*log p En malla sin comunicaciones directas: t(n)=n t o (n,p)=n+p*log p+p* p Función de isoeficiencia: p 1.5 (la mayor) En anillo sin comunicaciones directas y en red: t(n)=n t o (n,p)=n+p*log p+ p 2 Función de isoeficiencia: p 2 (la mayor)

40 Isoeficiencia, suma con p procesadores Para mantener las prestaciones al variar de p1 a p2 procesadores, el tamaño debe aumentar proporcional a f(p2)/f(p1) Procesadores: 4 a a a 256 memoria compartida, hipercubo, y malla o anillo con comunicaciones directas malla sin comunicaciones directas anillo sin comunicaciones directas y en red Todos escalables. Unos más que otros. 40

41 41 Speed-up escalado Representa la relación entre el tiempo de ejecución secuencial y el paralelo, pero aumentando proporcionalmente el número de procesadores: S e (n,p)=t(n)*p/t(n*p,p) En hipercubo: S e (n,p)=n*p/(n+(1+t s +t w )*log p) En malla: S e (n,p)=n*p/(n+(t s +t w )* p+log p) El de hipercubo es más escalable pues su cociente es menor.

42 Estudio experimental de la escalabilidad Se estudia el número de operaciones por segundo (flops) por procesador: Variando el tamaño de la entrada al variar el número de procesadores, O utilizando el máximo tamaño de la entrada que cabe en la memoria del sistema buena escalabilidad proc tam flops peor proc tam flops

43 Estudio experimental Diseño de experimentos que nos permitan obtener conclusiones: - Determinar qué tipo de conclusiones se quiere obtener: en cuanto a speed-up, escalabilidad. - Definir el rango de los experimentos: número de procesadores y tamaño del problema. - Comparar los resultados experimentales con los teóricos. - Si no coinciden revisar los estudios teóricos o la forma en que se han hecho los experimentos. Pueden consistir en: - Estudiar el programa completo. - Estudiar el comportamiento en los distintos procesadores: balanceo de la carga? sincronización?... - Dividir el programa en partes para estudiarlas por separado. Hay herramientas de análisis: profilers, gráficas, Vtune, MPE... 43

44 Comparación estudio teórico-experimental Se pueden estimar los valores constantes en las fórmulas teóricas: - En particular t s y t w se obtienen con un ping-pong, o pueden tener valores distintos para distintas operaciones de comunicación. - El coste de la computación se puede estimar ejecutando parte del programa en un procesador. Ajuste del modelo teórico con datos experimentales: - Obtener valores constantes en el estudio teórico haciendo ajuste de mínimos cuadrados con resultados experimentales. - Estudio asintótico: comportamiento teniendo en cuenta el término de mayor orden de la fórmula teórica, compararlo con la gráfica experimental. 44

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

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

Más detalles

Evaluación del rendimiento de Algoritmos Paralelos y/o Concurrentes

Evaluación del rendimiento de Algoritmos Paralelos y/o Concurrentes UNIVERSIDAD AMERICANA Programación concurrente Evaluación del rendimiento de Algoritmos Paralelos y/o Concurrentes Recopilación de teoría referente a la materia Ing. Luis Müller 2011 Esta es una recopilación

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

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

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Modelado analítico de programas paralelos 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

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

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

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

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

Más detalles

Algoritmos paralelos para la Multiplicación de Matrices

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

Más detalles

Paralelismo Relajado Paralelismo Síncrono

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

Más detalles

TEMA 4 PROCESAMIENTO PARALELO

TEMA 4 PROCESAMIENTO PARALELO TEMA 4 PROCESAMIENTO PARALELO Tipos de plataformas de computación paralela Organización lógica Organización física Sistemas de memoria compartida Sistemas de memoria distribuida Tipos de plataformas de

Más detalles

Algoritmos en Árbol y Grafo Computación Pipeline

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

Más detalles

Computación de Alta Performance Curso 2009 MEDIDAS DE PERFORMANCE MEDIDAS DE PERFORMANCE

Computación de Alta Performance Curso 2009 MEDIDAS DE PERFORMANCE MEDIDAS DE PERFORMANCE Computación de Alta Performance Curso 2009 Objetivos: Estimación de desempeño de algoritmos paralelos. Comparación con algoritmos seriales. Factores intuitivos para evaluar la performance: Tiempo de ejecución.

Más detalles

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos Diseño de algoritmos paralelos Curso 2011-2012 Esquema del capítulo Visión general de algunos algoritmos serie. Algoritmo paralelo vs. Formulación paralela Elementos de un Algoritmo paralelo Métodos de

Más detalles

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Diseño de Algoritmos Paralelos Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

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

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML INGENIERÍA DE SOFTWARE II MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML Gabriel Tamura gtamura@icesi.edu.co Cali, 2008 Arquitectura de Software con UML PROGRAMA 1. Motivación 2. La Taxonomía de Flynn 3.

Más detalles

Ingeniería en Computación

Ingeniería en Computación Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas

Más detalles

TEMA 2: PROGRAMACIÓN PARALELA (Y III)

TEMA 2: PROGRAMACIÓN PARALELA (Y III) 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 detalles

Divide y Vencerás Programación Dinámica

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

Más detalles

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

Multiplicación de matrices dispersas

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

Más detalles

Análisis de Algoritmos CB-102

Análisis de Algoritmos CB-102 Análisis de Algoritmos CB-102 Algoritmos en Paralelo Centro de Manufactura / Centro de Sistema Inteligentes ITESM Algoritmos en Paralelo TC-4001 - p. 1/22 Hasta este punto, nuestro modelo de computación

Más detalles

Modelo analítico de rendimiento

Modelo analítico de rendimiento AT5128 Arquitectura e Ingeniería de Comutadores II Modelo analítico de rendimiento Curso 2011-2012 AT5128 Arquitectura e Ingeniería de Comutadores II Índice Fuentes de overhead en rogramas aralelos. Métricas

Más detalles

Modelado y autooptimización en esquemas paralelos de backtracking

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

Más detalles

Operaciones de comunicación

Operaciones de comunicación Operaciones de comunicación Curso 2011-2012 Índice Importancia de las operaciones colectivas de comunicación. Difusión Uno-a-Todos. Reducción Todos-a-Uno. Difusión y Reducción Todos-a-Todos. Reducción

Más detalles

W_ILU_GMRES. UNA ESTRATEGIA PARA SISTEMAS DE ECUACIONES LINEALES DENSOS

W_ILU_GMRES. UNA ESTRATEGIA PARA SISTEMAS DE ECUACIONES LINEALES DENSOS W_ILU_GMRES. UNA ESTRATEGIA PARA SISTEMAS DE ECUACIONES LINEALES DENSOS Angela León, Marta Lourdes Baguer, Yisleidy Linares, Universidad de La Habana Lilian Villarín, Universidad de Heidelberg, Alemania

Más detalles

Complejidad de los Algoritmos

Complejidad de los Algoritmos Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de

Más detalles

Paralelismo en la ordenación por mezcla

Paralelismo en la ordenación por mezcla Paralelismo en la ordenación por mezcla Índice MergeSort secuencial. MergeSort paralelo : descomposición en tareas. Descomposición funcional. Descomposición recursiva. Descomposición de dominio. Grafo

Más detalles

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

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

Más detalles

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE Análisis y costo de algoritmos Algoritmos Un algoritmo es un conjunto de pasos claramente definidos que a partir de un cierta entrada (input) produce una determinada salida (output) Algoritmos y programas

Más detalles

Paralelismo _Arquitectura de Computadoras IS603

Paralelismo _Arquitectura de Computadoras IS603 Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,

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

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS PSEUDOCÓDIGO El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al

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

Tema 3. Leyes sobre el aumento de prestaciones

Tema 3. Leyes sobre el aumento de prestaciones Tema 3. Leyes sobre el aumento de prestaciones Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI

Más detalles

Nociones básicas de computación paralela

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

Más detalles

Arquitecturas Paralelas: Redes de interconexión y Medición de performance

Arquitecturas Paralelas: Redes de interconexión y Medición de performance Arquitecturas Paralelas: Redes de interconexión y Medición de performance Versión 2014 Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced Computer Architecture and Parallel Processing. Willey. Redes de interconexión

Más detalles

Los valores obtenidos de speedup tienden a incrementarse hasta los ocho procesadores. al usar diez procesadores éste se mantiene igual o decrece. Esto

Los valores obtenidos de speedup tienden a incrementarse hasta los ocho procesadores. al usar diez procesadores éste se mantiene igual o decrece. Esto En la Figura 6.9 se muestra el speedup obtenido en el tiempo de ejecución al ejecutar la aplicación con las distintas pol ticas de mapping, que pueden ser comparadas con el caso ideal. En el Apéndice D

Más detalles

Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Programas Analíticos del Área Mecánica y Eléctrica 5727 PROGRAMACION EN PARALELO

Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Programas Analíticos del Área Mecánica y Eléctrica 5727 PROGRAMACION EN PARALELO A) CURSO Clave Asignatura 5727 PROGRAMACION EN PARALELO Horas de teoría Horas de práctica Horas trabajo Créditos Horas por semana por semana adicional estudiante Totales 3 0 3 6 48 B) DATOS BÁSICOS DEL

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional

Más detalles

Alejandro Molina Zarca

Alejandro Molina Zarca Compute Unified Device Architecture (CUDA) Que es CUDA? Por qué CUDA? Dónde se usa CUDA? El Modelo CUDA Escalabilidad Modelo de programación Programación Heterogenea Memoria Compartida Alejandro Molina

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

1. Escalabilidad de transacciones de un motor de búsqueda Web.

1. Escalabilidad de transacciones de un motor de búsqueda Web. Enfoque Token 1. Escalabilidad de transacciones de un motor de búsqueda Web. 2. Simulador de aplicaciones sobre utilización de dispositivos móviles como unidades de procesamiento. Tabla ruteo Red 3G/4G

Más detalles

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas En esencia,

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

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo. NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis

Más detalles

Concurrencia de Procesos

Concurrencia de Procesos Concurrencia de Procesos Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo)

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA GESTION DE MEMORIA Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen La memoria es el lugar donde residen procesos y datos de los programas del usuario y del sistema operativo; se debe

Más detalles

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA PRINCIPAL. 1. Introducción. 2. Aumentar el ancho de la memoria. 3. Memoria entrelazada. 4. Bancos de memoria independientes. 5. Tecnología de las memorias.

Más detalles

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Sistemas Computacionales Integral profesional Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Cómputo paralelo Total de

Más detalles

Unidad IV: Arquitectura de los Sistemas de Bases de Datos (Tema 5) GESTIÓN DE BASES DE DATOS GRADO EN INGENIERÍA INFORMÁTICA UNED

Unidad IV: Arquitectura de los Sistemas de Bases de Datos (Tema 5) GESTIÓN DE BASES DE DATOS GRADO EN INGENIERÍA INFORMÁTICA UNED Unidad IV: Arquitectura de los Sistemas de Bases de Datos (Tema 5) GESTIÓN DE BASES DE DATOS GRADO EN INGENIERÍA INFORMÁTICA UNED Índice 1. Sistemas centralizados 2. Sistemas cliente-servidor 3. Sistema

Más detalles

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

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

Más detalles

ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO

ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO FACTOR DE VELOCIDAD Sabemos que p se identifica como el número de procesadores o procesos Multiprocesador será entonces el término que se puede utilizar

Más detalles

Rendimiento y sus factores

Rendimiento y sus factores Rendimiento y sus factores Rendimiento 1. m. Producto o utilidad que rinde o da alguien o algo. 2. m. Proporción entre el producto o el resultado obtenido y los medios utilizados. Real Academia Española

Más detalles

TEMA 4 PROCESAMIENTO PARALELO

TEMA 4 PROCESAMIENTO PARALELO TEMA 4 PROCESAMIENTO PARALELO Tipos de plataformas de computación paralela Organización lógica Organización física Sistemas de memoria compartida Sistemas de memoria distribuida Tipos de plataformas de

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Contenidos del Tema Gestión de procesos Modelos de sistema Asignación de procesadores Estrategias dinámicas Estrategias estáticas Ejecución remota de procesos Modelos de sistema Organización de los procesadores

Más detalles

IN34A - Optimización

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

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Principios de diseño de algoritmos paralelos 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

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

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema

Más detalles

Conceptos. Generales ALGORITMOS

Conceptos. Generales ALGORITMOS Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos

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

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de

Más detalles

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

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

Más detalles

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

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

Más detalles

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

Necesidad de Protección

Necesidad de Protección Necesidad de Protección Por qué necesitamos protección? Para mejorar la utilización del sistema, el Sistema de Operación empezó a compartir recursos del sistema entre varios programas de manera simultánea.

Más detalles

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

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

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos de los Computadores Grado en Ingeniería Informática 7. Camino de datos y unidad de control o Fundamentos de los Computadores Grado en Ingeniería Informática Introducción La versatilidad es una característica deseable de los sistemas digitales Un sistema

Más detalles

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria Estructura de datos y Algoritmos Tema III Clasificación en memoria secundaria 3.1. Clasificación externa basada en mezcla 3.1.1. Mezcla directa. 3.1.2. Mezcla natural. 3.1.3. Mezcla balanceada múltiple.

Más detalles

Tema: Programación Dinámica.

Tema: Programación Dinámica. Programación IV. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar

Más detalles

Primeros pasos con CUDA. Clase 1

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

Más detalles

Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.

Escalabilidad: 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 detalles

Balance Dinámico de Carga en Super-Cómputo

Balance Dinámico de Carga en Super-Cómputo Balance Dinámico de Carga en Super-Cómputo Dr. Manuel Aguilar Cornejo Presentación elaborada por: Juan Santana Santana 1 Introducción Balance dinámico de carga Librería DLML Algoritmo utilizando una topología

Más detalles

Concurrencia y Paralelismo

Concurrencia y Paralelismo Concurrencia y Paralelismo Carrera: Ingeniería en Computación Profesor Responsable: Naiouf, Ricardo Marcelo Año: 4º Duración: Semestral Carga Horaria Semanal: 6hs Carga Horaria Total: 96hs Objetivos Generales

Más detalles

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria Gestión de Memoria Gestión de Memoria Dividir la memoria para alojar múltiples procesos La memoria necesita ser asignada eficientemente para alojar tantos procesos como sea posible Capítulo 7 Requisitos

Más detalles

Sintaxis de PSeInt Tutorial

Sintaxis de PSeInt Tutorial Sintaxis de Tutorial Introducción a la Programación (T.U.M - T.U.G. - T.U.E. - T.U.T. - Prof) Introducción a la Computación (T.U.R. - T.U.W.) Fundamentos de la Informática (Ing. en Minas - Ing. Electr.)

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

Tema: Programación Dinámica.

Tema: Programación Dinámica. Programación IV. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar

Más detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

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

Computación de Altas Prestaciones Sistemas computacionales

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

Más detalles

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I I. DATOS DE IDENTIFICACIÓN Nombre de la materia: Computación I Código: 2010008 Grupo: 2 Carga horaria: 4 Docencia

Más detalles

Tema 7. Entrada / Salida

Tema 7. Entrada / Salida Tema 7 Entrada / Salida Problemática Entrada/Salida Elementos claves en un computador: Procesador, memoria y módulos de E/S Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos

Más detalles

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN 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

Conceptos básicos de paralelismo

Conceptos básicos de paralelismo Capítulo 2 Conceptos básicos de paralelismo 2.1. Introducción En este capítulo introduciremos algunos conceptos del paralelismo que se requeriran en la posterior discusión. Particularmente relevantes para

Más detalles

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS Tipos de procesadores. Dedicados: Para desarrollar una tarea muy especifica. Ejecutando un único algoritmo de forma óptima. de propósito

Más detalles

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1

Más detalles

15 de Octubre Crowne Plaza Ciudad de México. Simposio Técnico de Medición y Automatización. ni.com/mexico

15 de Octubre Crowne Plaza Ciudad de México. Simposio Técnico de Medición y Automatización. ni.com/mexico 15 de Octubre Crowne Plaza Ciudad de México Simposio Técnico de Medición y Automatización ni.com/mexico Arquitecturas de Programación para Sistemas Multinúcleo Financiero Embebido Médico Científico Industrial

Más detalles

Implementación y Evaluación del algoritmo de sincronización RBS para redes inalámbricas de sensores

Implementación y Evaluación del algoritmo de sincronización RBS para redes inalámbricas de sensores PROYECTO DE TESIS DE MAESTRÍA EN INGENÍERIA DE TELECOMUNICACIONES Implementación y Evaluación del algoritmo de sincronización RBS para redes inalámbricas de sensores Alumno: Seyed Mohammad Pakdaman Tutor:

Más detalles

La Máquina de Acceso Aleatorio (Random Access Machine)

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

Sintonización Dinámica de Aplicaciones MPI

Sintonización Dinámica de Aplicaciones MPI Sintonización Dinámica de Aplicaciones MPI Presentado por: Andrea Martínez Trujillo 13 de Julio 2010 Directores: Anna B. Morajko Joan Sorribes Contenido Motivación Objetivo Proceso de sintonización dinámica

Más detalles

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera Algoritmos probabilistas Ene. 2010 Postgrado en Computación. Análisis y Diseño de Algoritmos (AyDA). Isabel Besembel. 2 Algoritmos multihilos

Más detalles

El rendimiento de los sistemas paralelos

El rendimiento de los sistemas paralelos Capítulo 6 El rendimiento de los sistemas paralelos 6.1. Magnitudes y medidas del rendimiento En esta sección se definirán algunas de las medidas más utilizadas a la hora de determinar el rendimiento de

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Ingeniería en Informática 2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

Más detalles

Álgebra Lineal. Tema 1. Multiplicación rápida de matrices

Álgebra Lineal. Tema 1. Multiplicación rápida de matrices Álgebra Lineal Tema 1. Multiplicación rápida de matrices Grado en Ingeniería Informática Doble Grado en Ingeniería Informática y Administración de Empresas AUTORES: J. S ALAS, A. T ORRENTE Y E.J.S. V ILLASEÑOR

Más detalles