Fast and accurate evaluation of embedded applications for many-core systems.

Detalhes bibliográficos
Autor(a) principal: Rosa, Felipe Rocha da
Data de Publicação: 2014
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/101181
Resumo: Sistemas embarcados multiprocessados (Many-cores) são apontados com a solução mais viável para abordar as emergentes restrições de design em custo, potência e performance [Borkar and Chien 2011]. Todavia, conceber estes sistema impõe novos desafios para engenheiros de software, compreendendo entre outros: (i) definição de protocolos de comunicação entre processos, (ii) analisar e portar sistemas operacionais, (iii) possiblidade de melhor explorar modelos de programação para tratar de questões para processamento paralelo. [Marongiu and Benini 2012], (iv) desenvovilmento de drivers [Gray and Audsley 2012], (v) traduzir aplicações entre sistemas multiprocessados. Esta crescente complexidade de software faz com que a verificação funcional tornese mais difícil, como resultado, engenheiros de software estão dedicando-se para escalar a performance. Tornado a simulação critica durante o desenvolvimento de software, principalmente nas fases inicias, durante a exploração do espaço de design. Plataforma virtuais Event-driven e quasi-cycle accurate como GEM5 tem como objetivo o desenvolvimento micro arquitetural uma vez que modelos detalhados são fornecidos (e.g. protocolo de coerência de cache) [Binkert et al. 2011 p. 5]. Este tipo de simuladores não é escalável a um grande número de processadores, especialmente quando se trata de usabilidade, facilidade de criação de modelos e tempo de simulação. O contexto resultante leva a adoção de plataformas virtuais que são capazes de simular sistemas embarcadas executando código de aplicações reais a velocidade de centenas de milhões de instruções por segundo [Sanchez and Kozyrakis 2013]. Nestes cenários o Open Virtual Plataforms (OVP) [Imperas 2014] está emergindo com um poderoso framework de simulação provendo dezenas de arquiteturas (e.g. ARM, MIPS, MicroBraze, etc.) e vários periféricos (e.g. memória cache). No entanto, o simulador OVP semelhantemente a outros simuladores JIT-based não provem modelos precisos mas, em modelos com precisão em nível de instruções, o qual provem estimativas incorretas de software (e.g. estimativas de energia e tempo de execução). Este trabalho objetiva começar a tratar os desafios impostos na construção de simuladores JIT-Based adequados para estimativas de software, aprimorando a capacidade de engenheiros de software melhor explorar o espaço de design em estágio inicial de desenvolvimento de sistemas. Nesta tese, será apresentado um modelo chamado Watchdog visando fornecer estimativas de energia e tempo de execução em uma metodologia integrável em qualquer simulador baseado em JIT A metodologia proposta foca em um modelo baseado em eventos, baseada nas instruções individualmente executadas, simplificando a construção entorno do simulador. Adicionalmente, a abordagem proposta nesta tese é puramente run-time, isto significa que toda a computação necessária para implementar o modelo é realizada concomitante com a simulação, evitando enorme quantidade de uso de memória necessária para abordagens baseadas em trace-driven ao mesmo tempo que mantém a escalabilidade para sistemas many-core. A fim de demonstrar a validade do modelo proposto, várias conjuntos de aplicações populares foram selecionados, dentre elas MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Os resultados mostram que a precisão do nosso modelo de tempo de execução varia de 0,6% a 11,5%, com 4,35% em de erro média. O modelo de energia atinge 0,01% a 8,6% de precisão dependendo do perfil de referência com um erro médio de 4,33%. Além disso, o modelo foi submetido a cenários de 1000 processadores mantendo um desempenho estável de 1,8 MIPS.
id UFRGS-2_643a045a3f48b82b7e381c7ff94a7bf4
oai_identifier_str oai:www.lume.ufrgs.br:10183/101181
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Rosa, Felipe Rocha daReis, Ricardo Augusto da LuzOst, Luciano Copello2014-08-15T02:09:27Z2014http://hdl.handle.net/10183/101181000931906Sistemas embarcados multiprocessados (Many-cores) são apontados com a solução mais viável para abordar as emergentes restrições de design em custo, potência e performance [Borkar and Chien 2011]. Todavia, conceber estes sistema impõe novos desafios para engenheiros de software, compreendendo entre outros: (i) definição de protocolos de comunicação entre processos, (ii) analisar e portar sistemas operacionais, (iii) possiblidade de melhor explorar modelos de programação para tratar de questões para processamento paralelo. [Marongiu and Benini 2012], (iv) desenvovilmento de drivers [Gray and Audsley 2012], (v) traduzir aplicações entre sistemas multiprocessados. Esta crescente complexidade de software faz com que a verificação funcional tornese mais difícil, como resultado, engenheiros de software estão dedicando-se para escalar a performance. Tornado a simulação critica durante o desenvolvimento de software, principalmente nas fases inicias, durante a exploração do espaço de design. Plataforma virtuais Event-driven e quasi-cycle accurate como GEM5 tem como objetivo o desenvolvimento micro arquitetural uma vez que modelos detalhados são fornecidos (e.g. protocolo de coerência de cache) [Binkert et al. 2011 p. 5]. Este tipo de simuladores não é escalável a um grande número de processadores, especialmente quando se trata de usabilidade, facilidade de criação de modelos e tempo de simulação. O contexto resultante leva a adoção de plataformas virtuais que são capazes de simular sistemas embarcadas executando código de aplicações reais a velocidade de centenas de milhões de instruções por segundo [Sanchez and Kozyrakis 2013]. Nestes cenários o Open Virtual Plataforms (OVP) [Imperas 2014] está emergindo com um poderoso framework de simulação provendo dezenas de arquiteturas (e.g. ARM, MIPS, MicroBraze, etc.) e vários periféricos (e.g. memória cache). No entanto, o simulador OVP semelhantemente a outros simuladores JIT-based não provem modelos precisos mas, em modelos com precisão em nível de instruções, o qual provem estimativas incorretas de software (e.g. estimativas de energia e tempo de execução). Este trabalho objetiva começar a tratar os desafios impostos na construção de simuladores JIT-Based adequados para estimativas de software, aprimorando a capacidade de engenheiros de software melhor explorar o espaço de design em estágio inicial de desenvolvimento de sistemas. Nesta tese, será apresentado um modelo chamado Watchdog visando fornecer estimativas de energia e tempo de execução em uma metodologia integrável em qualquer simulador baseado em JIT A metodologia proposta foca em um modelo baseado em eventos, baseada nas instruções individualmente executadas, simplificando a construção entorno do simulador. Adicionalmente, a abordagem proposta nesta tese é puramente run-time, isto significa que toda a computação necessária para implementar o modelo é realizada concomitante com a simulação, evitando enorme quantidade de uso de memória necessária para abordagens baseadas em trace-driven ao mesmo tempo que mantém a escalabilidade para sistemas many-core. A fim de demonstrar a validade do modelo proposto, várias conjuntos de aplicações populares foram selecionados, dentre elas MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Os resultados mostram que a precisão do nosso modelo de tempo de execução varia de 0,6% a 11,5%, com 4,35% em de erro média. O modelo de energia atinge 0,01% a 8,6% de precisão dependendo do perfil de referência com um erro médio de 4,33%. Além disso, o modelo foi submetido a cenários de 1000 processadores mantendo um desempenho estável de 1,8 MIPS.Many-core embedded systems are pointed to be the most viable solution to addressing emerging design constraints on cost, power and performance scalability [Borkar and Chien 2011]. Nevertheless, conceive and design many-core systems impose new challenges to software engineers, comprising among other: (i) inter- processor communication protocol stacks definition, (ii) operating system (OS) porting and analysis, (iii) exploration of better programming model facilities to address parallel programming [Marongiu and Benini 2012], (iv) drivers development [Gray and Audsley 2012], (v) application software portability for heterogeneous multiprocessing hardware. This increasing software complexity makes the software functional verification more difficult, as result, software engineers are struggling to scale up the system performance. Simulation becomes critical to software development, principally in early stage during space design exploration where many design decisions must be taken. This work address the challenge of making JIT-Based simulator as OVP suitable for software performance estimation, providing to software engineers better means to explore the design space at early stage of system development. This Bachelor Thesis proposes two instruction-driven performance models, which can be used for early software performance evaluation, which were integrated into a JIT-based simulator. The proposed approach is a purely run-time based, i.e. the entire computation necessary to implement the model is concomitant with the simulation, avoiding huge amount of memory usage. The proposed models were validated by using several benchmarks suits MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Results show that the accuracy of our timing model varies from 0.6% to 11.5% with 4.35% in average. In turn, the energy model provides an accuracy of 0.01% to 8.6% depending on the benchmark profile with a mean error of 4.33%. Additionally, the model was submitted to 1000 CPU’s scenarios maintaining a stable performance of 1.8 MIPS.application/pdfengMicroeletrônicaSistemas embarcadosMany-core systemsEnergy estimationTiming estimation embedded systemsFast and accurate evaluation of embedded applications for many-core systems.Avaliação rápida e precisa de aplicações embarcadas para sistemas de muitos núcleos info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2014Engenharia de Computaçãograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000931906.pdf000931906.pdfTexto completo (inglês)application/pdf7866746http://www.lume.ufrgs.br/bitstream/10183/101181/1/000931906.pdf466aeb1a23d6b738b12549cad7c4fc7aMD51TEXT000931906.pdf.txt000931906.pdf.txtExtracted Texttext/plain136438http://www.lume.ufrgs.br/bitstream/10183/101181/2/000931906.pdf.txt0d7dcad0fedda6c2acc5ad745c7f80a9MD52THUMBNAIL000931906.pdf.jpg000931906.pdf.jpgGenerated Thumbnailimage/jpeg1055http://www.lume.ufrgs.br/bitstream/10183/101181/3/000931906.pdf.jpg4e748f0af39d1ae9b83a6a606699f5d2MD5310183/1011812021-05-07 05:12:44.029482oai:www.lume.ufrgs.br:10183/101181Repositório InstitucionalPUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.bropendoar:2021-05-07T08:12:44Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Fast and accurate evaluation of embedded applications for many-core systems.
dc.title.alternative.pt.fl_str_mv Avaliação rápida e precisa de aplicações embarcadas para sistemas de muitos núcleos
title Fast and accurate evaluation of embedded applications for many-core systems.
spellingShingle Fast and accurate evaluation of embedded applications for many-core systems.
Rosa, Felipe Rocha da
Microeletrônica
Sistemas embarcados
Many-core systems
Energy estimation
Timing estimation embedded systems
title_short Fast and accurate evaluation of embedded applications for many-core systems.
title_full Fast and accurate evaluation of embedded applications for many-core systems.
title_fullStr Fast and accurate evaluation of embedded applications for many-core systems.
title_full_unstemmed Fast and accurate evaluation of embedded applications for many-core systems.
title_sort Fast and accurate evaluation of embedded applications for many-core systems.
author Rosa, Felipe Rocha da
author_facet Rosa, Felipe Rocha da
author_role author
dc.contributor.author.fl_str_mv Rosa, Felipe Rocha da
dc.contributor.advisor1.fl_str_mv Reis, Ricardo Augusto da Luz
dc.contributor.advisor-co1.fl_str_mv Ost, Luciano Copello
contributor_str_mv Reis, Ricardo Augusto da Luz
Ost, Luciano Copello
dc.subject.por.fl_str_mv Microeletrônica
Sistemas embarcados
topic Microeletrônica
Sistemas embarcados
Many-core systems
Energy estimation
Timing estimation embedded systems
dc.subject.eng.fl_str_mv Many-core systems
Energy estimation
Timing estimation embedded systems
description Sistemas embarcados multiprocessados (Many-cores) são apontados com a solução mais viável para abordar as emergentes restrições de design em custo, potência e performance [Borkar and Chien 2011]. Todavia, conceber estes sistema impõe novos desafios para engenheiros de software, compreendendo entre outros: (i) definição de protocolos de comunicação entre processos, (ii) analisar e portar sistemas operacionais, (iii) possiblidade de melhor explorar modelos de programação para tratar de questões para processamento paralelo. [Marongiu and Benini 2012], (iv) desenvovilmento de drivers [Gray and Audsley 2012], (v) traduzir aplicações entre sistemas multiprocessados. Esta crescente complexidade de software faz com que a verificação funcional tornese mais difícil, como resultado, engenheiros de software estão dedicando-se para escalar a performance. Tornado a simulação critica durante o desenvolvimento de software, principalmente nas fases inicias, durante a exploração do espaço de design. Plataforma virtuais Event-driven e quasi-cycle accurate como GEM5 tem como objetivo o desenvolvimento micro arquitetural uma vez que modelos detalhados são fornecidos (e.g. protocolo de coerência de cache) [Binkert et al. 2011 p. 5]. Este tipo de simuladores não é escalável a um grande número de processadores, especialmente quando se trata de usabilidade, facilidade de criação de modelos e tempo de simulação. O contexto resultante leva a adoção de plataformas virtuais que são capazes de simular sistemas embarcadas executando código de aplicações reais a velocidade de centenas de milhões de instruções por segundo [Sanchez and Kozyrakis 2013]. Nestes cenários o Open Virtual Plataforms (OVP) [Imperas 2014] está emergindo com um poderoso framework de simulação provendo dezenas de arquiteturas (e.g. ARM, MIPS, MicroBraze, etc.) e vários periféricos (e.g. memória cache). No entanto, o simulador OVP semelhantemente a outros simuladores JIT-based não provem modelos precisos mas, em modelos com precisão em nível de instruções, o qual provem estimativas incorretas de software (e.g. estimativas de energia e tempo de execução). Este trabalho objetiva começar a tratar os desafios impostos na construção de simuladores JIT-Based adequados para estimativas de software, aprimorando a capacidade de engenheiros de software melhor explorar o espaço de design em estágio inicial de desenvolvimento de sistemas. Nesta tese, será apresentado um modelo chamado Watchdog visando fornecer estimativas de energia e tempo de execução em uma metodologia integrável em qualquer simulador baseado em JIT A metodologia proposta foca em um modelo baseado em eventos, baseada nas instruções individualmente executadas, simplificando a construção entorno do simulador. Adicionalmente, a abordagem proposta nesta tese é puramente run-time, isto significa que toda a computação necessária para implementar o modelo é realizada concomitante com a simulação, evitando enorme quantidade de uso de memória necessária para abordagens baseadas em trace-driven ao mesmo tempo que mantém a escalabilidade para sistemas many-core. A fim de demonstrar a validade do modelo proposto, várias conjuntos de aplicações populares foram selecionados, dentre elas MiBench [Guthaus et al. 2001], Mälardalen WCET [Jan Gustafsson 2010], SPLASH-2 [Woo et al. 1995]. Os resultados mostram que a precisão do nosso modelo de tempo de execução varia de 0,6% a 11,5%, com 4,35% em de erro média. O modelo de energia atinge 0,01% a 8,6% de precisão dependendo do perfil de referência com um erro médio de 4,33%. Além disso, o modelo foi submetido a cenários de 1000 processadores mantendo um desempenho estável de 1,8 MIPS.
publishDate 2014
dc.date.accessioned.fl_str_mv 2014-08-15T02:09:27Z
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/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/101181
dc.identifier.nrb.pt_BR.fl_str_mv 000931906
url http://hdl.handle.net/10183/101181
identifier_str_mv 000931906
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: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/101181/1/000931906.pdf
http://www.lume.ufrgs.br/bitstream/10183/101181/2/000931906.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/101181/3/000931906.pdf.jpg
bitstream.checksum.fl_str_mv 466aeb1a23d6b738b12549cad7c4fc7a
0d7dcad0fedda6c2acc5ad745c7f80a9
4e748f0af39d1ae9b83a6a606699f5d2
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 lume@ufrgs.br
_version_ 1834472166059409408