Esquemas de comunicación

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

Download "Esquemas de comunicación"

Transcripción

1 Esquemas de comunicación

2 tipos de comunicación Maestro-esclavo o comunicación global Esquema SPMD o comunicación local

3 Maestro-esclavo o comunicación global Consiste en la implementación de un componente principal llamado maestro que se encarga de recolectar la información procesada por cada esclavo (componente secundario) y de distribuirla en su totalidad a cada uno de ellos. Permite el procesamiento en paralelo, pues cada esclavo trabaja independientemente de los demás. También, se le conoce como comunicación global, porque la información se concentra en un procesador (maestro).

4 Maestro-esclavo o comunicación global

5 Esquema SPMD o comunicación local Este esquema utiliza el modelo Single Program Multiple Data (Programas Simples Múltiples Datos). Se escribe únicamente un programa y todos los procesadores ejecutarán el mismo programa. Múltiples datos (MD) se refiere a que los datos se dividen en pedazos, y se le asigna un pedazo a cada procesador. A diferencia de la comunicación global, al aplicarse este esquema a las estrategias de particionamiento, no existe un proceso maestro.

6 Esquema SPMD o comunicación local La comunicación del procesador N es sólo con sus vecinos más cercanos, es decir, con el N - 1 y el N + 1 si no es el procesador 0 o el último. Si es el procesador 0 éste sólo se comunica con el procesador 1 y el último procesador sólo se comunica con el anterior.

7 Esquema SPMD o comunicación local Una de las características principales para la aplicación eficientemente del paralelismo es que no deben existir dependencias de datos entre los procesadores, de lo contrario se tendría que usar sincronización para que la evaluación del problema sea correcto. Por lo tanto, se requiere tener una buena orquestación del problema a paralelizar.

8 Alcances de las comunicaciones Punto a punto Involucra dos tareas, donde una tarea actúa como el transmisor/productor de datos y el otro actúa como el recibidor/consumidor. Colectiva Involucra compartir datos entre más de dos tareas, las cuales se especifican como miembros de un grupo común o colectivo. Broadcast Scatter Gather Reduction Etc.

9

10 MPI_Bcast (Broadcast) Difunde un mensaje desde el proceso root a todos los otros procesos en el grupo (incluyendo root). Sintaxis: #include <mpi.h> int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm) Parámetros buffer : Dirección de inicio del buffer. Count: Numero de entradas en el buffer. Datatype: Tipo de datos del buffer. Root: Rank of broadcast root (integer). Comm: Comunicador.

11 Ejemplo Broadcast 100 enteros desde el proceso 0 a cada proceso en el grupo. MPI_Comm comm; int array[100]; int root=0;... MPI_Bcast( array, 100, MPI_INT, root, comm);

12 MPI_Gather Reúne los valores desde un grupo de procesos. Sintaxis: #include <mpi.h> int MPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) Parámetros Sendbuf: Dirección de inicio del buffer a enviar. Sendcount: Numero de elementos en el buffer de envío. Sendtype: Tipo de datos del buffer de elementos de envío. Recvcount: Numero de elementos para el recibo. Recvtype: Tipo de datos del buffer de elementos. Root: Rank del proceso que recibe. Comm: Comunicador.

13 Ejemplo Reúne 100 enteros desde cada proceso en el grupo al raíz. MPI_Comm comm; int gsize,sendarray[100]; int root, *rbuf;... MPI_Comm_size( comm, &gsize); rbuf = (int *)malloc(gsize*100*sizeof(int)); MPI_Gather( sendarray, 100, MPI_INT, rbuf, 100, MPI_INT, root, comm);

14 MPI_Scatter Envía datos desde una tarea a todas las tareas en un grupo. Sintaxis: #include <mpi.h> int MPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) Parámetros sendbuf : Dirección del buffer de envío. Sendcount : Numero de elementos de envío a cada proceso. sendtype : Tipo de datos del buffer de elementos de envío. recvcount : Numero de elementos del buffer de recibo. recvtype : Tipo de datos del buffer de recibo. root : Rank del proceso de envío. Comm : Comunicador.

15 Ejemplo Lo contrario del ejemplo de MPI_Gather. Dispersión de conjuntos de 100 enteros desde la raíz a cada proceso en el grupo. MPI_Comm comm; int gsize,*sendbuf; int root, rbuf[100];... MPI_Comm_size(comm, &gsize); sendbuf = (int *)malloc(gsize*100*sizeof(int));... MPI_Scatter(sendbuf, 100, MPI_INT, rbuf, 100, MPI_INT, root, comm);

