我已经阅读了几个小时关于 globals=globals() 如何在 Parallel Python 上工作的内容,但我仍然有点困惑,也许你可以帮助我......我正在编写一个基本上可以概括为的代码:
import pp
class Foo(object):
def __init__(self):
self.h = 2
def f():
foo = Foo()
return foo.h
ppservers = ()
job_server = pp.Server(ppservers=ppservers)
#print globals()
g = job_server.submit(f, (), globals = globals())
r = g()
输出是“未定义全局名称'Foo'”,正如我之前遇到的其他一些人......我知道 globals 参数用于以简化的方式将函数和类传输到服务器,所以我希望它已经通过了 Foo() 类,因为它在执行 job_server.submit 指令之前位于全局变量中(正如您可以通过取消对 print globals() 指令的注释看到的那样)。
我应该知道的关于 PP 的什么遗漏?有没有办法让这段代码在没有太多更改的情况下运行?
感谢您阅读我,我希望你们中的一些人了解它是如何工作的!
(备注:我不想在并行化作业之外创建 Foo 的实例,仅仅是因为初始化一个实例会触发整个程序,它在init (self) 函数内......坏主意,我知道......)