Está en la página 1de 18

SESION 04_2

SuperComputadoras. Redes P2P


Computación Distribuida

Ing. Rolando Navarro Jara


SuperComputadoras
 Una computadora que lidera el mercado en términos de capacidad de procesamiento, velocidad de cálculo.

 La velocidad de cálculo se mide en FLOPS (FLoating Point Operations Per Second).

 Floating Point es la manera de representar números reales en una computadora.

 Usualmente los números reales se representan por: significant digits × baseexponent

 Floating Point Operation es una operación matemática entre floating point numbers.

 En la actualidad, el LINPACK Benchmark es la documentación oficial que se usa para determinar la velocidad de las
computadoras: http://www.netlib.org/benchmark/hpl

 Para identificar a los líderes del Mercado de supercomputadoras se debe de visitor la web TOP500:
http://www.top500.org
SuperComputadoras
Líderes en SuperComputadoras – Noviembre 2012
SuperComputadoras – Evolución Ley de Moore
Arquitectura SuperComputadoras – Computación paralela

 El arte de la programación en paralelo es identificar


que parte del problema puede ser paralelizado.

 La computadora es dividida en nodos.

 Cada nodo posee multiples procesadores.

 Cada procesador tiene acceso a la memoria que le


corresponde al nodo al cual pertenece.

 Cada procesador puede hacer uso del total de la


memoria del nodo al cual pertenece.

 El lenguaje de progranmación más empleado es


FORTRAN.

 Herramientas que se emplean son del tipo:


Distribuited Memory o Shared Memory.
Introducción MPI
Supongamos que se tiene un problema matemático
que consiste en obtener el área de la f(x) y nuestro
supercompuytador consta de 4 procesadores. Lo
primero que se debe de realizer es dividir la f(x) en 4
secciones para paralelizar la solución.

En programación paralela cada una de las secciones


se conoce como RANK.

Notar que cada rank resuelve una parte del problema.


Para determinar el rsultado final es necesario
comunicar el resultado de cada rank a un único rank.
Esto se logra a través del Passing Message.
Consideraciones en MPI
• Which processor is sending a message? (which rank)

• Where is the data on the sending processor? (which


variable)

• What kind of data is being sent? (e.g., integer, real,


…)

• Hey, what do you have for ?

• How much data is being sent? (e.g., a single integer,


how many array elements)

• Which processor(s) is (are) receiving the message?


(which rank)

• Where should the data be left on the receiving


processor? (which variable)

• How much data is the receiving processor prepared


to accept? (e.g., how many array elements)
Sistemas distribuidos
 Es una colección de computadoras separadas físicamente y
conectadas entre sí por una red de comunicaciones
distribuida que usan un software para conseguir un objetivo
en común

 Cada máquina posee sus componentes de hardware y


software que el usuario percibe como un solo sistema (no
necesita saber qué cosas están en qué máquinas).

 El usuario accede a los recursos remotos de la misma


manera en que accede a recursos locales, o un grupo de
computadores.
Sistemas distribuidos – características

 Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red
puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red.

 Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes
componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a
los componentes.

 Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente,
con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor
efectividad, pues el sistema en su conjunto continua trabajando.
Sistemas distribuidos – ventajas

 Economía: Buena relación rendimiento/coste debido a los avances en tecnología de microprocesadores y de


comunicaciones.

 Alto rendimiento: Procesamiento paralelo.

 Soporte de aplicaciones inherentemente distribuidas. Por ejemplo: empresas multinacionales

 Capacidad de crecimiento: Escalabilidad.

 Fiabilidad y disponibilidad: Tolerancia a fallos.

 Carácter abierto y heterogéneo: Necesidad de estándares de interoperabilidad.

 Compartir recursos y datos.


Sistemas distribuidos – desventajas

 Falta de experiencia en el diseño e implantación y uso de software distribuido

 Tipos de sistemas operativos, lenguajes de programación y aplicaciones adecuados

 Conocimiento de los usuarios

 Redes de Comunicación

 Pérdida de mensajes.

 Saturación de la red

 Dependencia de la red baja (saturación y/o perdida de paquetes)

 Compartir y Seguridad

 Si las personas tienen acceso a los datos en todo el sistema, entonces también a otros que no tiene nada que ver.
Aspectos del diseño en los Sistemas Distribuidos

Para el usuario es transparente la estructura


TRANSPARENCIA
interna.

FIABILIDAD Garantizar la disponibilidad y coherencia.

RENDIMIENTO Mejorar la eficiencia versus un Sistema centralizado

CAPACIDAD DE RENDIMIENTO Evitar ser el cuello de botella.

FLEXIBILIDAD Facilidad al cambio.


TRANSPARENCIA

 Acceso: Manera de acceder a recurso local igual que a remoto.

 Posición: Se accede a los recursos sin conocer su localización.

 Migración: Recursos pueden migrar sin afectar a los usuarios.

 Concurrencia: Acceso concurrente no afecta a los usuarios.

 Replicación: La existencia de réplicas no afecta a los usuarios.

 Fallos: La ocurrencia de fallos no afecta a los usuarios.

 Crecimiento: El crecimiento del sistema no afecta a los usuarios.

 Heterogeneidad: Carácter heterogéneo no afecta a los usuarios.


FIABILIDAD

1. Disponibilidad:

 Teóricamente: OR-lógico de sus componentes.

 En ciertos casos: AND-lógico de varios componentes.

 Mecanismos: redundancia y evitar componentes críticos.

2. Coherencia:

 La fiabilidad está relacionada con la seguridad

 Se dificulta con caching y redundancia

 Heterogeneidad: Carácter heterogéneo no afecta a los usuarios.


RENDIMIENTO
1. Servicio multiusuario: Rendimiento no peor que un sistema
centralizado.

2. Ejecución paralela de aplicaciones: Rendimiento proporcional a


procesadores empleados.

3. Factores:

 Uso de esquemas de caching: Intentar que muchos accesos


se hagan localmente

 Uso de esquemas de replicación: Reparto de carga entre


componentes replicados

 En ambos casos: Costo de mantener la coherencia


CAPACIDAD DEL RENDIMIENTO

 Diseño de un sistema distribuido debe evitar “cuellos de botella” como: Componentes


centralizados, tablas centralizadas y algoritmos centralizados

 Características deseables en un algoritmo distribuido:

 Ninguna máquina tiene información completa del estado del sistema

 Las decisiones se basan sólo en información disponible localmente

 El fallo de una máquina no debe invalidar el algoritmo

 No debe asumir la existencia de un reloj global

 Flexibilidad
FLEXIBILIDAD

 Debe ser adaptable: Facilidad para incorporar cambios y extensiones al sistema

 Uso preferible de arquitectura microkernel

 Importancia de sistemas abiertos:

 Sus interfaces y protocolos deberían ser públicos.

 Contrario a ”tecnología propietaria”.

 Uso de estándares siempre que sea posible.

 Disponibilidad de su código fuente (libremente o no).

 Regulación por parte de un colectivo (usuarios u organizaciones) y no por particulares (fabricantes).

También podría gustarte