Programacion Paralela Pvm

Páginas: 5 (1187 palabras) Publicado: 5 de octubre de 2012
Introducción.

PVM significa “Parallel Virtual Machine”, es relativamente nuevo ya que sus inicios se remontan al verano de 1989 en el Oak Ridge National Laboratory. Es un software que permite ejecutar aplicaciones paralelas distribuidas en redes de ordenadores heterogéneos. PVM es, junto con MPI “Message Passing Interface”, uno de los paquetes de software más utilizados para implementaraplicaciones paralelas.

El presente reporte trata sobre la implementación en PVM del problema del orden en la multiplicación de matrices.

La versión implementada anteriormente con Multihilos explotaba el paralelismo de arquitecturas multiprocesador con memoria compartida, con la solución resultante al utilizar PVM se estará explotando el paralelismo en un ambiente de varias computadoras unidasmediante una red, lo más común es una red Ethernet, por tal motivo se tendrá un ambiente heterogéneo en cuanto a procesadores, y la memoria será distribuida, con lo cual el mecanismo de comunicación y sincronización cambia a como se realizó con Pthreads, esta vez la orquestación es implementado utilizando paso de mensajes.











1. Tipo de paralelización realizada con PVM

Laversión anterior realizada en Pthreads mejoro el tiempo de ejecución del algoritmo en su versión secuencial. Esa versión explotaba el tipo de arquitectura conocido como de memoria compartida.

Para esta versión se explota el paralelismo en arquitecturas de memoria distribuida.

Un programa paralelo en PVM generalmente constara un proceso maestro y varios procesos esclavos, realizando cada esclavouna parte del trabajo global. En la siguiente figura se ven dos posibles (no son los únicos) esquemas de trabajo para programas realizados en PVM.





Figura 1. Esquemas Maestro-Esclavo


Un programa PVM también puede explotar una arquitectura multiprocesador con memoria compartida, ya que se generaría y se repartirían automáticamente los procesos que creados. Sin embargo esta dirigidopara utilizar varias computadoras unidas por algún mecanismo como puede ser una red ethernet o redes mucho más especializadas para explotar este paralelismo.

Se trabajará bajo el modelo de paso de mensajes, el cual se realizará bajo primitivas de tipo bloqueante, con lo que obtendremos un método de sincronización bastante sencillo.





2. Particionamiento

La estrategia departicionamiento obedece a la utilización de una tabla de programación dinámica. Es decir el algoritmo llena una matriz triangular superior, donde el resultado lo encontraremos en el elemento de la esquina superior derecha.

Mediante el análisis de dependencias de datos se tiene que para explotar el paralelismo el proceso de llenado de la matriz triangular podía procede diagonal por diagonal, sin embargomediante procesar por bloques de diagonales, se tiene un menor numero de operaciones de sincronización, como se mostró en el reporte anterior. Por lo tanto para esta versión se utilizara el esquema de particionamiento por bloques.

Cabe recordar que el particionamiento por bloques divide la tabla en un determinado número de bloques de diagonales. Cada bloque es dividido entre los procesosdisponibles, los cuales aplican localmente un algoritmo secuencial. Este algoritmo es descrito en la sección de implementación.

La operación de sincronización se da solamente cuando un proceso ha concluido con su bloque de diagonales asignado. El cual podrá contar con uno o varios triángulos superiores e inferiores formados por distintas secciones en la matriz. Por lo tanto, si la tabla se divide en Bbloques, se requieren B-1 operaciones de sincronización y no n-1 como el particionamiento por diagonales. De acuerdo a las características de este particionamiento se necesitan divisores exactos de n, restricción que es implementada desde la versión con Pthreads.

Para eliminar conflictos de dependencias de datos se procedió a formar triángulos equiláteros superiores e inferiores. Por cada...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación en paralelo
  • Programacion concurrente y paralela
  • Programacion Puerto Paralelo
  • Programacion paralela y distribuida
  • Taller de programación paralela
  • Programacion de puertos paralelo
  • Que Es Programacion Paralela
  • Programacion Paralela

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS