Python 3.x 差分进化在workers=-1时出错

Python 3.x 差分进化在workers=-1时出错,python-3.x,worker,openmodelica,differential-evolution,Python 3.x,Worker,Openmodelica,Differential Evolution,我使用Scipy的差分进化来运行一些OMPython的模拟。 我在Windows和Jupiter笔记本上工作 当我只使用一个处理器时,我的代码可以工作。但是,当我使用选项workers=-1时,代码冻结(尽管有些文件是在目录中生成的),我得到以下错误 from multiprocessing import Process, freeze_support from scipy.optimize import differential_evolution def Optimization_Mode

我使用Scipy的差分进化来运行一些OMPython的模拟。 我在Windows和Jupiter笔记本上工作

当我只使用一个处理器时,我的代码可以工作。但是,当我使用选项
workers=-1
时,代码冻结(尽管有些文件是在目录中生成的),我得到以下错误

from multiprocessing import Process, freeze_support
from scipy.optimize import differential_evolution

def Optimization_Modelica_General('arguments'):
    'Some code'
    Solution_GEN=differential_evolution(Optimization_Modelica,bounds=bounds_2,args= 
    ('args'),updating='deferred',workers=-1)


if __name__ == "__main__":
    from pathos.helpers import freeze_support
    freeze_support()
    
    Result_Gen_Final=Optimization_Modelica_General('arguments') 
错误消息:

---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback: 
"""
Traceback (most recent call last):
  File "C:\...\Anaconda3\lib\multiprocessing\pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "C:\...\Anaconda3\lib\multiprocessing\pool.py", line 48, in mapstar
    return list(map(*args))
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py", line 1261, in __call__
    return self.f(x, *self.args)
  File "C:\...\Fonc_complem_1.ipynb", line 310, in Optimization_Modelica
    "        \n",
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py", line 308, in differential_evolution
    ret = solver.solve()
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py", line 750, in solve
    self._calculate_population_energies(
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py", line 873, in _calculate_population_energies
    calc_energies = list(self._mapwrapper(self.func,
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py", line 1261, in __call__
    return self.f(x, *self.args)
  File "C:\...\Fonc_complem_2.ipynb", line 733, in Fonct_Obj_General
    "    #    T_me_temp[i]   = T_me_temp_brut[3*i-2]\n",
  File "C:\...\Fonc_complem_2.ipynb", line 425, in Simulator
    "            #au long de l'intervalle) \n",
  File "C:\...\Anaconda3\lib\site-packages\OMPython\__init__.py", line 1086, in simulate
    raise Exception("Error: application file not generated yet")
Exception: Error: application file not generated yet
"""

The above exception was the direct cause of the following exception:

Exception                                 Traceback (most recent call last)
<ipython-input-5-d40ce0161088> in <module>
      4     freeze_support()
      5 
----> 6     Result_Gen_Final=Optimization_Modelica_General(po_stat_tt_intv,Nom_Modelica_po_stat_tt_intv,Type_simul_dyna_mult_int,Plage_variation_po_stat_tt_intv,step_gen,deb_int_gen,fin_int_gen,Vecteur_int_calib_st_dyn,modelpath,Nom_fichier_mo,Nom_fich,data_cond_lim,Data_mesu_gen,Type_Ind_FO,param_optim,initial_condit_temp,Directory_cd,data_cond_lim_fich_temporel,fich_res_Modelica_mat,Nom_Modelica_param_optim,Nom_Modelica_initial_condit_temp,Nom_Modelica_outlet_results_sim,Nom_Modelica_Function_Objectif,Plage_variation_param,M_population,Fichier_Excel_sortie_nom,M_STAT_population)

