Вы находитесь на странице: 1из 3

Estilos de programacin Paso de mensajes

Mecanismo de comunicacin y sincronizacin de procesos que ejecutan en distintas mquinas.En este tipo de comunicacin, los procesos intercambian mensajes. Entre los procesos que comunican debe existir un enlace de comunicacin. La comunicacin entre procesos se produce mediante mensajes de envo y recepcin de datos. Las transmisiones pueden ser sncronas o asncronas Normalmente se usa el envo no bloqueante y la recepcin bloqueante. PVM, MPI.

Variables compartidas
La comunicacin entre procesos se realiza mediante el acceso a variables compartidas. Lenguajes de programacin: Ada 95 o Java. Bibliotecas de funciones: Pthread (POSIX-Thread) u OpenMP. Lenguaje secuencial + directivas: OpenMP.

Paralelismo de datos
Se basa en realizar mltiples operaciones en paralelo sobre un gran conjunto de datos. Se aprovecha el paralelismo inherente a aplicaciones en las que los datos se organizan en estructuras (vectores o matrices). El compilador paraleliza las construcciones del programador.

Consideraciones sobre el rendimiento de los clusters


Gestin de los fallos. La forma en que se acta frente a un fallo en un cluster depende del tipo de configuracin del cluster (tabla 1). En general, se pueden utilizar dos alternativas para enfrentarse a los fallos: clusters de alta disponibilidad y clusters tolerantes a fallos. Un cluster de alta disponibilidad es el que ofrece una probabilidad elevada de que todos sus recursos estn en servicio. Si se produce un fallo, tal como la cada del sistema o la prdida de un volumen de disco, se pierden las tareas en curso. Si una de esas tareas se reinicia, puede ser una computadora distinta el que le d servicio. No obstante, el sistema operativo del

cluster no garantiza el estado de las transacciones ejecutadas parcialmente. Esto debera gestionarse en el nivel de aplicacin. Un cluster tolerante a fallos garantiza que todos los recursos estn disponibles. Esto se consigue utilizando discos compartidos redundantes y mecanismos para salvar las transacciones no terminadas y concluir las transacciones terminadas. La funcin de conmutar aplicaciones y datos en el cluster, desde un sistema defectuoso a otro alternativo, se denomina transferencia por fallo (failover). Una funcin adicional es la restauracin de las aplicaciones y los datos por el sistema original, una vez superado el fallo: se denomina recuperacin despus de un fallo (failback). La recuperacin puede hacerse automticamente, pero esto es deseable solo si el fallo ha sido completamente reparado y es poco probable que vuelva a producirse. En caso contrario, la recuperacin automtica puede ocasionar transferencias continuas en un sentido y en otro de programas y datos debido a la reparacin de un fallo, y se producirn problemas en cuanto a las prestaciones y a la recuperacin.

Equilibrado de carga. Un cluster necesita una capacidad efectiva para equilibrar la carga entre los computadores disponibles. Esta capacidad es necesaria para satisfacer el requisito de la escalabilidad incremental cuando una computadora se aade al cluster, las aplicaciones encargadas de la asignacin de tareas deberan incluir automticamente a dicha computadora junto con los restantes, para distribuir la carga de forma equilibrada. Los mecanismos de un nivel de software intermedio entre el sistema operativo y las aplicaciones (middleware) necesitan reconocer los servicios que pueden aparecer en los distintos miembros del cluster y pueden migrar desde un miembro a otro.

Computacin paralela. En algunos casos, la utilizacin eficiente de un cluster requiere ejecutar en paralelo el software correspondiente a una aplicacin: Paralelizacin mediante el compilador: un compilador con capacidad para generar cdigo paralelo determina, en el momento de la compilacin, las partes de la aplicacin que pueden ejecutarse en paralelo. Estas se asignan a computadores distintos del cluster. Las prestaciones dependen de la naturaleza del problema y de lo bien que est diseado el compilador. Paralelizacin realizada por el programador: En este caso, el programador escribe la aplicacin para que se ejecute en el cluster, y utiliza paso de mensajes para mover los datos entre los nodos del cluster segn sea necesario. Esto aumenta la carga de trabajo del programador pero puede ser la mejor aproximacin para sacar partido a un cluster en algunas aplicaciones. Computacin paramtrica: Esta aproximacin puede utilizarse si la aplicacin consiste bsicamente en un algoritmo o programa que debe ejecutarse una gran cantidad de veces, pero cada vez con un conjunto diferente de condiciones de inicio o parmetros. Un buen ejemplo de esto es un modelo de simulacin, que debe ejecutarse para un gran nmero de escenarios de forma que se obtengan resultados estadsticamente

significativos. Para que esta aproximacin sea efectiva se necesitan herramientas de procesamiento paramtrico que organicen, gestiones y enven a ejecutar los trabajos de forma ordenada.

Вам также может понравиться