Как включить обработку исключений в многопроцессный процесс Pool.starmap PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как включить обработку исключений в многопроцессный процесс Pool.starmap Python

Сообщение Anonymous »

Я использую библиотеку Metpy для расчетов погоды. Я использую библиотеку многопроцессорности для их параллельного запуска, но возникают редкие исключения, которые полностью останавливают работу программы. Я не могу предоставить минимальный воспроизводимый пример, потому что не могу воспроизвести проблемы с функциями библиотеки Metpy, а также потому, что до возникновения проблемы выполняется огромный объем кода, который я не могу разместить здесь.
Я хочу знать, как написать многопроцессорный код, чтобы сообщить функцииpool.starmap о необходимости пройти PASS, если она обнаружит ошибку. На первом этапе моего кода создается список аргументов, который затем передается в функциюpool.starmap вместе с функцией metpy (в данном случае metpy.ccl). Список аргументов metpy.ccl включает список уровней давления, температуры воздуха и значений точки росы.

Код: Выделить всё

ccl_pooled = pool.starmap(mpcalc.ccl, ccl_argument_list)
Я пытался написать обобщенную функцию, которая бы принимала переданную мной функцию metpy и сообщала ей о необходимости передать ее при обнаружении ошибки.

Код: Выделить всё

    def run_ccl(p,t,td):
try:
result = mpcalc.ccl(p,t,td)
except IndexError:
pass
Можно ли мне написать функцию «run_ccl», чтобы я мог проверять наличие ошибок в исходной строке кода - примерно так:

Код: Выделить всё

ccl_pooled = pool.starmap(run_ccl, ccl_argument_list)
Если нет, то как лучше всего это сделать? РЕДАКТИРОВАТЬ: Чтобы уточнить, эти списки аргументов состоят из тысяч точек данных. Я хочу передать точку данных, которая вызывает проблему (и ввести nan в результат «ccl_pooled» для этой точки данных) и продолжить работу.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ltiprocess
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»