ある意味安直な高速化、だけど人力では経験が必要な、だからLLM
公開 2025/11/18 15:19
最終更新
2025/11/24 17:37
作業量が大きくて時間のかかる集計処理。
pythonでやっているんだが、これはGoとかで書き直さなきゃいけないかなぁ...
とか思いながら、pandasが便利でなかなか抜け出せない。
あれくらい便利なライブラリが使える処理系って、他にあるんだろうか?
それはともかく、pythonでマルチプロセス化させると良いと気がついた。
Gemini Code Assistでも難なく変換してくれる。
普通にコーディングするとCPU負荷率が15%を超えることがなかなかないのだが、AIにマルチプロセス化させるとCPU負荷率90%超えで処理が行われるようになった。面白いことにときどき100%を超える。
負荷が高いと定格クロックを大幅に超えるクロック数になるわけだが、メーカー製のPCでも普段から定格を超えているんだけど、まあそれはそれとして。
(Core i7-9700 定格3.0GHz/処理中は3.2GHz~3.9GHzで、ときどき4.2GHzを超えるみたいな感じ。特定のコアがとびぬけて負荷が高いとき以外には4GHz超えはほぼ見ないけど。全コアが平均して負荷が高い状態であれば、3.6GHzで安定か?)
AIがpandasの機能をうまく使って、もとのコードの10倍以上の高速化をしてくれる場合があるんだけど、同じコードをベースにしても毎回同じコードがつくられるわけでないのが悩ましくて。
自分でもきちんと理解してるわけでないので、まったく同じコードになるよう誘導してやることもできなくて。
おおむねうまく動くんだけれども、まったく同一の結果が得られるとも限らなくて。
試行錯誤した結果、マルチプロセス化させるだけで、安定して数倍の高速化がされることが分かったので。
まあ、これでいいかと。
pythonでやっているんだが、これはGoとかで書き直さなきゃいけないかなぁ...
とか思いながら、pandasが便利でなかなか抜け出せない。
あれくらい便利なライブラリが使える処理系って、他にあるんだろうか?
それはともかく、pythonでマルチプロセス化させると良いと気がついた。
Gemini Code Assistでも難なく変換してくれる。
普通にコーディングするとCPU負荷率が15%を超えることがなかなかないのだが、AIにマルチプロセス化させるとCPU負荷率90%超えで処理が行われるようになった。面白いことにときどき100%を超える。
負荷が高いと定格クロックを大幅に超えるクロック数になるわけだが、メーカー製のPCでも普段から定格を超えているんだけど、まあそれはそれとして。
(Core i7-9700 定格3.0GHz/処理中は3.2GHz~3.9GHzで、ときどき4.2GHzを超えるみたいな感じ。特定のコアがとびぬけて負荷が高いとき以外には4GHz超えはほぼ見ないけど。全コアが平均して負荷が高い状態であれば、3.6GHzで安定か?)
AIがpandasの機能をうまく使って、もとのコードの10倍以上の高速化をしてくれる場合があるんだけど、同じコードをベースにしても毎回同じコードがつくられるわけでないのが悩ましくて。
自分でもきちんと理解してるわけでないので、まったく同じコードになるよう誘導してやることもできなくて。
おおむねうまく動くんだけれども、まったく同一の結果が得られるとも限らなくて。
試行錯誤した結果、マルチプロセス化させるだけで、安定して数倍の高速化がされることが分かったので。
まあ、これでいいかと。
