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