CUIA : uma ferramenta para a obtenção de informações de variáveis em códigos C
Autor(a) principal: | |
---|---|
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 |