Flávia Rainone - 1 Computação Paralela com CORBA.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos Baseados em Objetos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
UML Visões – Parte 2.
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Laurent Baduel Françoise Baude Denis Caromel 1 Efficient, Flexible, and Typed Group Comunications in Java Por: Adriano Andrade53811 Susana Rijo José
RMI-IIOP.
CORBA Um Padrão Industrial para Objetos Distribuídos
Repositório de Interfaces em CORBA
Comunicação Distribuída
Conceitos do Servidor Funcionamento Básico do Servidor Tarefas necessárias para estabelecer um servidor para receber requests do Cliente.
SISTEMAS DISTRIBUÍDOS
Interação Cliente Servidor
Sistemas Distribuídos CORBA
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Uso de Cluster de Computadores no Ambiente Corporativo
Mobilidade Cláudia Ribeiro.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Middleware e Sistemas Distribuídos
SISTEMAS OPERACIONAIS
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Sistemas Distribuídos
Tópicos de Sistemas de Informação A
CORBA e Desenvolvimento Baseado em Componentes
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos
Concorrência e Java RMI
Sistemas Distribuídos
Computing on large scale distributed systems: experience of the XtremWeb project CMP-157 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Prof. Cláudio Fernando Resin.
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
CORBA Commom Object Request Broker Architecture Conhecendo o Padrão da OMG 3º Engenharia da Computação Vitor C. Tamarozi Romeu L. Furlan Júnior Prof. Edson.
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Processos.
RPC and Web Service André Pereira.
Sistemas Distribuídos Prof. Marcus Rodrigues
Troca de Mensagens Programação concorrente
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Linguagem de Programação IV Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Seminário CI303 Lucas Nascimento Ferreira. Data sharing service: Propriedades Persistência Independentemente da aplicação Permitir o reutilização dos.
1 BSP no InteGrade II WorkShop do InteGrade c. 2 Objetivo O principal objetivo é permitir que aplicações BSP sejam executadas no InteGrade sem ou com.
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
Java – Remote Method Invocation (RMI)
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
1 Gerenciamento de Recursos em Sistemas de Grande Escala Jeferson R. Marques Fabio Kon Departamento de Ciência da Computação IME-USP
Infra-Estrutura para Computação Distribuída
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Multiparadigma das Comunicações em Java para Grid Computing Fernanda R. Ramos Luiz Felipe Marco Eiterer Profº Alcides Calsavara, Ph.D.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
RMI Remote Method Invocation
Estrutura de Interconexão
Estilos Arquiteturais
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Flávia Rainone - 1 Computação Paralela com CORBA

2Flávia Rainone - Grades Computacionais Conjunto de computadores ou aglomerados (clusters) geograficamente separados que compartilham aplicações, dados e recursos computacionais. Nova infra-estrutura que cria espaço para novos tipos de aplicações de alta performance para as quais as práticas de programação atuais não são apropriadas.

3Flávia Rainone - Grades Computacionais Programação distribuída: Transparência Transparência Interoperabilidade Interoperabilidade Confiabilidade Confiabilidade Programação paralela: Desempenho Desempenho Escalabilidade Escalabilidade

4Flávia Rainone - Como programar em grade? Bibliotecas de envio de mensagens ou memória compartilhada. Chamadas de procedimentos remotos (RPC) e objetos distribuídos. Misturar técnicas de programação paralela com programação distribuída.

5Flávia Rainone - Casos de Estudo PaCO (Parallel CORBA Object) PARDIS (PARallel DIStributed application) Data Parallel CORBA Specification Adaptar especificação de CORBA para fornecer suporte à programação paralela.

6Flávia Rainone - PaCO Parallel CORBA Object. IRISA – “Institut de Recherch en Informatique et Systèmes Aléatoires” Obter simulações de alta performance, através de grades computacionais, utilizando código projetado para executar em sistemas paralelos.

7Flávia Rainone - Por que CORBA? CORBA age como um middleware. Um Object Request Broker (ORB) manipula invocações remotas de métodos especificados em uma IDL. CORBA pode ser utilizado para “juntar” as partes do código de alta performance.

8Flávia Rainone - O modelo SPMD Único código de processo roda em todos os nós do sistema paralelo. Numa grade utilizando CORBA é necessário escolher um processo SPMD para encapsulá-lo dentro de um objeto CORBA. O processo “mestre” se comunica com os outros através de uma camada de comunicação.

9Flávia Rainone - Utilizando o modelo SPMD Camada de Comunicação MPI SPMD POA Especificação de IDL para código paralelo baseado em MPI Compilador de IDL Cliente Stub Processos MPI escravos Processo MPI mestre ORB CORBA Supercomputador Computador A Esqueleto SPMD

10Flávia Rainone - Utilizando o modelo SPMD Especificação de IDL para código paralelo baseado em MPI Compilador de IDL Cliente Stub ORB CORBA Supercomputador Computador A Camada de Comunicação MPI SPMD POA Paralelo Esqueleto SPMD POA Paralelo Esqueleto SPMD POA Paralelo Esqueleto SPMD POA Paralelo Esqueleto Objeto Paralelo CORBA

