Logo Logo
  • Home
  • Team
  • Blog
  • Contact

Contact Info

  • Email Info@gmail.com
  • Phone +123 456 7890
  • Office Hours Sat - Wed : 8:00 - 4:00

Additional Links

Connect With Us

Pandarallel – paralelizar as suas CPUs

  • Home
  • Blog Details
Julho 15 2021
  • Tradução

Pandarallel – Uma ferramenta simples e eficiente para paralelizar a computação do seu pandas em todas as suas CPUs

Este artigo é uma tradução de https://towardsdatascience.com/pandaral-lel-a-simple-and-efficient-tool-to-parallelize-your-pandas-operations-on-all-your-cpus-bb5ff2a409ae ; Escrito por https://medium.com/@manunalepa .

Complete Pandaral·lel repository and documentation is available on this GitHub page.
The library presented in this post is only supported on Linux & MacOS.

Que problema nos incomoda?

Com a biblioteca do pandas, quando você executa a seguinte linha:

Você obtém este uso de CPU:

Pandas padrão se aplicam – apenas 1 CPU é usada.


Mesmo que seu computador tenha várias CPUs, apenas uma é totalmente dedicada ao seu cálculo. Em vez desse uso de CPU, gostaríamos de uma maneira simples de obter algo assim:

Pandas paralelas se aplicam – todas as CPUs são usadas.

Como Pandaral·lel ajuda a resolver esse problema?

A ideia do Pandaral·lel é distribuir o cálculo do seu pandas por todas as CPUs disponíveis no seu computador para obter um aumento significativo de velocidade.

Instalaçao

No Windows, Pandaral·lel funcionará apenas se a sessão Python (python, ipython, jupyter notebook, jupyter lab, …) for executada a partir do subsistema Windows para Linux (WSL). No Linux e no macOS, nada de especial precisa ser feito.

Import & Initialization:

USO

Com um caso de uso simples com um DataFrame df do pandas e uma função para aplicar func, basta substituir o clássico apply por parallel_apply

E pronto! Observe que você ainda pode usar o método de aplicação clássico se não quiser paralelizar a computação. Você também pode exibir uma barra de progresso por CPU em funcionamento passando progress_bar = True na função de inicialização.

Paralelo aplicar com uma barra de progresso

E com um caso de uso mais complicado com um DataFrame df pandas, duas colunas deste DataFrame column1 e column2, e uma função para applyfunc:

Benchmark

Para quatro dos exemplos disponíveis aqui, na seguinte configuração:
SO: Linux Ubuntu 16.04
Hardware: Intel Core i7 @ 3,40 GHz – 4 núcleos

Standard vs. Parallel on 4 cores (lower is better)

Exceto para df.groupby.col_name.rolling.apply, onde a velocidade aumenta apenas em um fator x3,2, a velocidade média aumenta em cerca de fator x4, que é o número de núcleos no computador usado.

Como isso funciona sob o capô?

Quando parallel_apply é chamado, Pandaral·lel:

  • Instancia uma memória compartilhada do plasma Pyarrow, então
  • Cria um subprocesso para cada CPU e pede a cada CPU para trabalhar em uma subparte do DataFrame, então
  • Combinar todos os resultados no processo pai.

A principal vantagem de usar uma memória compartilhada em comparação com outro meio de comunicação entre processos é que não há serialização / desserialização que pode ser muito expansiva para a CPU.

Se você achar esta ferramenta útil, mas se um recurso estiver faltando, escreva uma nova solicitação de recurso aqui

Previous Post Next Post

Leave a Comment Cancelar resposta

Artigos recentes

  • Pandarallel – paralelizar as suas CPUs
  • O que as pessoas acham do seu Instagram?
  • Construindo um Feature Store

Comentários recentes

    Arquivo

    • Julho 2021
    • Maio 2021

    Categorias

    • Inteligência Artificial
    • Tradução
    • Uncategorized

    Meta

    • Iniciar sessão
    • Feed de entradas
    • Feed de comentários
    • WordPress.org
    Logo

    Required honoured trifling eat pleasure man relation. Assurance yet bed was improving furniture man. Distrusts delighted

    Usefull Links

    Services

    Contact Info

    Possible offering at contempt mr distance stronger an. Attachment excellence announcing

    • Email: sales@creativedigital.tech
    • Contact: +44-20-7328-4499

    © Copyright 2020. Anada WordPres Theme By WordPressRiver