Baixe o app para aproveitar ainda mais
Prévia do material em texto
Uma análise comparativa no cálculo de Fibonacci com e sem uso de threads Gabriel Júnior Griseli <gabrielgriseli@gmail.com> Luis Felipe Zortea <zortea.mil@gmail.com> Tobias Heitor Goettert <tobiasheitor@gmail.com> Prof. Marcos A. Lucas <mlucas@uricer.edu.br> 1. INTRODUÇÃO 2. METODOLOGIA Para implementação dos algoritmos recursivo e recursivo com threads foi utilizada a Linguagem de Programação C++ em sua versão 11. Esta versão disponibiliza a biblioteca thread para trabalhar com mais linhas execução em um mesmo processo. Após a implementação dos algoritmos foram conduzidos os testes de tempo e uso da CPU em um computador equipado com um Processador Intel Core i3 2100 e Windows 7 como SO. Para fins de comparação foi utilizada a IDE Visual Studio 2017. 3. REFERENCIAL TEÓRICO3. RESULTADOS E CONSIDERAÇÕES FINAIS Após uma bateria de testes, os dados levantados foram dispostos em um gráfico (figura 1) a fim de comparar as duas abordagem no cálculo de Fibonacci. Na figura em questão percebe-se que o uso de threads torna a execução do processo muito mais rápida, chegando a executar aproximadamente na metade do tempo que a implementação usual de recursividade. Por fim foram feitas comparações no uso do processador entre as duas implementações. Uma das comparações pode ser observada na figura 2. Figura 1 – Tempo em segundos utilizando recursividade e recursividade com threads no cálculo do n-ésimo elemento de Fibonacci Figura 2 – Uso do processador sem e com uso de threads Ao analisar as especificações do processador, constatou-se que este tem suporte até quatro threads. Portanto um único processo, sem uso de threads, irá utilizar um quarto do potencial do processador. Porém o uso de mais linhas de execução irá propiciar um uso, na maior parte do tempo, de todo poder de processamento da CPU. Enfim, constatou-se que a utilização de threads pode tornar a execução de um processo muito mais rápida quando comparada a uma única linha de execução e, além disso, propicia um uso maior do poder de cálculo do processador. Calcular Fibonacci utilizando um algoritmo puramente recursivo é extremamente lento devido ao alto número de chamadas de função. Uma solução parcial para este problema é a utilização de threads no cálculo de Fibonacci recursivo. Assim sendo, o presente trabalho tem por finalidade comparar o tempo de execução e uso do processador em uma implementação recursiva e em uma implementação recursiva com uso de threads no cálculo de Fibonacci.
Compartilhar