multiprocessing.Process
объекты принимают необязательный аргумент имени при инициализации. Вы можете использовать это имя в качестве ключа в словаре:
child_procs = {'name1' : Process(target=myprocfunc, name='name1'), ...}
Что касается IPC между родительским процессом и дочерними процессами, у вас должно быть все в порядке, просто поддерживая отдельный multiprocessing.Queue
для каждого дочернего процесса. Вам понадобится объект / функция распределения задач, чтобы назначить работу. Эта функция, вероятно, будет отвечать за выталкивание задачи из основной / центральной очереди, а затем назначение ее правильной очереди дочернего процесса (в зависимости от архитектуры, которую я блестяще отвечаю на ваш вопрос).