最近私はつまずいたhttp://dask.pydata.org/en/latest/ 私は単一のコアでしか動かないパンダコードを持っているので、他のCPUコアをどう使うのだろうかと思います。 すべての(ローカル)CPUコアを使用するのに効果がありますか?はいの場合、どのようにパンダとの互換性ですか?pandasからdaskに移動してすべてのローカルCPUコアを利用する
パンダで複数のCPUを使用できますか?これまでのところ私はGILのリリースについて読んだが、すべて複雑であるようだ。
最近私はつまずいたhttp://dask.pydata.org/en/latest/ 私は単一のコアでしか動かないパンダコードを持っているので、他のCPUコアをどう使うのだろうかと思います。 すべての(ローカル)CPUコアを使用するのに効果がありますか?はいの場合、どのようにパンダとの互換性ですか?pandasからdaskに移動してすべてのローカルCPUコアを利用する
パンダで複数のCPUを使用できますか?これまでのところ私はGILのリリースについて読んだが、すべて複雑であるようだ。
すべての(ローカル)CPUコアを使用するとうまくいくでしょうか?
はい。
パンダとの相性は?
かなり互換性があります。 100%ではありません。あなたはPandasとNumPyを混ぜることができ、必要に応じて純粋なPythonのものをDaskで混在させることもできます。
パンダで複数のCPUを使用できますか?
できます。最も簡単な方法は、multiprocessing
を使用し、データを別々に保つことです。効率的に行うことができる場合は、各ジョブをディスクから独立して読み込み、ディスクに書き込むことができます。あなたがプロの管理者とマルチコンピュータ環境を持っている場合には、最も難しい方法はmpi4py
です。
Daskは、そのデータフレームにパンダAPIのlarge fractionを実装しています。これらの操作は、全体的なデータフレームのチャンクで非常に同じpandas関数を呼び出すため、完全に互換性があることを期待する必要があります。
結果の計算は、利用可能な任意のschedulersで実行できます。これにより、オーバーヘッドの低いスレッドを実行するか、より複雑なものを実行するかを選択できます。分散スケジューラは、スレッドとプロセス間の分割を完全に制御し、より多くの機能を備え、後でクラスタ全体にスケールアウトすることができます。
多くのパンダの操作はGILをリリースするので、スレッドで効率的に動作します。また、多くのパンダの操作は、簡単に並列チャンクに分割できますが、シャッフルを必要とするジョインや、マルチインデックスなど、まったく動作しないものもあります。見つけ出す最善の方法は、試してみることです!
そうするでしょう。あなたは、日付時刻の列を解析するためのスピードアップを期待していますか? –
あなたはCSVからの読解を意味しますか? c-parser(デフォルトでは、ほとんどの状況に対処できる)はGILをリリースし、単なるスレッドでも解析するためのスピードアップを得るべきです。コアの数に等しい乗数を得ることは絶対にありません。特に、小さなデータの場合は、常にオーバーヘッドがあります。 – mdurant
私はそれを調べます。普通のパンダ版のスピードアップを得る方法はありますか? –
多くのCPUコアを持つ単一の(ローカル)ワーカーが関与している限り、どのようなオプションを提案しますか? –
たとえば、1つの列の日付時刻の解析によって、daskでこれを並列化することは可能でしょうか? –
コードを表示できましたか? –