Я читал несколько часов о том, как globals = globals() работает на Parallel Python, и я все еще немного смущен, может быть, вы можете мне помочь ... Я пишу код, который в принципе можно резюмировать следующим образом:Глобалы, классы и параллельный 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“не определен», как и некоторые другие столкнулись передо мной ... Я знаю, что аргумент глобалы используется для передачи функций и классов на сервере в упрощенном виде, поэтому я надеялся, что он прошел класс Foo(), как и в глобальных переменных, перед выполнением инструкции job_server.submit (как вы можете видеть, де-комментируя глобальные печати()).
Что мне не хватает в PP, что я должен знать? Есть ли способ сделать этот код без особых изменений?
Спасибо, что прочитали меня, я надеюсь, что некоторые из вас узнают, как это работает!
(Примечание: Я не хочу, чтобы создать экземпляр Foo за пределами распараллеленных рабочих мест, просто потому, что инициализация экземпляра запускает целую программу, которая находится в пределах функций инициализации (сами) ... плохая идея, Я знаю ...)