next up previous contents
Next: 4.2.2 El algoritmo en Up: 4.2 Implementación paralela Previous: 4.2 Implementación paralela   Índice General


4.2.1 Elección de organización

Uno de los aspectos más sutiles del cómputo paralelo es el de la elección de la organización lógica de los procesos que participarán en un cálculo. La elección de esta organización junto con el algoritmo a emplear para resolver el proceso es esencial para obtener un rendimiento óptimo de nuestro equipo paralelo.

Existen varias maneras tradicionales de organizar la división de trabajo en un cálculo en equipos paralelos. Una de ellas es el uso de un esquema ``maestro-esclavo''. En este esquema uno de los procesos se dedica a arbitrar el trabajo de los demás, sin participar realmente en el cálculo. Este proceso se conoce como ``maestro'' mientras que los demás se denominan ``esclavos''. En general el maestro divide el problema en unidades de trabajo, asigna estas unidades a los procesos esclavo, recoge los resultados entregados por los mismos, y consolida dichos resultados parciales para obtener una respuesta final.

Otro esquema muy utilizado es el cálculo en horda (herd computing). Aquí, todos los procesos son jerárquicamente iguales y comparten información entre ellos para alcanzar la solución final. Comúnmente la consolidación de resultados se realiza al final del cálculo, ya que todos los procesos han completado sus unidades de trabajo.

También está presente la división funcional de trabajo, en la cual cada nodo realiza una tarea diferente, a diferencia de los esquemas anteriores donde los nodos ejecutan básicamente el mismo proceso, pero sobre distintas porciones de los datos a manipular. El esquema de división funcional puede equipararse burdamente a una línea de producción industrial, donde en cada estación se realiza una tarea diferente de las demás.

En general es complicado dar una idea de cuál es la manera más eficiente de organizar y dividir el trabajo. Esto está determinado en gran medida por el algoritmo con que se va a atacar el problema, que podrá prestarse a alguna de las formas de organización antes mencionada. De hecho, tanto la elección del algoritmo como de la organización y división de trabajo son tareas que requieren experiencia e intuición, proporcionando el aspecto más ``artístico'' del cómputo en paralelo.

En el caso del problema de la multiplicación de matrices propuesto, se optó por una organización maestro-esclavo. La operación detallada del algoritmo paralelo se describe en la siguiente sección.


next up previous contents
Next: 4.2.2 El algoritmo en Up: 4.2 Implementación paralela Previous: 4.2 Implementación paralela   Índice General
2002-05-15