CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C

AUTOR(ES)
DATA DE PUBLICAÇÃO

2010

RESUMO

As arquiteturas NUMA têm sido amplamente utilizadas como máquinas para computação intensiva de aplicações paralelas, na área de High Performance Computing. Tais arquiteturas são caracterizadas pela presença de núcleos de processamento que compartilham diversos níveis de uma memória hierárquica. Para que o desempenho de aplicações utilizadas nessas arquiteturas seja alcançado, é importante que políticas de alocação de memória e de threads sejam utilizadas a fim de garantir a afinidade de memória. O padrão OpenMP, contudo, não possui suporte para as arquiteturas NUMA, pecando em tal aspecto. O Projeto MApp, por sua vez, surgiu com o objetivo de desenvolver um préprocessador que incorpore políticas de memória NUMA diretamente no código-fonte de aplicações desenvolvidas em C com OpenMP. Este trabalho teve o objetivo de desenvolver uma ferramenta que serviu como o módulo do projeto MApp responsável pela extração de informações específicas de variáveis em códigos-fonte C, tais como o tipo de acesso e o escopo de sua utilização. Ferramentas clássicas da área de compiladores, como o Lex e o Yacc, foram utilizadas para esse desenvolvimento, de forma a auxiliar no reconhecimento léxico e sintático. As informações obtidas foram necessárias para que as políticas de memória investigadas pelo Mapp fossem corretamente incorporadas nas aplicações. Embora tenha sido originalmente concebida para o MApp, a ferramenta desenvolvida é independente de contexto e pode ser utilizada para a coleta de informações de quaisquer códigos C, uma vez que essas informações são emitidas em um formato simples e portável na saída.

ASSUNTO(S)

c processamento paralelo numa multiprocessadores openmp

Documentos Relacionados