これが話題から外れていないことを願っています。
負荷の高い Python スクリプトを作成しているので、Python multiprocessing
ThreadPool API を使用することにしました。
私はこのようにそれを使用しています:
pool = multiprocessing.pool.ThreadPool(processes=max_threads)
pool.map(routine, args)
使用するスレッドの最大数と、プールに送信できるタスクの最大数を見積もるにはどうすればよいですか?
実行されるルーチンはsubprocess
、外部スクリプトとos.path.isfile()
、 、 、などのファイルシステム操作を呼び出す必要がos.stat()
ありますos.remove()
。
各スレッドはデータのごく一部でルーチンを実行し、他のスレッドとは何も共有しないため、ロックは使用されません。
クアッドコア プロセッサでテストしていますが、いくつかのコアのミニ クラスターにデプロイする必要があります。
追加できるものがあれば、以下にコメントしてください..
ありがとう