PROGRAMACIÓN PARALELA EN DOS CAPAS.
Imaginemos que la programación
paralela tiene dos capas: la capa inferior contiene el núcleo del cómputo,
donde un proceso manipula su parte de los datos para producir su parte del
resultado, mientras que la capa superior controla la creación y sincronización
de los procesos y la partición de los datos entre los procesos. El compilador
sería responsable de traducir estas dos capas del programa paralelo en código
listo para su ejecución sobre una computadora paralela.
Dos ejemplos de este enfoque son:
CODE (Computationally Oriented
Display Environment): es un lenguaje de programación visual el cual permite al
usuario convertir programa secuenciales a paralelos.
HENCE (Heterogeneous Network
Computing Environment): es un programa diseñado para asistir al usuario en el
desarrollo de programas paralelos que funcionen en una red de computadoras.
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.
CREACIÓN DE UN LENGUAJE PARALELO
Tal como suena, la creación de un lenguaje paralelo consiste en desarrollar un lenguaje de programación desde cero. El lenguaje de
programación OCCAM (desarrollado por el Inglés David May).Cuenta con una sintaxis totalmente diferente de los lenguajes
tradicionales, este lenguaje soporta tanto la ejecución de procesos en paralelo
como secuenciales, así como la comunicación y la sincronización entre ellos.
Una desventaja es el
hecho de que al agregar instrucciones paralelas a un lenguaje de programación
existente o crear por completo un nuevo lenguaje de programación paralelo
requiere el desarrollo de nuevos compiladores. El desarrollo de un compilador
nuevo de alta calidad normalmente lleva años de trabajo.
Algunos lenguajes paralelos, tales
como C*, no fueron adoptados como estándar. En esta situación muchos vendedores
en competencia decidieron no proporcionar compiladores para el lenguaje en sus
máquinas. Cuando esto pasa, la portabilidad de códigos se encuentra severamente
en peligro.
Otra barrera para la adopción de
nuevos lenguajes de programación es la resistencia del usuario. Cuando nuevas
construcciones paralelas se agregan a un lenguaje de programación, los
programadores deben aprender cómo usar estas nuevas construcciones. Muchos
programadores están renuentes a tomar esta transición.
Fuentes de consulta
No hay comentarios:
Publicar un comentario