Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/27975
Título: | Distributed shared memory on heterogeneous CPUs+GPUs platforms |
Autor(es): | Alves, Ricardo |
Orientador(es): | Santos, Luís Paulo Fussell, Donald |
Data: | 19-Dez-2012 |
Resumo(s): | Desenvolver aplicações para plataformas heterogéneas pode dificultar
significativamente o processo de codificação, visto que o uso de dispositivos
de computação diferentes significa ter que lidar com arquiteturas
diferentes, modelos de programação e organização de memória
diversos, espaços de endereçamento de memória disjuntos, etc. Este
documento propõe que o processo de desenvolvimento pode ser simpli-
cado ao virtualizar um ambiente de memória partilhada tradicional
em cima de um sistema de memoria heterogéneo distribuído e expondo
um modelo de memória unificado ao programador. O sistema
de memória liberta o programador da gestão manual dos dados e permite o uso de memória dinâmica acessível por todos os dispositivos.
O sistema de memória proposto foi implementado e validado na frame-
work GAMA usando três algoritmos para testar o sistema: SAXPY,
simulação N-Body "all-pairs" e Barnes-Hut. Estes algoritmos foram
usados para avaliar o desempenho e a escalabilidade da framework
quando equipada com o sistema de memória proposto.
Os resultados mostram que, de uma forma geral, o sistema de memória
melhorou o desempenho de todos os algoritmos. O sistema de memória
provou ser mais útil em algoritmos com uma alta razão de computação
sobre acessos a memória e especialmente em algoritmos irregulares ao
melhorar também a escalabilidade. O alocador de memória paralelo
mostrou optimos resultados quando usado apenas no CPU, mas teve
problemas na velocidade de alocação quando foram adicionados GPUs
ao sistema. Developing for heterogeneous platforms can significantly complicate the coding process, since different processing devices mean different architectures, programming and memory models, disjoint address spaces and so on. This document proposes that the development process can be eased by virtualizing a traditional shared memory environment on top of the heterogeneous distributed system and exposing a unified memory model to the developer. The memory system frees the developer from having to manually manage data movements and allows the use of dynamic memory, accessible by all the devices. The proposed memory system was implemented and validated on the GAMA framework using three algorithm to benchmark the system: SAXPY, all-pairs N-Body simulation and Barnes-Hut N-Body simulation. These algorithms were used to evaluate the framework performance and scalability when paired with the proposed memory system. The results show that, overall, the memory system improved performance on all algorithm. The memory system proved most useful on algorithms with high ratio of computation over memory accesses by improving execution times and especially useful on irregular algorithms by improving also scalability. The parallel memory allocator showed great results when used only on CPU, but had speed issues when paring GPUs to the CPU. |
Tipo: | Dissertação de mestrado |
Descrição: | Dissertação de mestrado em Engenharia Informática |
URI: | https://hdl.handle.net/1822/27975 |
Acesso: | Acesso aberto |
Aparece nas coleções: | BUM - Dissertações de Mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
eeum_dissertacao_pg17904.pdf | 2,33 MB | Adobe PDF | Ver/Abrir |