2
respostas

Selecionar número de núcleos em python

Olá, meus caros,

Gostaria de saber se há algum script no qual posso selecionar o número de núcleos a serem usados num código em python. Quero fazer isso para obter o tempo que levou para processar com 1 nucleo, 2, 3 e 4.

Segue abaixo o código que estou usando para tentar fazer esta análise.

#Inicialmente, é solicitado ao usuário o número da sequência fibonacci que deseja saber.
import time
import multiprocessing
while 1:
    inicio = time.time()
    n = int(input("Digite o qual número da sequência fibonacci deseja saber? (ex. o décimo): "))
    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)
    n_cores = multiprocessing.cpu_count()
    print("Núcleos utilizados: ", n_cores)
2 respostas

Oi, Vinicius! Olha, eu não sou um grande entendedor dessas questões mais baixo nível, mas eu creio que não há nenhum jeito simples de se fazer exatamente isso exclusivamente com o Python. Trabalhando com paralelismo e concorrência, você até pode mais facilmente controlar quantos processos você quer que sua tarefa use, mas não vejo uma forma tão direta assim de se controlar de fato os núcleos.

Pois é, cara, procurei muito na internet e não achei. Tive que fazer pelo gerenciador de tarefas mesmo. Rodei o código, selecionando 1,2,3 e 4 núcleos. Vou deixar o tópico aberto, caso alguém ainda possa me dizer.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software