Python多处理无法加速统计建模

时间:2018-11-19 18:43:58

标签: python pandas multiprocessing statsmodels arima

我已经定义了一个Python函数,以利用所有CPU内核并行构建ARIMA(财务预测)模型。运行此代码的服务器具有48个核心。因此,我将我的大型Pandas数据帧分为40个分区(为了安全起见),并使用多处理模块的Pool函数并行处理所有分区。 “ func”是在将Statsmodels ARIMA应用于各个分区之后返回结果数据帧的函数。尽管我可以清楚地看到在UNIX Shell中多个进程正在同时运行,但是我没有观察到非并行处理的实际提速。我猜这是由于进程间通信较慢所致。我可以在代码中进行哪些更改以提高处理速度?

def MultiProcessing_dataframe(df, func):
   n_Partitions = 40
   df_split   = np.array_split(df, n_Partitions)
   pool = multiprocessing.Pool()
   Results = pd.concat(pool.map(func, df_split))
   pool.close()
   pool.join()
   return Results

0 个答案:

没有答案