GRANULARIDAD

La granularidad de sincronización, o frecuencia, entre procesos en el sistema, es una buena manera de caracterizar multiprocesadores y ubicarlos en un contexto con otras arquitecturas. Se pueden distinguir cinco categorías de paralelismo que difieren en el grado de granularidad. Estas categorías se encuentran resumidas en la tabla 10.1.

 

 

Tabla  10.1  Pocesos y granularidad de la sincronización

 

Ø          Paralelismo de Grano Fino: El paralelismo de grado fino representa un uso mucho más complejo del paralelismo que es encontrado en el uso de hebras. Aunque muchos  trabajos han sido  hechos en aplicaciones   altamente paralelas, es un área especializada y fragmentada, con muchos enfoques diferentes.

Ø          Paralelismo de Grano Medio: Una aplicación puede ser efectivamente implementada como una colección de hebras  con un paralelismo simple. En este caso, el paralelismo potencial de una aplicación debe ser explícitamente especificado por el programador. Generalmente  se necesitará un alto grado de coordinación e interacción entre las hebras de una aplicación, levando a un nivel medio de sincronización.

                                                                                              Mientras que el paralelismo independiente, de gran grueso y de grano muy grueso puedan verse respaldados tanto en un monoprocesador  multiprogramado como en un multiprocesador con poco o ningún impacto sobre la función de planificación, se debe revisar la planificación cuando se trata de la planificación de hilos. Puesto que los diversos hilos de una planificación interactúan de forma muy frecuente, las decisiones de planificación que involucran a un hilo pueden afectar al rendimiento de la aplicación completa.

Ø          Paralelismo de Grano Grueso y muy grueso: Con esta clase de paralelismo existe sincronización entre procesos pero a nivel muy grosero. Esta clase de situación es fácilmente entendible como un grupo de procesos concurrentes  ejecutándose en un monoprocesador multiprogramado y puede ser soportado en un multiprocesador con un pequeño o no cambio al software del usuario.

                                                                                              Un ejemplo simple de una aplicación que puede aprovechar la presencia de un microprocesador. Los autores han desarrollado un programa que recibe una especificación de los archivos que necesitan ser recopilados para reconstruir una parte del software y determinan cuales de estas compilaciones (normalmente todas) pueden ejecutarse simultáneamente el programa crea entonces un proceso para cada compilación paralela. Los resultados indican que la aceleración en un multiprocesador  supera la que realmente la que podría esperarse añadiendo simplemente el número de procesadores usados, debido a las sinergias en las caches del disco y compartir el código del compilador, que se carga en la memoria solo una vez.

                                                                                              En general, cualquier conjunto de procesos concurrentes que necesiten comunicarse o sincronizarse puede aprovechar el uso de las arquitecturas  de los multiprocesadores. Un sistema distribuido puede ofrecer un soporte adecuado en caso de interacciones poco frecuentes entre los procesos. Sin embargo, si la interacción es algo más frecuente, la sobrecargo de comunicaciones a través de la red puede anular parte de la posible aceleración. En este caso, la organización del multiprocesador ofrece el soporte más efectivo.

Ø          Paralelismo Independiente: Entre los procesos no existe una sincronización explícita. Cada uno representa una separación, una aplicación independiente. El uso típico de este tipo de paralelismo es en los sistemas de tiempo compartido.

                                                                                   Cada usuario está ejecutando una aplicación en particular, como un procesador de textos o una hoja de cálculo. El multiprocesador ofrece el mismo servicio que un procesador multiprogramado. Como hay más de un procesador disponible, el tiempo medio de respuesta a los usuarios será menor.

                                                                                    Es posible alcanzar un aumento similar de rendimiento proporcionado a cada usuario un computador personal o una estación de trabajo. Si van a compartirse archivos o alguna información, entonces se deben conectar los sistemas individuales  en un sistema distribuido soportado por una red. Por otro lado, un único sistema multiprocesador ofrece, en muchos casos, un coste mejor que un sistema distribuido, pudiendo así mejorar los discos y otros periféricos.

 

Indice