<ipython-input-4-cdce4edef5b3> in Optimization_Modelica_General(po_stat_tt_intv, Nom_Modelica_po_stat_tt_intv, Type_simul_dyna_mult_int, Plage_variation_po_stat_tt_intv, step_gen, deb_int_gen, fin_int_gen, Vecteur_int_calib_st_dyn, modelpath, Nom_fichier_mo, Nom_fich, data_cond_lim, Data_mesu_gen, Type_Ind_FO, param_optim, initial_condit_temp, Directory_cd, data_cond_lim_fich_temporel, fich_res_Modelica_mat, Nom_Modelica_param_optim, Nom_Modelica_initial_condit_temp, Nom_Modelica_outlet_results_sim, Nom_Modelica_Function_Objectif, Plage_variation_param, M_population, Fichier_Excel_sortie_nom, M_STAT_population)
--> 208         Solution_GEN=differential_evolution(Optimization_Modelica,bounds=bounds_2,args=(Nom_Modelica_po_stat_tt_intv,Type_simul_dyna_mult_int,step_gen,deb_int_gen,fin_int_gen,Vecteur_int_calib_st_dyn,modelpath,Nom_fichier_mo,Nom_fich,data_cond_lim,Data_mesu_gen,Type_Ind_FO,param_optim,initial_condit_temp,Directory_cd,data_cond_lim_fich_temporel,fich_res_Modelica_mat,Nom_Modelica_param_optim,Nom_Modelica_initial_condit_temp,Nom_Modelica_outlet_results_sim,Nom_Modelica_Function_Objectif,Plage_variation_param,M_population,Fichier_Excel_sortie_nom),callback=printCurrentIteration,maxiter=3,init=(random_init_val_bound_final_STAT),updating='deferred',workers=-1)

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in differential_evolution(func, bounds, args, strategy, maxiter, popsize, tol, mutation, recombination, seed, callback, disp, polish, init, atol, updating, workers, constraints)
    306                                      workers=workers,
    307                                      constraints=constraints) as solver:
--> 308         ret = solver.solve()
    309 
    310     return ret

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in solve(self)
    748             # only work out population energies for feasible solutions
    749             self.population_energies[self.feasible] = (
--> 750                 self._calculate_population_energies(
    751                     self.population[self.feasible]))
    752 

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in _calculate_population_energies(self, population)
    871         parameters_pop = self._scale_parameters(population)
    872         try:
--> 873             calc_energies = list(self._mapwrapper(self.func,
    874                                                   parameters_pop[0:nfevs]))
    875             energies[0:nfevs] = calc_energies

~\Anaconda3\lib\site-packages\scipy\_lib\_util.py in __call__(self, func, iterable)
    412         # only accept one iterable because that's all Pool.map accepts
    413         try:
--> 414             return self._mapfunc(func, iterable)
    415         except TypeError:
    416             # wrong number of arguments

