1 / 41

Computação Paralela com CORBA

Computação Paralela com CORBA. Grades Computacionais. Conjunto de computadores ou aglomerados ( clusters ) geograficamente separados que compartilham aplicações, dados e recursos computacionais.

hang
Download Presentation

Computação Paralela com CORBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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. Flávia Rainone - flaviarnn@yahoo.com

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

  4. 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. Flávia Rainone - flaviarnn@yahoo.com

  5. 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. Flávia Rainone - flaviarnn@yahoo.com

  6. 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. Flávia Rainone - flaviarnn@yahoo.com

  7. 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. Flávia Rainone - flaviarnn@yahoo.com

  8. 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. Flávia Rainone - flaviarnn@yahoo.com

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

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

  11. 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. Flávia Rainone - flaviarnn@yahoo.com

  12. 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 ); }; Flávia Rainone - flaviarnn@yahoo.com

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

  14. 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. Flávia Rainone - flaviarnn@yahoo.com

  15. Componentes do PARDIS • Compilador IDL. • 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. Flávia Rainone - flaviarnn@yahoo.com

  16. Cliente / Servidor • Servidores Paralelos • 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. • clientes SPMD. • clientes singulares. Flávia Rainone - flaviarnn@yahoo.com

  17. Arquitetura Flávia Rainone - flaviarnn@yahoo.com

  18. cliente servidor cliente servidor 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. Flávia Rainone - flaviarnn@yahoo.com

  19. 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. Flávia Rainone - flaviarnn@yahoo.com

  20. 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 • field da biblioteca POOMA • Tentativa frustrante: falta de suporte a estruturas de dados aninhadas e de tamanho variável Flávia Rainone - flaviarnn@yahoo.com

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

  22. 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. Flávia Rainone - flaviarnn@yahoo.com

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

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

  25. 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....” Flávia Rainone - flaviarnn@yahoo.com

  26. 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.” Flávia Rainone - flaviarnn@yahoo.com

  27. Nomenclatura • Objetos-parte: • partes de um 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. • Cliente paralelo e cliente singular. Flávia Rainone - flaviarnn@yahoo.com

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

  29. 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) • Mais do que uma requisição para um (ou mais) objeto(s)-parte. • Associada ao particionamento dos dados. Flávia Rainone - flaviarnn@yahoo.com

  30. Parte 2 Parte 1 Parte 2 Parte 3 Parte 4 Parte 3 Parte 1 Proxy para Objeto Paralelo A ... ... Operações em ObjetosParalelos Objeto Paralelo A Objeto Paralelo B X Cliente em um ORB Paralelo Clientes invocando operação X no objeto paralelo A X Y 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 Cliente em um ORB Não-Paralelo Flávia Rainone - flaviarnn@yahoo.com

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

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

  33. 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_APP_CTRL Flávia Rainone - flaviarnn@yahoo.com

  34. MembershipStyle • MEMB_INF_CTRL • Gerenciamento feito pelo POM. • 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. Flávia Rainone - flaviarnn@yahoo.com

  35. MembershipStyle • MEMB_APP_CTRL • 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. • Utiliza get_object_group_ref para indicar à qual instância de objeto paralelo o objeto-parte pertence. Flávia Rainone - flaviarnn@yahoo.com

  36. 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. • 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”. • Agentes também são fornecidos pelo POM Flávia Rainone - flaviarnn@yahoo.com

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

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

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

  40. Referências • PaCO, http://www.irisa.fr/paris/Paco/welcome.htm • “Parallel CORBA Objects for Programming Computational Grids”, Alexandre Denis, Christian Pérez, Thierry Priol e André Ribes, http://dsonline.computer.org/0302/f/pri_print.htm Flávia Rainone - flaviarnn@yahoo.com

  41. Referências • “PARDIS”, http://www.cs.indiana.edu/~kksiazek/pardis.html • “Data Parallel CORBA Specification”, http://www.omg.org/docs/ptc/01-11-09.pdf Flávia Rainone - flaviarnn@yahoo.com

More Related