Buscar

Banner SO I - Uma análise comparativa no cálculo de Fibonacci com e sem uso de threads

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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.

Outros materiais