Многопроцессорные наборы данных Python - Автоматически генерирует пакеты - PullRequest
0 голосов
/ 15 апреля 2020

Я использую модуль многопроцессорной обработки Python для обработки +30 наборов данных с двумя тяжелыми объединенными функциями.

Первая функция func1 сохраняет частичный результат в каталоге, который второй функция func2 вызывается после. Вторая функция ничего не возвращает, просто генерирует другой файл с сохраненными выводами.

Это линейный процесс, подобный следующему:

def my_multiprocessing(input_path):

    out_path = func1(input_path)

    #Func2 uses out_path as input. Func2 returns no Python variable, just a file.
    func2(out_path)


if __name__ == '__main__':
    my_pool = Pool(cpu_count())  
    my_pool.map(my_multiprocessing, list_of_30_datasets_path)

Теперь я ожидаю, что многопроцессорная обработка будет работать линейно; для каждого набора данных сначала решите переменную func1 и после использования out_path , чтобы решить func2 .

Но пока что она работает пакетами, сначала решить ALL func1 для 30 наборов данных. Как он может обрабатываться после func2 , если там будет NO out_path s? (Python перезаписывает) Есть ли какая-то крутая магия c позади, которую я далеко понимаю?

Пожалуйста, помогите мне, это моя первая многопроцессорная задача, и я ожидаю, что она будет работать в течение недели, не могу испортить его. Большое спасибо!

...