Explorando Afinidade de Memória em Arquiteturas NUMA - Ribeiro, Christiane Pousa; Marangozova-Martin, Vania; Méhaut, Jean-Francois; Dupros, Fabrice; Carissimi, Alexandre (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD), 2008)
Arquiteturas NUMA possuem latência e largura de banda assimétricas devido a existência de múltiplos níveis hierárquicos de memória no sistema. Para garantir desempenho neste tipo de arquitetura torna-se necessário garantir a afinidade de memória nas aplicações. Os sistemas operacionais, com suporte para arquiteturas NUMA, possuem políticas para alocação e escalonamento de memória e threads que visam a afinidade de memória. Entretanto, essas políticas não apresentam sempre o melhor desempenho para todos os tipos de aplicações. Ferramentas e APIs, presentes nestes sistemas operacionais, permitem gerenciar explicitamente a afinidade de memória nas aplicações. Neste trabalho será apresentado a avaliação de desempenho de diferentes estratégias para gerenciamento explícito de afinidade de memória, implementadas com APIs do sistema operacional em aplicações paralelas. Essas estratégias foram implementadas em uma aplicação sísmica e em kernels do Benchmark NAS e executadas em diferentes arquiteturas NUMA. Os resultados mostram a importância de garantir a afinidade de memória em arquiteturas NUMA (ganho médio de até 80%) e que isso pode ser obtido através de APIs do sistema operacional.