Next: Visualización y análisis de
Up: Actividades realizadas
Previous: Especialización de programas:
El control
de granularidad es una de las técnicas con mayor potencial en
paralelización ya que, además de poder incrementar la
velocidad de ejecución de programas en arquitecturas paralelas
clásicas, permite explotar el paralelismo usando máquinas
económicas con interconexiones poco eficientes (como por ejemplo
entre estaciones de trabajo en una red local). Su objetivo es
determinar (a ser posible en tiempo de compilación) cuál es el
tamaño óptimo de las tareas paralelas para que no se
desperdicie tiempo preparando y arrancando tareas demasiado
pequeñas. Si la cantidad de trabajo que implica una tarea
potencialmente paralela (medida en función de los datos que le
llegan) no es suficientemente grande, esta tarea debe ejecutarse
secuencialmente. A partir de la idea básica de controlar la
granularidad a partir de funciones de coste, propuesta en
[DLH90], se han desarrollado técnicas para computar
dinámicamente los tamaños de los datos de
programas [LH95] y, en colaboración con la
Universidad de Arizona, para usar esta información en el
análisis de coste [DGHL94] y en el control
automático de granularidad de
programas [LHD94, LHD96]. Dicho sistema
de control de granularidad anota automáticamente los programas
para efectuar este control, y ha sido incorporado al compilador
paralelizante. Además se ha extendido para tener en cuenta la
granularidad en paralelismo disyuntivo [LHD96], en el
que se ejecutan en paralelo varias ramas de búsqueda de un
árbol de ejecución. Aunque queda bastante trabajo por hacer en
este terreno, los resultados experimentales mostraron que el control
de granularidad puede contribuir sustancialmente a la optimización
de la ejecución en paralelo de programas, especialmente en
sistemas distribuidos, y que parece bastante factible un enfoque
automático del mismo.
<webmaster@clip.dia.fi.upm.es>
Last Modified: Fri May 9 17:59:16 MET DST 1997