sistema aldeia: mestre em ciência da computação (ufrgs 2005)
TRANSCRIPT
Sistema Aldeia:Programacao Paralela e Distribuıda em
Java sobre Infiniband e DECK
Rodrigo da Rosa RighiOrientador: Philippe Olivier Alexandre Navaux
Co-orientador: Marcelo Pasin
Programa de Pos-Graduacao em Computacao - PPGC/UFRGSDefesa de dissertacao de Mestrado
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Roteiro
1 Parte I: Introducao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliacao do Sistema Aldeia
4 Parte IV: Consideracoes Finais
2/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Introducao
1 Parte I: IntroducaoFoco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
2 Parte II: Sistema Aldeia
3 Parte III: Avaliacao do Sistema Aldeia
4 Parte IV: Consideracoes Finais3/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Foco Principal
Comunicacao de alto desempenho para agregados (clusters)Programacao orientada a objetos em JavaRedes de sistema (redes dedicadas) atuaisJava + Infiniband
4/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Maquina Paralela e Sistemas de Interconexao
Interconexao de agregados com redes tradicionaisEthernet (802.*) e TCP/IPBaixo custo e escalabilidadeSobrecarga do TCP/IP: controle de fluxo, retransmissao,copias
Interconexao de agregados com redes rapidasPriorizam alta vazao e baixa latenciaProtocolos levesReduzir copias, passar sobrecarga para o hardware e DMAMyrinet, SCI, Quadrics, VIA e InfinibandU-Net, VIA, GM, DECK e VAPI
5/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Maquina Paralela e Sistemas de Interconexao
Interconexao de agregados com redes tradicionaisEthernet (802.*) e TCP/IPBaixo custo e escalabilidadeSobrecarga do TCP/IP: controle de fluxo, retransmissao,copias
Interconexao de agregados com redes rapidasPriorizam alta vazao e baixa latenciaProtocolos levesReduzir copias, passar sobrecarga para o hardware e DMAMyrinet, SCI, Quadrics, VIA e InfinibandU-Net, VIA, GM, DECK e VAPI
5/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Maquina Paralela e Sistemas de Interconexao
Arquitetura de Interconexao InfinibandTentativa de padronizacao para redes de sistemaVazao: 2.5, 10 e 30 gigabits por segundoComunicacao chaveada e concorrente entre nosQualidade de servico em hardwareBibliotecas de baixo nıvel: VAPI e InfiniBlueBibliotecas com interfaces bem definidas: MPI
6/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Maquina Paralela e Sistemas de Interconexao
Arquitetura de Interconexao InfinibandTentativa de padronizacao para redes de sistemaVazao: 2.5, 10 e 30 gigabits por segundoComunicacao chaveada e concorrente entre nosQualidade de servico em hardwareBibliotecas de baixo nıvel: VAPI e InfiniBlueBibliotecas com interfaces bem definidas: MPI
6/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Maquina Paralela e Sistemas de Interconexao
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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Linguagem de Programacao Java
Caracterısticas Gerais de JavaProgramacao orientada a objetosFuncionalidades para a programacao distribuıda econcorrentePortabilidade (interpretacao)Desempenho esta melhorando: compiladores JIT e direto,novos sistemas para a programacao paralela e distribuıda
8/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Linguagem de Programacao Java
Programacao distribuıda em JavaSoquetes Java - comunicacao sıncrona sobre TCP/IPJava RMI - comunicacao sobre TCP/IP de formatransparente
Programacao paralela em JavaIbis - varias interfaces de comunicacao sobre MPI,soquetes TCP/IP, Panda e GMJavaSymphony - interface particular sobre TCP/IPProActive - comunicacao de alto nıvel sobre RMI, Jini e Ibis
9/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Linguagem de Programacao Java
Programacao distribuıda em JavaSoquetes Java - comunicacao sıncrona sobre TCP/IPJava RMI - comunicacao sobre TCP/IP de formatransparente
Programacao paralela em JavaIbis - varias interfaces de comunicacao sobre MPI,soquetes TCP/IP, Panda e GMJavaSymphony - interface particular sobre TCP/IPProActive - comunicacao de alto nıvel sobre RMI, Jini e Ibis
9/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Motivacao
Java em agregados e ineficiente para alto desempenhoTCP/IPSıncrono
Comunicacao direta em Java em nıvel de usuarioespecialmente para Infiniband e algo inexploradoComunicacao eficiente em Java sobre Infiniband
10/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Motivacao
Java em agregados e ineficiente para alto desempenhoTCP/IPSıncrono
Comunicacao direta em Java em nıvel de usuarioespecialmente para Infiniband e algo inexploradoComunicacao eficiente em Java sobre Infiniband
10/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Foco PrincipalMaquina Paralela e Sistemas de InterconexaoLinguagem de Programacao JavaMotivacaoObjetivos
Objetivos
Desenvolvimento do Sistema AldeiaComunicacao eficiente para Java sobre InfinibandUsar comunicacao em nıvel de usuarioUsar assincronismo na comunicacaoUsar protocolos levesUsar uma interface de programacao Java bem conhecidaAproveitar o legado de redes de sistemas do ambienteDECK
11/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Roteiro
1 Parte I: Introducao
2 Parte II: Sistema AldeiaDecisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
3 Parte III: Avaliacao do Sistema Aldeia
4 Parte IV: Consideracoes Finais
12/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Decisoes de Projeto
Java eficiente para Infiniband e DECKAdaptador OO + novo DECK + Infiniband
IneficienteAdaptador OO + Infiniband
EficienteUsa DECK via segundo adaptador no nıvel Infiniband
13/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Decisoes de Projeto
Adaptacao em nıvel de RMIImplementacao especıfica de mensagens ativas
Implementacoes conhecidas de RMIUsam soquetes
Adaptacao em nıvel de soquetesPermite nao reimplementar RMIPode ser aproveitada para aplicacoes que usam soquetes
Java eficiente para Infiniband e DECKSoquetes Java para Infiniband
14/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Decisoes de Projeto
Sistema AldeiaArcabouco para a inclusao de novos sistemas decomunicacaoAssincronismo na transmissao de dadosQualidade de servico sobre InfinibandGeracao de rastros sobre DECK
15/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Estrutura de Modulos do AldeiaAplicação
BibliotecaVAPI DECK
Biblioteca
uVAPIBiblioteca
Adaptador VAPI
Soquetes Aldeia
RMI
JNI
Linguagem Java
Linguagem C
16/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Estrutura de Modulos do AldeiaAplicação
BibliotecaVAPI DECK
Biblioteca
uVAPIBiblioteca
Adaptador VAPI
Soquetes Aldeia
RMI
JNI
Linguagem Java
Linguagem C
17/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Interface de Programacao do Aldeia
Dois fluxos de comunicacao: entrada e saıdaMetodos principais
read()write()flush()
Mensagens de tamanho variavelTransmissor envia 100 bytes e receptor chama duas vezeso metodo para a leitura de 50 bytes
18/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
Implementacao
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaTransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
19/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoArquivo de Configuracao do Aldeia
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaComunicacao com a VAPITransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
20/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoArquivo de Configuracao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interfacedos soquetes
Conteudo do arquivo de configuracaoPorta do adaptador InfinibandQualidade de servico InfinibandIdentificador do processo DECKQuantidade total de processos DECKTipo de soquetes (DECK ou Infiniband)Tamanho da unidade de transferencia
21/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoArquivo de Configuracao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interfacedos soquetes
Conteudo do arquivo de configuracaoPorta do adaptador InfinibandQualidade de servico InfinibandIdentificador do processo DECKQuantidade total de processos DECKTipo de soquetes (DECK ou Infiniband)Tamanho da unidade de transferencia
21/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoArquivo de Configuracao do Aldeia
Estabelecer propriedades ao Aldeia sem alterar a interfacedos soquetes
Conteudo do arquivo de configuracaoPorta do adaptador InfinibandQualidade de servico InfinibandIdentificador do processo DECKQuantidade total de processos DECKTipo de soquetes (DECK ou Infiniband)Tamanho da unidade de transferencia
21/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoProcesso de conexao com o Aldeia
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaTransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
22/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoProcesso de conexao 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 servidorinformando a maquina e a porta
23/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoProcesso de conexao com o Aldeia
Nó 1 Nó 2
ID2
ID1 ID1
ID2
Infiniband e implementacao com o DECK - Interlocutoresprecisam de informacoes sobre o ponto remotoCriar soquete TCP/IP com a porta passada na interfaceJava para transmitir essas informacoes
24/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao de Fluxo de Dados para Troca de Mensagens
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaTransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
25/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao de Fluxo de Dados para Troca de Mensagens
Soquetes Java transportam dados de qualquer tamanho(fluxo - stream)Enviar duas mensagens para cada requisicao
Latencia de comunicacaoRegistro de memoria (inviavel)
Usar unidade maxima para transferencia de dados (MTU)Saber de antemao o tamanho da mensagem no receptorEconomia operacoes de registro de memoriaVarias comunicacoes para mensagens grandes
26/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoOrganizacao dos Codigos em C e em Java
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaTransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
27/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoOrganizacao dos Codigos 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoOrganizacao dos Codigos em C e em Java
Prototipo 1Segmentacao das mensagens em JavaVarias chamadas para dados maiores que uma MTU
Prototipo 2Segmentacao das mensagens em JavaUtilizacao de um objeto ByteBufferVarias chamadas para dados maiores que uma MTU
Prototipo 3Segmentacao de mensagens em linguagem CUnica transmissao dos dados pelo metodo nativo
29/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoOrganizacao dos Codigos em C e em Java
Prototipo 1Segmentacao das mensagens em JavaVarias chamadas para dados maiores que uma MTU
Prototipo 2Segmentacao das mensagens em JavaUtilizacao de um objeto ByteBufferVarias chamadas para dados maiores que uma MTU
Prototipo 3Segmentacao de mensagens em linguagem CUnica transmissao dos dados pelo metodo nativo
29/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoOrganizacao dos Codigos em C e em Java
Prototipo 1Segmentacao das mensagens em JavaVarias chamadas para dados maiores que uma MTU
Prototipo 2Segmentacao das mensagens em JavaUtilizacao de um objeto ByteBufferVarias chamadas para dados maiores que uma MTU
Prototipo 3Segmentacao de mensagens em linguagem CUnica transmissao dos dados pelo metodo nativo
29/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoComunicacao com a VAPI
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaComunicacao com a VAPITransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
30/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoComunicacao com a VAPI
Par de filas de comunicacao (QP) e par de filas deconclusaoFilas contem descritores de comunicacao, com
Ponteiro para a area de memoriaTamanho da area da memoriaMarcador para conclusao
Descritores com marcador de conclusaoSao inseridos na correspondente fila de conclusao
Descritores sem marcador de conclusaoSao descartados
Acesso a fila de conclusao e lento (chamada ao SO)31/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoComunicacao com a VAPI
Par de filas de comunicacao (QP) e par de filas deconclusaoFilas contem descritores de comunicacao, com
Ponteiro para a area de memoriaTamanho da area da memoriaMarcador para conclusao
Descritores com marcador de conclusaoSao inseridos na correspondente fila de conclusao
Descritores sem marcador de conclusaoSao descartados
Acesso a fila de conclusao e lento (chamada ao SO)31/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoComunicacao com a VAPI
Par de filas de comunicacao (QP) e par de filas deconclusaoFilas contem descritores de comunicacao, com
Ponteiro para a area de memoriaTamanho da area da memoriaMarcador para conclusao
Descritores com marcador de conclusaoSao inseridos na correspondente fila de conclusao
Descritores sem marcador de conclusaoSao descartados
Acesso a fila de conclusao e lento (chamada ao SO)31/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoTransmissao de Dados
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaComunicacao com a VAPITransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
32/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoTransmissao de Dados com o Aldeia
Buffer circular de envioMemoria registrada (1MB = maximo transmitido)Contem mensagens de tamanho variavel ate 1 MTU
Lista circular de descritores de envioContem descritores de comunicacao a serem inseridos nafila de envioSomente o ultimo de cada mensagem e marcado
33/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoTransmissao 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoRecepcao de Dados com o Aldeia
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaComunicacao com a VAPITransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
35/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoRecepcao de Dados com o Aldeia
Buffer de 1 MTUMemoria registradaCom ponteiros para bytes ja consumidos
Descritor de comunicacaoInserido na fila de recepcaoEspera receber uma MTUApos a comunicacao e preenchido com o tamanho damensagemReutilizado para completar a requisicao
36/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoRecepcao 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
Arquivo de configuracaoProcesso de conexaoAdaptacao de fluxo de dados para troca de mensagensOrganizacao dos codigos em C e em JavaComunicacao com a VAPITransmissao de dadosRecepcao de dadosAdaptacao para utilizacao do DECK
38/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
DECK possui programa especıfico para lancamento deprocessos que informa:
Quantidade de nosIdentificador do no
Comunicacao sıncronaComunicacao com caixas de correio
Desenvolvimento da biblioteca MicroVAPIAdaptar 17 funcoes da VAPI para usar o DECKMesma sintaxe e semantica da VAPI
39/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
DECK possui programa especıfico para lancamento deprocessos que informa:
Quantidade de nosIdentificador do no
Comunicacao sıncronaComunicacao com caixas de correio
Desenvolvimento da biblioteca MicroVAPIAdaptar 17 funcoes da VAPI para usar o DECKMesma sintaxe e semantica da VAPI
39/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
Adaptacoes realizadasProcesso de conexaoPar de filasComunicacao assıncrona
Adaptacao no processo de conexaoDECK utiliza o processo de clonagemTroca de duas informacoes para a geracao de uma chaveunica para clonagem
40/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
Adaptacoes realizadasProcesso de conexaoPar de filasComunicacao assıncrona
Adaptacao no processo de conexaoDECK utiliza o processo de clonagemTroca de duas informacoes para a geracao de uma chaveunica para clonagem
40/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
Adaptacao para a criacao 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Decisoes de ProjetoEstrutura ModularInterface de ProgramacaoImplementacao
ImplementacaoAdaptacao para Utilizacao do DECK
Adaptacao para assincronismo: produtor-consumidor
Fluxo da biblioteca
MicroVAPI
Fluxo concorrente
de execução
comunicação
requisitar umaProcedimento 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Roteiro
1 Parte I: Introducao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliacao do Sistema AldeiaTempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
4 Parte IV: Consideracoes Finais43/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e Vazao
Aplicacao de Ping-PongCapturar o tempo final para a passagem de umamensagem
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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoTempo de Comunicacao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
50
100
150
200
250
300
350
400
450
500
550
600
650
Tem
po e
m m
icro
segu
ndos
MTU 512MTU 1024MTU 2048
Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando a VAPI
45/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoVazao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
225
250
275
300
325
350
375
400
Larg
ura
de b
anda
em
meg
abits
por
seg
undo
MTU 512MTU 1024MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI
46/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoVazao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
225
250
275
300
325
350
375
400
Larg
ura
de b
anda
em
meg
abits
por
seg
undo
MTU 512MTU 1024MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando a VAPI
400 megabitspor segundo
47/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoTempo de Comunicacao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
050100150200250300350400450500550600650700750800850900950100010501100
Tem
po e
m m
icro
segu
ndos
MTU 512MTU 1024MTU 2048
Tempo unidirecional da aplicação de Ping-Pong em microsegundos usando o DECK/TCP
48/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoVazao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
Larg
ura
de b
anda
em
meg
abits
por
seg
undo
MTU 512MTU 1024MTU 2048
Tempo da aplicação de Ping-Pong em milisegundos usando o DECK/TCP
49/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Tempo de Comunicacao e VazaoVazao Usando o Aldeia com a DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
Larg
ura
de b
anda
em
meg
abits
por
seg
undo
MTU 512MTU 1024MTU 2048
Vazão da aplicação de Ping-Pong usando o DECK/TCP
70 megabitspor segundo
50/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Comunicacao Assıncrona
Captura dos tempos assıncrono e sıncronoMetodo 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Comunicacao AssıncronaComunicacao Usando o Aldeia com a VAPI
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0
25
50
75
100
125
150
175
200
Tem
po e
m m
icro
segu
ndos
Comunicação Síncrona
Comunicação Assíncrona
Comunicação Assíncrona usando a VAPI
52/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Comunicacao AssıncronaComunicacao Usando o Aldeia com o DECK/TCP
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000Tamanho da mensagem em bytes
0501001502002503003504004505005506006507007508008509009501000
Tem
po e
m m
icro
segu
ndos
Comunicação Síncrona
Comunicação Assíncrona
Comunicação Assíncrona usando DECK TCP
53/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Serializacao de Objetos
Serializacao de um vetor de inteirosComparacao com soquetes Java TCP/IPDescarregamento do canal antes de capturar o tempo finalUtilizacao do DECK na sua versao 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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Serializacao de Objetos
Tempo da passagem do vetor de inteiros em milisegundos
SistemaElementos do vetor
102 103 104 105 106 107
SoquetesTCP/IP 27.3 28.9 47.9 113.2 447.5 3628.7
AldeiaTCP/IP 26.9 27.6 48.2 114.4 449.3 3626.1
55/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Aplicacao Distribuıda do Filtro de Mediana
Caracterısticas da aplicacaoParalelizacao segundo o modelo mestre-escravoPossui uma propriedade chamada mascaraUtilizacao de todos os nos do agregado LabTeCUtilizacao do DECK na sua versao TCP/IPAvaliar a correta transmissao dos dados com o Aldeia
56/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Aplicacao Distribuıda do Filtro de Mediana
57/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Aplicacao Distribuıda do Filtro de MedianaEficiencia Usando Diferentes Mascaras
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19Número de processos escravos
0
10
20
30
40
50
60
70
80
90
100
Porc
enta
gem
da
efic
iênc
ia
Máscara 9x9Máscara 7x7Máscara 5x5Máscara 3x3
Eficiência na aplicação do Filtro de Mediana
58/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Geracao de Rastros
Caracterısticas da geracao de rastrosUtilizacao do DECK na sua versao instrumentadaDECK gera rastros para as criacao e clonagem de caixasde correio e trocas de mensagemVisualizacao na ferramenta PajePermite identificar o instante da troca de mensagem equantidade de dados envolvida
59/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Geracao de Rastros e Depuracao
Transmissao de um vetor de inteirosIdentificar a comunicacao na serializacao de objetos
Processo de conexaoCriacao de caixa de correio e clonagem da caixa remota
Mac
hine
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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Tempo de Comunicacao e VazaoComunicacao AssıncronaSerializacao de ObjetosAplicacao Distribuıda do Filtro de MedianaGeracao de Rastros
Geracao de Rastros
Troca de mensagemVisualizacao de tres instantesClicar nas linhas para verificar a quantidade de bytestransmitidos
Mac
hine
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: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Roteiro
1 Parte I: Introducao
2 Parte II: Sistema Aldeia
3 Parte III: Avaliacao do Sistema Aldeia
4 Parte IV: Consideracoes FinaisConclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
62/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Conclusoes Gerais
Aspectos gerais do sistema AldeiaOrganizado de modo que novas bibliotecas sejamfacilmente adicionadasPossui uma interface que o programador esta acostumadoApresenta uma interface simples que esconde os detalhesde utilizacao das bibliotecas de baixo nıvelUtilizacao em sistemas distribuıdos, para alto desempenhoe aplicacoes corporativas
63/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Conclusoes Gerais
Aspectos gerais do sistema AldeiaOrganizado de modo que novas bibliotecas sejamfacilmente adicionadasPossui uma interface que o programador esta acostumadoApresenta uma interface simples que esconde os detalhesde utilizacao das bibliotecas de baixo nıvelUtilizacao em sistemas distribuıdos, para alto desempenhoe aplicacoes corporativas
63/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Conclusoes Gerais
Aspectos gerais do sistema AldeiaOrganizado de modo que novas bibliotecas sejamfacilmente adicionadasPossui uma interface que o programador esta acostumadoApresenta uma interface simples que esconde os detalhesde utilizacao das bibliotecas de baixo nıvelUtilizacao em sistemas distribuıdos, para alto desempenhoe aplicacoes corporativas
63/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Conclusoes Gerais
Aspectos gerais do sistema AldeiaOrganizado de modo que novas bibliotecas sejamfacilmente adicionadasPossui uma interface que o programador esta acostumadoApresenta uma interface simples que esconde os detalhesde utilizacao das bibliotecas de baixo nıvelUtilizacao em sistemas distribuıdos, para alto desempenhoe aplicacoes corporativas
63/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Contribuicoes
Por que usar o sistema Aldeia?Interface Java para comunicacao sobre redes InfinibandTransmissao de dados de forma assıncrona sobre umainterface JavaQualidade de servico para comunicacao InfinibandGeracao de rastros para a visualizacao do comportamentodo programa paralelo usando a biblioteca DECKProporciona uma interface de programacao em Java que esimples e intuitiva e de facil integracao com sistemas RMI
64/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Contribuicoes
Por que usar o sistema Aldeia?Interface Java para comunicacao sobre redes InfinibandTransmissao de dados de forma assıncrona sobre umainterface JavaQualidade de servico para comunicacao InfinibandGeracao de rastros para a visualizacao do comportamentodo programa paralelo usando a biblioteca DECKProporciona uma interface de programacao em Java que esimples e intuitiva e de facil integracao com sistemas RMI
64/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Contribuicoes
Por que usar o sistema Aldeia?Interface Java para comunicacao sobre redes InfinibandTransmissao de dados de forma assıncrona sobre umainterface JavaQualidade de servico para comunicacao InfinibandGeracao de rastros para a visualizacao do comportamentodo programa paralelo usando a biblioteca DECKProporciona uma interface de programacao em Java que esimples e intuitiva e de facil integracao com sistemas RMI
64/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Contribuicoes
Por que usar o sistema Aldeia?Interface Java para comunicacao sobre redes InfinibandTransmissao de dados de forma assıncrona sobre umainterface JavaQualidade de servico para comunicacao InfinibandGeracao de rastros para a visualizacao do comportamentodo programa paralelo usando a biblioteca DECKProporciona uma interface de programacao em Java que esimples e intuitiva e de facil integracao com sistemas RMI
64/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Contribuicoes
Por que usar o sistema Aldeia?Interface Java para comunicacao sobre redes InfinibandTransmissao de dados de forma assıncrona sobre umainterface JavaQualidade de servico para comunicacao InfinibandGeracao de rastros para a visualizacao do comportamentodo programa paralelo usando a biblioteca DECKProporciona uma interface de programacao em Java que esimples e intuitiva e de facil integracao com sistemas RMI
64/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Trabalhos Futuros
Avaliacao do AldeiaAvaliacao sobre a interface de rede Myrinet
Implementacao do AldeiaAdaptador DECKIntegracao de agregados formados por diferentestecnologias de rede
65/67
Parte I: IntroducaoParte II: Sistema Aldeia
Parte III: Avaliacao do Sistema AldeiaParte IV: Consideracoes Finais
Conclusoes GeraisContribuicoesTrabalhos FuturosPublicacoes
Publicacoes
Sistema Aldeia: Invocacao Remota e Assıncrona deMetodos sobre Infiniband e DECK. Workshop em SistemasComputacionais de Alto Desempenho. Foz do Iguacu,2004Infiniband: Alta Eficiencia no tratamento de grandesvolumes de dados e na computacao numerica. EncontroNacional de Engenharia de Producao. Florianopolis, 2004libVIP: Arquitetura de Interface Virtual sobre TCP/IP.Workshop em sistemas computacionais de altodesempenho. Sao Paulo, 2003
66/67