Lenguajes paralelos



Descargar 9,7 Kb.
Fecha de conversión24.03.2017
Tamaño9,7 Kb.

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:
  • Cómputo de las
  • Iteraciones
  • Fase 1
  • Sincronización
  • Fase 3
  • Envío de
  • valores iterados
  • Recepción de
  • valores iterados
  • Comunicación

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.


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal