Предположим, у меня есть несколько генераторов (которые должны работать параллельно). Можно ли использовать многопроцессорный модуль для вызова next() на этих генераторах, чтобы обработка выполнялась параллельно?Обработка нескольких генераторов параллельно
Я хочу избежать составления списка из генераторов, так как он, скорее всего, потребляет много памяти.
Контекст: Первоначально у меня есть генератор, который выводит все связующие деревья заданного графа. Часть алгоритма включает итерацию через множество степеней подмножества соседей данной вершины. Я хотел бы распараллелить эту часть, по крайней мере, для первоначального вызова. Для определенного графика требуется около полутора секунд для вывода дерева для первых 1024 деревьев.
Насколько я знаю, что это возможно. Ты это пробовал? У вас есть конкретная проблема в попытке заставить его работать? –
Непонятно, что вы хотите сделать, и похоже, что многопроцессорность может оказаться неправильным решением. Почему вы не показываете короткий пример того, что вы пытаетесь сделать? – zvone
@ B. Признаки моей проблемы с параллельным запуском этого процесса заключались в том, что Process/Pool отказывается иметь переданный ему объект генератора из-за отсутствия генераторов. Но, увидев текущий ответ, я понял, что могу просто передать параметры генератора и позволить дочернему процессу помещать результаты в очередь. – silverhawke