Download Tema2

Document related concepts
no text concepts found
Transcript
• Conectan nodos en diferentes niveles del sistema (chip, tarjeta,
chásis, armario, ...). Desarrollado por diseñadores de arquitecturas
de altas prestaciones.
• Comunicar computadores, clasificación redes computación:
– WAN (Wide Area Network). Conexión de redes de computadores.
RDSI, ATM.
– LAN (Local Area Network). Conexión de cientos-miles de nodos en
distancias de decenas kilómetros. Redes Ethernet.
– SAN (System Area Network). Conexión de cientos-miles de nodos en
distancias cientos de metros.
•
•
•
•
Altas prestaciones.
Entre los sistemas a medida y LANs.
Redes basadas en estándares: SCI o Infiniband.
Diseños/implementaciones propias de fabricantes: Myrinet de Myricom,
QsNet de Quadrics.
• Diseños/implementaciones de fabricantes de computadores.
• Tendencias en sistemas de comunicación de altas prestaciones:
– Sustitución de buses por redes basadas en enlaces (punto a punto) y
conmutadores a todos los niveles: (chip, tarjetas, ...)
– Buena relación precio/prestaciones.
• Componentes de un sistema de comunicación:
– Interfaz de red: hardware y software
– Conmutadores (switch o router)
– Enlaces
• Sistema de comunicación: Gestiona e implementa las
transferencias de datos entre núcleos de nodos.
• Mensaje: Unidad de información que se transfiere entre nodos a
través del sistema de comunicación.
• Núcleo de nodo: Puede constar de procesador+cache+MP+E/S
• Transferencia mensaje puede suponer varias transferencias
paquetes (unidad de transferencia entre interfaces).
• Conmutadores y enlaces guían los paquetes a su destino.
• Multiprocesador:
– Nodo = Procesador+Cache ó Memoria ó E/S.
– Mensaje generado por un acceso a memoria (load/store).
– Controladores de memoria actúan de interfaz con la red interconexión.
– Sistema transparente al programador y herramienta de programación.
– Transferencia de paquetes con datos (línea de cache) y sólo de control.
– Tamaño paquete impuesto por hardware
– Protocolo de coherencia de cache.
• Multicomputador:
– Nodo = Al menos 1 procesador+cache, Memoria e interfaz.
– Comunicación entre 2 procesos en 2 computadores: transferencia de
datos de memoria fuente a memoria destino. (send/receive)
– Sistema de comunicación es visible al programador como subsistema
de E/S.
– Tamaño de los paquetes controlado por programador.
– Sistema, puede dividir datos en unidades más pequeñas para su
transferencia entre interfaces.
– Copia datos memoria-HW interfaz (fuente) y HW interfaz-memoria
(destino)
• Interfaz de red:
– Multicomputadores:
•
•
•
•
•
Consta de Parte hardware (Network Interface NI) y parte software.
Datos a enviar en espacio memoria usuario.
Copiar al NI para enviar.
Incluye colas de envío/recepción.
Para recibir copiar de la cola del NI a memorias de usuario
– Multiprocesadores:
• La implementación es sólo hardware.
• Diferencias cuando existe o no HW de coherencia de caches.
• Tareas interfaz de red
•
•
•
•
•
•
Almacenamiento de salida y entrada de paquetes
Formateo de paquetes
Copia y almacenamiento de datos
Protección. Traducción de direcciones
Control de flujo
Direccionamiento, encaminamiento y reconfiguración
• Almacenamiento de salida y entrada de paquetes
– Se realiza en registros o memoria interna del interfaz
– Gestion tipo cola (estructura circular con punteros)
– Si los paquetes no tienen tamaño fijo, punteros adicionales.
• Formateo de paquetes
– Interfaz genera información de control para los datos (envoltorio
paquete): Camino a seguir y nodo destino. Información usada por
conmutadores.
– Código detectores de errores
– Código detección fin de paquete
• Formateo de paquetes
– División del bloque de datos a transferir.
– Interfaz destino debe reconstruir. Posibilidad de cambio de orden.
– División supone perdida de rendimiento
• Ejemplo: 256 bytes->32MB/s y 1024 bytes-> 43MB/s
• Copia y almacenamiento de datos
– Transferencias: Multicomputadores->E/S. Multiprocesadores-> accesos
a memoria.
– Copia datos memoria-HW interfaz (fuente) y HW interfaz-memoria
(destino)
• Copia y almacenamiento de datos
– Gestión de dispositivos de E/S.
• Manejador de dispositivo (driver): Formar parte de núcleo de S.O.
• Desde el nivel de usuario se accede mediante llamadas al sistema.
• Transferencias entre dispositivo y memoria se realizan:
– E/S Programada. El procesador se encarga de realizar la transferencia.
– DMA. El controlador DMA es el encargado de realizar la transferencia.
Se informa de eventos al procesador mediante interrupciones.
– E/S controlada por interrupciones. Un procesador se encarga de
realizar la transferencia. Se informa de eventos al procesador mediante
interrupciones.
• Copia y almacenamiento de datos
– Gestión de dispositivos de E/S.
• Es posible copias de memoria a memoria debido a la intervención del
núcleo del S.O.. Pérdida de rendimiento. (LAN con TCP/IP ocurre).
• Copia y almacenamiento de datos
– Optimización del manejador del hardware de una interfaz para
procesamiento paralelo
• Eliminación de tareas no necesarias del protocolo. Transmisión optimista de
paquetes si la fiabilidad es alta.
• Aprovechar las características del hardware de interfaz. Modificar protocolo,
driver,etc para maximizar las posibilidades que ofrece interfaz: control de
flujo, ahorrar transferencias al nodo,..etc. Objetivo liberar los procesadores
del nodo.
• Optimizar tareas que deben realizar procesadores del nodo. Copias de
memoria combinadas.
• Reducir coste por intervención del núcleo. Llamadas al sistema ligeras.
• Evitando copias de memoria a memoria mismo nodo.
• Eliminar coste de interrupciones: Interrumpir por un conjunto de paquetes,
no por uno solo. Consultas de cambio de estado. O combinación.
• Segmentación o pipeline de diferentes partes del proceso
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• 1) Gestión de transferencia. E/S Programada, DMA, E/S interrupciones.
• 2) Información de eventos: Consulta de estado. Interrupciones.
• 3) Acceso a adaptador de red: Nivel de S.O.. Nivel usuario.
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• E/S Programada.
– Procesador del nodo encargado de copias memoria-interfaz. Si es el
mismo que esta ejecutando la aplicación->problemas con perdidas en
cache.
– Utiliza consulta de estado para tener conciencia de eventos.
– Tiempos bajos de inicio de transferencia. Buena para mensajes cortos.
Mala a partir de cierto tamaño en la transferencia (Tiempo no ocupado
en otras tareas)
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• DMA
– Transferencia directa entre memoria y adaptador mediante controlador
DMA.
– Tiempos altos de inicio de transferencia. Malo para mensajes cortos.
Bueno a partir de cierto tamaño en la transferencia (Tiempo no
ocupado en otras tareas)
– Pueden implementar colas de descriptores de transferencias, evitar
esperar termine la anterior para programar. Colas en memoria o en
adaptador.
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• DMA
– Evitar desalojo de páginas afectadas por transferencia de M.P:
» Usar memoria del núcleo del S.O. Donde no hay intercambio
» Bloquear páginas usuario mediante llamadas al sistema
» Declarar memoria de usuario como no intercambiable y usarla
como buffer. Copias memoria-memoria.
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• Recepción de datos.
– Transferir datos desde adaptador a memoria.
– Puede avisar al procesador mediante interrupciones.
– Llamamiento a subrutina de servicio consume tiempo.
– Otra opción es Consulta de estado. El procesador chequea estado del
adaptador.
– Solución híbrida.
• Copia y almacenamiento de datos
– Alternativas para implementar manejadores de red
• Acceso a adaptador a nivel de usuario
– Se eliminan llamadas al sistema y copias de memoria a memoria.
– Asignar región del espacio de direcciones del usuario a la interfaz.
Permite acceso del procesador y DMA.
– Otras opciones son implementar acceso a memoria remotos: Sun Fire
Link y QsNet. Las interfaces capturan las operaciones con direcciones
de E/S y las mapean a operaciones con memoria en nodo remoto.
– Ejemplo: El adaptador QsNet realiza DMA remoto sin copia,
almacenamiento ni intervanción del S.O.
• Protección. Traducción de direcciones
– Acceso multiproceso a nivel de usuario elimina protección del S.O.
– Protección SO: protege destrucción estado adaptador o datos e
instrucciones en memoria por otros procesos
– Implementar algún mecanismo de protección.
– DMA usa direcciones físicas no virtuales. No la sabe aplicación de
usuario.
– Solución:
• E/S Programada
• Usuario copia datos a zona de memoria de uso por DMA. Implica copia
memoria-memoria.
• Llamadas al sistema para bloquear y desbloquear zonas. Adaptador usa
una cache TLB con traducciones direcciones virtuales a fisicas. Si no hay
entrada se pide al S.O. Que bloquee esa dirección y traduzca.
• Direccionamiento, encaminamiento y reconfiguración
– Para un paquete, la interfaz obtiene la dirección en la red del nodo
destino y los conmutadores encuentran el camino. En otros casos la
interfaz define el camino a seguir que se incluye en la cabecera del
paquete.
– Es posible implementar en la interfaz funciones colectivas de
comunicación, como por ejemplo la difisión, evitando la implementación
a niveles superiores.
– Existen interfaces que reconfiguran el sistema de comunicación ante
fallos. Objetivo, poder conectar cualquier entrada con culaquier salida.
Otra posibilidad es incluir la reconfiguración en los conmutadores.
• Ubicación de la interfaz respecto al procesador
– En el propio procesador
• Transferencia a velocidad de procesador
• Posible para multiprocesadores memoria centralizada. No para
multicomputadores
– Conexión a cache
• Interfaz incluida en el HW de la cache. Velocidad influida por
implementación coherencia cache y red interconexión nodos.
Multiprocesadores memoria centralizada.
– Conexión a bus de sistema
• Transferencias a velocidad de bus de sistema. Buena para
multiprocesadores con memoria distribuida.
– Conexión al bus de E/S
• Transferencia entre memoria e interfaz es más lenta. Menor precio al
utilizarse estandares (PCI) en SAN y LAN. Mayor volumen de ventas.
• Elementos:
– Conmutadores, enlaces y canales.
• Conmutador
– Dirigen paquetes hacia nodo destino.
– Compuesto de : E/S, buffers de almacenamiento a las E/S, conmutador
interno y encaminador
– Varias entradas y salidas. Permiten varias transferencias en paralelo.
También es posible conexiones uno-a-todos y todos-a-uno para
implementar difusiones o reducciones.
– Incluyen un buffer de almacenamiento de información de tránsito para
cada entrada. Cola circular o lista enlazada.
– Conmutador interno conecta buffers E/S.
– Encaminador: Usa información cabecera paquete para
encaminar el paquete a una salida.
• Enlace y canales
– Enlace: conectan dos componentes del sistema de comunicación
(conmutador-conmutador o conmutador-interfaz de red).
– Canal: conjunto formado por enlace y controladores en emisor y
receptor.
– Controlador enlace adecuan medio de transmisión usado a la
información binaria a transmitir o recibir.
– Los enlaces en computadores paralelos: hilos eléctricos (aluminio sobre
silicio, o cobre) o fibras ópticas. Las fibras ópticas permiten equilibrar el
ancho de banda de distancias cortas y largas en mayor medida que el
cobre.
• Evaluación sistema de comunicaciones:
– Prestaciones extremo-a-extremo
– Prestaciones globales
– Prestaciones adicionales
– Funcionalidad del sistema de comunicación
• Prestaciones extremo-a-extremo
– Evalúan las prestaciones que ofrece el sistema de comunicaciones al
transferir un mensaje desde nodo/proceso fuente a nodo/proceso
destino.
– Se pretende evaluar camino de comunicación entre nodos y bibliteca de
funciones de acceso (MPI, PVM, OpenMP).
– Microbenchmark test ping-pong. Dos proceso, uno envía y otro recibe y
devuelve. Tiempos se miden en proceso que envía/recibe.
– Medidas:
• Ancho de banda teórico. No experimental. Fast Ethernet = 100Mb/s
o 12.4 MB/s. Ancho de banda disponible o capacidad del canal.
• Latencia total. Tiempo de transferencia de un mensaje de cierto
tamaño.
• Productividad. Tamaño mensaje transferido dividido por la latencia
total. Ancho de banda efectivo.
• Ancho banda asintótico. Productividad límite al aumentar tamaño
mensage.
• Prestaciones extremo-a-extremo
• Prestaciones extremo-a-extremo
• Prestaciones extremo-a-extremo
– Latencia total compuesta por:
• Tiempo de sobrecarga en el procesador nodo fuente. Tiempo que
consume el procesador para enviar mensaje. Puede ser tiempo
constante o variable (cuando se realizan copias en memoria). Este
tiempo es perdido por el procesador para otras tareas.
• Tiempo procesamiento en hardware de la interfaz red del nodo
origen.
• Tiempo de transferencia en la red. Incluye el tiempo de
encaminamiento.
• Tiempo de procesamiento en interfaz red y procesador destino.
• Prestaciones extremo-a-extremo
• Prestaciones extremo-a-extremo
– Comunicaciones consecutivas limitadas por interfaz hardware
• Prestaciones globales
– Las prestaciones extremo-a-extremo no evalúan el comportamiento del
sistema de comunicación completo. No evalúan múltiples transferencias
simultáneas (situación real al ejecutar una aplicación paralela).
– Medidas de latencias medias y ancho de banda global con la
intervención de todos los nodos terminales de la red.
– Se inyecta tráfico en la red desde todos los nodos de entrada,
generando nodos destinos con distribución uniforme (todos nodos
misma probabilidad ser destino), con distribución normal (nodos
cercanos mas probabilidad de ser destinos) o con distribución no
uniforme (hay canales más utilizados que otro: reducción o
permutaciones).
– Latencia media: Suma de latencia de todos los mensajes divido por el
número de mensajes.
– Productividad global: Número de bits (bytes) que se transfieren por
segundo en toda la red. Se suele dividir por el número de nodos de la
red con el fin de normalizar. Se obtiene a partir de la latencia.
• Prestaciones globales
– Conveniente conocer la productividad máxima. Se alcanza al saturarse
la red, no se acepta más trafico y las latencias aumentan. Los sistemas
deben dejar de transmitir al acercarse a ese limite.
– Productividad solicitada: trafico generado por los nodos.
– Productividad aceptada: productividad que la red realmente lleva a
cabo.
– Antes del punto de saturación, las dos coinciden. Si la solicitada es
mayor entonces estoy en saturación.
– El punto de saturación depende del patrón de comunicación utilizado
(existen patrones donde ciertas líneas actúan como cuellos de botella)
• Prestaciones Adicionales
– Funcionalidad: Tipos de transferencias que implementa el sistema de
comunicaciones (liberando al software). Transferencias uno-a-uno
sicronizadas, colectivas tipo difusión o reducción, etc
– Escalabilidad: Posibilidad de incrementar la prestación global del
sistema al incluir nuevos nodos terminales. No siempre es posible.
– Tolerancia a fallos. Alta disponibilidad: ¿Es posible conectar todas las
salidas y entradas cuando falla algún componente del sistema de
comunicaciones?. Recuperación mediante redundancia de
componentes.
– Calidad de servicio (QoS): Asegurar cierto nivel de servicio para cierto
tipo de tráfico.
– Divisibilidad: Posibilidad de dividir el sistema paralelo en subsistemas
también paralelos. Tráfico de cierto usuario no afecte a las prestaciones
obtenidas por otro. Subdivisión en subredesredes.
• Prestaciones Adicionales
– Simplicidad: Diseño sencillo permite fácil comprensión y más asequible
explotar prestaciones.
– Carga de trabajo: Si se conoce la carga de trabajo que va a soportar el
computador, se pueden conocer los esquemas de comunicación
usuales, tamaños mensajes, frecuencia, etc. Esto permite escoger
sistema de comunicaciones adecuado.
• Mucho cálculo y poca comunicación: LAN con nodos de
procesamiento potentes.
• Mucha comunicación y poco tamaño: Sistema de comunicación con
poca latencia y mucho ancho de banda. En clusters se puede
utilizar tecnología SAN.
– Prestaciones/precio. Utilizar componentes modulares disponibles
comercialmente en tiendas reduce el coste global.
• Servicios de comunicación colectivos.
– Un buen sistema de comunicación ofrece facilidades a los niveles
superiores para implementar paso de mensajes, variables compartidas
o ambas posibilidades.
– Ejemplo: Una difusión hacia 4 destinos a nivel de función de biblioteca
equivale a 4 primitivas ‘send’ con el correspondiente consume de
tiempo. Si el sistema de comunicaciones dispone de una API
(Application Programming Interface) que implemente difusión, se evita
la repetición de los 4 sends.