マルチプロセッシングのプールを使用して、パフォーマンスを向上させるプロセスを作成できます。画像を処理するための関数 handle_file があるとします。反復を使用する場合、1 つのコアの最大 100% しか使用できません。複数のコアを利用するために、Pool multiprocessing はサブプロセスを作成し、タスクをそれらに分散します。次に例を示します。
import os
import multiprocessing
def handle_file(path):
print 'Do something to handle file ...', path
def run_multiprocess():
tasks = []
for filename in os.listdir('.'):
tasks.append(filename)
print 'Create task', filename
pool = multiprocessing.Pool(8)
result = all(list(pool.imap_unordered(handle_file, tasks)))
print 'Finished, result=', result
def run_one_process():
for filename in os.listdir('.'):
handle_file(filename)
if __name__ == '__main__':
run_one_process
run_multiprocess()
run_one_process は、データを処理するための単一コアの方法であり、シンプルですが遅いです。一方、run_multiprocess は 8 つのワーカー プロセスを作成し、それらにタスクを分散します。8コアだと8倍くらい速くなります。ワーカー数をコアの 2 倍、またはコア数と同じに設定することをお勧めします。試してみて、どの構成がより高速かを確認できます。
高度な分散コンピューティングについては、larsmans が述べたようにZeroMQを使用できます。最初はわかりにくいです。しかし、一度理解すれば、データを処理するための非常に効率的な分散システムを設計できます。あなたの場合、複数の REP を持つ 1 つの REQ で十分だと思います。

これが役立つことを願っています。