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!