gpt4 book ai didi

python - 为什么 Parallel Python 的工作方式如此?

转载 作者:行者123 更新时间:2023-11-28 16:53:27 24 4
gpt4 key购买 nike

在并行 Python 中,为什么有必要包装传递的函数将需要的任何模块以及该作业提交调用中的变量和命名空间——保留模块级“全局”变量的必要性有多大? (如果这就是发生的一切)

提交功能:

submit(self, func, args=(), depfuncs=(), modules=(), callback=None, callbackargs=(),group='default', globals=None)
Submits function to the execution queue

func - function to be executed
args - tuple with arguments of the 'func'
depfuncs - tuple with functions which might be called from 'func'
modules - tuple with module names to import
callback - callback function which will be called with argument
list equal to callbackargs+(result,)
as soon as calculation is done
callbackargs - additional arguments for callback function
group - job group, is used when wait(group) is called to wait for
jobs in a given group to finish
globals - dictionary from which all modules, functions and classes
will be imported, for instance: globals=globals()

最佳答案

pp 以这种方式工作的原因是它为每个工作人员创建了一个新的 Python 解释器实例,它完全独立于之前或之后运行的任何东西。这确保没有意外的副作用,例如 __future__ 导入在工作进程中处于事件状态。这样做的问题是,它让事情变得更复杂,而且根据我使用 pp 的经验,并不是特别健壮。 pp 确实试图让用户的操作更简单一些,但似乎在努力做到这一点时引入的问题多于它解决的问题。

如果我从一开始就编写专为在集群上使用而设计的代码,我可能最终会使用 pp,但我发现调整现有代码以使用 pp 是一场噩梦。

关于python - 为什么 Parallel Python 的工作方式如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com