我正在尝试并行运行一组代码,它似乎在某些情况下有效,但在其他情况下无效。下面的代码与保存的\u模型并行运行[项目]不存在或不存在,但当它有数据时,运行速度非常慢,并且以串行方式运行。
有什么想法吗?保存的\u model对象没有那么大,而且每次运行都不同。
来自statsmodels。运输安全管理局。arima\u模型导入arima
def do\U parallel\U work(自我):
有议员。池(进程=自身最大工作线程数)作为池:
job\u参数=[(项
,target\u列
,saved\u models[项目]如果saved\u models不是None,则为saved\u models[项目],否则为None
)对于项目中的项目]
结果=池。映射(self.do\u work\u helper,job\u args)
for result in results:
if result[1] is not None:
results_dict[result[0]] = result[1]
def do_work_helper(self, args):
return self.do_work(*args)
def do_work(self, item, target_cols, saved_model):
# can't show exactly what this but essentially it does something to the affect of:
my_model = ARIMA()
# if saved_model is None
fit_model = my_model.fit(trend='nc', maxiter=1000, disp=0)
# else
my_model.predict()
return item, stuff