グローバル変数として非常に大きな Pandas データフレームにアクセスしています。この変数は、joblibを介して並行してアクセスされます。
例えば。
df = db.query("select id, a_lot_of_data from table")
def process(id):
temp_df = df.loc[id]
temp_df.apply(another_function)
Parallel(n_jobs=8)(delayed(process)(id) for id in df['id'].to_list())
この方法で元の df にアクセスすると、プロセス間でデータがコピーされるようです。元の df がどのサブプロセスでも変更されていないため、これは予期しないことですか? (またはそれは?)