SlideShare a Scribd company logo
1 of 86
Download to read offline
Sistema Aldeia:
Programac¸ ˜ao Paralela e Distribu´ıda em
Java sobre Infiniband e DECK
Rodrigo da Rosa Righi
Orientador: Philippe Olivier Alexandre Navaux
Co-orientador: Marcelo Pasin
Programa de P´os-Graduac¸ ˜ao em Computac¸ ˜ao - PPGC/UFRGS
Defesa de dissertac¸ ˜ao de Mestrado
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Roteiro
1 Parte I: Introduc¸ ˜ao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia
4 Parte IV: Considerac¸ ˜oes Finais
2/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Introduc¸ ˜ao
1 Parte I: Introduc¸ ˜ao
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
2 Parte II: Sistema Aldeia
3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia
4 Parte IV: Considerac¸ ˜oes Finais
3/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Foco Principal
Comunicac¸ ˜ao de alto desempenho para agregados (clusters)
Programac¸ ˜ao orientada a objetos em Java
Redes de sistema (redes dedicadas) atuais
Java + Infiniband
4/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
M´aquina Paralela e Sistemas de Interconex˜ao
Interconex˜ao de agregados com redes tradicionais
Ethernet (802.*) e TCP/IP
Baixo custo e escalabilidade
Sobrecarga do TCP/IP: controle de fluxo, retransmiss˜ao,
c´opias
Interconex˜ao de agregados com redes r´apidas
Priorizam alta vaz˜ao e baixa latˆencia
Protocolos leves
Reduzir c´opias, passar sobrecarga para o hardware e DMA
Myrinet, SCI, Quadrics, VIA e Infiniband
U-Net, VIA, GM, DECK e VAPI
5/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
M´aquina Paralela e Sistemas de Interconex˜ao
Interconex˜ao de agregados com redes tradicionais
Ethernet (802.*) e TCP/IP
Baixo custo e escalabilidade
Sobrecarga do TCP/IP: controle de fluxo, retransmiss˜ao,
c´opias
Interconex˜ao de agregados com redes r´apidas
Priorizam alta vaz˜ao e baixa latˆencia
Protocolos leves
Reduzir c´opias, passar sobrecarga para o hardware e DMA
Myrinet, SCI, Quadrics, VIA e Infiniband
U-Net, VIA, GM, DECK e VAPI
5/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
M´aquina Paralela e Sistemas de Interconex˜ao
Arquitetura de Interconex˜ao Infiniband
Tentativa de padronizac¸ ˜ao para redes de sistema
Vaz˜ao: 2.5, 10 e 30 gigabits por segundo
Comunicac¸ ˜ao chaveada e concorrente entre n´os
Qualidade de servic¸o em hardware
Bibliotecas de baixo n´ıvel: VAPI e InfiniBlue
Bibliotecas com interfaces bem definidas: MPI
6/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
M´aquina Paralela e Sistemas de Interconex˜ao
Arquitetura de Interconex˜ao Infiniband
Tentativa de padronizac¸ ˜ao para redes de sistema
Vaz˜ao: 2.5, 10 e 30 gigabits por segundo
Comunicac¸ ˜ao chaveada e concorrente entre n´os
Qualidade de servic¸o em hardware
Bibliotecas de baixo n´ıvel: VAPI e InfiniBlue
Bibliotecas com interfaces bem definidas: MPI
6/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
M´aquina Paralela e Sistemas de Interconex˜ao
NóNóNóNó
Nó
Nó
Nó Nó
Nó
Nó
Chaveador
Chaveador
Chaveador
Nó
Adaptador de rede
Porta Porta
Rede Infiniband
7/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Linguagem de Programac¸ ˜ao Java
Caracter´ısticas Gerais de Java
Programac¸ ˜ao orientada a objetos
Funcionalidades para a programac¸ ˜ao distribu´ıda e
concorrente
Portabilidade (interpretac¸ ˜ao)
Desempenho est´a melhorando: compiladores JIT e direto,
novos sistemas para a programac¸ ˜ao paralela e distribu´ıda
8/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Linguagem de Programac¸ ˜ao Java
Programac¸ ˜ao distribu´ıda em Java
Soquetes Java - comunicac¸ ˜ao s´ıncrona sobre TCP/IP
Java RMI - comunicac¸ ˜ao sobre TCP/IP de forma
transparente
Programac¸ ˜ao paralela em Java
Ibis - v´arias interfaces de comunicac¸ ˜ao sobre MPI,
soquetes TCP/IP, Panda e GM
JavaSymphony - interface particular sobre TCP/IP
ProActive - comunicac¸ ˜ao de alto n´ıvel sobre RMI, Jini e Ibis
9/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Linguagem de Programac¸ ˜ao Java
Programac¸ ˜ao distribu´ıda em Java
Soquetes Java - comunicac¸ ˜ao s´ıncrona sobre TCP/IP
Java RMI - comunicac¸ ˜ao sobre TCP/IP de forma
transparente
Programac¸ ˜ao paralela em Java
Ibis - v´arias interfaces de comunicac¸ ˜ao sobre MPI,
soquetes TCP/IP, Panda e GM
JavaSymphony - interface particular sobre TCP/IP
ProActive - comunicac¸ ˜ao de alto n´ıvel sobre RMI, Jini e Ibis
9/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Motivac¸ ˜ao
Java em agregados ´e ineficiente para alto desempenho
TCP/IP
S´ıncrono
Comunicac¸ ˜ao direta em Java em n´ıvel de usu´ario
especialmente para Infiniband ´e algo inexplorado
Comunicac¸ ˜ao eficiente em Java sobre Infiniband
10/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Motivac¸ ˜ao
Java em agregados ´e ineficiente para alto desempenho
TCP/IP
S´ıncrono
Comunicac¸ ˜ao direta em Java em n´ıvel de usu´ario
especialmente para Infiniband ´e algo inexplorado
Comunicac¸ ˜ao eficiente em Java sobre Infiniband
10/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Foco Principal
M´aquina Paralela e Sistemas de Interconex˜ao
Linguagem de Programac¸ ˜ao Java
Motivac¸ ˜ao
Objetivos
Objetivos
Desenvolvimento do Sistema Aldeia
Comunicac¸ ˜ao eficiente para Java sobre Infiniband
Usar comunicac¸ ˜ao em n´ıvel de usu´ario
Usar assincronismo na comunicac¸ ˜ao
Usar protocolos leves
Usar uma interface de programac¸ ˜ao Java bem conhecida
Aproveitar o legado de redes de sistemas do ambiente
DECK
11/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Roteiro
1 Parte I: Introduc¸ ˜ao
2 Parte II: Sistema Aldeia
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia
4 Parte IV: Considerac¸ ˜oes Finais
12/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Decis˜oes de Projeto
Java eficiente para Infiniband e DECK
Adaptador OO + novo DECK + Infiniband
Ineficiente
Adaptador OO + Infiniband
Eficiente
Usa DECK via segundo adaptador no n´ıvel Infiniband
13/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Decis˜oes de Projeto
Adaptac¸ ˜ao em n´ıvel de RMI
Implementac¸ ˜ao espec´ıfica de mensagens ativas
Implementac¸ ˜oes conhecidas de RMI
Usam soquetes
Adaptac¸ ˜ao em n´ıvel de soquetes
Permite n˜ao reimplementar RMI
Pode ser aproveitada para aplicac¸ ˜oes que usam soquetes
Java eficiente para Infiniband e DECK
Soquetes Java para Infiniband
14/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Decis˜oes de Projeto
Sistema Aldeia
Arcabouc¸o para a inclus˜ao de novos sistemas de
comunicac¸ ˜ao
Assincronismo na transmiss˜ao de dados
Qualidade de servic¸o sobre Infiniband
Gerac¸ ˜ao de rastros sobre DECK
15/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Estrutura de M´odulos do Aldeia
Aplicação
Biblioteca
VAPI DECK
Biblioteca
uVAPI
Biblioteca
Adaptador VAPI
Soquetes Aldeia
RMI
JNI
Linguagem Java
Linguagem C
16/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Estrutura de M´odulos do Aldeia
Aplicação
Biblioteca
VAPI DECK
Biblioteca
uVAPI
Biblioteca
Adaptador VAPI
Soquetes Aldeia
RMI
JNI
Linguagem Java
Linguagem C
17/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Interface de Programac¸ ˜ao do Aldeia
Dois fluxos de comunicac¸ ˜ao: entrada e sa´ıda
M´etodos principais
read()
write()
flush()
Mensagens de tamanho vari´avel
Transmissor envia 100 bytes e receptor chama duas vezes
o m´etodo para a leitura de 50 bytes
18/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
19/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Arquivo de Configurac¸ ˜ao do Aldeia
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Comunicac¸ ˜ao com a VAPI
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
20/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Arquivo de Configurac¸ ˜ao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interface
dos soquetes
Conte´udo do arquivo de configurac¸ ˜ao
Porta do adaptador Infiniband
Qualidade de servic¸o Infiniband
Identificador do processo DECK
Quantidade total de processos DECK
Tipo de soquetes (DECK ou Infiniband)
Tamanho da unidade de transferˆencia
21/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Arquivo de Configurac¸ ˜ao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interface
dos soquetes
Conte´udo do arquivo de configurac¸ ˜ao
Porta do adaptador Infiniband
Qualidade de servic¸o Infiniband
Identificador do processo DECK
Quantidade total de processos DECK
Tipo de soquetes (DECK ou Infiniband)
Tamanho da unidade de transferˆencia
21/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Arquivo de Configurac¸ ˜ao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interface
dos soquetes
Conte´udo do arquivo de configurac¸ ˜ao
Porta do adaptador Infiniband
Qualidade de servic¸o Infiniband
Identificador do processo DECK
Quantidade total de processos DECK
Tipo de soquetes (DECK ou Infiniband)
Tamanho da unidade de transferˆencia
21/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Processo de conex˜ao com o Aldeia
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
22/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Processo de conex˜ao com o Aldeia
ServerSocket ss = new ServerSocket(356) ;
Socket s;
s = ss.accept();
Socket c = new Socket(¨server.inf.ufrgs.br¨, 356);
Servidor
Cliente
Servidor abre porta local e cliente se conecta no servidor
informando a m´aquina e a porta
23/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Processo de conex˜ao com o Aldeia
Nó 1 Nó 2
ID2
ID1 ID1
ID2
Infiniband e implementac¸ ˜ao com o DECK - Interlocutores
precisam de informac¸ ˜oes sobre o ponto remoto
Criar soquete TCP/IP com a porta passada na interface
Java para transmitir essas informac¸ ˜oes
24/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao de Fluxo de Dados para Troca de Mensagens
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
25/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao de Fluxo de Dados para Troca de Mensagens
Soquetes Java transportam dados de qualquer tamanho
(fluxo - stream)
Enviar duas mensagens para cada requisic¸ ˜ao
Latˆencia de comunicac¸ ˜ao
Registro de mem´oria (invi´avel)
Usar unidade m´axima para transferˆencia de dados (MTU)
Saber de antem˜ao o tamanho da mensagem no receptor
Economia operac¸ ˜oes de registro de mem´oria
V´arias comunicac¸ ˜oes para mensagens grandes
26/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Organizac¸ ˜ao dos C´odigos em C e em Java
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
27/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Organizac¸ ˜ao dos C´odigos em C e em Java
Aplicação
Soquetes Aldeia
Adaptador VAPI
Biblioteca
Comunicação Comunicação
Biblioteca
Adaptador VAPI
Soquetes Aldeia
Aplicação
Rede de interconexão
Ponto final 2Ponto final 1
JNI
Linguagem
Java
Linguagem C
28/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Organizac¸ ˜ao dos C´odigos em C e em Java
Prot´otipo 1
Segmentac¸ ˜ao das mensagens em Java
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 2
Segmentac¸ ˜ao das mensagens em Java
Utilizac¸ ˜ao de um objeto ByteBuffer
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 3
Segmentac¸ ˜ao de mensagens em linguagem C
´Unica transmiss˜ao dos dados pelo m´etodo nativo
29/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Organizac¸ ˜ao dos C´odigos em C e em Java
Prot´otipo 1
Segmentac¸ ˜ao das mensagens em Java
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 2
Segmentac¸ ˜ao das mensagens em Java
Utilizac¸ ˜ao de um objeto ByteBuffer
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 3
Segmentac¸ ˜ao de mensagens em linguagem C
´Unica transmiss˜ao dos dados pelo m´etodo nativo
29/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Organizac¸ ˜ao dos C´odigos em C e em Java
Prot´otipo 1
Segmentac¸ ˜ao das mensagens em Java
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 2
Segmentac¸ ˜ao das mensagens em Java
Utilizac¸ ˜ao de um objeto ByteBuffer
V´arias chamadas para dados maiores que uma MTU
Prot´otipo 3
Segmentac¸ ˜ao de mensagens em linguagem C
´Unica transmiss˜ao dos dados pelo m´etodo nativo
29/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Comunicac¸ ˜ao com a VAPI
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Comunicac¸ ˜ao com a VAPI
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
30/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Comunicac¸ ˜ao com a VAPI
Par de filas de comunicac¸ ˜ao (QP) e par de filas de
conclus˜ao
Filas contˆem descritores de comunicac¸ ˜ao, com
Ponteiro para a ´area de mem´oria
Tamanho da ´area da mem´oria
Marcador para conclus˜ao
Descritores com marcador de conclus˜ao
S˜ao inseridos na correspondente fila de conclus˜ao
Descritores sem marcador de conclus˜ao
S˜ao descartados
Acesso a fila de conclus˜ao ´e lento (chamada ao SO)
31/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Comunicac¸ ˜ao com a VAPI
Par de filas de comunicac¸ ˜ao (QP) e par de filas de
conclus˜ao
Filas contˆem descritores de comunicac¸ ˜ao, com
Ponteiro para a ´area de mem´oria
Tamanho da ´area da mem´oria
Marcador para conclus˜ao
Descritores com marcador de conclus˜ao
S˜ao inseridos na correspondente fila de conclus˜ao
Descritores sem marcador de conclus˜ao
S˜ao descartados
Acesso a fila de conclus˜ao ´e lento (chamada ao SO)
31/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Comunicac¸ ˜ao com a VAPI
Par de filas de comunicac¸ ˜ao (QP) e par de filas de
conclus˜ao
Filas contˆem descritores de comunicac¸ ˜ao, com
Ponteiro para a ´area de mem´oria
Tamanho da ´area da mem´oria
Marcador para conclus˜ao
Descritores com marcador de conclus˜ao
S˜ao inseridos na correspondente fila de conclus˜ao
Descritores sem marcador de conclus˜ao
S˜ao descartados
Acesso a fila de conclus˜ao ´e lento (chamada ao SO)
31/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Transmiss˜ao de Dados
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Comunicac¸ ˜ao com a VAPI
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
32/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Transmiss˜ao de Dados com o Aldeia
Buffer circular de envio
Mem´oria registrada (1MB = m´aximo transmitido)
Cont´em mensagens de tamanho vari´avel at´e 1 MTU
Lista circular de descritores de envio
Cont´em descritores de comunicac¸ ˜ao a serem inseridos na
fila de envio
Somente o ´ultimo de cada mensagem ´e marcado
33/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Transmiss˜ao de Dados com o Aldeia
1024 1024 1024 1024 952 1 1024 1024 1024 1024 500
req1 req2 req3 req4
Descritores
Buffer
34/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Recepc¸ ˜ao de Dados com o Aldeia
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Comunicac¸ ˜ao com a VAPI
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
35/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Recepc¸ ˜ao de Dados com o Aldeia
Buffer de 1 MTU
Mem´oria registrada
Com ponteiros para bytes j´a consumidos
Descritor de comunicac¸ ˜ao
Inserido na fila de recepc¸ ˜ao
Espera receber uma MTU
Ap´os a comunicac¸ ˜ao ´e preenchido com o tamanho da
mensagem
Reutilizado para completar a requisic¸ ˜ao
36/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Recepc¸ ˜ao de Dados com o Aldeia
Guardado para as
processados
Já
Tamanho igual a MTU
Região de memória registrada para a leitura
próximas interações
37/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
Arquivo de configurac¸ ˜ao
Processo de conex˜ao
Adaptac¸ ˜ao de fluxo de dados para troca de mensagens
Organizac¸ ˜ao dos c´odigos em C e em Java
Comunicac¸ ˜ao com a VAPI
Transmiss˜ao de dados
Recepc¸ ˜ao de dados
Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK
38/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
DECK possui programa espec´ıfico para lanc¸amento de
processos que informa:
Quantidade de n´os
Identificador do n´o
Comunicac¸ ˜ao s´ıncrona
Comunicac¸ ˜ao com caixas de correio
Desenvolvimento da biblioteca MicroVAPI
Adaptar 17 func¸ ˜oes da VAPI para usar o DECK
Mesma sintaxe e semˆantica da VAPI
39/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
DECK possui programa espec´ıfico para lanc¸amento de
processos que informa:
Quantidade de n´os
Identificador do n´o
Comunicac¸ ˜ao s´ıncrona
Comunicac¸ ˜ao com caixas de correio
Desenvolvimento da biblioteca MicroVAPI
Adaptar 17 func¸ ˜oes da VAPI para usar o DECK
Mesma sintaxe e semˆantica da VAPI
39/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
Adaptac¸ ˜oes realizadas
Processo de conex˜ao
Par de filas
Comunicac¸ ˜ao ass´ıncrona
Adaptac¸ ˜ao no processo de conex˜ao
DECK utiliza o processo de clonagem
Troca de duas informac¸ ˜oes para a gerac¸ ˜ao de uma chave
´unica para clonagem
40/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
Adaptac¸ ˜oes realizadas
Processo de conex˜ao
Par de filas
Comunicac¸ ˜ao ass´ıncrona
Adaptac¸ ˜ao no processo de conex˜ao
DECK utiliza o processo de clonagem
Troca de duas informac¸ ˜oes para a gerac¸ ˜ao de uma chave
´unica para clonagem
40/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
Adaptac¸ ˜ao para a criac¸ ˜ao de par de filas
Nó B
QP B
Nó A
VAPI
QP A
Caixa B Clonada
Caixa A
QP A
Nó A
QP B
Nó B
Caixa A Clonada
Caixa B
MicroVAPI
41/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Decis˜oes de Projeto
Estrutura Modular
Interface de Programac¸ ˜ao
Implementac¸ ˜ao
Implementac¸ ˜ao
Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK
Adaptac¸ ˜ao para assincronismo: produtor-consumidor
Fluxo da biblioteca
MicroVAPI
Fluxo concorrente
de execução
comunicação
requisitar uma
Procedimento para
comunicação
Demônio para o
processamento da
Produtor Consumidor
1
3
2
4
6
5
Fila de requisições
Rede de Interconexão
42/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Roteiro
1 Parte I: Introduc¸ ˜ao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
4 Parte IV: Considerac¸ ˜oes Finais
43/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Aplicac¸ ˜ao de Ping-Pong
Capturar o tempo final para a passagem de uma
mensagem
Nó 1
canal_saida.write(dados, 0, tamanho);
canal_saida.flush();
canal_recepcao.read(dados, 0, tamanho);
T_final = Captura_tempo();
T_inicial = captura_tempo();
}
for(i = 0; i < iteracoes; i++){
}
T_final=(T_final−T_inicial) / (2*iteracoes);
44/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Tempo de Comunicac¸ ˜ao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
50
100
150
200
250
300
350
400
450
500
550
600
650
Tempoemmicrosegundos
MTU 512
MTU 1024
MTU 2048
Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando a VAPI
45/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Vaz˜ao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
225
250
275
300
325
350
375
400
Larguradebandaemmegabitsporsegundo
MTU 512
MTU 1024
MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI
46/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Vaz˜ao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
225
250
275
300
325
350
375
400
Larguradebandaemmegabitsporsegundo
MTU 512
MTU 1024
MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI
400 megabits
por segundo
47/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Tempo de Comunicac¸ ˜ao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
750
800
850
900
950
1000
1050
1100
Tempoemmicrosegundos
MTU 512
MTU 1024
MTU 2048
Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando o DECK/TCP
48/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Vaz˜ao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
Larguradebandaemmegabitsporsegundo
MTU 512
MTU 1024
MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando o DECK/TCP
49/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Vaz˜ao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
Larguradebandaemmegabitsporsegundo
MTU 512
MTU 1024
MTU 2048
Vazão da aplicação de Ping-Pong usando o DECK/TCP
70 megabits
por segundo
50/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Comunicac¸ ˜ao Ass´ıncrona
Captura dos tempos ass´ıncrono e s´ıncrono
M´etodo flush() fora da estrutura iterativa
Nó 1
T_inicial = captura_tempo();
for( i = 0; i < iterações ; i++){
}
T_parcial = captura_tempo();
canal_saida.write(dados, 0, tamanho);
canal_saida.flush();
T_final = captura_tempo();
T_assinc = (T_parcial−T_inicial) / (2*iteracoes);
T_sinc = (T_final−T_inicial) / (2*iteracoes);
51/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Comunicac¸ ˜ao Ass´ıncrona
Comunicac¸ ˜ao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
Tempoemmicrosegundos
Comunicação Síncrona
Comunicação Assíncrona
Comunicação Assíncrona usando a VAPI
52/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Comunicac¸ ˜ao Ass´ıncrona
Comunicac¸ ˜ao Usando o Aldeia com o DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Tamanho da mensagem em bytes
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
750
800
850
900
950
1000
Tempoemmicrosegundos
Comunicação Síncrona
Comunicação Assíncrona
Comunicação Assíncrona usando DECK TCP
53/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Serializac¸ ˜ao de Objetos
Serializac¸ ˜ao de um vetor de inteiros
Comparac¸ ˜ao com soquetes Java TCP/IP
Descarregamento do canal antes de capturar o tempo final
Utilizac¸ ˜ao do DECK na sua vers˜ao TCP/IP
T_inicial = captura_tempo();
Nó 1
int[ ] vetor = new int[tamanho];
objeto_saida.writeObject(vetor);
Tempo_final = T_final − T_inicial;
T_final = Captura_tempo();
canal_saida.flush();
54/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Serializac¸ ˜ao de Objetos
Tempo da passagem do vetor de inteiros em milisegundos
Sistema
Elementos do vetor
102
103
104
105
106
107
Soquetes
TCP/IP
27.3 28.9 47.9 113.2 447.5 3628.7
Aldeia
TCP/IP
26.9 27.6 48.2 114.4 449.3 3626.1
55/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Caracter´ısticas da aplicac¸ ˜ao
Paralelizac¸ ˜ao segundo o modelo mestre-escravo
Possui uma propriedade chamada m´ascara
Utilizac¸ ˜ao de todos os n´os do agregado LabTeC
Utilizac¸ ˜ao do DECK na sua vers˜ao TCP/IP
Avaliar a correta transmiss˜ao dos dados com o Aldeia
56/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
57/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Eficiˆencia Usando Diferentes M´ascaras
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Número de processos escravos
0
10
20
30
40
50
60
70
80
90
100
Porcentagemdaeficiência
Máscara 9x9
Máscara 7x7
Máscara 5x5
Máscara 3x3
Eficiência na aplicação do Filtro de Mediana
58/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Gerac¸ ˜ao de Rastros
Caracter´ısticas da gerac¸ ˜ao de rastros
Utilizac¸ ˜ao do DECK na sua vers˜ao instrumentada
DECK gera rastros para as criac¸ ˜ao e clonagem de caixas
de correio e trocas de mensagem
Visualizac¸ ˜ao na ferramenta Paj´e
Permite identificar o instante da troca de mensagem e
quantidade de dados envolvida
59/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Gerac¸ ˜ao de Rastros e Depurac¸ ˜ao
Transmiss˜ao de um vetor de inteiros
Identificar a comunicac¸ ˜ao na serializac¸ ˜ao de objetos
Processo de conex˜ao
Criac¸ ˜ao de caixa de correio e clonagem da caixa remota
Machine
labtec-l1 Thread 5734 DECKState
labtec-l2 Thread 12098 DECKState
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9
60/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Tempo de Comunicac¸ ˜ao e Vaz˜ao
Comunicac¸ ˜ao Ass´ıncrona
Serializac¸ ˜ao de Objetos
Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana
Gerac¸ ˜ao de Rastros
Gerac¸ ˜ao de Rastros
Troca de mensagem
Visualizac¸ ˜ao de trˆes instantes
Clicar nas linhas para verificar a quantidade de bytes
transmitidos
Machine
labtec-l1 Thread 5734 DECKState
labtec-l2 Thread 12098 DECKState
5 80 85 90 95 100 105 110 115 120 125 130 135 14
61/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Roteiro
1 Parte I: Introduc¸ ˜ao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia
4 Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
62/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Conclus˜oes Gerais
Aspectos gerais do sistema Aldeia
Organizado de modo que novas bibliotecas sejam
facilmente adicionadas
Possui uma interface que o programador est´a acostumado
Apresenta uma interface simples que esconde os detalhes
de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel
Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho
e aplicac¸ ˜oes corporativas
63/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Conclus˜oes Gerais
Aspectos gerais do sistema Aldeia
Organizado de modo que novas bibliotecas sejam
facilmente adicionadas
Possui uma interface que o programador est´a acostumado
Apresenta uma interface simples que esconde os detalhes
de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel
Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho
e aplicac¸ ˜oes corporativas
63/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Conclus˜oes Gerais
Aspectos gerais do sistema Aldeia
Organizado de modo que novas bibliotecas sejam
facilmente adicionadas
Possui uma interface que o programador est´a acostumado
Apresenta uma interface simples que esconde os detalhes
de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel
Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho
e aplicac¸ ˜oes corporativas
63/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Conclus˜oes Gerais
Aspectos gerais do sistema Aldeia
Organizado de modo que novas bibliotecas sejam
facilmente adicionadas
Possui uma interface que o programador est´a acostumado
Apresenta uma interface simples que esconde os detalhes
de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel
Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho
e aplicac¸ ˜oes corporativas
63/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Contribuic¸ ˜oes
Por que usar o sistema Aldeia?
Interface Java para comunicac¸ ˜ao sobre redes Infiniband
Transmiss˜ao de dados de forma ass´ıncrona sobre uma
interface Java
Qualidade de servic¸o para comunicac¸ ˜ao Infiniband
Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento
do programa paralelo usando a biblioteca DECK
Proporciona uma interface de programac¸ ˜ao em Java que ´e
simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI
64/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Contribuic¸ ˜oes
Por que usar o sistema Aldeia?
Interface Java para comunicac¸ ˜ao sobre redes Infiniband
Transmiss˜ao de dados de forma ass´ıncrona sobre uma
interface Java
Qualidade de servic¸o para comunicac¸ ˜ao Infiniband
Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento
do programa paralelo usando a biblioteca DECK
Proporciona uma interface de programac¸ ˜ao em Java que ´e
simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI
64/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Contribuic¸ ˜oes
Por que usar o sistema Aldeia?
Interface Java para comunicac¸ ˜ao sobre redes Infiniband
Transmiss˜ao de dados de forma ass´ıncrona sobre uma
interface Java
Qualidade de servic¸o para comunicac¸ ˜ao Infiniband
Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento
do programa paralelo usando a biblioteca DECK
Proporciona uma interface de programac¸ ˜ao em Java que ´e
simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI
64/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Contribuic¸ ˜oes
Por que usar o sistema Aldeia?
Interface Java para comunicac¸ ˜ao sobre redes Infiniband
Transmiss˜ao de dados de forma ass´ıncrona sobre uma
interface Java
Qualidade de servic¸o para comunicac¸ ˜ao Infiniband
Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento
do programa paralelo usando a biblioteca DECK
Proporciona uma interface de programac¸ ˜ao em Java que ´e
simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI
64/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Contribuic¸ ˜oes
Por que usar o sistema Aldeia?
Interface Java para comunicac¸ ˜ao sobre redes Infiniband
Transmiss˜ao de dados de forma ass´ıncrona sobre uma
interface Java
Qualidade de servic¸o para comunicac¸ ˜ao Infiniband
Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento
do programa paralelo usando a biblioteca DECK
Proporciona uma interface de programac¸ ˜ao em Java que ´e
simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI
64/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Trabalhos Futuros
Avaliac¸ ˜ao do Aldeia
Avaliac¸ ˜ao sobre a interface de rede Myrinet
Implementac¸ ˜ao do Aldeia
Adaptador DECK
Integrac¸ ˜ao de agregados formados por diferentes
tecnologias de rede
65/67
Parte I: Introduc¸ ˜ao
Parte II: Sistema Aldeia
Parte III: Avaliac¸ ˜ao do Sistema Aldeia
Parte IV: Considerac¸ ˜oes Finais
Conclus˜oes Gerais
Contribuic¸ ˜oes
Trabalhos Futuros
Publicac¸ ˜oes
Publicac¸ ˜oes
Sistema Aldeia: Invocac¸ ˜ao Remota e Ass´ıncrona de
M´etodos sobre Infiniband e DECK. Workshop em Sistemas
Computacionais de Alto Desempenho. Foz do Iguac¸u,
2004
Infiniband: Alta Eficiˆencia no tratamento de grandes
volumes de dados e na computac¸ ˜ao num´erica. Encontro
Nacional de Engenharia de Produc¸ ˜ao. Florian´opolis, 2004
libVIP: Arquitetura de Interface Virtual sobre TCP/IP.
Workshop em sistemas computacionais de alto
desempenho. S˜ao Paulo, 2003
66/67
Sistema Aldeia:
Programac¸ ˜ao Paralela e Distribu´ıda em
Java sobre Infiniband e DECK
Rodrigo da Rosa Righi
Orientador: Philippe Olivier Alexandre Navaux
Co-orientador: Marcelo Pasin
Programa de P´os-Graduac¸ ˜ao em Computac¸ ˜ao - PPGC/UFRGS
Defesa de dissertac¸ ˜ao de Mestrado

