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
1)
2)
3)
4)
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
5)
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
6)
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
1)
2)
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
Exemplo de código
20
Download

Powerpoint