Detalhes bibliográficos
Ano de defesa: |
2013 |
Autor(a) principal: |
Rico, Timóteo Matthies |
Orientador(a): |
Pilla, Maurício Lima |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Federal de Pelotas
|
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Computação
|
Departamento: |
Centro de Desenvolvimento Tecnológico
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Área do conhecimento CNPq: |
|
Link de acesso: |
http://guaiaca.ufpel.edu.br/handle/prefix/5669
|
Resumo: |
Com o advento de arquiteturas multiprocessadas novos desafios foram introduzidos ao desenvolvimento de software. Dentre estes desafios, realizar a sincronização necessária para evitar condições de corrida entre os fluxos de execução, é uma das principais dificuldades na programação concorrente. Um novo mecanismo de sincronização, denominado Memória Transacional, tem sido desenvolvido por pesquisadores de programação concorrente com o objetivo de reduzir as dificuldades e limitações encontradas em mecanismos de sincronização tradicionais. Por se tratar de uma alternativa recentemente proposta, pouco se conhece a respeito do consumo de energia de Memórias Transacionais, em especial de implementações em software. Nesse contexto, o presente trabalho apresenta a análise e caracterização do consumo de energia e desempenho de quatro importantes bibliotecas de Memória Transacional em Software (STM), TL2, TinySTM, SwissTM e AdaptSTM, utilizando-se o benchmark STAMP. Diferente de outros trabalhos, as execuções não foram simuladas mas executadas em um ambiente de computação real. Resultados obtidos mostram a SwissTM como a biblioteca mais eficiente em termos de consumo de energia e desempenho, seguida pela AdaptSTM, TinySTM e TL2, na maioria dos cenários de execução utilizando-se até 8 threads. Constata-se que a escalabilidade das STMs utilizadas está relacionada diretamente à particularidade das estratégias de detecção e resolução de conflitos empregada por cada biblioteca. Nesta perspectiva, verifica-se que em aplicações com transações curtas a AdaptSTM mostra-se a biblioteca mais eficiente. Em aplicações com transações médias, a SwissTM apresenta a melhor escalabilidade. Em cenários com longas transações e sob média/alta contenção a TL2 apresenta os melhores resultados. A TinySTM, por sua vez, mostra-se a biblioteca menos eficiente em termos de escalabilidade na maioria dos cenários, exibindo bons resultados somente em aplicações que apresentem mínimas taxas de cancelamentos. |