200 likes | 321 Views
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.
E N D
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. • 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
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
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
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
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
Componentes da implementação BSP no InteGrade • BSPProxy • StubPool • Process Zero 7
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
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
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
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
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
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
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
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
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
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
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
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