Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo

Detalhes bibliográficos
Autor(a) principal: Schmitz Junior, Jacques de Jesus Figueiredo
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da FURG (RI FURG)
Texto Completo: http://repositorio.furg.br/handle/1/8228
Resumo: Roteamento é a etapa do fluxo de síntese física de circuito integrados responsável pela geração das conexões do circuito após as células estarem posicionadas. A evolução na tecnologia dos transistores e, consequente evolução dos circuitos, trouxe consigo novos desafios para todas as etapas da síntese física. Rotear um circuito VLSI (Very Large Scale Integration) é uma tarefa de difícil resolução, tanto por possuir um grande volume de dados a ser processado, quanto por se tratar de um problema NP-completo, significando que não existe uma solução ótima que possa ser processada em tempo polinomial. Para resolver o problema, é necessária a utilização de algoritmos gulosos, heurísticas, aprendizado de máquina ou técnicas mais específicas para trabalhar com as estruturas de dados de forma mais intuitiva e obter melhores resultados. Apesar dos roteadores estado-da-arte gerarem resultados satisfatórios, ainda é possível realizar melhorias nestes. Este trabalho explora técnicas de otimização de programação aplicadas a um roteador estado-da-arte de código-fonte aberto. A partir das análises realizadas no roteador NTHU Route, apresentamos melhorias envolvendo parâmetros utilizados nos algoritmos, e aplicação de paralelismo em alguns dos estágios do roteador, buscando uma melhoria no desempenho e na qualidade dos resultados. Com a aplicação das estratégias envolvendo alteração nos parâmetros, mais especificamente com a aplicação de um limiar para aceitação de congestionamento na fase principal do roteador, foi possível diminuir o tempo de execução de todos benchmarks utilizados em média em 9%, sendo no melhor caso observada uma redução de aproximadamente 20% sem grandes impactos no comprimento total de fio. Com a aplicação de paralelismo no estágio de refinamento, foi possível melhorar o tempo tomado nesta fase em até 20%, com uma melhoria média de 10%. Com experimentos aplicando paralelismo na fase principal em conjunto com o aumento da caixa de expansão de busca para ligar dois pinos, o tempo de execução dobrou, devido ao comportamento de busca para achar as soluções nesta fase. Ao juntar as duas modificações, aplicando um limiar para aceitação de congestionamento na fase principal e paralelismo em blocos menores nas duas fases sem o aumento da caixa de expansão de busca, foi possível obter melhorias no tempo de execução de até 20%, sem impacto considerável no comprimento total de fio. Explorar estas técnicas de otimização nos algoritmos de roteamento mostrou bons resultados, que podem ser aplicados a diferentes ferramentas de roteamento e de outras etapas da síntese física.
id FURG_0cd9bf5e0422a4535e09b2ae712fceb9
oai_identifier_str oai:repositorio.furg.br:1/8228
network_acronym_str FURG
network_name_str Repositório Institucional da FURG (RI FURG)
repository_id_str
spelling Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismoOtimizing the runtime of global routing algorithms : exploting metrics and parallelismEngenharia de computaçãoRoteamento globalMicroeletrônicaCircuitos VLSIAutomação de projeto eletrônicoComputer engineeringGlobal routingMicroeletronicsVLSI CircuitsEletronic Design AutomationRoteamento é a etapa do fluxo de síntese física de circuito integrados responsável pela geração das conexões do circuito após as células estarem posicionadas. A evolução na tecnologia dos transistores e, consequente evolução dos circuitos, trouxe consigo novos desafios para todas as etapas da síntese física. Rotear um circuito VLSI (Very Large Scale Integration) é uma tarefa de difícil resolução, tanto por possuir um grande volume de dados a ser processado, quanto por se tratar de um problema NP-completo, significando que não existe uma solução ótima que possa ser processada em tempo polinomial. Para resolver o problema, é necessária a utilização de algoritmos gulosos, heurísticas, aprendizado de máquina ou técnicas mais específicas para trabalhar com as estruturas de dados de forma mais intuitiva e obter melhores resultados. Apesar dos roteadores estado-da-arte gerarem resultados satisfatórios, ainda é possível realizar melhorias nestes. Este trabalho explora técnicas de otimização de programação aplicadas a um roteador estado-da-arte de código-fonte aberto. A partir das análises realizadas no roteador NTHU Route, apresentamos melhorias envolvendo parâmetros utilizados nos algoritmos, e aplicação de paralelismo em alguns dos estágios do roteador, buscando uma melhoria no desempenho e na qualidade dos resultados. Com a aplicação das estratégias envolvendo alteração nos parâmetros, mais especificamente com a aplicação de um limiar para aceitação de congestionamento na fase principal do roteador, foi possível diminuir o tempo de execução de todos benchmarks utilizados em média em 9%, sendo no melhor caso observada uma redução de aproximadamente 20% sem grandes impactos no comprimento total de fio. Com a aplicação de paralelismo no estágio de refinamento, foi possível melhorar o tempo tomado nesta fase em até 20%, com uma melhoria média de 10%. Com experimentos aplicando paralelismo na fase principal em conjunto com o aumento da caixa de expansão de busca para ligar dois pinos, o tempo de execução dobrou, devido ao comportamento de busca para achar as soluções nesta fase. Ao juntar as duas modificações, aplicando um limiar para aceitação de congestionamento na fase principal e paralelismo em blocos menores nas duas fases sem o aumento da caixa de expansão de busca, foi possível obter melhorias no tempo de execução de até 20%, sem impacto considerável no comprimento total de fio. Explorar estas técnicas de otimização nos algoritmos de roteamento mostrou bons resultados, que podem ser aplicados a diferentes ferramentas de roteamento e de outras etapas da síntese física.Routing is the stage of integrated circuits physical synthesis flow responsible for generating the connections of the circuit after the cell placement. The evolution in transistors technology along with circuits growth, brought new challenges for all physical synthesis stages. Routing a VLSI (Very Large Scale Integration) circuit is a hard task to solve, due to the great amount of data to be processed, and the fact that it is a NP-complete problem, meaning that there is not an optimum solution that can be processed in polynomial time. To solve this problem, it is necessary the use of greedy algorithms, heuristics, machine learning or more specific techniques to work along with the data structures in a more intuitive way and obtain better results. Even with the satisfactory results generated by the state-of-the-art global routers, it is still possible to do enhancements in those. This paper explores programming optimization techniques applied to a state-of-the-art open-source global router. From the analysis we made in the NTHU Route, we could present enhancements involving the algorithms parameters, and the application of parallelism in some of the router stages, seeking for improvements in the performance and quality of the results. With the application of the strategies involving parameters, more specific with the application of an overflow threshold for accepting overflowed results at the main phase of the router, it was possible to reduce the runtime of all used benchmarks in average in about 9%, being the best case a reduction of about 20% with no further impacts on the total wirelength. With the application of parallelism strategies at the refinement stage, it was possible to improve the runtime of this phase in 20%, with the average improvement by 10%. With experiments applying parallelism at the main phase together with the increment in the bounding-box expansion for connecting two pins, the execution time doubled, because of the behavior for finding solution on this phase. By mixing both modifications, applying the threshold for overflow acceptance on the main phase, and the parallelism in minor blocks in both phases without the increment of the bounding-box expansion, it was possible to obtain improvements in the general runtime in about 20%, with no considerable impact in the total wirelength. Exploring this techniques of optimization on the routing algorithms showed good results, that can be applied in different routing and other physical synthesis tools.Butzen, Paulo FranciscoMeinhardt, CristinaSchmitz Junior, Jacques de Jesus Figueiredo2020-01-24T21:35:02Z2020-01-24T21:35:02Z2019info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfSCHMITZ JUNIOR, Jacques de Jesus Figueiredo . Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo. 2019. 90 f. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2019.http://repositorio.furg.br/handle/1/8228porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da FURG (RI FURG)instname:Universidade Federal do Rio Grande (FURG)instacron:FURG2020-01-24T21:35:02Zoai:repositorio.furg.br:1/8228Repositório InstitucionalPUBhttps://repositorio.furg.br/oai/request || http://200.19.254.174/oai/requestopendoar:2020-01-24T21:35:02Repositório Institucional da FURG (RI FURG) - Universidade Federal do Rio Grande (FURG)false
dc.title.none.fl_str_mv Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
Otimizing the runtime of global routing algorithms : exploting metrics and parallelism
title Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
spellingShingle Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
Schmitz Junior, Jacques de Jesus Figueiredo
Engenharia de computação
Roteamento global
Microeletrônica
Circuitos VLSI
Automação de projeto eletrônico
Computer engineering
Global routing
Microeletronics
VLSI Circuits
Eletronic Design Automation
title_short Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
title_full Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
title_fullStr Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
title_full_unstemmed Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
title_sort Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo
author Schmitz Junior, Jacques de Jesus Figueiredo
author_facet Schmitz Junior, Jacques de Jesus Figueiredo
author_role author
dc.contributor.none.fl_str_mv Butzen, Paulo Francisco
Meinhardt, Cristina
dc.contributor.author.fl_str_mv Schmitz Junior, Jacques de Jesus Figueiredo
dc.subject.por.fl_str_mv Engenharia de computação
Roteamento global
Microeletrônica
Circuitos VLSI
Automação de projeto eletrônico
Computer engineering
Global routing
Microeletronics
VLSI Circuits
Eletronic Design Automation
topic Engenharia de computação
Roteamento global
Microeletrônica
Circuitos VLSI
Automação de projeto eletrônico
Computer engineering
Global routing
Microeletronics
VLSI Circuits
Eletronic Design Automation
description Roteamento é a etapa do fluxo de síntese física de circuito integrados responsável pela geração das conexões do circuito após as células estarem posicionadas. A evolução na tecnologia dos transistores e, consequente evolução dos circuitos, trouxe consigo novos desafios para todas as etapas da síntese física. Rotear um circuito VLSI (Very Large Scale Integration) é uma tarefa de difícil resolução, tanto por possuir um grande volume de dados a ser processado, quanto por se tratar de um problema NP-completo, significando que não existe uma solução ótima que possa ser processada em tempo polinomial. Para resolver o problema, é necessária a utilização de algoritmos gulosos, heurísticas, aprendizado de máquina ou técnicas mais específicas para trabalhar com as estruturas de dados de forma mais intuitiva e obter melhores resultados. Apesar dos roteadores estado-da-arte gerarem resultados satisfatórios, ainda é possível realizar melhorias nestes. Este trabalho explora técnicas de otimização de programação aplicadas a um roteador estado-da-arte de código-fonte aberto. A partir das análises realizadas no roteador NTHU Route, apresentamos melhorias envolvendo parâmetros utilizados nos algoritmos, e aplicação de paralelismo em alguns dos estágios do roteador, buscando uma melhoria no desempenho e na qualidade dos resultados. Com a aplicação das estratégias envolvendo alteração nos parâmetros, mais especificamente com a aplicação de um limiar para aceitação de congestionamento na fase principal do roteador, foi possível diminuir o tempo de execução de todos benchmarks utilizados em média em 9%, sendo no melhor caso observada uma redução de aproximadamente 20% sem grandes impactos no comprimento total de fio. Com a aplicação de paralelismo no estágio de refinamento, foi possível melhorar o tempo tomado nesta fase em até 20%, com uma melhoria média de 10%. Com experimentos aplicando paralelismo na fase principal em conjunto com o aumento da caixa de expansão de busca para ligar dois pinos, o tempo de execução dobrou, devido ao comportamento de busca para achar as soluções nesta fase. Ao juntar as duas modificações, aplicando um limiar para aceitação de congestionamento na fase principal e paralelismo em blocos menores nas duas fases sem o aumento da caixa de expansão de busca, foi possível obter melhorias no tempo de execução de até 20%, sem impacto considerável no comprimento total de fio. Explorar estas técnicas de otimização nos algoritmos de roteamento mostrou bons resultados, que podem ser aplicados a diferentes ferramentas de roteamento e de outras etapas da síntese física.
publishDate 2019
dc.date.none.fl_str_mv 2019
2020-01-24T21:35:02Z
2020-01-24T21:35:02Z
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 SCHMITZ JUNIOR, Jacques de Jesus Figueiredo . Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo. 2019. 90 f. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2019.
http://repositorio.furg.br/handle/1/8228
identifier_str_mv SCHMITZ JUNIOR, Jacques de Jesus Figueiredo . Otimização do tempo de execução em algoritmos de roteamento global : explorando métricas e paralelismo. 2019. 90 f. Dissertação (Mestrado em Engenharia da Computação) – Centro de Ciências Computacionais, Universidade Federal do Rio Grande, Rio Grande, 2019.
url http://repositorio.furg.br/handle/1/8228
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 FURG (RI FURG)
instname:Universidade Federal do Rio Grande (FURG)
instacron:FURG
instname_str Universidade Federal do Rio Grande (FURG)
instacron_str FURG
institution FURG
reponame_str Repositório Institucional da FURG (RI FURG)
collection Repositório Institucional da FURG (RI FURG)
repository.name.fl_str_mv Repositório Institucional da FURG (RI FURG) - Universidade Federal do Rio Grande (FURG)
repository.mail.fl_str_mv
_version_ 1807384414582210560