More Related Content

Viewers also liked

Efficient Scheduler for Electronic Funds Tranfer (EFT) Scenarios
Efficient Scheduler for Electronic Funds Tranfer (EFT) ScenariosEfficient Scheduler for Electronic Funds Tranfer (EFT) Scenarios
Efficient Scheduler for Electronic Funds Tranfer (EFT) Scenariosrrrighi
 
Asynchronous Communication in Java over Infiniband
Asynchronous Communication in Java over InfinibandAsynchronous Communication in Java over Infiniband
Asynchronous Communication in Java over Infinibandrrrighi
 
PhD in Computer Science (UFRGS and TU Berlin 2009)
PhD in Computer Science (UFRGS and TU Berlin 2009)PhD in Computer Science (UFRGS and TU Berlin 2009)
PhD in Computer Science (UFRGS and TU Berlin 2009)rrrighi
 
Internet of Things Scalability
Internet of Things ScalabilityInternet of Things Scalability
Internet of Things Scalabilityrrrighi
 
Cloud Computing at a Glance - Research and Development
Cloud Computing at a Glance - Research and DevelopmentCloud Computing at a Glance - Research and Development
Cloud Computing at a Glance - Research and Developmentrrrighi
 
Internet das Coisas - Conceitos e Oportunidades de Pesquisa
Internet das Coisas - Conceitos e Oportunidades de PesquisaInternet das Coisas - Conceitos e Oportunidades de Pesquisa
Internet das Coisas - Conceitos e Oportunidades de Pesquisarrrighi
 

