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

Detalhes bibliográficos
Autor(a) principal: Stangherlini, Ismael
Data de Publicação: 2010
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/26346
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.
id UFRGS-2_d202a11c56d7dc1dfc4ae309a29fd491
oai_identifier_str oai:www.lume.ufrgs.br:10183/26346
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Stangherlini, IsmaelMaillard, Nicolas Bruno2010-10-14T04:19:20Z2010http://hdl.handle.net/10183/26346000757799As 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.NUMA architectures have been widely used as machines to insensive computing of parallel applications in the High Performance Computing area. Such architectures are characterized by the presence of processors that share various levels of a hierarchical memory. To achive performance in applications used in these architectures, it is important to ensure memory affinity with the use of memory policies. The OpenMP standard, however, does not support NUMA architectures. The MApp project, on the other hand, came up with the aim of developing a preprocessor that incorporates NUMA memory policies directly in the source code of applications developed with C and OpenMP. This study aimed to develop a tool that served as the MApp project module responsible for the extraction of specific information about variables in C codes, such as access types and scope. The lexical and syntactic analysis required for this development were covered with the use of two compilers classic tools: Lex and Yacc. This extraction was necessary to correctly incorporate memory policies in the applications. Although it was originally designed for MApp, the developed tool is context-free and can be used to collect information from any C code, since these informations are emited in a simple and portable output format.application/pdfporProcessamento paraleloMultiprocessadoresCNUMAOpenMPCUIA : uma ferramenta para a obtenção de informações de variáveis em códigos Cinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2010Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000757799.pdf000757799.pdfTexto completoapplication/pdf539357http://www.lume.ufrgs.br/bitstream/10183/26346/1/000757799.pdf1e2ad8d4d6363d2e70e40e6287adedb3MD51TEXT000757799.pdf.txt000757799.pdf.txtExtracted Texttext/plain135852http://www.lume.ufrgs.br/bitstream/10183/26346/2/000757799.pdf.txt3222798b50ff02fd883b9c604fdc3693MD52THUMBNAIL000757799.pdf.jpg000757799.pdf.jpgGenerated Thumbnailimage/jpeg1029http://www.lume.ufrgs.br/bitstream/10183/26346/3/000757799.pdf.jpgc3f10731f03bf7cad39894e17f3ea0d2MD5310183/263462018-10-18 07:37:34.167oai:www.lume.ufrgs.br:10183/26346Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2018-10-18T10:37:34Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
title CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
spellingShingle CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
Stangherlini, Ismael
Processamento paralelo
Multiprocessadores
C
NUMA
OpenMP
title_short CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
title_full CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
title_fullStr CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
title_full_unstemmed CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
title_sort CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
author Stangherlini, Ismael
author_facet Stangherlini, Ismael
author_role author
dc.contributor.author.fl_str_mv Stangherlini, Ismael
dc.contributor.advisor1.fl_str_mv Maillard, Nicolas Bruno
contributor_str_mv Maillard, Nicolas Bruno
dc.subject.por.fl_str_mv Processamento paralelo
Multiprocessadores
topic Processamento paralelo
Multiprocessadores
C
NUMA
OpenMP
dc.subject.eng.fl_str_mv C
NUMA
OpenMP
description 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.
publishDate 2010
dc.date.accessioned.fl_str_mv 2010-10-14T04:19:20Z
dc.date.issued.fl_str_mv 2010
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/26346
dc.identifier.nrb.pt_BR.fl_str_mv 000757799
url http://hdl.handle.net/10183/26346
identifier_str_mv 000757799
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/26346/1/000757799.pdf
http://www.lume.ufrgs.br/bitstream/10183/26346/2/000757799.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/26346/3/000757799.pdf.jpg
bitstream.checksum.fl_str_mv 1e2ad8d4d6363d2e70e40e6287adedb3
3222798b50ff02fd883b9c604fdc3693
c3f10731f03bf7cad39894e17f3ea0d2
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1815447049140699136