Code profiling and optimization in transactional memory systems

Detalhes bibliográficos
Autor(a) principal: Cordeiro, Silvio Ricardo
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/97866
Resumo: Memória Transacional tem se demonstrado um paradigma promissor na implementação de aplicações concorrentes sob memória compartilhada que busquem evitar um modelo de sincronização baseado em locks. Em vez de sujeitar a execução a um acesso exclusivo com base no valor de um lock que é compartilhado por threads concorrentes, uma aplicação sob Memória Transacional tenta executar seções críticas de modo otimista, desfazendo as modificações no caso de um conflito de acesso à memória. Entretanto, apesar de a abordagem baseada em locks ter adquirido um número significativo de ferramentas automatizadas para a depuração, profiling e otimização automatizados (por ser uma das técnicas de sincronização mais antigas e mais bem pesquisadas), o campo da Memória Transacional ainda é comparativamente recente, e programadores frequentemente precisam adaptar manualmente suas aplicações transacionais ao encontrar problemas de eficiência. Este trabalho propõe um sistema no qual o profiling de código em uma implementação de Memória Transacional simulada é utilizado para caracterizar uma aplicação transacional, formando a base para uma parametrização automatizada do respectivo sistema especulativo para uma execução eficiente do código em questão. Também é proposta uma abordagem de escalonamento de threads guiado por profiling em uma implementação de Memória Transacional baseada em software, usando dados coletados pelo profiler para prever a probabilidade de conflitos e determinar que thread escalonar com base nesta previsão. São apresentados os resultados de experimentos sob ambas as abordagens.
id URGS_10906281048c7662acce4e03303fe00a
oai_identifier_str oai:www.lume.ufrgs.br:10183/97866
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Cordeiro, Silvio RicardoMaillard, Nicolas Bruno2014-07-16T02:07:46Z2014http://hdl.handle.net/10183/97866000922011Memória Transacional tem se demonstrado um paradigma promissor na implementação de aplicações concorrentes sob memória compartilhada que busquem evitar um modelo de sincronização baseado em locks. Em vez de sujeitar a execução a um acesso exclusivo com base no valor de um lock que é compartilhado por threads concorrentes, uma aplicação sob Memória Transacional tenta executar seções críticas de modo otimista, desfazendo as modificações no caso de um conflito de acesso à memória. Entretanto, apesar de a abordagem baseada em locks ter adquirido um número significativo de ferramentas automatizadas para a depuração, profiling e otimização automatizados (por ser uma das técnicas de sincronização mais antigas e mais bem pesquisadas), o campo da Memória Transacional ainda é comparativamente recente, e programadores frequentemente precisam adaptar manualmente suas aplicações transacionais ao encontrar problemas de eficiência. Este trabalho propõe um sistema no qual o profiling de código em uma implementação de Memória Transacional simulada é utilizado para caracterizar uma aplicação transacional, formando a base para uma parametrização automatizada do respectivo sistema especulativo para uma execução eficiente do código em questão. Também é proposta uma abordagem de escalonamento de threads guiado por profiling em uma implementação de Memória Transacional baseada em software, usando dados coletados pelo profiler para prever a probabilidade de conflitos e determinar que thread escalonar com base nesta previsão. São apresentados os resultados de experimentos sob ambas as abordagens.Transactional Memory has shown itself to be a promising paradigm for the implementation of shared-memory concurrent applications that eschew a lock-based model of data synchronization. Rather than conditioning exclusive access on the value of a lock that is shared across concurrent threads, Transactional Memory attempts to execute critical sections optimistically, rolling back the modifications in the event of a data access conflict. However, while the lock-based approach has acquired a significant body of debugging, profiling and automated optimization tools (as one of the oldest and most researched synchronization techniques), the field of Transactional Memory is still comparably recent, and programmers are usually tasked with an unguided manual tuning of their transactional applications when facing efficiency problems. We propose a system in which code profiling in a simulated hardware implementation of Transactional Memory is used to characterize a transactional application, which forms the basis for the automated tuning of the underlying speculative system for the efficient execution of that particular application. We also propose a profile-guided approach to the scheduling of threads in a software-based implementation of Transactional Memory, using collected data to predict the likelihood of conflicts and determine what thread to schedule based on this prediction. We present the results achieved under both designs.application/pdfengProcessamento paraleloProcessamento : Alto desempenhoTransactional memoryProfilingSchedulingShared memoryParallel programmingHigh-performance computingCode profiling and optimization in transactional memory systemsProfiling e otimização de código em sistemas de memória transacional info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2014mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000922011.pdf000922011.pdfTexto completo (inglês)application/pdf881018http://www.lume.ufrgs.br/bitstream/10183/97866/1/000922011.pdf3e230ad5371e541594bf39f32038a88aMD51TEXT000922011.pdf.txt000922011.pdf.txtExtracted Texttext/plain195412http://www.lume.ufrgs.br/bitstream/10183/97866/2/000922011.pdf.txt37f1174710aae1f9657f4e796c803bbeMD52THUMBNAIL000922011.pdf.jpg000922011.pdf.jpgGenerated Thumbnailimage/jpeg1006http://www.lume.ufrgs.br/bitstream/10183/97866/3/000922011.pdf.jpgd12829582c08556d9628a2d442b832f2MD5310183/978662021-05-26 04:28:21.644513oai:www.lume.ufrgs.br:10183/97866Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532021-05-26T07:28:21Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Code profiling and optimization in transactional memory systems
dc.title.alternative.pt.fl_str_mv Profiling e otimização de código em sistemas de memória transacional
title Code profiling and optimization in transactional memory systems
spellingShingle Code profiling and optimization in transactional memory systems
Cordeiro, Silvio Ricardo
Processamento paralelo
Processamento : Alto desempenho
Transactional memory
Profiling
Scheduling
Shared memory
Parallel programming
High-performance computing
title_short Code profiling and optimization in transactional memory systems
title_full Code profiling and optimization in transactional memory systems
title_fullStr Code profiling and optimization in transactional memory systems
title_full_unstemmed Code profiling and optimization in transactional memory systems
title_sort Code profiling and optimization in transactional memory systems
author Cordeiro, Silvio Ricardo
author_facet Cordeiro, Silvio Ricardo
author_role author
dc.contributor.author.fl_str_mv Cordeiro, Silvio Ricardo
dc.contributor.advisor1.fl_str_mv Maillard, Nicolas Bruno
contributor_str_mv Maillard, Nicolas Bruno
dc.subject.por.fl_str_mv Processamento paralelo
Processamento : Alto desempenho
topic Processamento paralelo
Processamento : Alto desempenho
Transactional memory
Profiling
Scheduling
Shared memory
Parallel programming
High-performance computing
dc.subject.eng.fl_str_mv Transactional memory
Profiling
Scheduling
Shared memory
Parallel programming
High-performance computing
description Memória Transacional tem se demonstrado um paradigma promissor na implementação de aplicações concorrentes sob memória compartilhada que busquem evitar um modelo de sincronização baseado em locks. Em vez de sujeitar a execução a um acesso exclusivo com base no valor de um lock que é compartilhado por threads concorrentes, uma aplicação sob Memória Transacional tenta executar seções críticas de modo otimista, desfazendo as modificações no caso de um conflito de acesso à memória. Entretanto, apesar de a abordagem baseada em locks ter adquirido um número significativo de ferramentas automatizadas para a depuração, profiling e otimização automatizados (por ser uma das técnicas de sincronização mais antigas e mais bem pesquisadas), o campo da Memória Transacional ainda é comparativamente recente, e programadores frequentemente precisam adaptar manualmente suas aplicações transacionais ao encontrar problemas de eficiência. Este trabalho propõe um sistema no qual o profiling de código em uma implementação de Memória Transacional simulada é utilizado para caracterizar uma aplicação transacional, formando a base para uma parametrização automatizada do respectivo sistema especulativo para uma execução eficiente do código em questão. Também é proposta uma abordagem de escalonamento de threads guiado por profiling em uma implementação de Memória Transacional baseada em software, usando dados coletados pelo profiler para prever a probabilidade de conflitos e determinar que thread escalonar com base nesta previsão. São apresentados os resultados de experimentos sob ambas as abordagens.
publishDate 2014
dc.date.accessioned.fl_str_mv 2014-07-16T02:07:46Z
dc.date.issued.fl_str_mv 2014
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/97866
dc.identifier.nrb.pt_BR.fl_str_mv 000922011
url http://hdl.handle.net/10183/97866
identifier_str_mv 000922011
dc.language.iso.fl_str_mv eng
language eng
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:Biblioteca Digital de Teses e Dissertações 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 Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/97866/1/000922011.pdf
http://www.lume.ufrgs.br/bitstream/10183/97866/2/000922011.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/97866/3/000922011.pdf.jpg
bitstream.checksum.fl_str_mv 3e230ad5371e541594bf39f32038a88a
37f1174710aae1f9657f4e796c803bbe
d12829582c08556d9628a2d442b832f2
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085292484329472