| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 2.4 MB | Adobe PDF |
Orientador(es)
Resumo(s)
O advento dos processadores multi-core marcou o nascimento de uma nova era, em que
se requer que as aplicações sejam concorrentes para que possam usufruir da natureza paralela do hardware. No entanto, esta mudança de paradigma na arquitectura dos processadores não foi acompanhada por alterações significativas nas linguagens de programação de uso generalizado. Obrigando frequentemente o programador a optar entre
desempenho (com o recurso a computação paralela) e a produtividade no processo de
desenvolvimento do software.
Neste contexto, esta dissertação propõe a aplicação do paradigma de paralelismo de
dados ao nível da sub-rotina. A invocação de uma sub-rotina dá origem a várias tarefas,
cuja execução opera sobre partições distintas dos dados de entrada. A execução destas tarefas é delegada a uma pool de threads trabalhadores, que as executarão em paralelo, segundo uma variação do modelo de execução Single Program Multiple Data a que baptizámos como Single Operation Multiple Data. Este modelo é apresentado ao programador segundo o paradigma Distribute-Map-Reduce, em que os dados de entradas são particionados e submetidos às múltiplas instâncias da sub-rotina para execução paralela. Aos resultados parciais é posteriormente aplicada uma operação de redução para calcular o resultado final.
A instanciação do modelo foi realizada como uma extensão à linguagem de programação
Java, sendo o sistema de execução construído sobre o sistema de execução da
linguagem X10 [CGS+05]. O protótipo resultante pode ser aplicado tanto em ambientes de memória partilhada como distribuída.
A avaliação realizada atesta a viabilidade da solução, apresentando resultados de
desempenho interessantes para um conjunto considerável de aplicações, sem que o programador tenha de escrever código especializado.
Descrição
Dissertação para obtenção do Grau de Mestre em
Engenharia Informática
Palavras-chave
Computação paralela Paralelismo de dados Modelo de execução SOMD Distribute-Map-Reduce