Viewers also liked (6)

Efficient Scheduler for Electronic Funds Tranfer (EFT) Scenarios
Efficient Scheduler for Electronic Funds Tranfer (EFT) ScenariosEfficient Scheduler for Electronic Funds Tranfer (EFT) Scenarios
Efficient Scheduler for Electronic Funds Tranfer (EFT) Scenarios
 
Asynchronous Communication in Java over Infiniband
Asynchronous Communication in Java over InfinibandAsynchronous Communication in Java over Infiniband
Asynchronous Communication in Java over Infiniband
 
PhD in Computer Science (UFRGS and TU Berlin 2009)
PhD in Computer Science (UFRGS and TU Berlin 2009)PhD in Computer Science (UFRGS and TU Berlin 2009)
PhD in Computer Science (UFRGS and TU Berlin 2009)
 
Internet of Things Scalability
Internet of Things ScalabilityInternet of Things Scalability
Internet of Things Scalability
 
Cloud Computing at a Glance - Research and Development
Cloud Computing at a Glance - Research and DevelopmentCloud Computing at a Glance - Research and Development
Cloud Computing at a Glance - Research and Development
 
Internet das Coisas - Conceitos e Oportunidades de Pesquisa
Internet das Coisas - Conceitos e Oportunidades de PesquisaInternet das Coisas - Conceitos e Oportunidades de Pesquisa
Internet das Coisas - Conceitos e Oportunidades de Pesquisa
 