16 MPI_Reduce Reduce los valores de todos los procesos dentro de un grupo. Sintaxis: #include <mpi.h> int MPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) Parámetros sendbuf : Dirección del buffer de envio. count : Numero de elementos en el buffer de envío. Datatype : Tipo de dato de los elementos del buffer de envio. op : Operación de reducción. root : Rank del proceso raíz. comm : Comunicador.

17 Operaciones MPI_MAX máximo MPI_MIN mínimo MPI_SUM suma MPI_PROD producto MPI_LAND and lógico MPI_LOR or lógico MPI_LXOR xor lógico

18 Programas paralelos Problema:

19

20 Problema: producto de matrices

21

22 Referencias mp/#designing mp/

Introducción a la Interfaz de paso de mensajes (MPI)

Introducción a la Interfaz de paso de mensajes (MPI) Introducción a la Interfaz de paso de mensajes (MPI) MPI communicator 1 P0 value MPI communicator 2 0 1 P1 P2 value 2 3 P3 José Miguel Mantas Ruiz Depto. de Lenguajes y Sistemas Informáticos Universidad

Más detalles

Elementos básicos de cómputo paralelo

Elementos básicos de cómputo paralelo Elementos básicos de cómputo paralelo Grandes paradigmas Máquinas de memoria compartida Todos los procesadores ven toda la memoria al mismo tiempo. La filosofía es básicamente dividir las tareas. EL estándar

Más detalles

utilizar libros ni un ejemplo tráfico

utilizar libros ni un ejemplo tráfico UNIVERSIDAD CARLOS III DE MADRID INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 14 de junio de 2010 Para la realización del presente examen se dispondrá de 2 1/2 horas. NO se podrán utilizar

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

Programación de aplicaciones paralelas con MPI (Message Passing Interface)

Programación de aplicaciones paralelas con MPI (Message Passing Interface) Programación de aplicaciones paralelas con MPI (Message Passing Interface) José Miguel Alonso Facultad de Informática UPV/EHU miguel@si.ehu.es 13/1/97 1. Introducción a MPI MPI (Message Passing Interface)

Más detalles

Introducción a MPI / MPI2

Introducción a MPI / MPI2 Barcelona Supercomputing Center Centro Nacional de Supercomputación Introducción a MPI / MPI2 Santander, 5 de Noviembre de 2010 Xavier Abellan BSC Support team Índice Introducción Qué es MPI? Conceptos

Más detalles

Interfaz de Paso de Mensajes MPI. Christian Chinchilla Brizuela

Interfaz de Paso de Mensajes MPI. Christian Chinchilla Brizuela Interfaz de Paso de Mensajes MPI Christian Chinchilla Brizuela Agenda Definición Objetivo principal MPI Historia Ventajas Desventajas Estructura MPI Programa MPI Llamadas de MPI Funciones Principales MPI

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

JUAN CARLOS TORRES JOSE ALBEIRO CUESTA MENA GERMAN VARGAS FUNDACION UNIVERSITARIA KONRAD LORENZ

JUAN CARLOS TORRES JOSE ALBEIRO CUESTA MENA GERMAN VARGAS FUNDACION UNIVERSITARIA KONRAD LORENZ ANALISIS DE UNA ESTRATEGIA OPTIMA DE PARTICION DE ARCHIVOS PARA PROCESAMIENTO EN UN CLUSTER BASADO EN COMPUTACION PARALELA- CASO ARCHIVO DE RESPUESTAS DE UN EXAMEN JUAN CARLOS TORRES JOSE ALBEIRO CUESTA

Más detalles

UNIVERSIDAD DE BURGOS Área de Tecnología Electrónica. Introducción a la programación en MPI.

UNIVERSIDAD DE BURGOS Área de Tecnología Electrónica. Introducción a la programación en MPI. UNIVERSIDAD DE BURGOS Área de Tecnología Electrónica Introducción a la programación en MPI. José María Cámara Nebreda, César Represa Pérez, Pedro Luis Sánchez Ortega Introducción a la programación en MPI.

Más detalles

Índice. Índice. Máquinas de memoria distribuida. Arquitectura de un cluster. Arquitectura

Índice. Índice. Máquinas de memoria distribuida. Arquitectura de un cluster. Arquitectura Índice Programación en MPI 1. Máquinas de memoria distribuida 2. MPI 3. Arquitectura 4. Funciones básicas a. Arranque y parada b. Envío y recepción bloqueantes c. Envío y recepción NO bloqueantes d. Barreras

Más detalles

MPI y sus aplicaciones en infraestructuras Grid

