1 / 9

Tipos de Organización ...

Tipos de Organización. La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid Networks. Butterfly Networks. Hypercube Netwoks. Cube-Connected Cycles Networks. III. LENGUAJES Y COMPILADORES.

brock
Download Presentation

Tipos de Organización ...

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tipos de Organización ... • La organización de máquinas multiprocesadores más típicas son: • Mesh Networks. • Binary Tree Networks. • Hypertree Networks. • Pyramid Networks. • Butterfly Networks. • Hypercube Netwoks. • Cube-Connected Cycles Networks.

  2. III. LENGUAJES Y COMPILADORES. • Existen 5 modelos de programación para máquinas multiprocesadores, multicomputadoras y computadoras vectores/SIMD. • Estos se basan en diferentes paradigmas de programación para explotar el paralelismo. • Modelo I. Modelo de Variables Compartidas. Un programa es una colección de procesos, el paralelismo depende de cómo los IPCs son implantados. • La programación paralela se centra alrededor de la especificación, creación, suspención, reactivación, migración, terminación y sincronización de procesos concurrentes que residen en el mismo o distinto procesador. • Las variables compartidas se utilizan para la creación del acceso protegido a recursos, la multiprogramación, multiprocesamiento, multitarea, multihilo, en la partición, planificación, sincronización y la duplicidad.

  3. Lenguajes y compiladores ... • Modelo II. Paso de mensajes: • Este modelo se basa en el paradigma del paso de mensajes (parámetros) a través de la red, estos mensajes pueden se instrucciones, datos, sincronización, señales de interrupción, etc. • Este modelo de utilizan en máquinas donde no existe memoria compartida. • El paso de mensajes puede utilizarse para lograr la computación paralela, existen tres tipos: • Paso de mensajes Síncronos. Los procesos se ponen de acuerdo para lograr la computación paralela. • Paso de mensajes Asíncronos. No existen ciclos de espera para recibir información se utilizan grandes buffers para almacenar los mensajes. • Computación distribuida. Las multicomputadoras principalmente utilizan es paradigma, no existe memoria compartida pero a través del paso de mensajes se trata de simular. • El modelo PRAM débilmente acoplado es utilizado para la computación distribuida.

  4. Lenguajes y compiladores ... Modelo III. Modelo de datos Paralelos: • El paralelismo es explícitamente controlado por la sincronización del hardware y el control del flujo. • Los lenguajes paralelos son modificados utilizando lenguajes estándares secuenciales (C*, Fortran 90, Ada, etc.). • Los programas requieren del uso de conjuntos de datos predistribuidos. • Generalmente este tipo de lenguajes proveen estructuras de datos que facilitan el intercambio de datos para realizar operaciones en paralelo. Los vectores representan a este modelo. • La sincronización de operaciones en el paralelismo de datos, es realizada por el compilador. La sincronización del hardware es forzada por la unidad de control para ejecutar las operaciones. • Las máquinas SIMD son las que más utilizan este modelo de programación.

  5. Lenguajes y compiladores ... Modelo IV. La Programación Orientada a Objetos: • Los objetos son creados y manipulados en forma dinámica. El procesamiento se ejecuta por el envío de mensajes entre objetos. • Modelos de programación concurrente son construidos sobre objetos de bajo nivel los cuales son; procesos, colas de mensajes y semáforos representados por objetos de alto nivel como monitores y módulos de programas. • La POO Concurrente es popular debido a la fácil integración de estos en una GUI, a las facilidades que proveen los sistemas distribuidos y al creciente poder de computo de máquinas Supercomputadoras. • El uso de la CPOO para herramientas CAD, CAD/CAM y CAD/CAE, hacen que este modelo sea muy atractivo. • La COOP se basa en el modelo de actor; componentes de un sistema que se comunican con mensajes asíncronos. Pueden ser creados, enviar mensajes a otros actores y puede cambiar así mismo su función.

  6. Lenguajes y compiladores ... Modelo V. Modelos Funcionales y Lógicos: • Los lenguajes funcionales se utilizan para computación paralela basada en el flujo de datos. • En un lenguaje funcional no existen los conceptos de almacenamiento, asignación y ramificación. Los resultados de una función se producen sin importar el orden de procesamiento. • Esto ayuda al paralelismo basado en el flujo de datos. • Los lenguajes más utilizados son; Lisp, SISAL y Strand 88. • Los lenguajes lógicos se basan en el cálculo de predicados (Cláusulas de Horn). Este modelo permite el paralelismo en el proceso de inferencias donde se aplican las reglas. • Las cláusulas de la programación lógica pueden pueden ser transformadas en diagramas de flujo de datos. • Los lenguajes paralelos lógicos que existen son; Parlog, Concurrent Prolog entre otros. • Ambos lenguajes son utilizados en inteligencia artificial y se consideran lenguajes de 5a. Generación.

  7. LENGUAJES PARALELOS... • Chang y Smith (1990) clasificaron los lenguajes paralelos en seis categorias de acuerdo a sus características. • 1) Lenguajes con características de Optimización (convertir programas secuenciales en paralelos): • Paralelizador Automático. Compilador FX Fortran. • Paralelizador semiautomático (Directivas de paralelismo). DINO. • Soporte para reestructuración Interactiva. MIMDizer. • 2) Características de disponibilidad. Lenguajes que permiten generar códigos portables para una gran gama de máquinas paralelas: • Escalabilidad. Lenguajes que son escalables en el número de procesadores. • Compatibilidad. El lenguaje paralelo es compatible con un lenguaje secuencial. • Portable. El lenguaje es portable a multiprocesadores con memoria coompartida, con paso de mensajes, o ambos. • 3) Características de comunicación/sincronización: • IPCs, mensajes Send/Receive, RPC, Barreras, semáforos, monitores, etc.

  8. Continuación ... • 4) Control del paralelismo. Características que permiten la construcción de controles para especificar paralelismo en varias formas: • Grano fino, mediano o burdo. Nivel de paralelismo. • Paralelismo implícito o explícito. Primitivas para indicar paralelismo. • Paralelismo espacial. Paralelismo Global que no permite el independiente. • Paralelismo en iteraciones. Ciclos, condiciones, etc. • 5) Características del paralelismo de datos. Lenguajes utilizados para especificar como son accesados y distribuidos los datos en máquinas SIMD o MIMD: • Descomposición automática. El usuario no interviene. • Especificación de distribución. • Soporte de procesadores virtuales. El compilador distribuye procesadores virtuales en forma dinámica o estática a procesadores reales. • Acceso directo a datos compartidos. • 6) Caracteríticas para el Control de procesos. Creación eficiente de procesos (Multitarea o multihílo).

  9. Lenguaje de Transputers (OCCAM).. • OCCAM

More Related