90 likes | 389 Views
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.
E N D
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. • 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.
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.
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.
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.
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.
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.
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).