Sistema Aldeia: Mestre em Ciência da Computação (UFRGS 2005)

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

Transcript of Sistema Aldeia: Mestre em Ciência da Computação (UFRGS 2005)

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óChaveador

Chaveador

Chaveador

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

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

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