MPI y sus aplicaciones en infraestructuras Grid MPI y sus aplicaciones en infraestructuras Grid Dr. Isabel Campos Plasencia Instituto de Física de Cantabria-IFCA Santander, Spain Grids y e-ciencia 2008, IFIC, Valencia Esquema Introducción a MPI MPI

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007 UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007 Para la realización del presente examen se dispondrá de 2 1/2

Más detalles

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes. Programación paralela en MPI MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes. Introducción a MPI MPI fue creado en 1993 como

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo MPI - Tipos y Topologías 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

Modelo de paso de mensajes

Modelo de paso de mensajes Modelo de paso de mensajes Miguel Alfonso Castro García mcas@xanum.uam.mx Universidad Autónoma Metropolitana - Izt 17 de noviembre de 2016 Contenido 1 Comunicación punto a punto 2 3 Comunicación punto

Más detalles

Proyecto de Investigación I y II

Proyecto de Investigación I y II Universidad Autónoma Metropolitana Iztapalapa Proyecto de Investigación I y II Migración de datos entre nodos de un cluster Ciencias Básicas e Ingeniería Licenciatura en Computación Autores: Fernando Fernández

Más detalles

Computación Matricial y Paralela

Computación Matricial y Paralela Computación Matricial y Paralela Programación con Paso de Mensajes. MPI 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

Sistemas de ficheros paralelos

Sistemas de ficheros paralelos Índice Sistemas Operativos Distribuidos Sistemas de ficheros paralelos Necesidad de E/S paralela Conexión de dispositivos Sistemas de ficheros distribuidos versus paralelos Técnicas de optimización de

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Introducción a MPI Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar http://www.frbb.utn.edu.ar/hpc/

Más detalles

Computación Matricial y Paralela

Computación Matricial y Paralela Computación Matricial y Paralela Sesión 3 MPI. Algoritmos Matriciales Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Facultad de Informática

Más detalles

COMPUTACIÓN DE ALTA PERFORMANCE

COMPUTACIÓN DE ALTA PERFORMANCE COMPUTACIÓN DE ALTA PERFORMANCE 2011 1 MPI-I COMPUTACIÓN DE ALTA PERFORMANCE Curso 2011 Sergio Nesmachnow (sergion@fing.edu.uy) Santiago Iturriaga (siturria@fing.edu.uy) Gerardo Ares (gares@fing.edu.uy)

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

Programación en Paralelo con MPI en Clusters Linux

Programación en Paralelo con MPI en Clusters Linux Programación en Paralelo con MPI en Clusters Linux Francisco Javier Rodríguez Arias 13 de marzo de 2006 Problema y Motivación En física se requiere hacer muchos cálculos. Para eso se hacen programas de

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

Curso-Taller Programación Paralela con lenguaje C bajo Linux. MCC. Salazar Martínez Hilario

Curso-Taller Programación Paralela con lenguaje C bajo Linux. MCC. Salazar Martínez Hilario Curso-Taller Programación Paralela con lenguaje C bajo Linux MCC. Salazar Martínez Hilario Mayo 2011 Programación Paralela La que se realiza usando procesos separados. Interactúan intercambiando información.

Más detalles

Introducción al Cómputo en Paralelo en el Laboratorio Nacional de Supercómputo del Sureste de México: Uso de MPI

Introducción al Cómputo en Paralelo en el Laboratorio Nacional de Supercómputo del Sureste de México: Uso de MPI Introducción al Cómputo en Paralelo en el Laboratorio Nacional de Supercómputo del Sureste de México: Uso de MPI Poulette Mayoral Orueta y Luis M. Villaseñor Cendejas Benemérita Universidad Autónoma de

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Introducción a MPI (Message Passing Interface)

Introducción a MPI (Message Passing Interface) Centro Nacional de Cálculo Científico Universidad de Los Andes CeCalCULA Mérida - Venezuela Introducción a MPI (Message Passing Interface) Francisco Hidrobo hidrobo@ciens.ula.ve Herbert Hoeger hhoeger@ing.ula.ve

Más detalles

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

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

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Estudio de una implementación para renderizado en paralelo con Yafaray

Estudio de una implementación para renderizado en paralelo con Yafaray INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN Curso Académico 2009/2010 Proyecto de Fin de Carrera Estudio de una implementación para renderizado en paralelo con Yafaray Autor: Noelia González Méndez Tutores:

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

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

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

6 de Mayo Bogotá, Colombia. ni.com/colombia o (1)

6 de Mayo Bogotá, Colombia. ni.com/colombia o (1) 6 de Mayo Bogotá, Colombia ni.com/colombia 01 8000 513680 o (1) 482.4888 Técnicas de Programación para Obtener el Máximo Provecho de LabVIEW Felipe Rincón Field Sales Engineer National Instruments Andean

