У меня есть модуль A, который выполняет базовое отображение/сокращение, беря данные и отправляя их на модули B, C, D и т.д. для анализа, а затем вместе объединяет их результаты.
Но, похоже, что модули B, C, D и т.д. сами не могут создать многопроцессорный пул, иначе я получаю
AssertionError: daemonic processes are not allowed to have children
Можно ли распараллелить эти задания каким-либо другим способом?
Для наглядности здесь пример (n по общему признанию плохой) ребенка. (Обычно я пытаюсь поймать, но вы получите суть.)
A.py:
import B
from multiprocessing import Pool
def main():
p = Pool()
results = p.map(B.foo,range(10))
p.close()
p.join()
return results
B.py:
from multiprocessing import Pool
def foo(x):
p = Pool()
results = p.map(str,x)
p.close()
p.join()
return results