Similar to Java sobre Infiniband

Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Integrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoIntegrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoCarlos Eduardo Pantoja
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
 
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOTCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOEvandro Donel Foster
 
Comunicação entre Java e Arduino Utilizando o Middleware Javino
Comunicação entre Java e Arduino Utilizando o Middleware JavinoComunicação entre Java e Arduino Utilizando o Middleware Javino
Comunicação entre Java e Arduino Utilizando o Middleware JavinoCarlos Eduardo Pantoja
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Apresentação Eletro 5ºano
Apresentação Eletro 5ºanoApresentação Eletro 5ºano
Apresentação Eletro 5ºanoBruno Pereira
 
Apresentação (final) (2003) projecto 5ano electro
Apresentação  (final)  (2003) projecto 5ano electroApresentação  (final)  (2003) projecto 5ano electro
Apresentação (final) (2003) projecto 5ano electroBruno Pereira
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
TDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMTDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMMarco Antonio Maciel
 
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...Edinaldo La-Roque
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalLeonardo Melo Santos
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Frederico Garcia Costa
 

Similar to Java sobre Infiniband (20)

Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Integrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o JavinoIntegrando a Programação Java com Arduino Utilizando o Javino
Integrando a Programação Java com Arduino Utilizando o Javino
 
Livro cisco
Livro ciscoLivro cisco
Livro cisco
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃOTCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
TCC - O PROTOCOLO IPV6 E SUAS FORMAS DE IMPLANTAÇÃO
 
