Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Programa de Pós-Graduação em Ciência da Computação
Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e
Ferramentas
NEUMAR SILVA RIBEIRO
Orientador: Prof. Dr. Luiz Gustavo Leão Fernandes
Monografia apresentada para disciplina de
Introdução à Pesquisa I
Porto Alegre, Junho de 2009.
2
RESUMO
A demanda por poder de processamento está sempre presente no cotidiano das entidades que trabalham com desenvolvimento de pesquisa e, por conseguinte, é um desafio para aqueles que produzem essas ferramentas, ou seja, os fabricantes de computadores. Mas, não se tem interesse apenas em máquinas potentes, se tem buscado uma boa relação custo/beneficio na aquisição das soluções. Os supercomputadores foram dando espaço para a utilização de computadores de menor porte como os SMPs
(Symmetric Multiprocessor) que possuem um menor custo. Esses computadores tiveram então uma grande demanda e começaram a surgir necessidades de aumento do poder computacional dessas máquinas. Porém encontraram-se limites com relação ao número de processadores dos computadores SMPs, com relação ao acesso à memória. A partir dessa dificuldade, surgiu então a utilização da arquitetura NUMA (Non-Uniform
Memory Access) para minimizar esse gargalo. Os computadores NUMA, possuem uma memória dita local para cada processador, ou seja, o processador não precisa acessar um barramento compartilhado para acesso a essa porção da memória. Porém, esse processador não está restrito a essa porção, ele pode acessar a memória de todos os processadores do sistema, e isso é feito com endereçamento único para toda a memória.
Assim como as máquinas UMA (Uniform Memory Access) as máquinas NUMA possuem memória compartilhada, o que facilita o desenvolvimento de aplicações, utilizando OpenMP em conjunto com bibliotecas como LIBNUMA e MAI (Memory
Affinity Interface). Então, esse trabalho