Parallel Python

Embora seu computador possa ter dois, quatro, oito ou até dezesseis núcleos de processamento, o Python só usa um deles de cada vez (mesmo trabalhando com threads). Parallel Python resolve o problema. Um exemplo simples, para você entender como funciona:

ppserver = pp.Server(ppservers=())
job1 = ppserver.submit(funcao_demorada, (), (), ())
job2 = ppserver.submit(funcao_demorada, (), (), ())
print job1()+job2()

Os quatro argumentos do método submit são: a função que será executada, os argumentos passados a ela, as funções que ele pode chamar e os módulos dos quais ela depende. Veja um exemplo de como chamar com esses parâmetros:

ppserver = pp.Server(ppservers=())
job1 = ppserver.submit(funcao_demorada, (44,), 
                        (sub_funcao,), ("sys","math",))
job2 = ppserver.submit(funcao_demorada, (25,),
                        (sub_funcao,), ("sys","math",))
print job1()+job2()

Divirta-se!

Publicado por

Elcio

Elcio é sócio fundador da Visie Padrões Web. Pioneiro no uso e divulgação dos padrões do W3C no Brasil, Elcio já treinou equipes de dezenas de empresas como Globo.com, Terra, Petrobras, iG e Locaweb. Além disso, tem dirigido as equipes da Visie no desenvolvimento de projetos web para marcas como Brastemp, Itaú Unibanco, Johnson & Johnson e Rede Globo.

3 comentários em “Parallel Python”

  1. Muito bom Elcio, Obrigado pela dica.
    Tinha notado essa limitação das threads no Python, então eu comecei a usar a biblioteca multiprocessing – se não me engano introduzido no Python 2.6.
    Nas aplicações que fiz os processos tomaram conta dos 4 núcleos do processador, porem usei apenas o htop para ver o consumo da CPU, não fui a fundo para verificar em qual núcleo o processo estava rodando pois me parecia funcionar perfeitamente.

    Já chegou a usar a biblioteca multiprocessing? Ela realmente não faz uso dos núcleos como deveria?

    Abraços e Muito Obrigado!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *