SERVICIOS DE INTERNET



UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍA
Ingeniería en Computación

ALUMNO: MARTÍNEZ REYES ALEJANDRO



viernes, 12 de febrero de 2016

Tarea 2

MEJORANDO LOS LENGUAJES

Para poder programar adecuadamente un algoritmo para una máquina paralela, es necesario disponer de un lenguaje de programación que permita explotar al máximo todas las posibilidades de la nueva arquitectura paralela. Esta es la razón de que en los últimos años está habiendo una autentica proliferación de nuevos lenguajes.
En 1998 McGraw y Axelrod identificaron 4 formas distintas para la creación de estos nuevos lenguajes, se puede seguir una de las cuatro vías siguientes:

  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 permitan a los programadores expresar el paralelismo.
  3.      Agregar una capa de lenguaje paralelo encima de un lenguaje secuencial existente.
  4.      Definir totalmente un nuevo lenguaje paralelo así como su compilador.


En este apartado solo mencionares el punto 3 y 4.

 Agregar una capa de lenguaje paralelo encima de un  lenguaje secuencial existente.

Crear un nuevo lenguaje que solo se utilizara para expresar la concurrencia y la necesaria sincronización, mientras el resto de aplicaciones  básicas  de programación  permanecerían iguales.    Es decir,  sería algo así como un pre-procesador para el manejo de la concurrencia.

La idea es la siguiente: la mayoría del código que existe en la actualidad es correcto y sirve para resolver unos problemas dados. Este código para ser ejecutado en varios multiprocesadores no necesita cambiar en su gran mayoría, tan solo añadirle algunas características de sincronización. De hecho, la mayoría de los errores en programación concurrente aparecen en la sincronización o partición de los datos. Por lo tanto, una posible solución es usar un pequeño lenguaje-compilador para expresarla estructura paralela del programa, dejando que el resto del código se exprese en un lenguaje convencional (Fortran o C, por ejemplo).

Situación actual: Algunos trabajos iniciales se han hecho ya en esta área. Pero esta solución también tiene sus inconvenientes. Uno de los más importantes se refiere a la depuración de programas, ya que debido a la existencia de un pre-procesador es difícil detectar dónde está el fallo cometido.

 Definir totalmente un nuevo lenguaje paralelo así como su  compilador.

Integrar el concepto de concurrencia y sincronización junto con las estructuras de programación tradicionales.

Se trata sin duda de la más radical de las cuatro vías que se han comentado. Evidentemente, es la más cara y la que exige más labor de desarrollo. Como contrapartida la mayoría de los problemas se pueden solucionar mediante un diseño adecuado del sistema lenguaje/compilador.
Los avances realizados hasta la fecha se han orientado en el área de los lenguajes funcionales, como FP o  SISAL. Las principales características de diseño de estos lenguajes son mejorar la claridad de la concurrencia, sin requerir que el programador maneje la sincronización, así como permitir que no dependan de la arquitectura objeto sobre la que se van a implementar.


Otra de las grandes ventajas aparece desde el punto de vista de la depuración de programas. Por el contrario los mayores inconvenientes descansan en la construcción del compilador. Este requiere técnicas muy sofisticadas para realizar con eficacia las funciones que tiene encomendadas, como particionar, mapear y sincronizar el programa. En la actualidad se está teniendo problemas en el manejo dinámico de memoria, ya que las más simples implementaciones requieren grandes cantidades de memoria.



REFERENCIAS: 
  • GarcÍa Carrasco, J. M.(1989): Modelos de arquitecturas, lenguajes y compiladores para procesamiento en paralelo.
  • McGraw, J. R. and Axelrod, T.S. (1988): Exploiting multiprocessors: issues and options. IEEE Software, Vol. 5, (5).




No hay comentarios.:

Publicar un comentario