Comunicação entre Java e Arduino Utilizando o Middleware Javino
Comunicação entre Java e Arduino Utilizando o Middleware JavinoComunicação entre Java e Arduino Utilizando o Middleware Javino
Comunicação entre Java e Arduino Utilizando o Middleware Javino
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Apresentação Eletro 5ºano
Apresentação Eletro 5ºanoApresentação Eletro 5ºano
Apresentação Eletro 5ºano
 
Apresentação (final) (2003) projecto 5ano electro
Apresentação  (final)  (2003) projecto 5ano electroApresentação  (final)  (2003) projecto 5ano electro
Apresentação (final) (2003) projecto 5ano electro
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
TDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAMTDC 2015 - Java 8 em 256 KB de memória RAM
TDC 2015 - Java 8 em 256 KB de memória RAM
 
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Tutorial Rede LTE - Vo...
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV Digital
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Middlewares
MiddlewaresMiddlewares
Middlewares
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
 

Recently uploaded

PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 

Recently uploaded (20)

PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 

Java sobre Infiniband

  • 1. Sistema Aldeia: Programac¸ ˜ao Paralela e Distribu´ıda em Java sobre Infiniband e DECK Rodrigo da Rosa Righi Orientador: Philippe Olivier Alexandre Navaux Co-orientador: Marcelo Pasin Programa de P´os-Graduac¸ ˜ao em Computac¸ ˜ao - PPGC/UFRGS Defesa de dissertac¸ ˜ao de Mestrado
  • 2. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Roteiro 1 Parte I: Introduc¸ ˜ao 2 Parte II: Sistema Aldeia 3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia 4 Parte IV: Considerac¸ ˜oes Finais 2/67
  • 3. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Introduc¸ ˜ao 1 Parte I: Introduc¸ ˜ao Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos 2 Parte II: Sistema Aldeia 3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia 4 Parte IV: Considerac¸ ˜oes Finais 3/67
  • 4. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Foco Principal Comunicac¸ ˜ao de alto desempenho para agregados (clusters) Programac¸ ˜ao orientada a objetos em Java Redes de sistema (redes dedicadas) atuais Java + Infiniband 4/67
  • 5. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos M´aquina Paralela e Sistemas de Interconex˜ao Interconex˜ao de agregados com redes tradicionais Ethernet (802.*) e TCP/IP Baixo custo e escalabilidade Sobrecarga do TCP/IP: controle de fluxo, retransmiss˜ao, c´opias Interconex˜ao de agregados com redes r´apidas Priorizam alta vaz˜ao e baixa latˆencia Protocolos leves Reduzir c´opias, passar sobrecarga para o hardware e DMA Myrinet, SCI, Quadrics, VIA e Infiniband U-Net, VIA, GM, DECK e VAPI 5/67
  • 6. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos M´aquina Paralela e Sistemas de Interconex˜ao Interconex˜ao de agregados com redes tradicionais Ethernet (802.*) e TCP/IP Baixo custo e escalabilidade Sobrecarga do TCP/IP: controle de fluxo, retransmiss˜ao, c´opias Interconex˜ao de agregados com redes r´apidas Priorizam alta vaz˜ao e baixa latˆencia Protocolos leves Reduzir c´opias, passar sobrecarga para o hardware e DMA Myrinet, SCI, Quadrics, VIA e Infiniband U-Net, VIA, GM, DECK e VAPI 5/67
  • 7. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos M´aquina Paralela e Sistemas de Interconex˜ao Arquitetura de Interconex˜ao Infiniband Tentativa de padronizac¸ ˜ao para redes de sistema Vaz˜ao: 2.5, 10 e 30 gigabits por segundo Comunicac¸ ˜ao chaveada e concorrente entre n´os Qualidade de servic¸o em hardware Bibliotecas de baixo n´ıvel: VAPI e InfiniBlue Bibliotecas com interfaces bem definidas: MPI 6/67
  • 8. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos M´aquina Paralela e Sistemas de Interconex˜ao Arquitetura de Interconex˜ao Infiniband Tentativa de padronizac¸ ˜ao para redes de sistema Vaz˜ao: 2.5, 10 e 30 gigabits por segundo Comunicac¸ ˜ao chaveada e concorrente entre n´os Qualidade de servic¸o em hardware Bibliotecas de baixo n´ıvel: VAPI e InfiniBlue Bibliotecas com interfaces bem definidas: MPI 6/67
  • 9. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos M´aquina Paralela e Sistemas de Interconex˜ao NóNóNóNó Nó Nó Nó Nó Nó Nó Chaveador Chaveador Chaveador Nó Adaptador de rede Porta Porta Rede Infiniband 7/67
  • 10. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Linguagem de Programac¸ ˜ao Java Caracter´ısticas Gerais de Java Programac¸ ˜ao orientada a objetos Funcionalidades para a programac¸ ˜ao distribu´ıda e concorrente Portabilidade (interpretac¸ ˜ao) Desempenho est´a melhorando: compiladores JIT e direto, novos sistemas para a programac¸ ˜ao paralela e distribu´ıda 8/67
  • 11. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Linguagem de Programac¸ ˜ao Java Programac¸ ˜ao distribu´ıda em Java Soquetes Java - comunicac¸ ˜ao s´ıncrona sobre TCP/IP Java RMI - comunicac¸ ˜ao sobre TCP/IP de forma transparente Programac¸ ˜ao paralela em Java Ibis - v´arias interfaces de comunicac¸ ˜ao sobre MPI, soquetes TCP/IP, Panda e GM JavaSymphony - interface particular sobre TCP/IP ProActive - comunicac¸ ˜ao de alto n´ıvel sobre RMI, Jini e Ibis 9/67
  • 12. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Linguagem de Programac¸ ˜ao Java Programac¸ ˜ao distribu´ıda em Java Soquetes Java - comunicac¸ ˜ao s´ıncrona sobre TCP/IP Java RMI - comunicac¸ ˜ao sobre TCP/IP de forma transparente Programac¸ ˜ao paralela em Java Ibis - v´arias interfaces de comunicac¸ ˜ao sobre MPI, soquetes TCP/IP, Panda e GM JavaSymphony - interface particular sobre TCP/IP ProActive - comunicac¸ ˜ao de alto n´ıvel sobre RMI, Jini e Ibis 9/67
  • 13. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Motivac¸ ˜ao Java em agregados ´e ineficiente para alto desempenho TCP/IP S´ıncrono Comunicac¸ ˜ao direta em Java em n´ıvel de usu´ario especialmente para Infiniband ´e algo inexplorado Comunicac¸ ˜ao eficiente em Java sobre Infiniband 10/67
  • 14. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Motivac¸ ˜ao Java em agregados ´e ineficiente para alto desempenho TCP/IP S´ıncrono Comunicac¸ ˜ao direta em Java em n´ıvel de usu´ario especialmente para Infiniband ´e algo inexplorado Comunicac¸ ˜ao eficiente em Java sobre Infiniband 10/67
  • 15. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Foco Principal M´aquina Paralela e Sistemas de Interconex˜ao Linguagem de Programac¸ ˜ao Java Motivac¸ ˜ao Objetivos Objetivos Desenvolvimento do Sistema Aldeia Comunicac¸ ˜ao eficiente para Java sobre Infiniband Usar comunicac¸ ˜ao em n´ıvel de usu´ario Usar assincronismo na comunicac¸ ˜ao Usar protocolos leves Usar uma interface de programac¸ ˜ao Java bem conhecida Aproveitar o legado de redes de sistemas do ambiente DECK 11/67
  • 16. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Roteiro 1 Parte I: Introduc¸ ˜ao 2 Parte II: Sistema Aldeia Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao 3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia 4 Parte IV: Considerac¸ ˜oes Finais 12/67
  • 17. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Decis˜oes de Projeto Java eficiente para Infiniband e DECK Adaptador OO + novo DECK + Infiniband Ineficiente Adaptador OO + Infiniband Eficiente Usa DECK via segundo adaptador no n´ıvel Infiniband 13/67
  • 18. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Decis˜oes de Projeto Adaptac¸ ˜ao em n´ıvel de RMI Implementac¸ ˜ao espec´ıfica de mensagens ativas Implementac¸ ˜oes conhecidas de RMI Usam soquetes Adaptac¸ ˜ao em n´ıvel de soquetes Permite n˜ao reimplementar RMI Pode ser aproveitada para aplicac¸ ˜oes que usam soquetes Java eficiente para Infiniband e DECK Soquetes Java para Infiniband 14/67
  • 19. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Decis˜oes de Projeto Sistema Aldeia Arcabouc¸o para a inclus˜ao de novos sistemas de comunicac¸ ˜ao Assincronismo na transmiss˜ao de dados Qualidade de servic¸o sobre Infiniband Gerac¸ ˜ao de rastros sobre DECK 15/67
  • 20. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Estrutura de M´odulos do Aldeia Aplicação Biblioteca VAPI DECK Biblioteca uVAPI Biblioteca Adaptador VAPI Soquetes Aldeia RMI JNI Linguagem Java Linguagem C 16/67
  • 21. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Estrutura de M´odulos do Aldeia Aplicação Biblioteca VAPI DECK Biblioteca uVAPI Biblioteca Adaptador VAPI Soquetes Aldeia RMI JNI Linguagem Java Linguagem C 17/67
  • 22. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Interface de Programac¸ ˜ao do Aldeia Dois fluxos de comunicac¸ ˜ao: entrada e sa´ıda M´etodos principais read() write() flush() Mensagens de tamanho vari´avel Transmissor envia 100 bytes e receptor chama duas vezes o m´etodo para a leitura de 50 bytes 18/67
  • 23. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 19/67
  • 24. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Arquivo de Configurac¸ ˜ao do Aldeia Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Comunicac¸ ˜ao com a VAPI Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 20/67
  • 25. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Arquivo de Configurac¸ ˜ao do Aldeia Estabelecer propriedades ao Aldeia sem alterar a interface dos soquetes Conte´udo do arquivo de configurac¸ ˜ao Porta do adaptador Infiniband Qualidade de servic¸o Infiniband Identificador do processo DECK Quantidade total de processos DECK Tipo de soquetes (DECK ou Infiniband) Tamanho da unidade de transferˆencia 21/67
  • 26. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Arquivo de Configurac¸ ˜ao do Aldeia Estabelecer propriedades ao Aldeia sem alterar a interface dos soquetes Conte´udo do arquivo de configurac¸ ˜ao Porta do adaptador Infiniband Qualidade de servic¸o Infiniband Identificador do processo DECK Quantidade total de processos DECK Tipo de soquetes (DECK ou Infiniband) Tamanho da unidade de transferˆencia 21/67
  • 27. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Arquivo de Configurac¸ ˜ao do Aldeia Estabelecer propriedades ao Aldeia sem alterar a interface dos soquetes Conte´udo do arquivo de configurac¸ ˜ao Porta do adaptador Infiniband Qualidade de servic¸o Infiniband Identificador do processo DECK Quantidade total de processos DECK Tipo de soquetes (DECK ou Infiniband) Tamanho da unidade de transferˆencia 21/67
  • 28. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Processo de conex˜ao com o Aldeia Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 22/67
  • 29. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Processo de conex˜ao com o Aldeia ServerSocket ss = new ServerSocket(356) ; Socket s; s = ss.accept(); Socket c = new Socket(¨server.inf.ufrgs.br¨, 356); Servidor Cliente Servidor abre porta local e cliente se conecta no servidor informando a m´aquina e a porta 23/67
  • 30. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Processo de conex˜ao com o Aldeia Nó 1 Nó 2 ID2 ID1 ID1 ID2 Infiniband e implementac¸ ˜ao com o DECK - Interlocutores precisam de informac¸ ˜oes sobre o ponto remoto Criar soquete TCP/IP com a porta passada na interface Java para transmitir essas informac¸ ˜oes 24/67
  • 31. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao de Fluxo de Dados para Troca de Mensagens Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 25/67
  • 32. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao de Fluxo de Dados para Troca de Mensagens Soquetes Java transportam dados de qualquer tamanho (fluxo - stream) Enviar duas mensagens para cada requisic¸ ˜ao Latˆencia de comunicac¸ ˜ao Registro de mem´oria (invi´avel) Usar unidade m´axima para transferˆencia de dados (MTU) Saber de antem˜ao o tamanho da mensagem no receptor Economia operac¸ ˜oes de registro de mem´oria V´arias comunicac¸ ˜oes para mensagens grandes 26/67
  • 33. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Organizac¸ ˜ao dos C´odigos em C e em Java Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 27/67
  • 34. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Organizac¸ ˜ao dos C´odigos em C e em Java Aplicação Soquetes Aldeia Adaptador VAPI Biblioteca Comunicação Comunicação Biblioteca Adaptador VAPI Soquetes Aldeia Aplicação Rede de interconexão Ponto final 2Ponto final 1 JNI Linguagem Java Linguagem C 28/67
  • 35. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Organizac¸ ˜ao dos C´odigos em C e em Java Prot´otipo 1 Segmentac¸ ˜ao das mensagens em Java V´arias chamadas para dados maiores que uma MTU Prot´otipo 2 Segmentac¸ ˜ao das mensagens em Java Utilizac¸ ˜ao de um objeto ByteBuffer V´arias chamadas para dados maiores que uma MTU Prot´otipo 3 Segmentac¸ ˜ao de mensagens em linguagem C ´Unica transmiss˜ao dos dados pelo m´etodo nativo 29/67
  • 36. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Organizac¸ ˜ao dos C´odigos em C e em Java Prot´otipo 1 Segmentac¸ ˜ao das mensagens em Java V´arias chamadas para dados maiores que uma MTU Prot´otipo 2 Segmentac¸ ˜ao das mensagens em Java Utilizac¸ ˜ao de um objeto ByteBuffer V´arias chamadas para dados maiores que uma MTU Prot´otipo 3 Segmentac¸ ˜ao de mensagens em linguagem C ´Unica transmiss˜ao dos dados pelo m´etodo nativo 29/67
  • 37. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Organizac¸ ˜ao dos C´odigos em C e em Java Prot´otipo 1 Segmentac¸ ˜ao das mensagens em Java V´arias chamadas para dados maiores que uma MTU Prot´otipo 2 Segmentac¸ ˜ao das mensagens em Java Utilizac¸ ˜ao de um objeto ByteBuffer V´arias chamadas para dados maiores que uma MTU Prot´otipo 3 Segmentac¸ ˜ao de mensagens em linguagem C ´Unica transmiss˜ao dos dados pelo m´etodo nativo 29/67
  • 38. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Comunicac¸ ˜ao com a VAPI Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Comunicac¸ ˜ao com a VAPI Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 30/67
  • 39. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Comunicac¸ ˜ao com a VAPI Par de filas de comunicac¸ ˜ao (QP) e par de filas de conclus˜ao Filas contˆem descritores de comunicac¸ ˜ao, com Ponteiro para a ´area de mem´oria Tamanho da ´area da mem´oria Marcador para conclus˜ao Descritores com marcador de conclus˜ao S˜ao inseridos na correspondente fila de conclus˜ao Descritores sem marcador de conclus˜ao S˜ao descartados Acesso a fila de conclus˜ao ´e lento (chamada ao SO) 31/67
  • 40. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Comunicac¸ ˜ao com a VAPI Par de filas de comunicac¸ ˜ao (QP) e par de filas de conclus˜ao Filas contˆem descritores de comunicac¸ ˜ao, com Ponteiro para a ´area de mem´oria Tamanho da ´area da mem´oria Marcador para conclus˜ao Descritores com marcador de conclus˜ao S˜ao inseridos na correspondente fila de conclus˜ao Descritores sem marcador de conclus˜ao S˜ao descartados Acesso a fila de conclus˜ao ´e lento (chamada ao SO) 31/67
  • 41. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Comunicac¸ ˜ao com a VAPI Par de filas de comunicac¸ ˜ao (QP) e par de filas de conclus˜ao Filas contˆem descritores de comunicac¸ ˜ao, com Ponteiro para a ´area de mem´oria Tamanho da ´area da mem´oria Marcador para conclus˜ao Descritores com marcador de conclus˜ao S˜ao inseridos na correspondente fila de conclus˜ao Descritores sem marcador de conclus˜ao S˜ao descartados Acesso a fila de conclus˜ao ´e lento (chamada ao SO) 31/67
  • 42. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Transmiss˜ao de Dados Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Comunicac¸ ˜ao com a VAPI Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 32/67
  • 43. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Transmiss˜ao de Dados com o Aldeia Buffer circular de envio Mem´oria registrada (1MB = m´aximo transmitido) Cont´em mensagens de tamanho vari´avel at´e 1 MTU Lista circular de descritores de envio Cont´em descritores de comunicac¸ ˜ao a serem inseridos na fila de envio Somente o ´ultimo de cada mensagem ´e marcado 33/67
  • 44. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Transmiss˜ao de Dados com o Aldeia 1024 1024 1024 1024 952 1 1024 1024 1024 1024 500 req1 req2 req3 req4 Descritores Buffer 34/67
  • 45. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Recepc¸ ˜ao de Dados com o Aldeia Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Comunicac¸ ˜ao com a VAPI Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 35/67
  • 46. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Recepc¸ ˜ao de Dados com o Aldeia Buffer de 1 MTU Mem´oria registrada Com ponteiros para bytes j´a consumidos Descritor de comunicac¸ ˜ao Inserido na fila de recepc¸ ˜ao Espera receber uma MTU Ap´os a comunicac¸ ˜ao ´e preenchido com o tamanho da mensagem Reutilizado para completar a requisic¸ ˜ao 36/67
  • 47. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Recepc¸ ˜ao de Dados com o Aldeia Guardado para as processados Já Tamanho igual a MTU Região de memória registrada para a leitura próximas interações 37/67
  • 48. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK Arquivo de configurac¸ ˜ao Processo de conex˜ao Adaptac¸ ˜ao de fluxo de dados para troca de mensagens Organizac¸ ˜ao dos c´odigos em C e em Java Comunicac¸ ˜ao com a VAPI Transmiss˜ao de dados Recepc¸ ˜ao de dados Adaptac¸ ˜ao para utilizac¸ ˜ao do DECK 38/67
  • 49. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK DECK possui programa espec´ıfico para lanc¸amento de processos que informa: Quantidade de n´os Identificador do n´o Comunicac¸ ˜ao s´ıncrona Comunicac¸ ˜ao com caixas de correio Desenvolvimento da biblioteca MicroVAPI Adaptar 17 func¸ ˜oes da VAPI para usar o DECK Mesma sintaxe e semˆantica da VAPI 39/67
  • 50. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK DECK possui programa espec´ıfico para lanc¸amento de processos que informa: Quantidade de n´os Identificador do n´o Comunicac¸ ˜ao s´ıncrona Comunicac¸ ˜ao com caixas de correio Desenvolvimento da biblioteca MicroVAPI Adaptar 17 func¸ ˜oes da VAPI para usar o DECK Mesma sintaxe e semˆantica da VAPI 39/67
  • 51. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK Adaptac¸ ˜oes realizadas Processo de conex˜ao Par de filas Comunicac¸ ˜ao ass´ıncrona Adaptac¸ ˜ao no processo de conex˜ao DECK utiliza o processo de clonagem Troca de duas informac¸ ˜oes para a gerac¸ ˜ao de uma chave ´unica para clonagem 40/67
  • 52. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK Adaptac¸ ˜oes realizadas Processo de conex˜ao Par de filas Comunicac¸ ˜ao ass´ıncrona Adaptac¸ ˜ao no processo de conex˜ao DECK utiliza o processo de clonagem Troca de duas informac¸ ˜oes para a gerac¸ ˜ao de uma chave ´unica para clonagem 40/67
  • 53. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK Adaptac¸ ˜ao para a criac¸ ˜ao de par de filas Nó B QP B Nó A VAPI QP A Caixa B Clonada Caixa A QP A Nó A QP B Nó B Caixa A Clonada Caixa B MicroVAPI 41/67
  • 54. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Decis˜oes de Projeto Estrutura Modular Interface de Programac¸ ˜ao Implementac¸ ˜ao Implementac¸ ˜ao Adaptac¸ ˜ao para Utilizac¸ ˜ao do DECK Adaptac¸ ˜ao para assincronismo: produtor-consumidor Fluxo da biblioteca MicroVAPI Fluxo concorrente de execução comunicação requisitar uma Procedimento para comunicação Demônio para o processamento da Produtor Consumidor 1 3 2 4 6 5 Fila de requisições Rede de Interconexão 42/67
  • 55. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Roteiro 1 Parte I: Introduc¸ ˜ao 2 Parte II: Sistema Aldeia 3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros 4 Parte IV: Considerac¸ ˜oes Finais 43/67
  • 56. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Aplicac¸ ˜ao de Ping-Pong Capturar o tempo final para a passagem de uma mensagem Nó 1 canal_saida.write(dados, 0, tamanho); canal_saida.flush(); canal_recepcao.read(dados, 0, tamanho); T_final = Captura_tempo(); T_inicial = captura_tempo(); } for(i = 0; i < iteracoes; i++){ } T_final=(T_final−T_inicial) / (2*iteracoes); 44/67
  • 57. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Tempo de Comunicac¸ ˜ao Usando o Aldeia com a VAPI 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 50 100 150 200 250 300 350 400 450 500 550 600 650 Tempoemmicrosegundos MTU 512 MTU 1024 MTU 2048 Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando a VAPI 45/67
  • 58. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Vaz˜ao Usando o Aldeia com a VAPI 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 Larguradebandaemmegabitsporsegundo MTU 512 MTU 1024 MTU 2048 Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI 46/67
  • 59. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Vaz˜ao Usando o Aldeia com a VAPI 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 Larguradebandaemmegabitsporsegundo MTU 512 MTU 1024 MTU 2048 Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI 400 megabits por segundo 47/67
  • 60. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Tempo de Comunicac¸ ˜ao Usando o Aldeia com a DECK/TCP 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 1050 1100 Tempoemmicrosegundos MTU 512 MTU 1024 MTU 2048 Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando o DECK/TCP 48/67
  • 61. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Vaz˜ao Usando o Aldeia com a DECK/TCP 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 Larguradebandaemmegabitsporsegundo MTU 512 MTU 1024 MTU 2048 Tempo da aplicação de Ping-Pong em milisegundos usando o DECK/TCP 49/67
  • 62. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Tempo de Comunicac¸ ˜ao e Vaz˜ao Vaz˜ao Usando o Aldeia com a DECK/TCP 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 Larguradebandaemmegabitsporsegundo MTU 512 MTU 1024 MTU 2048 Vazão da aplicação de Ping-Pong usando o DECK/TCP 70 megabits por segundo 50/67
  • 63. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Comunicac¸ ˜ao Ass´ıncrona Captura dos tempos ass´ıncrono e s´ıncrono M´etodo flush() fora da estrutura iterativa Nó 1 T_inicial = captura_tempo(); for( i = 0; i < iterações ; i++){ } T_parcial = captura_tempo(); canal_saida.write(dados, 0, tamanho); canal_saida.flush(); T_final = captura_tempo(); T_assinc = (T_parcial−T_inicial) / (2*iteracoes); T_sinc = (T_final−T_inicial) / (2*iteracoes); 51/67
  • 64. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Comunicac¸ ˜ao Ass´ıncrona Comunicac¸ ˜ao Usando o Aldeia com a VAPI 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 25 50 75 100 125 150 175 200 Tempoemmicrosegundos Comunicação Síncrona Comunicação Assíncrona Comunicação Assíncrona usando a VAPI 52/67
  • 65. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Comunicac¸ ˜ao Ass´ıncrona Comunicac¸ ˜ao Usando o Aldeia com o DECK/TCP 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tamanho da mensagem em bytes 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 Tempoemmicrosegundos Comunicação Síncrona Comunicação Assíncrona Comunicação Assíncrona usando DECK TCP 53/67
  • 66. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Serializac¸ ˜ao de Objetos Serializac¸ ˜ao de um vetor de inteiros Comparac¸ ˜ao com soquetes Java TCP/IP Descarregamento do canal antes de capturar o tempo final Utilizac¸ ˜ao do DECK na sua vers˜ao TCP/IP T_inicial = captura_tempo(); Nó 1 int[ ] vetor = new int[tamanho]; objeto_saida.writeObject(vetor); Tempo_final = T_final − T_inicial; T_final = Captura_tempo(); canal_saida.flush(); 54/67
  • 67. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Serializac¸ ˜ao de Objetos Tempo da passagem do vetor de inteiros em milisegundos Sistema Elementos do vetor 102 103 104 105 106 107 Soquetes TCP/IP 27.3 28.9 47.9 113.2 447.5 3628.7 Aldeia TCP/IP 26.9 27.6 48.2 114.4 449.3 3626.1 55/67
  • 68. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Caracter´ısticas da aplicac¸ ˜ao Paralelizac¸ ˜ao segundo o modelo mestre-escravo Possui uma propriedade chamada m´ascara Utilizac¸ ˜ao de todos os n´os do agregado LabTeC Utilizac¸ ˜ao do DECK na sua vers˜ao TCP/IP Avaliar a correta transmiss˜ao dos dados com o Aldeia 56/67
  • 69. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana 57/67
  • 70. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Eficiˆencia Usando Diferentes M´ascaras 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Número de processos escravos 0 10 20 30 40 50 60 70 80 90 100 Porcentagemdaeficiência Máscara 9x9 Máscara 7x7 Máscara 5x5 Máscara 3x3 Eficiência na aplicação do Filtro de Mediana 58/67
  • 71. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Gerac¸ ˜ao de Rastros Caracter´ısticas da gerac¸ ˜ao de rastros Utilizac¸ ˜ao do DECK na sua vers˜ao instrumentada DECK gera rastros para as criac¸ ˜ao e clonagem de caixas de correio e trocas de mensagem Visualizac¸ ˜ao na ferramenta Paj´e Permite identificar o instante da troca de mensagem e quantidade de dados envolvida 59/67
  • 72. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Gerac¸ ˜ao de Rastros e Depurac¸ ˜ao Transmiss˜ao de um vetor de inteiros Identificar a comunicac¸ ˜ao na serializac¸ ˜ao de objetos Processo de conex˜ao Criac¸ ˜ao de caixa de correio e clonagem da caixa remota Machine labtec-l1 Thread 5734 DECKState labtec-l2 Thread 12098 DECKState 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9 60/67
  • 73. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Tempo de Comunicac¸ ˜ao e Vaz˜ao Comunicac¸ ˜ao Ass´ıncrona Serializac¸ ˜ao de Objetos Aplicac¸ ˜ao Distribu´ıda do Filtro de Mediana Gerac¸ ˜ao de Rastros Gerac¸ ˜ao de Rastros Troca de mensagem Visualizac¸ ˜ao de trˆes instantes Clicar nas linhas para verificar a quantidade de bytes transmitidos Machine labtec-l1 Thread 5734 DECKState labtec-l2 Thread 12098 DECKState 5 80 85 90 95 100 105 110 115 120 125 130 135 14 61/67
  • 74. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Roteiro 1 Parte I: Introduc¸ ˜ao 2 Parte II: Sistema Aldeia 3 Parte III: Avaliac¸ ˜ao do Sistema Aldeia 4 Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes 62/67
  • 75. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Conclus˜oes Gerais Aspectos gerais do sistema Aldeia Organizado de modo que novas bibliotecas sejam facilmente adicionadas Possui uma interface que o programador est´a acostumado Apresenta uma interface simples que esconde os detalhes de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho e aplicac¸ ˜oes corporativas 63/67
  • 76. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Conclus˜oes Gerais Aspectos gerais do sistema Aldeia Organizado de modo que novas bibliotecas sejam facilmente adicionadas Possui uma interface que o programador est´a acostumado Apresenta uma interface simples que esconde os detalhes de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho e aplicac¸ ˜oes corporativas 63/67
  • 77. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Conclus˜oes Gerais Aspectos gerais do sistema Aldeia Organizado de modo que novas bibliotecas sejam facilmente adicionadas Possui uma interface que o programador est´a acostumado Apresenta uma interface simples que esconde os detalhes de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho e aplicac¸ ˜oes corporativas 63/67
  • 78. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Conclus˜oes Gerais Aspectos gerais do sistema Aldeia Organizado de modo que novas bibliotecas sejam facilmente adicionadas Possui uma interface que o programador est´a acostumado Apresenta uma interface simples que esconde os detalhes de utilizac¸ ˜ao das bibliotecas de baixo n´ıvel Utilizac¸ ˜ao em sistemas distribu´ıdos, para alto desempenho e aplicac¸ ˜oes corporativas 63/67
  • 79. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Contribuic¸ ˜oes Por que usar o sistema Aldeia? Interface Java para comunicac¸ ˜ao sobre redes Infiniband Transmiss˜ao de dados de forma ass´ıncrona sobre uma interface Java Qualidade de servic¸o para comunicac¸ ˜ao Infiniband Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento do programa paralelo usando a biblioteca DECK Proporciona uma interface de programac¸ ˜ao em Java que ´e simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI 64/67
  • 80. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Contribuic¸ ˜oes Por que usar o sistema Aldeia? Interface Java para comunicac¸ ˜ao sobre redes Infiniband Transmiss˜ao de dados de forma ass´ıncrona sobre uma interface Java Qualidade de servic¸o para comunicac¸ ˜ao Infiniband Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento do programa paralelo usando a biblioteca DECK Proporciona uma interface de programac¸ ˜ao em Java que ´e simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI 64/67
  • 81. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Contribuic¸ ˜oes Por que usar o sistema Aldeia? Interface Java para comunicac¸ ˜ao sobre redes Infiniband Transmiss˜ao de dados de forma ass´ıncrona sobre uma interface Java Qualidade de servic¸o para comunicac¸ ˜ao Infiniband Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento do programa paralelo usando a biblioteca DECK Proporciona uma interface de programac¸ ˜ao em Java que ´e simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI 64/67
  • 82. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Contribuic¸ ˜oes Por que usar o sistema Aldeia? Interface Java para comunicac¸ ˜ao sobre redes Infiniband Transmiss˜ao de dados de forma ass´ıncrona sobre uma interface Java Qualidade de servic¸o para comunicac¸ ˜ao Infiniband Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento do programa paralelo usando a biblioteca DECK Proporciona uma interface de programac¸ ˜ao em Java que ´e simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI 64/67
  • 83. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Contribuic¸ ˜oes Por que usar o sistema Aldeia? Interface Java para comunicac¸ ˜ao sobre redes Infiniband Transmiss˜ao de dados de forma ass´ıncrona sobre uma interface Java Qualidade de servic¸o para comunicac¸ ˜ao Infiniband Gerac¸ ˜ao de rastros para a visualizac¸ ˜ao do comportamento do programa paralelo usando a biblioteca DECK Proporciona uma interface de programac¸ ˜ao em Java que ´e simples e intuitiva e de f´acil integrac¸ ˜ao com sistemas RMI 64/67
  • 84. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Trabalhos Futuros Avaliac¸ ˜ao do Aldeia Avaliac¸ ˜ao sobre a interface de rede Myrinet Implementac¸ ˜ao do Aldeia Adaptador DECK Integrac¸ ˜ao de agregados formados por diferentes tecnologias de rede 65/67
  • 85. Parte I: Introduc¸ ˜ao Parte II: Sistema Aldeia Parte III: Avaliac¸ ˜ao do Sistema Aldeia Parte IV: Considerac¸ ˜oes Finais Conclus˜oes Gerais Contribuic¸ ˜oes Trabalhos Futuros Publicac¸ ˜oes Publicac¸ ˜oes Sistema Aldeia: Invocac¸ ˜ao Remota e Ass´ıncrona de M´etodos sobre Infiniband e DECK. Workshop em Sistemas Computacionais de Alto Desempenho. Foz do Iguac¸u, 2004 Infiniband: Alta Eficiˆencia no tratamento de grandes volumes de dados e na computac¸ ˜ao num´erica. Encontro Nacional de Engenharia de Produc¸ ˜ao. Florian´opolis, 2004 libVIP: Arquitetura de Interface Virtual sobre TCP/IP. Workshop em sistemas computacionais de alto desempenho. S˜ao Paulo, 2003 66/67
  • 86. Sistema Aldeia: Programac¸ ˜ao Paralela e Distribu´ıda em Java sobre Infiniband e DECK Rodrigo da Rosa Righi Orientador: Philippe Olivier Alexandre Navaux Co-orientador: Marcelo Pasin Programa de P´os-Graduac¸ ˜ao em Computac¸ ˜ao - PPGC/UFRGS Defesa de dissertac¸ ˜ao de Mestrado