| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 8.02 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
A adoção generalizada dos processadores com vários núcleos (multi-core) requer modelos
de programação que permitam expressar paralelismo de uma forma simples, sem
expor detalhes de baixo nível no que se refere à gestão da concorrência.
No entanto, apesar dos processadores multi-core se terem tornado o standard de-facto desde o ano de 2006, as linguagens de programação de uso generalizado e respetivos compiladores e sistemas de execução permanecem, na sua essência, inalterados. Este facto reflete-se não só ao nível do desempenho das aplicações como também ao nível de produtividade do seu desenvolvimento. É então necessário criar novas soluções que ofereçam abstrações de alto nível que permitam expressar o paralelismo de uma forma simples, ao mesmo tempo que permitam separar a lógica da aplicação da gestão da concorrência.
Neste contexto, esta dissertação propõe um middleware independente da plataforma
que tem como objetivo o suporte à execução de aplicações paralelas fornecendo as funcionalidades mais comuns, tais como: paralelismo de tarefas e de dados, comunicação e controlo de concorrência. Pretende ser suficientemente genérico de forma a que possa ser utilizado como suporte ao desenvolvimento de uma grande variedade de aplicações concorrentes e paralelas, bem como servir de suporte a sistemas de execução de linguagens de programação. A sua arquitetura é inspirada na arquitetura dos sistemas de operação, na medida em que, para além de oferecer uma interface bem definida para o programador, centrada no conceito de localidade, também especifica uma interface, baseada em drivers, para o suporte de várias implementações das funcionalidades necessárias. De forma a simplificar o desenvolvimento de aplicações foi desenvolvido um mecanismo de anotações permitindo ao programador expressar o paralelismo nas suas aplicações com
recurso às anotações oferecidas.
O middleware está atualmente concretizado para arquiteturas de memória partilhada
apesar do seu desenho contemplar a sua extensão para arquiteturas de memória distribuída sobre a qual já existe trabalho em curso. A implementação atual é avaliada emtermos de desempenho através dos benchmarks NAS Parallel Benchmarks [NAS] e Java Grande Benchmark Suite [EPC]. Os resultados obtidos confirmam a existência de um overhead associado à utilização do middleware, como era expectável antes da realização deste estudo. Porém, este é compensado pelo facto de se oferecerem abstrações que simplificam o desenvolvimento de aplicações paralelas.
Descrição
Dissertação para obtenção do Grau de Mestre em
Engenharia Informática
Palavras-chave
Programação paralela Middleware Arquiteturas multi-core