Más detalles

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato

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

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +. APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje

Más detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Autónoma del Estado de México Facultad de Medicina Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en

Más detalles

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP. Duración: 60 horas FUNDAMENTACIÓN DEL CURSO PROGRAMACIÓN EN PHP El Lenguaje PHP o Hypertext PreProcessor, al igual que C y Perl maneja programación estructurada, lo que le permite a los programadores con

Más detalles

GUÍA ESTUDIO TEMA 11. PROGRAMACIÓN de REDES DISTRIBUIDAS

GUÍA ESTUDIO TEMA 11. PROGRAMACIÓN de REDES DISTRIBUIDAS GUÍA ESTUDIO TEMA 11. PROGRAMACIÓN de REDES DISTRIBUIDAS OBJETIVOS El objetivo básico de este capítulo es la consolidación y síntesis de los conceptos de Comunicaciones Industriales, de su uso en los Sistemas

Más detalles

www.infoplc.net Discrete Automation and Motion Drives y PLC Plataforma de automatización escalable AC500 Modbus RTU

www.infoplc.net Discrete Automation and Motion Drives y PLC Plataforma de automatización escalable AC500 Modbus RTU Discrete Automation and Motion Drives y PLC Plataforma de automatización escalable AC500 Modbus RTU Version 2.0 (2009-02) Technical Guides Contenido Modbus Bus internacional Modbus RTU mediante COM1 y

Más detalles

Computación de Alta Performance Curso 2009. PVM Avanzado

Computación de Alta Performance Curso 2009. PVM Avanzado Computación de Alta Performance Curso 2009 Avanzado QUÉ ES? Una BIBLIOTECA, NO un Lenguaje Un estandar de facto, no de comité Soporte para: Administracion dinamica de maquinas heterogeneas Identificacion

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

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

Instalación de un Super-Servidor de procesamiento paralelo basado en MPI

Instalación de un Super-Servidor de procesamiento paralelo basado en MPI LABORATORIO: Simulación y Mecánica Computacional TRABAJO: Instalación de un Super-Servidor de procesamiento paralelo basado en MPI Idioma: Español Plataforma de Hardware: AMD64 Sistema Operativo: Debian

Más detalles

El Procesamiento Distribuido y su aplicación al Tratamiento de Imágenes. Miguel Hernández Vázquez. Carlos Platero Dueñas

El Procesamiento Distribuido y su aplicación al Tratamiento de Imágenes. Miguel Hernández Vázquez. Carlos Platero Dueñas El Procesamiento Distribuido y su aplicación al Tratamiento de Imágenes Autor: Tutor: Miguel Hernández Vázquez Carlos Platero Dueñas A mis padres y a mi hermano, que tanto me han ayudado y apoyado durante

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

ARQUITECTURA DE COMPUTADORAS

ARQUITECTURA DE COMPUTADORAS 2-12-2012 INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS Cuestionario Unidad 4 Claudia Cristina Enríquez Zamarrón 10 55 05 10 Laura Michell Montes Blanco 10 55 05 02 INTRODUCCIÓN: En

Más detalles

GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales

GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales OBJETIVO GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales Entender el concepto y funcionamiento de los arreglos Realizar programas en C, haciendo uso de arreglos, a través de su recorrido

Más detalles

Examen de Fundamentos de la Programación (Modelo 1)

Examen de Fundamentos de la Programación (Modelo 1) Examen de Fundamentos de la Programación (Modelo 1) 27 de noviembre de 2007 1. Qué escribe el siguiente programa si se teclea 5? int num, resultado; for (resultado=0; num; resultado++) num -= 2; printf

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

Tipos de datos y operadores en C++

Tipos de datos y operadores en C++ Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

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

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. Código: O613 INGENIERÍA DE SISTEMAS Docente y Administrativo: Luz Esperanza Espitia Preciado Componente: Teórico Práctico. F. Vigencia: 8/10/2.012

Más detalles

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los

Más detalles

Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS

Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS En este capítulo, se realiza la evaluación y comparación de los métodos de paralelización de recurrencias descritos y propuestos en este trabajo. Los resultados

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Operaciones a nivel bit

Operaciones a nivel bit Operaciones a nivel bit En primer lugar veamos la necesidad de trabajar a nivel bit, y creo que la mejor forma es dando un ejemplo práctico. Supongamos que obtuvimos un código de Huffman sobre unos caracteres

Más detalles

Sistema RTUQM DESCRIPCIÓN

Sistema RTUQM DESCRIPCIÓN DESCRIPCIÓN Sistema de aplicaciones de software para gestión de Unidades Remotas de Telecontrol, RTU modelos RTU587 y RTU194. La RTU realiza las tareas locales en una estación de transformación o de una

Más detalles

Resolución de problemas en paralelo

Resolución de problemas en paralelo Resolución de problemas en paralelo Algoritmos Paralelos Tema 1. Introducción a la computación paralela (segunda parte) Vicente Cerverón Universitat de València Resolución de problemas en paralelo Descomposición

Más detalles

Manuel Martín Salvador

Manuel Martín Salvador MPI 2 Introducción a Message-Passing Interface 2 Manuel Martín Salvador draxus@gmail.com http://draxus.org Licencia CC Índice Introducción E/S Paralela Acceso remoto a memoria Gestión dinámica de procesos

Más detalles

Computacion de Alto Performance

Computacion de Alto Performance Computacion de Alto Performance Abraham Zamudio Abraham Zamudio Computacion de Alto Performance 1/47 Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH

Más detalles

CAPITULO 4: ENTRADA Y SALIDA DE DATOS.

CAPITULO 4: ENTRADA Y SALIDA DE DATOS. CAPITULO 4: ENTRADA Y SALIDA DE DATOS. 1. INTRODUCCIÓN. Hemos visto que el lenguaje C va acompañado de una colección de funciones de biblioteca que incluye un cierto número de funciones de entrada/salida.

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

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

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Entendiendo el Modelo OSI

Entendiendo el Modelo OSI Entendiendo el Modelo OSI Antes de continuar usted debe de leer: Qué es el modelo OSI? Estructura del modelo. Ejemplo del modelo. Introducción a Redes. Qué es el modelo OSI? OSI = Open System Interconnection,

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

Laboratorio de Paralelismo MPI: ejemplos y ejercicios

Laboratorio de Paralelismo MPI: ejemplos y ejercicios Laboratorio de Paralelismo MPI: ejemplos y ejercicios > Máquinas y directorios Vamos a trabajar con un cluster sencillo de 35 nodos: 32 nodos uniprocesador (Pentium IV, 3 GHz, 1,5 GB RAM, 2 MB cache) y

Más detalles

Operadores aritméticos

Operadores aritméticos Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado

Más detalles

ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR

ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR Por Andreu Sabé Cruixent Arquitecto de Software en SALICRU Introducción Durante los últimos años, debido al aumento en el nivel

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el

Más detalles

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones

Más detalles

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS Tablas -SQL Curso Bases de Datos Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS SQL (Structured Query Language) SQL lenguaje usado para definir, manipular,

Más detalles

Tema: Arreglos de objetos en C#.

Tema: Arreglos de objetos en C#. Programación II. Guía No. 6 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de objetos en C#. Objetivos Describir la implementación de arreglos de Objetos Implementar

Más detalles

Análisis y modelado del rendimiento de algoritmos paralelos en clusters de computadoras

Análisis y modelado del rendimiento de algoritmos paralelos en clusters de computadoras INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN Análisis y modelado del rendimiento de algoritmos paralelos en clusters de computadoras Tesis que presenta Ing. Luis Alberto Rivera

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

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

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Tema 4 - Bloques combinacionales

Tema 4 - Bloques combinacionales - Bloques combinacionales Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

International Olympiad in Informatics 2013

International Olympiad in Informatics 2013 International Olympiad in Informatics 2013 6-13 July 2013 Brisbane, Australia Day 2 tasks robots Spanish 1.0 El hermano menor de Marita ha dejado unos juguetes en todo el piso de la sala! Afortunadamente,

Más detalles

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro 1. Sintaxis básica 2. Tipos de datos 3. Variables 4. Constantes 5. Expresiones y operadores

Más detalles

Curso de Java Introducción a la Programación II

Curso de Java Introducción a la Programación II Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice

Más detalles

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores. Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo

Más detalles

Tema III: Componentes de un Sistema Operativo

Tema III: Componentes de un Sistema Operativo Tema III: Componentes de un Sistema Operativo Concepto de proceso Jerarquía de memoria: Concepto de memoria cache Memoria virtual Partición Sistema de ficheros Sistema de entrada/salida: Driver y controladora

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

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica. EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación

Más detalles

Organización del Sistema Operativo

Organización del Sistema Operativo del Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Febrero de 2010 del Sistema Operativo Funciones Básicas Funciones Básicas Perspectivas del Computador Responsabilidades del SO

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Diagrama temporal de un programa simple. Multi-Programación con dos programas Diagrama temporal de un programa simple Multi-Programación con dos programas Multi-Programación con tres programas Gestión de la Memoria Mono-programación La memoria se divide en dos partes: Una para el

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