2021年10月3日日曜日

大量処理

マージすると5億行になるデータを  Python で加工しいました。

for loop の速度が遅いことは有名ですが、まずは素直に書いて試行。
が、処理が終わるのに140日ほどかかる見込み。これはダメ。

joblib で parallel にするとともに、アルゴリズムを改良。これで、4時間程度に納まる見込み。
でしたが、メモリ不足を吐きます。SSD 500GB を仮想メモリに使うも足りず、HDD 2TB をたせば、、、フリーズ。頑張れ、Windows!

結局、小分けして処理。
が、これも夜中にフリーズしていました。Windows 嫌い。

最終的には9時間かかりました。計算は速いのですが、書き込みがネックになりますね。

他にも2週間計算していたPCが途中で再起動していたり、1週間かけて作っていた数億個のデータも途中でストップしていたり。

大きな処理は、PC ではなくクラウドが良いのでしょうか?データ転送がネックになるので、悩むところです。プロはどうされているのでしょう? 


0 件のコメント:

コメントを投稿