1 / 20

BSP no InteGrade II WorkShop do InteGrade

c. BSP no InteGrade II WorkShop do InteGrade. 1. Objetivo. O principal objetivo é permitir que aplicações BSP sejam executadas no InteGrade sem ou com poucas modificações.

devin
Download Presentation

BSP no InteGrade II WorkShop do InteGrade

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. c BSP no InteGrade II WorkShop do InteGrade 1

  2. Objetivo • O principal objetivo é permitir que aplicações BSP sejam executadas no InteGrade sem ou com poucas modificações. • As interfaces do core do InteGrade não foram sobrecarregadas, no sentido que criarmos interfaces separadas para o suporte ao BSP • Usamos CORBA para a troca de mensagens entre as tarefas 2

  3. Comunicação entre Tarefas BSP • O BSP define duas formas de comunicação entre tarefas: • DRMA - permite que uma tarefa leia e escreva no espaço de endereço remoto de outra tarefa • BSMP - implementa a passagem de mensagens para comunicação entre tarefas 3

  4. Implementação no InteGrade para comunicação entre Tarefas BSP • Atualmente implementamos a maioria dos métodos definidos pelo DRMA. Permitindo a execução de simples aplicações BSP. • Além desses métodos foram implementados rotinas gerais que servem para inicialização do BSP, sincronização de super passos, etc. 4

  5. Lista de métodos implementados • bsp_begin - inicializa uma aplicação BSP • bsp_pushregister - declara que um endereço de mémoria pode ser acessado por outras tarefas BSP • bsp_popregister - declara que determinado endereço não pode ser acessado remotamente • bsp_put - escreve na área de mémoria de uma outra tarefa • bsp_get - lê de uma área de mémoria de uma outra tarefa 5

  6. Lista de métodos implementados • bsp_sync - a barreira de sincronização • bsp_pid - retorna o ID da tarefa BSP • bsp_nprocs - retorna o número de tarefas da aplicação paralela 6

  7. Componentes da implementação BSP no InteGrade • BSPProxy • StubPool • Process Zero 7

  8. O BspProxy • É um servente CORBA responsável por receber qualquer comunicação relacionada ao BSP para uma determinada tarefa • Em nossa implementação cada tarefa de uma aplicação paralela tem um bspproxy associado • O proxy contém métodos da API BSP, além de possuir métodos internos a nossa implementação • Criação e manipulação transparente ao usuário da API 8

  9. O StubPool • É responsável pela instanciação dos stubs dos clientes que acessam os proxies das outras tarefas • Organizam os stubs de uma forma que só uma instancia da biblioteca do O2 é utilizada • O proxy contém métodos da API BSP, além de possuir métodos internos a nossa implementação • Criação e manipulação transparente ao usuário da API 9

  10. Process Zero • É o primeiro processo que compôe uma aplicação BSP • É responsável por distribuir as tarefas no sentido de colocá-las em contato com o GRM para negociação de execução. • É responsável por dar um ID para cada tarefa restante da aplicação BSP • E por fim, também é responsável por gerenciar as barreiras de sincronização 10

  11. A execução de uma aplicação BSP no InteGrade • Aplicações BSP precisam iniciar a execução, dividir as tarefas e gerenciar as barreiras de sincronização 11

  12. Passo a passo na execução de uma aplicação BSP no InteGrade Usuário registra a aplicação no repositório de aplicações usando o ASCT(Application Submittion and Control Tool) o usuário usa o ASCT para solicitar ao GRM(Global Resource Manager) a execução de uma aplicação paralela Quando a solicitação chega a um LRM(Local Resource Manager) ele baixa o arquivo de configuração do ASCT O método bsp_begin é executado, o arquivo de configuração é lido 12

  13. Passo a passo na execução de uma aplicação BSP no InteGrade • Se o processo é o process zero • O ASCT é instanciado, a partir do ASCT pode-se solicitar ao GRM o agendamento das tarefas restantes • Antes da requisição ser enviada uma nova versão do arquivo de configuração é gerado, adaptado para o restante das tarefas que irão ser agendadas. Esta versão do arquivo contém uma indicação dizendo que estas tarefas não são o process zero e contém a IOR do process zero 13

  14. Passo a passo na execução de uma aplicação BSP no InteGrade • É o process zero que fornece o ID para as tarefas • Após coletar todas as IOR’s das tarefas o process zero se comunica com todas as tarefas fornecendo a IOR das outras tarefas, dessa forma as tarefas podem conversar entre si 14

  15. Passo a passo na execução de uma aplicação BSP no InteGrade • Se o processo não é o process zero • Tudo o que a tarefa tem a fazer é: • Instanciar seu servente • Enviar uma mensagem de registro para o process zero • Esperar receber seu ID e as IOR’s das outras tarefas 15

  16. Passo a passo na execução de uma aplicação BSP no InteGrade • No fim do bsp_begin cada tarefa tem seu próprio ID o conjunto de todas as IOR’s das demais tarefas e a do process zero • A comunicação entre as tarefas será feita através do bspproxy e do stubpool utilizando o CORBA para as chamadas remotas de métodos 16

  17. Passo a passo na execução de uma aplicação BSP no InteGrade • Como visto anteriormente a computação no BSP é feita através de super passos (supersteps) • Cada superstep é finalizado por uma sincronização de barreira • Operações como bsp_put, bsp_pushregister só são efetivadas no fim do superstep. • O bsp_synch é o método responsável pela sincronização 17

  18. Passo a passo na execução do bsp_synch • Quando um processo chama bsp_synch, ele envia uma mensagem de synch para o process zero e para de executar. • Quando todas as tarefas enviam synch para o process zero este por sua vez envia um sync_done para todas as tarefas que agora podem processar as operações pendentes. 18

  19. Trabalhos futuros • Realização de mais testes para depuração, correção e otimização da implementação atual • Implementação do tipo de troca de mensagens BSMP • Checkpointing e migração 19

  20. Exemplo de código 20

More Related