iPython, выполняющий параллельные вычисления, застрял с результатами в странном состоянии

Я делаю несколько параллельных вычислений, оценивая правильность подбора по многим регрессиям. При этом (при выполнении ~60К вычислений) мне каким-то образом удалось вывести iPython в странное состояние.

Выталкивание объектов во все узлы

%%px
model_analytics = ResultsAnalytics(rows,  store['data_model'])

И отправка работы:

%%time 
ar = lview.map(lambda x: model_analytics.generate_prediction_heuristic(x), rows.index)

Работает отлично. Фактически, большая часть работы выполнена:

%%time 
completed = ar.progress
print completed
print "Remaining {0} min".format((ar.elapsed/completed) * (len(rows) - completed)/60)

66229

Осталось 0.0205939930854 мин

Время процессора: пользователь 211 мс, sys: 163 мс, всего: 374 мс

Время стены: 364 мс

Но есть одна работа, которая не завершена!

for i, status in enumerate(ar.status): 
    if status != 'ok': print i, status 

35230 нет

msg = ar.msg_ids[35230]
lview.abort(msg)
print lview.get_result(msg)
print lview.wait(jobs=msg, timeout=5)

<AsyncResult: unknown>

Ложь

Редактировать: я надеялся, что смогу получить все результаты, кроме несуществующего, но без радости.

msgs = ar.msg_ids[0:35230]
res1 = [lview.get_result(msg) for msg in msgs]
print res1[0:10]

[<AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>]

Я еще не пытался воспроизвести это. Что может вызвать эту ошибку? Сделал что-то не так? Есть ли более изящный способ оправиться от этого в будущем?

Версии:

  • IPython: 3.2.1
  • pyzmq: 14.7.0
  • zeromq: dpkg -l | grep libzmq дает:

    ii libzmq-dev: amd64 2.2.0 + ядро ​​облегченного обмена сообщениями amd64 dfsg-5 (файлы для разработки) ii libzmq1: amd64 2.2.0 + облегченное ядро ​​обмена сообщениями amd64 dfsg-5 (общая библиотека)

0 ответов

Другие вопросы по тегам