Python の multiprocessing パッケージの使い方を学ぼうとしているのですが、map
との違いがわかりませんimap
。
map
たとえば、 は実際の配列またはセットを返すのに対し、 は配列またはセットの反復子を返すという違いはありますかimap
? どちらを使用するのが適切でしょうか?
また、chunksize 引数が何なのかわかりません。これは各プロセスに渡される値の数ですか?
ベストアンサー1
これが違いです。 map の代わりに imap を使用する理由の 1 つは、残りの計算が完了するのを待たずに最初のいくつかの結果の処理を開始したい場合です。 map は、結果を返す前にすべての結果を待ちます。
チャンクサイズに関しては、ワーカーがより多くの作業を要求するたびに IPC と同期のオーバーヘッドが発生するため、作業を大量に分配する方が効率的な場合があります。