Análise do problema do caixeiro viajante - ERAD 2008

16
Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira, Gerson Geraldo H. Cavalheiro. Fapergs Análise do problema do caixeiro viajante sobre diferentes ambientes de programação concorrente

Transcript of Análise do problema do caixeiro viajante - ERAD 2008

Page 1: Análise do problema do caixeiro viajante - ERAD 2008

Elvio Viçosa Junior, Jerônimo M. Madruga, Rafael L. Pereira,

Gerson Geraldo H. Cavalheiro. Fapergs

Análise do problema do caixeiro viajante sobre diferentes ambientes de programação concorrente

Page 2: Análise do problema do caixeiro viajante - ERAD 2008

Portabilidade de desempenho

Sequêncial

SMP

Cluster

Sequêncial + SMP + Cluster

. . .

Page 3: Análise do problema do caixeiro viajante - ERAD 2008

Portabilidade de desempenho

Sequêncial

SMP

Cluster

Sequêncial + SMP + Cluster

Concorrência

Paralelismo

Aplicação

Hardware

Page 4: Análise do problema do caixeiro viajante - ERAD 2008

Portabilidade de desempenho

Possível solução

Separar a programação da execução

De que forma?

Controle do escalonamento e fluxo de dados em tempo de execução.

Page 5: Análise do problema do caixeiro viajante - ERAD 2008

O ambiente Anahy Vanilla

Portabilidade de desempenho

Dependência de Hardware\SO

Page 6: Análise do problema do caixeiro viajante - ERAD 2008

Criação e sincronização de athreads

Split

Page 7: Análise do problema do caixeiro viajante - ERAD 2008

Criação e sincronização de athreads

Join

Page 8: Análise do problema do caixeiro viajante - ERAD 2008

Execução e escalonamento

Grafo de dependências

Page 9: Análise do problema do caixeiro viajante - ERAD 2008

Execução e escalonamento

. . .

buscar_qualquer_trabalho()buscar_trabalho( id )

Page 10: Análise do problema do caixeiro viajante - ERAD 2008

Interface de programação

Criação

int athread_create( athread_t *th, athread_attr_t *attrib, void *(*func) (void *), void *in );

Sincronização

int athread_join( athred_t th, (void *) **result);

Código da thread

void *nome_thread( void *entrada );

Page 11: Análise do problema do caixeiro viajante - ERAD 2008

Estudo de caso

MinerCada mineiro cria 2 ajudantes.Cada ajudante faz sua combinação e retorna o resultado

Page 12: Análise do problema do caixeiro viajante - ERAD 2008

Estudo de caso - Desempenhos

Page 13: Análise do problema do caixeiro viajante - ERAD 2008

Estudo de caso - Desempenhos

Page 14: Análise do problema do caixeiro viajante - ERAD 2008

Estudo de caso - Desempenhos

Page 15: Análise do problema do caixeiro viajante - ERAD 2008

Trabalhos

Hoje

Testes de desempenhoOtimização do escalonador

Futuro (próximo)

Versão distribuidaMecanismos de sincronização

Page 16: Análise do problema do caixeiro viajante - ERAD 2008

Mais informações

www.anahy.orgInformações, códigos e exemplos

Fapergs