viernes, 12 de febrero de 2016

Tarea número 2



 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