11Flávia Rainone - Objeto Paralelo CORBA Aparece para o cliente como um objeto CORBA normal. Garantia de conexão escalável entre dois objetos paralelos CORBA. O ORB é responsável pela redistribuição de dados entre dois objetos paralelos CORBA. Alteração da IDL.

12Flávia Rainone - IDL Estendida interface[*] MatrixOperations { const long SIZE=100; typedef double Vector[SIZE]; typedef double Matrix[SIZE][SIZE]; void multiply( in dist[BLOCK][*] Matrix A, in Vector B, out dist[BLOCK] Vector C ); };

13Flávia Rainone - PARDIS PArallel DIStributed application Indiana University Duas publicações em Estender CORBA para dar suporte a objetos SPMD que representam computações paralelas. Objeto Paralelo CORBA = Objeto SPMD

14Flávia Rainone - Objeto SPMD Objeto SPMD O ORB interage diretamente com as fontes distribuídas da aplicação paralela. Entrega de pedidos para todos os processos que executam numa aplicação paralela. Transferência de argumentos diretamente entre os processos do cliente e do servidor.

15Flávia Rainone - Componentes do PARDIS Compilador IDL. novo tipo de dados: a seqüência distribuída novo tipo de dados: a seqüência distribuída Object Request Broker (ORB). Bibliotecas de comunicação. Repositório de objetos e implementações. Alocação e ativação de objetos.

16Flávia Rainone - Cliente / Servidor Servidores Paralelos programas que provêem a implementação de um ou mais objetos SPMD. programas que provêem a implementação de um ou mais objetos SPMD. Clientes Paralelos programas formados de um ou mais processos que fazem requisições para objetos SPMD. programas formados de um ou mais processos que fazem requisições para objetos SPMD. clientes SPMD. clientes SPMD. clientes singulares. clientes singulares.

17Flávia Rainone - Arquitetura

18Flávia Rainone - Transferência de Argumentos Transferência de argumentos centralizada: apenas uma conexão de rede para clientes. Transferência de argumentos multi-porta: cada processo do objeto SPMD abre uma conexão em uma porta diferente. clienteservidorclienteservidor

19Flávia Rainone - Como funciona? Os objetos são criados nos servidores. A criação de um objeto SPMD é coletiva em relação às processos que estiverem executando no servidor. Os clientes devem se associar ao proxy (de forma coletiva ou singular) Distribuição de argumentos através da seqüência distribuída.

20Flávia Rainone - Mapeamento de Seqüências Estruturas definidas pelo PARDIS Possibilidade de mapear definições de IDL do PARDIS diretamente para estruturas de dados nativas a pacotes concretos: vetor distribuído do HPC++ PSTL vetor distribuído do HPC++ PSTL field da biblioteca POOMA field da biblioteca POOMA Tentativa frustrante: falta de suporte a estruturas de dados aninhadas e de tamanho variável

21Flávia Rainone - Data Parallel CORBA Specification Especificação CORBA de Dados Paralelos. Adotada em Novembro, Permitir execução de programas com dados paralelos. Não cobre paralelismo com pipeline e paralelismo funcional.

22Flávia Rainone - Objetivos Suportar de modo eficiente a distribuição de dados entre processos leves (threads) que agem paralelamente nesses dados. Atingir desempenho e escalabilidade de sistemas paralelos.

23Flávia Rainone - Objetivos Esforço em manter o modelo de objetos, interoperabilidade e a transparência existente em CORBA. Não altera a IDL.

24Flávia Rainone - Nomenclatura ORBs paralelos: ORBs que suportam a especificação. Objetos paralelos: formados por objetos que processam os dados paralelos. Objetos singulares: objetos CORBA comuns.

25Flávia Rainone - Objetos Paralelos “Objetos paralelos são aqueles cujas requisições são atendidas por uma ou mais ‘partes’, provavelmente, mas não necessariamente, executando concorrentemente em diferentes contextos de execução....”

26Flávia Rainone - Objetos Paralelos “... Assim, o processamento de um pedido feito a um objeto paralelo é executado em paralelo, em múltiplos contextos de execução. A implementação é feita de tal forma que aspectos diferentes do processamento em uma única requisição pode ser feito em partes, em paralelo.”

27Flávia Rainone - Nomenclatura Objetos-parte: partes de um objeto paralelo partes de um objeto paralelo trabalham em conjunto para resolver em paralelo os pedidos feitos ao objeto paralelo. trabalham em conjunto para resolver em paralelo os pedidos feitos ao objeto paralelo. precisam ter a mesma interface, mas não a mesma implementação ou os mesmos dados. precisam ter a mesma interface, mas não a mesma implementação ou os mesmos dados. Cliente paralelo e cliente singular.

28Flávia Rainone - Particionamento dos Dados Distribuição: em blocos. em blocos. cíclica. cíclica.Overlap Restrições de módulo. Restrições de mínimo.

