我编写了一个函数create_time_series(input_df1, info_df1, unit_name,start_date,end_date)
,旨在根据保存在input_df1
中的日志文件创建一个时间序列。我的函数的问题是执行速度慢,所以我想把它并行化
以下代码是我尝试使用多处理库的代码:
if __name__ == '__main__':
arg = corrected_data,block_info,(unit for unit in block_info.UnitID.unique()),"2015-01-01","2021-12-31"
with Pool(processes = 16) as pool:
temp_data = pool.starmap(create_time_series,arg)
out_data = pd.concat([out_data,temp_data[unit]],axis =1)
在任务管理器中,我可以看到进程在运行,但这些进程似乎处于空闲状态。因此,我的问题是,在尝试并行化任务时,我做错了什么?
您没有拆分负载,只给进程池一个要处理的项(arg
(。查看文档中的starmap:它需要一个可迭代的元组(例如列表(,每个元组都有所有必需的参数