Я пытаюсь распараллелить задачу, используя python многопроцессорную обработку, но это приводит к тому, что когда мне нужно добавить объект в список (в конкретном одном объекте minuit из библиотеки iminuit) выдается ошибка "... не могу быть преобразованным в Python объект для травления ". Я показываю здесь код, который обычно работает, но не с этими объектами.
from multiprocessing import Process, Manager
from iminuit import Minuit
something=Minuit(lambda x: x) #notice that here object() or any str will work.
def dothing(L, i): # the managed list `L` passed explicitly.
L.append(something)
if __name__ == "__main__":
with Manager() as manager:
L = manager.list()
processes = []
for i in range(5):
p = Process(target=dothing, args=(L,i)) # Passing the list
p.start()
processes.append(p)
for p in processes:
p.join()
print L
Чтение документации по многопроцессорности Я не нашел правильного способа сделать это. Заранее спасибо.
pd: в непараллельном случае легко составить список и добавить этот объект, поэтому я не понимаю, почему обычно вы можете добавить его, но здесь это не работает.