29Flávia Rainone - Distribuição de Requisições Simplesmente “paralela” (uma invocação em um objeto paralelo resulta em uma invocação para cada objeto-parte). Distribuições dinâmicas: Balanceamento de carga (Load Balancing) Balanceamento de carga (Load Balancing) Mais do que uma requisição para um (ou mais) objeto(s)-parte. Mais do que uma requisição para um (ou mais) objeto(s)-parte. Associada ao particionamento dos dados.

30Flávia Rainone - Operações em Objetos Paralelos Parte 1 Parte 2 Parte 3 Parte 4... Parte 1 Parte 2 Parte 3... Proxy para Objeto Paralelo A Cliente em um ORB Paralelo Cliente em um ORB Não- Paralelo Objeto Paralelo AObjeto Paralelo B X X Y Clientes invocando operação X no objeto paralelo A Durante execução da operação X, as partes do objeto paralelo A fazem uma invocação coletiva da operação Y no objeto B

31Flávia Rainone - Interações com Objetos Paralelos Cliente Faz requisições ao objeto paralelo. Faz requisições ao objeto paralelo.Servidor Recebe as requisições. Recebe as requisições.Criador Cria o objeto paralelo. Cria o objeto paralelo. Independente de cliente e de servidor. Independente de cliente e de servidor.

32Flávia Rainone - POM: Parallel Object Manager Componente central da especificação. Parte do módulo PortableGroup. Estende: GenericFactory GenericFactory PropertyManager PropertyManager ObjectGroupManager. ObjectGroupManager.

33Flávia Rainone - POM: Parallel Object Manager Definir o número de objetos-parte na criação de um objeto paralelo. Definir estilo de criação através da propriedade org.omg.pg.MembershipStyle, do tipo MembershipStyleValue MEMB_INF_CTRL MEMB_INF_CTRL MEMB_APP_CTRL MEMB_APP_CTRL

34Flávia Rainone - MembershipStyle MEMB_INF_CTRL Gerenciamento feito pelo POM. Gerenciamento feito pelo POM. Localização das partes é armazenada em uma seqüência de FactoryInfo. Localização das partes é armazenada em uma seqüência de FactoryInfo. Informa o ORB do objeto paralelo que cada parte representa através de _DP_set_whole. Informa o ORB do objeto paralelo que cada parte representa através de _DP_set_whole.

35Flávia Rainone - MembershipStyle MEMB_APP_CTRL A aplicação gerencia a criação de objetos paralelos. A aplicação gerencia a criação de objetos paralelos. Informa o POM da localização dos objetos- parte criados através de add_member ou create_member. Informa o POM da localização dos objetos- parte criados através de add_member ou create_member. Utiliza get_object_group_ref para indicar à qual instância de objeto paralelo o objeto- parte pertence. Utiliza get_object_group_ref para indicar à qual instância de objeto paralelo o objeto- parte pertence.

36Flávia Rainone - Interoperabilidade Cliente em um ORB não-paralelo: O objeto paralelo é representado para o cliente como um proxy provido pelo servidor, através do qual o cliente faz requisições. O objeto paralelo é representado para o cliente como um proxy provido pelo servidor, através do qual o cliente faz requisições. Proxies paralelos são providos pelo POM. Proxies paralelos são providos pelo POM. Cliente em um ORB paralelo: Obter todos os dados do objeto paralelo através de um “Agente Paralelo”. Obter todos os dados do objeto paralelo através de um “Agente Paralelo”. Agentes também são fornecidos pelo POM Agentes também são fornecidos pelo POM

37Flávia Rainone - Criação Top-Down Object Adapter Part Factory create reference Localização 1 Object Adapter Part Factory create reference Localização 2 Object Adapter Part Factory create reference Localização 3 create_object Parallel Object Manager (POM) Cliente criando objeto paralelo create_object(location, type) proxy ? agent? 2 3 1

38Flávia Rainone - Criação Bottom-Up Parallel Object Manager (POM) Cliente criando objeto paralelo Object Adapter PartServer criando partes create reference Localização 1 Parte 1 create servant Object Adapter PartServer criando partes create reference Localização 2 Parte 2 create servant Object Adapter PartServer criando partes create reference Localização 3 Parte 3 create servant create_object() proxy ? agent? add_member()

39Flávia Rainone - Parallel-Data POA Suporte a configurações inerentes a programação com dados paralelos. Interface ParallelBehaviour Descreve para cada operação não default: Descreve para cada operação não default: particionamento de dados distribuição de requisição Igual para todos os objetos-parte. Igual para todos os objetos-parte.

40Flávia Rainone - Referências PaCO, “Parallel CORBA Objects for Programming Computational Grids”, Alexandre Denis, Christian Pérez, Thierry Priol e André Ribes, nt.htm nt.htm nt.htm

41Flávia Rainone - Referências “PARDIS”, s.html s.html s.html “Data Parallel CORBA Specification”,