Мне интересно, как я мог бы перезапустить многопроцессорную задачу, если в каком-либо из ее запущенных процессов возникает исключение?
Я вызываю три экземпляра одной и той же функции, которые выполняют задачи независимо для большого, но конечного набора данных.
Если выдается исключение для любого из трех процессов, другие процессы продолжатся, но вычислительная мощность уменьшится. Мне интересно, как я мог обнаружить сбой (то есть исключение) в любом из процессов и полностью перезагрузить многопроцессорную задачу?
Вот фрагмент кода ниже - в этом примере я запускаю функцию example_func , который принимает список в качестве аргумента:
import multiprocessing
if __name__ == '__main__':
p1 = multiprocessing.Process(target=example_func, args=([],))
p2 = multiprocessing.Process(target=example_func, args=([],))
p3 = multiprocessing.Process(target=example_func, args=([],))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
Кроме того, есть ли лучший способ разработки этой многопроцессорной задачи? Здесь я работаю на трех ядрах - но я считаю, что есть более элегантный способ поставить в очередь это ...