Desenvolvi um sistema no meu TCC que faz comunicação assíncrona sobre Sockets TCP, criando threads e oferencendo uma interface VIA (Virtual Interface Architecture).
LibVIP - Bacharel em Ciência da Computação (UFSM 2003)
1. libVIP – Desenvolvimento em Nível
de Usuário de uma Biblioteca de
Comunicação que Implementa o
Protocolo de Interface Virtual - VIA
Rodrigo da Rosa Righi
Orientador : Prof. Dr. Marcelo Pasin
Palavras-chaves: aglomerados, desempenho, redes, portabilidade
2. Sumário
Introdução
A Arquitetura de Interface Virtual
Motivação para construção da biblioteca VIP
Características da biblioteca VIP
Funcionamento biblioteca VIP
Modalidades de Comunicação com a libVIP
Análise de Resultados
Conclusões
Trabalhos Futuros
3. Arquitetura de Aglomerado de Computadores
Comunicação por troca de mensagens
Protocolos tradicionais:
TCP/IP e UDP/IP
Sistema operacional
Sobrecarga de comunicação
Projeto de protocolos eficientes
Arquitetura de Interface Virtual - VIA
Introdução (1/1)
4. Arquitetura de Interface
Virtual – VIA (1/1)
Especificação VIA - 1996
API – Funções e semântica
Idéia principal
Desviar o sistema operacional
Interface Virtual – Ligação direta
entre o usuário e a interface de
rede
Fila de envio e recepção
Núcleo do Sistema operacional
– Controle da conexão
Núcleo
Núcleo
U U U
U U U
Interface Virtual
Protocolos Tradicionais
Protocolo VIA
5. Adaptadores VIA difíceis de serem encontrados
Bibliotecas VIA
Emular VIA para outros adaptadores
Módulo VIA no núcleo
Motivação
Desenvolvimento de uma biblioteca VIA sem
módulo VIA no núcleo do sistema operacional
Motivação para Construção da
Biblioteca VIP (1/1)
6. Sistema operacional POSIX (Linux)
Baseada na especificação VIA
Portabilidade com o TCP/IP
Assíncrona
Interfaces virtuais
Ponto final de comunicação
Comunicação com descritores
Requisições de troca de mensagem
Características da libVIP (1/1)
Interface Virtual
envio recepção
7. Funcionamento da libVIP (1/2)
Interface Virtual
envio recepção
Operação de postagem de um descritor
Operação de espera por um descritor completado
2 Fluxos de Execução – Demônios
Realizam a operação de troca de mensagem
Demônio
Envio
Demônio
Recepção
9. Momento da criação de uma interface virtual
Atributos de confiabilidade
libVIP alterada – Modificações no descritor de
comunicação
TCP_NODELAY
SO_PRIORITY
libVIP padrão
Modalidades de Comunicação
com a libVIP (1/1)
10. 2 máquinas do aglomerado do LSC
Adaptador de rede: 3C996-T Gigabit Ethernet
3 Aplicações
Latência de comunicação
Largura de banda e tempo de comunicação
Transmissão de um Fractal
Versões: libVIP normal, libVIP alterada e TCP
Avaliação de Resultados (1/7)
11. Avaliação de Resultados (2/7)
Latência
Objetivo: Calcular sobrecarga na comunicação
libVIP – Modelo assíncrono e síncrono
Algoritmo
Repete de i= 0 até 10000
t1 = tempo_agora();
troca_de_mensagem();
t2 = tempo_agora();
verifica_menor_tempo( menor_tempo, ( t2 – t1 )/2 );
12. Avaliação de Resultados (3/7)
0 50 100
Assíncrono
Síncrono
TCP
libVIP Normal
libVIP Alterada
Microsegundos
Troca de mensagem
13. Avaliação de Resultados (4/7)
Tempo de Comunicação e Largura de Banda
Objetivo: Verificar a libVIP assíncrona
Aplicação Ping-Pong
Mensagens de 10 bytes a 100 kbytes
Algoritmo
t1 = tempo_agora();
Repete de i= 0 até numero_pacotes
troca_de_mensagem();
t2 = tempo_agora();
Calcula_tempo_Largura_banda( t2 – t1);
16. Avaliação de Resultados (7/7)
Transmissão do fractal de Mandelbrot
Objetivo: Corretude da troca de mensagem
Janela gráfica de 800x800 pixels
Modelo A – Realizam-se 800 trocas de mensagem
Modelo B – Realiza-se 1 troca de mensagem.
17. libVIP – Biblioteca assíncrona
2 fluxos de execução para a troca de mensagens
Modelos para aproveitar o desempenho
libVIP atinge bons índices de desempenho com o
assincronismo
libVIP implementa um subconjunto de 12 funções VIA
Biblioteca é estável, portável e proporciona
segurança na transmissão de dados
Conclusões (1/1)
18. Portabilidade para ambiente Windows
Escrever a biblioteca com o protocolo UDP
Implementar as demais funções VIA
Pesquisa sobre a Arquitetura Infiniband
Sucessora da Arquitetura de Interface Virtual
Trabalhos Futuros (1/1)