~\Anaconda3\lib\multiprocessing\pool.py in map(self, func, iterable, chunksize)
    362         in a list that is returned.
    363         '''
--> 364         return self._map_async(func, iterable, mapstar, chunksize).get()
    365 
    366     def starmap(self, func, iterable, chunksize=None):

~\Anaconda3\lib\multiprocessing\pool.py in get(self, timeout)
    769             return self._value
    770         else:
--> 771             raise self._value
    772 
    773     def _set(self, i, obj):

Exception: Error: application file not generated yet
---------------------------------------------------------------------------
远程回溯回溯(最近一次呼叫最后一次)
远程回溯:
"""
回溯(最近一次呼叫最后一次):
worker中的文件“C:\…\Anaconda3\lib\multiprocessing\pool.py”,第125行
结果=(True,func(*args,**kwds))
文件“C:\…\Anaconda3\lib\multiprocessing\pool.py”,第48行,在mapstar中
返回列表(映射(*args))
文件“C:\…\Anaconda3\lib\site packages\scipy\optimize\\u differentive evolution.py”,第1261行,在调用中__
返回self.f(x,*self.args)
文件“C:\…\Fonc\u complem\u 1.ipynb”,第310行,在Optimization\u Modelica中
“\n”,
文件“C:\…\Anaconda3\lib\site packages\scipy\optimize\ \u differential evolution.py”,第308行,在differential\u evolution中
ret=solver.solve()
文件“C:\…\Anaconda3\lib\site packages\scipy\optimize\\u differentive evolution.py”,第750行,在solve中
自我。计算人口能量(
文件“C:\…\Anaconda3\lib\site packages\scipy\optimize\ \u differentive evolution.py”,第873行,位于“计算人口能量”
计算能量=列表(self.\u映射包装器(self.func,
文件“C:\…\Anaconda3\lib\site packages\scipy\optimize\\u differentive evolution.py”,第1261行,在调用中__
返回self.f(x,*self.args)
文件“C:\…\Fonc\u complem\u 2.ipynb”,第733行,在Fonct\u Obj\u General中
“#T#me_temp[i]=T#me_temp_brut[3*i-2]\n”,
文件“C:\…\Fonc_complem_2.ipynb”,第425行,在模拟器中
“#间隔时间长)\n”,
文件“C:\…\Anaconda3\lib\site packages\OMPython\\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.py”,第1086行,在simulate中
引发异常(“错误:尚未生成应用程序文件”)
异常:错误:尚未生成应用程序文件
"""
上述异常是以下异常的直接原因:
异常回溯(最后一次最近调用)
在里面
4冻结支持()
5.
---->6结果\u Gen\u Final=优化\u Modelica\u概述(po(po)统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局数据的各种类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型临时性的,临时性的,非正式的,非正式的_optim、Nom_Modelica、初始条件、出口结果、Nom_Modelica、函数目标、Plage_variation、M_population、Fichier_Excel、出动架次、M_STAT_population)
在优化中\u Modelica\u概述(po(po)统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局统计局数据的各种类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型,类型时间,模型,模型,名称模型参数优化、名称模型初始条件温度、名称模型出口结果模拟、名称模型函数目标、参数变化、总体、出动架次、总体)
-->208解=微分进化(优化模型,边界=边界2,参数=(Nom.Modelica(Nom.Modelica(Nom.Modelica(Nom.Modelica)Pou(Nom.Modelica(Nom.Modelica(Nom.Modelica)研究统计局的统计数据、类型模拟动态混合、步骤生成、步骤生成、步骤生成、步骤生成、数据生成、步骤生成、deb.生成、框架生成、金融生成、矢量生成、工具生成、统计统计统计数据、统计统计统计数据、统计数据、建模、建模、建模、模拟动力、模拟动力、建模、数据、模拟、数据、数据、数据生成、数据、数据制造、数据、数据生成、数据制造、数据生成、数据、数据生成、数据制造、数据、数据生成、数据、类型、工业、数据、类型、类型、工业、类型、类型、工业、类型、信息、工业、类型、类型、信息、工业、类型、信息、类型信息、类型信息、参数、参数、参数、参数、参数、优化、参数、参数、参数、参数、参数、参数、参数、优化、参数、optim,Nom_Modelica,Nom_初始条件,Nom_temp,Nom_Modelica\u outlet\u results\u sim,Nom\u Modelica\u Function\u Objectif,Plage\u variation\u param,M\u population,Fichier\u Excel\u sortie\u Nom),callback=printCurrentIteration,maxiter=3,init=(random\u init\u val\u bound\u final\u STAT),Update='deferred',workers=-1)
差异进化中的~\Anaconda3\lib\site packages\scipy\optimize\\\\\\\\\\\\\\\差异进化.py(函数、边界、参数、策略、最大化、popsize、tol、突变、重组、种子、回调、disp、波兰、初始化、atol、更新、工作者、约束)
306名工人=工人,
307约束=约束)作为解算器:
-->308 ret=solver.solve()
309
310返回ret
求解中的~\Anaconda3\lib\site packages\scipy\optimize\\u differential evolution.py(self)
748#只计算可行解的人口能量
749自我人口能量[自我可行]=(
-->750自我。计算人口能量(
751自我总体[自我可行])
752
~\Anaconda3\lib\site packages\scipy\optimize\ \u differential evolution.py in\u compute\u population\u energies(self,population)
871参数\u pop=自身。\u比例\u参数(总体)
872尝试:
-->873计算能量=列表(self.\u映射包装器(self.func,
874参数_pop[0:nfevs]))
875能量[0:nfevs]=计算能量
调用中的~\Anaconda3\lib\site packages\scipy\\u lib\\u util.py(self、func、iterable)
412#只接受一个iterable,因为Pool.map只接受一个iterable
413试试:
-->414返回自映射函数(func,iterable)
415除类型错误外:
416#参数数量错误
映射中的~\Anaconda3\lib\multiprocessing\pool.py(self、func、iterable、chunksize)
362在返回的列表中。
363         '''
-->364返回self.\u map\u async(func、iterable、mapstar、chunksize).get()
365
366 def星图(自身,f