マージすると5億行になるデータを Python で加工しいました。
for loop の速度が遅いことは有名ですが、まずは素直に書いて試行。
が、処理が終わるのに140日ほどかかる見込み。これはダメ。
joblib で parallel にするとともに、アルゴリズムを改良。これで、4時間程度に納まる見込み。
でしたが、メモリ不足を吐きます。SSD 500GB を仮想メモリに使うも足りず、HDD 2TB をたせば、、、フリーズ。頑張れ、Windows!
結局、小分けして処理。
が、これも夜中にフリーズしていました。Windows 嫌い。
最終的には9時間かかりました。計算は速いのですが、書き込みがネックになりますね。
他にも2週間計算していたPCが途中で再起動していたり、1週間かけて作っていた数億個のデータも途中でストップしていたり。
大きな処理は、PC ではなくクラウドが良いのでしょうか?データ転送がネックになるので、悩むところです。プロはどうされているのでしょう?
0 件のコメント:
コメントを投稿