Vous êtes sur la page 1sur 7

INSTITUTO FEDERAL DO ESPÍRITO SANTO

ENGENHARIA ELÉTRICA

VINICIUS PAULINO MARCHESINI

DESEMPENHO DE UM PROCESSO EXECUTADO COM CÓDIGO ESCRITO EM


PYTHON COM DIFERENTES NUMEROS DE NUCLEOS DE PROCESSAMENTO

VITÓRIA

2018
INSTITUTO FEDERAL DO ESPÍRITO SANTO

ENGENHARIA ELÉTRICA

VINICIUS PAULINO MARCHESINI

DESEMPENHO DE UM PROCESSO EXECUTADO COM CÓDIGO ESCRITO EM


PYTHON COM DIFERENTES NUMEROS DE NUCLEOS DE PROCESSAMENTO

Relatório do projeto de desempenho de


um processo executado no python shell
com diferentes números de núcleos de
processamento, apresentado ao
professor Renato Benezath Cabelino, da
disciplina de Sistemas Operacionais,
como requisito para a obtenção de nota
no curso de Engenharia Elétrica no
Instituto Federal do Espírito Santo –
Campus Vitória.

VITÓRIA

2018
AMBIENTE DE EXECUÇÃO

Plataforma: Python 3.6.4 Shell;

Núcleos de processamento: 4

METODOLOGIA

O código utilizado calcula o n-ésimo número na sequência de Fibonacci. Neste


experimento, o elemento calculado foi o de número 50.

O número de núcleos foi selecionado utilizando o gerenciador de tarefas do


Windows, seguindo o caminho: Gerenciador de tarefas/Detalhes. Em Detalhes, procura
– se por pythonw.exe, clica com o botão direito e em seguida “definir afinidade”, logo
mais abre uma tela em que é possível selecionar o número de núcleos que deve ser
utilizado pelo shell do python.

RESULTADOS DO EXPERIMENTO

Tabela 1: Velocidade do Processamento

Número de núcleos Tempo (hh:mm:ss)

1 5:14:24

2 5:05:24
3 4:52:02

4 4:40:37

Figura 1 - Cálculo em execução com 1 núcleo selecionado. Neste caso, o CPU 0.

Figura 2 - Cálculo em execução com 2 núcleos selecionados. Neste caso, o CPU 0 e 1.


Figura 3 - Cálculo em execução com 3 núcleos selecionados. Neste caso, o CPU 0,
CPU 1 e 2.

Figura 4 - Cálculo em execução com 4 núcleos selecionados. Neste caso, o CPU 0,


CPU 1, 2 e 3.
Figura 5 - Shell do python exibindo o resultado para o quinquagésimo termo de
Fibonacci, seguido do tempo decorrido, em segundos.
Como o computador utilizado é um modelo quad-core, ou seja, que possui 4
núcleos, dividiu-se a tarefa em 4 e com isso o tempo foi reduzido com o aumento de
núcleos utilizados como pode ser confirmado pela tabela a cima.

O processador opera fisicamente com 4 núcleos, o que permite o multithreading,


logo as threads compartilham os recursos do processo e são executadas de forma
independente. Devido ao multithread, é possível aproveitar todo o potencial de
processamento, permitindo a execução de tarefas de forma mais rápida.

CONCLUSÃO

Quando o software Python shell foi limitado a utilizar apenas um núcleo, o tempo
de processamento da tarefa que lhe foi imposto aumentou e o oposto aconteceu quando
todos os núcleos foram utilizados. Baseado na teoria abordada em sala de aula os
resultados estão de acordo com o esperado.

ANEXO

#Inicialmente, é solicitado ao usuário o número da sequência


fibonacci que deseja saber.

import time
n = int(input("Digite o qual número da sequência fibonacci
deseja saber? (ex. o décimo): "))

inicio = time.time()

def Fibonacci(n):

#Em seguida, um teste é feito para saber se o número da


sequência é menor ou igual a UM. Se for, então o valor retornado
é 1.

if n <= 1:

return n

#Caso contrário, é retornado a soma dos dois números anteriores.


Essa ação é feita chamando a função, recursivamente, até chegar
ao início da sequência. Quando essa ação termina, o número
solicitado é retornado e impresso na tela para o usuário.

else:

return Fibonacci(n-1) + Fibonacci(n-2)

print("O número ",n, "da sequência fibonacci é: ",


str(Fibonacci(n)) )

fim = time.time()

print("Tempo decorrido: ", fim - inicio)

Vous aimerez peut-être aussi