Я читал, что демонам процессов обычно не разрешается создавать свои собственные процессы, и был бы признателен за совет о том, можно ли преодолеть это ограничение и иметь подпроцессы запускать свои собственные подпроцессы.
Я написал небольшой пример кода для справки.
Код: Выделить всё
# Can a pool run their own pools?
import numpy as np
from multiprocessing import Pool
def do_something(
num: int,
data: list[int],
num_procs: int = 1,
):
args_list = []
for n in range(len(data)):
args_list.append([data[n], num])
with Pool(processes=num_procs) as pool:
results = pool.starmap(do_another_thing, args_list)
return results
def do_another_thing(
value1: int,
value2: int,
):
return value1 * value2
# Main
if __name__ == "__main__":
# Example dataset of a list of arrays
data = [np.random.randint(0, 255, (20)) for n in range(20)]
args_list = []
for i in range(len(data)):
args_list.append([i, data[i]])
with Pool(processes=4) as pool:
results = pool.starmap(do_something, args_list)
for result in results:
print(results)
Подробнее здесь: https://stackoverflow.com/questions/787 ... sing-pools