jueves, 19 de febrero de 2015

PROGRAMACIÓN DE COMPUTADORAS PARALELAS


Tarea # 4 

Universidad Autónoma del Estado de México



PROGRAMACIÓN DE COMPUTADORAS 

PARALELAS


Introducción
En 1988 McGraw y Axelrod identificaron cuatro formas distintas de desarrollar software (aplicaciones) para las computadoras paralelas:

1.    Extender o enriquecer un compilador existente para que traduzca programas secuenciales en programas paralelos.
2.    Extender o enriquecer un lenguaje existente con nuevas operaciones que permita a los usuarios expresar el paralelismo.
3.    Agregar una nueva capa de lenguaje paralelo encima de un lenguaje secuencial existente.
4.    Definir totalmente un nuevo lenguaje paralelo así como su compilador.

Esta ocasión nos concentraremos en comentar acerca del 3er y 4to enfoque de este tema
Desarrollo
3.    Agregar una nueva capa de lenguaje paralelo encima de un lenguaje secuencial existente.

Este enfoque requiere que el programador aprenda y use un nuevo sistema de programación paralelo, lo cual puede ser la razón por la que no ha captado mucha atención en la comunidad de programación paralela. Mientras que los prototipos de investigación están siendo distribuidos, no se conoce ningún sistema comercial basado en esta filosofía.

Entre las grandes propuestas para este enfoque se encuentran los lenguajes de programación visual donde el programador puede definir de una manera "más clara" la parte paralela, y el compilador sería el encargado de definir el código paralelo adecuado para la ejecución sobre una computadora paralela.

Ejemplos de este enfoque son el ambiente CODE que permiten al programador des acomplejar sus problemas a la hora de programar en paralelo, a partir de una programación visual, utilizando estructuras similares a grafos que permiten de una manera simple definir la parte paralela de un programa

Otro ejemplo

CUDA™ es una plataforma de computación paralela y un modelo de programación inventado por NVIDIA. Permite aumentos impresionantes en el rendimiento de la computación al aprovechar la potencia de la unidad de procesamiento de gráficos (GPU).

Los programas secuenciales pueden ser escritos en cualquier idioma, y ​​el propio código es independiente de la arquitectura. Por lo tanto, el sistema de código puede producir programas paralelos para redes basadas en PVM y basados ​​en MPI, así como para el Sequent Symmetry, Cray y Sun Sparc MP. Actualmente, la propia interfaz gráfica de código se ejecuta en Soles

……………………………………………………………………………………………......


El siguiente enfoque seria:
4.    Definir totalmente un nuevo lenguaje paralelo así como su compilador.

En la actualidad hay una gran demanda de computadores rápidos para muchos campos de aplicación científico. Es conocido que la velocidad de las computadoras ha aumentado con el tiempo según las evoluciones de la tecnología. En cualquier caso, existen límites físicos para el aumento indefinido de la velocidad de las maquinas (velocidad de luz, capacidad de los conductores, disipación de calor en los circuitos integrados, etc.) Estas limitaciones provocan que se busquen nuevas alternativas para aumentar las prestaciones de las maquinas. Una de las alternativas que resulta más evidente es poner a trabajar varios elementos de proceso simultáneamente, dicho de otra forma, tratar de desarrollar el paralelismo; así el trabajo se repartirá y se tardara menos tiempo en completar el proceso.
El lenguaje de programación OCCAM es un ejemplo famoso de este enfoque. Con una sintaxis sorprendentemente diferente de los lenguajes tradicionales imperativos, este lenguaje soporta tanto la ejecución de procesos en paralelo como secuenciales, así como la comunicación y la sincronización entre ellos.

Los lenguajes de programación concurrentes, bibliotecas, APIs y modelos de programación paralela han sido creados para la programación de computadores paralelos. Estos generalmente se pueden dividir en clases basadas en las suposiciones que se hacen sobre la arquitectura de memoria subyacente: compartida, distribuida, o compartida-distribuida

El concepto «valor futuro» es muy utilizado en la programación de programas paralelos, donde una parte de un programa promete proporcionar un dato requerido a otra parte del programa en un tiempo futuro.

Intel y Microsoft, por su parte, están adoptando un enfoque de abajo hacia arriba. Intel, en particular, tiene un interés comercial directo en la promoción de la programación paralela, porque si el software no es capaz de hacer pleno uso de la potencia de cálculo de sus chips, los clientes estarán menos inclinados a actualizar su hardware

Ejemplos
Otra forma de soportar el paralelismo explícito es agregar construcciones paralelas a un lenguaje ya existente
C + +
 Fortran


FUENTES

http://sg.com.mx/content/view/630

No hay comentarios:

Publicar un comentario