LENGUAJES PARALELOS Chang y Smith (1990) clasificación:

Slides:



Advertisements
Presentaciones similares
Tabla de Contenido Concurrencia.
Advertisements

TEMA 1 Introducción a la Programación Concurrente
1.3. PROGRAMACION PARALELA
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
II. ARQUITECTURAS PARALELAS
Noveno Semestre UNIDEC
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
INTRODUCCIÓN A JAVA.
Maquina Virtual La máquina virtual de Java o JVM es un entorno de ejecución para aplicaciones de Java, cuya finalidad es la de adaptar los programas Java.
Ing. Enrique Meneses. Son las instrucciones detalladas que controlan el funcionamiento de un sistema de computación. Funciones: 1. Administrar los recursos.
INTRODUCCIÓN ESTADO DE LA TÉCNICA PROCESAMIENTO DISTRIBUIDO CON MPI PROCESAMIETNO DISTRIBUIDO DE IMÁGENES GENÉRICO CON VTK PROCESAMIENTO DISTRIBUIDO DE.
Los servicios de red son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red son instalados en uno o.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
Objetivos Describir la forma en que las redes impactan nuestras vidas diarias. Describir el rol del trabajo en red en la actualidad. Identificar los componentes.
Profesor: Ing. Matías Vallerga Ayudante: Lic. Cristian Kenny
Tipos de Servicios Web.
Estructuras en Sistemas Operativos
RMI Remote Method Invocation
SISTEMA OPERATIVO.
Universidad Centroamericana
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Sistemas Distribuidos y Paralelos
Direcciones físicas y direcciones virtuales (lógicas)
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
CONCEPTO MODELO Osi.
Tecnologías para el desarrollo de aplicaciones Web
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Pase de Mensaje MPI Elaborado: Betzaida Romero. Agenda  Historia y Evolución  Que es MPI  Conceptos  Ventajas  Desventajas  Ejemplo  Conclusiones.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
Procesamiento paralelo
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Introducción a la Programación. Lenguaje de Máquina.
Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Página 1 09/01/2005 Materia: Tecnología de la Información Curso: Profesora Ariana Rosenthal Tecnología de la Información Profesora Ariana Rosenthal Software.
Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 24 de Abril de 2004.
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Sistemas Concurrentes: Conceptos fundamentales
Una computadora MIMD intrínseca implica interacciones entre n procesadores debido a que todos los flujos de memoria se derivan del mismo espacio de datos.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
Sistemas Distribuidos
1.1 Silberschatz, Galvin y Gagne ©2002 Sistems Operativos – 6ta. Edición Capítulo 1: Introducción ¿Qué es un sistema operativo? Sistemas Operativos por.
Sistema operativo Unix
Estructura de los Sistemas Operativos
INTRODUCCION A SISTEMAS OPERATIVOS
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
Cluster de Computadores de Alto Desempeño con Acceso Remoto
SISTEMAS OPERATIVOS.
ARQUICTECTURA DE SERVIDORES
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Protocolos de comunicación TCP/IP
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
UNIVERSIDAD LATINA SOPORTE TECNICO SISTEMAS OPERATIVOS.
HERRAMIENTAS INFORMATICAS.. ¿QUE ES UN SISTEMA OPERATIVO?  Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz.
Computadoras de Alto Rendimiento (HPC)
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
HISTORIA DE LOS LENGUJAES DE PROGRAMACIÓN HARDWARE: Computadoras primivas en programación MÉTODOS: Subprogramas Estructuras de datos Posibilidad.
Sistemas de Comunicación Magistral Nro. 6 Capa 3: Red La Capa de Red provee principalmente los servicios de envío, enrutamiento (routing) y control de.
Transcripción de la presentación:

LENGUAJES PARALELOS Chang y Smith (1990) clasificación: 1) Lenguajes con características de Optimización: FX Fortran, DINO, MIMDizer. 2) Características de disponibilidad (Escalabilidad). Compatibilidad. JAVA. Portable. PVM, MPI y JAVA. 3) Características de comunicación/sincronización: PVM, MPI y CORBA. 4) Control del paralelismo (Nivel de paralelismo). Grano Burdo (Unix) PVM, MPI. Grano Fino. OCCAM, Threads, Pthreads Y Cthreads. 5) Características del paralelismo de datos (SIMD o MIMD): Propietarios. Lenguajes con extensiones (C*, ADA, Pascal C., C++, etc) 6) Caracteríticas para el Control de procesos. Creación eficiente de procesos (Multitarea o multihílo). JAVA, Pthreads, C*, CORBA, Sistemas Propietarios.

IV. IMPLEMENTACION DE ALGORITMOS Para la programación de algoritmos en máquinas SIMD y MIMD, es necesario la utilización de estrategias de planificación de multiprocesadores. Al diseñar algoritmos se deben de tomar en cuenta: Decisión de Ubicación. Donde situar el código. Decisión de Asignación (Administración del procesador). En que procesador ejecutar el código. El objetivo primordial es desarrollar la asignación y las técnicas de planificación que utilizarán el número mínimo de procesadores para ejecutarlos en el menos tiempo posible. Algoritmos deterministas y no deterministas. Clasificación de algoritmos paralelos (SIMD y MIMD): Algoritmos Sincronizados. Puntos de Interación. Algoritmos Asíncronos (Mem. Compartida). No hay punto de interacción. Macro segmentación encauzada. División del problema en segmentos denominados etapas, la salida de uno es la entrada de otro segmento.

