Python 并行,

  Python 并行,

  因此,我想首先执行简单的线性回归,用从正态分布随机生成的10000000个据点(4个特征,1个目的变量)来评价串联计算和并行计算之间的性能差。在

  这是我的代码。导入熊猫当警察局

  将数组作为铭牌导入

  导入随机

  来自勺导入流程

  将statsmodels.api作为钐导入

  来自时间导入时间

  defLinreg(vals):

  全局模型

  model=sm.ols(y_vals,X_vals).适合)

  返回模型

  打印(模型摘要) )

  if __name__==__main__ :

  随机种子(42岁)。

  vals=PD。数据帧(NP。随机的。normal)loc=3,scale=100,size=(1000000,5))

  vals.columns=[dep , ind1 , ind2 , ind3 , ind4]

  y_vals=vals[dep]

  X_vals=vals[[ind1 , ind2 , ind3 , ind4]]

  bt=time())

  model_vals=list(map(Linreg,[ 1,2,3 ])

  mval=model_vals[0]

  打印(mval.summary))

  serial_time=time(-Bt

  bt1=时间()

  model _ vals _ 1=list(期货。map(Lin reg,[ 1,2,3 ])

  mval_1=model_vals_1[0]

  打印(mval _1 .摘要) )

  parallel_time=time(-Bt1

  打印(串行时间,并行时间).

  但是,之后回归摘要确实是由计算机编程语言的标准映射函数串行生成的。这是错误的。跟踪后退(mostrecentcalllast):

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ lib rrib

  主,修改规格)

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ lib rrib

  执行(代码,run_globals))。

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  美因学院。

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  self.run()。

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  期货_启动()

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  run_name=main

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  结果=_ controller.switch(根未来、args、**kargs)。

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  提高未来.异常值值

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  未来。结果值=未来。可赎回(*未来。args,**future.kargs))。

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ lib rrib

  pkg_name=pkg_name脚本_name=fname)

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ lib rrib

  模块名称、模块规格、包名称、脚本名称)

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ lib rrib

  执行(代码,run_globals))。

  文件scoop _ map _ linear _ regression1 .py ,第33行,英寸

  model _ vals _ 1=list(期货。map(Lin reg,[ 1,2,3 ])

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  对于将来的rein _ wait all(* futures):

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  forfin_waitany(未来) :

  文件c:\ users \ NIC colo . gentile \ appdata \ local \ continuum \ anaconda 3 \ envs \ tensor environ \ lib sib

  raiseschildfuture . exception值

  名称错误:未定义名称 y _ vals

  是后来做的。这意味着代码将停止在model _ vals _ 1=list(期货。map(Lin reg,[ 1,2,3 ])上。在

  我也试着在地图上运行了两次那个,但是确实没有出现错误。在

  也指定脚本已正确启动。

  ^{pr2}$

  从蟒蛇提示符命令行。在

  实际上,如果不使用-m scoop参数启动它,正如警告中所报告的那样,它只需要使用Python内置映射函数的两倍功能,而不是并行化它,而是实际运行它。也就是说,在启动时没有指定-m scoop参数,futures.map将被替换为一个map。在

  我的目标是并行运行futures.map并评估性能改进。在

  指定并保留以避免其他类似的回复。在

  任何评论都是高度赞扬和欢迎的。在

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: