Pythonのマルチプロセッシングは、すべてのプロセスが一度
私はチャンクでCSVを読み、4つのプロセスのプールにチャンクを渡していますで動作していません。
pool = Pool(processes=4)
chunk_index = 1
for df in pd.read_csv(downloaded_file, chunksize=chunksize, compression='gzip', skipinitialspace=True, encoding='utf-8'):
output_file_name = output_path + merchant['output_file_format'].format(
file_index, chunk_index)
pool.map(wrapper_process, [
(df, transformer, output_file_name)])
chunk_index += 1
このコードでは、私は4つのプロセスを連続して実行する必要があります。しかし、以下のhtopのスクリーンショットでは、常に2回実行されています。 1つはhtopそれ自身を命令することです。これは、その時点で1つのpythonプロセスしか実行されていないことを意味します。メモリ使用量から
は、それは4つのチャンクが1つのチャンクを備えるメモリ にロードされたときに、私は2ギガバイト私は一度にプロセッサのために使用することができますどのようにほとんどでのみ可能になると思う12ギガバイトであります。
私はちょうど私の例では愚かな間違いを修正しました。あなたはそれをテストすることができましたか? – hansaplast