Continuación ... La eficiencia de los algoritmos paralelos esta regida por medidas de rendimiento: 1) Fase de Procesamiento. Costo de procesamiento puro. 2) Fase de comunicación. Costo de la comunicación (Envío y recepción). 3) Fase de sincronización. Costo de esperar los resultados de una etapa. Algoritmo Iterativo Sincronizado: Envío de valores iterados Recepción de Comunicación Arquitecturas acopladas Débilmente Vs. Fuertemente Cómputo de las Iteraciones Fase 1 Sincronización Fase 3

IMPLEMENTACION DE ALGORITMOS PARALELOS (PVM Y MPI) En actualidad se disponen de muchos ambientes de desarrollo paralelo: CORBA, Cthreads, JAVA, OCCAM, ADA, C*, PVM, MPI etc. Cada uno propone características diferentes. La mayoría se basan en estándares de internacionales como: POSIX (IEEE 1003.1). Llamadas al sistema compatibles, con tiempo real. Threads (IEEE 1003.1c). Multitarea estándares. BSD Unix. IPCS. AT&T System V versión 4 (SVR4). IPCS. Los IPCs más utilizados son: Signals. Notificación de recepción de datos asíncronos. Shared Memory. Segmentos de memoria compartida entre procesos. Semaphores. Funciones P y V, coordinan el acceso exclusivo a recursos. Locks, Mutexes y Variables de Condición. Exclusión mutua recursos simples. Barries (IRIX). Para sincronizar un grupo de procesos. Fiels Locks. Para asegurar el uso exclusivo de una parte de un archivo.

LOS MODELOS DE COMPUTACION DISTRIBUIDA En la actualidad existen dos herramientas muy populares para la programación paralela y distribuida. Que funcionan en sistemas heterogéneos basados en el protocolo TCP/IP. Message-Passing Interface (MPI). Es un estándar de programación para construcción aplicaciones portables en sistemas heterogéneos, utilizando el lenguaje Fortran 77 o C. Las aplicaciones se pueden desarrollar suponiendo un número fijo de procesadores en una topología fija de procesadores (Pipeline, Mesh, Hipercube, Pyramid, HyperTree, etc.). Provee una serie de funciones con las cuales es posible lograr la ejecución, comunicación y sincronización de procesos paralelos. Parallel Virtal Machine (PVM). Es un conjunto de herramientas y bibliotecas que emulan aplicaciones de propósito general, en un ambiente de computación concurrente con computadoras interconectadas en una arquitectura variada. Permite la creación de aplicaciones que ejecutan una serie de procesos concurrentes en un conjunto de computadoras que pueden incluir uniprocesadores, multiprocesadores y nodos de un arreglo de procesadores.

MODELOS PVM Y MPI .. PVM y MPI son modelos abstractos y formales que permiten el diseño y distribución de aplicaciones en los nodos de sistemas heterogéneos con memoria PRAM, cada uno provee diferentes formas de desarrollar aplicaciones: Procesos y Threads puede ser ejecutados en paralelo en un sistema heterogéneo. Cuando los procesos son distribuidos en máquinas independientes se puede construir programas paralelos utilizando el paso de mensajes. En una ambiente de pasos de mensajes las aplicaciones consisten de : Múltiples procesos independientes. Cada uno tiene su propio espacio de direcciones. Se ejecutan utilizando el modelo PRAM. Cada proceso se coordina con otros utilizando el paso de mensajes. En sistema UNIX actualmente es posible integrar estas dos bibliotecas.

Selección entre MPI Y PVM .. En muchas formas ambos son similares: Cada uno es diseñado, especificado e implementado por terceras partes que están interesados en la portabilidad de las aplicaciones (Sistema Abiertos). El soporte técnico para cada uno esta disponible en Internet a un bajo costo (ShareWare). Cada uno provee funciones portables que son usados por una serie de procesos para contactarse e intercambiar información utilizando un canal de comunicación (LAN y WAN). Los dos soportan los lenguajes Fortran 77 y C. Cada uno provee conversión automática entre diferentes representaciones de los mismo datos de procesos que pueden ser distribuidos sobre una red de computadoras heterogénea. MPI es la interfase preferida para modelar aplicaciones distribuidas y paralelas. PVM es preferido para modelar aplicaciones paralelas en ambientes distribuidos.

Continuación ... MPI es preferido por su desempeño: Su diseño esta orientado a obtener una alta optimización en ambientes homogéneos. MPI funciona mejor en redes con una latencia pequeña y tasas de velocidades altas. PVM esta orientado a redes donde las velocidades de transmisión no son la mejor característica. MPI soporta diferentes topologías de interconexión, con un número fijo de procesadores o computadoras. Esto permite una mínima sobrecarga en las comunicaciones. PVM esta diseñado para explotar el paralelismo de sistemas heterogéneos, cuyo crecimiento incluso pude ser dinámico, no existe un número fijo de procesadores o computadoras, la sobrecarga en la red es mayor ya que no existe una topología predefinida. PVM es el modelo más aplicado y existe más información de cómo utilizarlo en diferentes plataformas.

Diferencias entre PVM Y MPI ... Los dos Proveen funciones semejantes en una biblioteca para el lenguaje Fortran o C. La semántica en las llamadas a funciones semejantes. Los procesos que participan en la aplicación paralela deben se compilados en cada uno de los nodos. PVM incluye una consola, la cual es usada para monitorear y controlar los estados de la máquina en la máquina Virtual y los estado de ejecución de un proceso PVM. MPI no provee mecanismos para especificar la localización inicial de los procesos y su liga con un procesador. PVM soporta la creación dinámica de tareas, MPI no. PVM soporta grupos dinámicos. En PVM la tareas pueden comunicarse con diferentes, mientras que en MPI todas operaciones de comunicación son colectivas. Se pueden agregar o quitar nodos en forma dinámica en PVM.