Я играл с передачей строк в функцию.
В качестве примера, с input_list_1, я нахожу возвращение из функции частично правильным - только первые n, которые соответствуют числу процессоров, правильный. Остальные выходы неверны. Я экспериментировал с вводом chunksize и с map_asyn c, но не повезло.
pool = mp.Pool(processes=2)
input_list_1=['string1','string2','string3','string4']
results=pool.map(somefunction, input_list_1)
Однако, когда я нарушаю свой ввод, как показано в input_list_2 (каждый массив соответствует количеству процессоров), и передаю input_list_2 [0 ] и input_list_2 [1] в качестве отдельных аргументов, я считаю, что возврат из функции более предсказуем и соответствует тому, что я ожидаю.
Есть ли способ передать input_list_2 в качестве аргумента и сделать какой-то тип итерации? Я перепробовал все, что смог найти, связанные с итерациями - imap, map_asyn c, starmap.
pool = mp.Pool(processes=2)
input_list_2=[('string1','string2'),('string3','string4')]
results=pool.map(somefunction, input_list_2)