2016-10-17 2 views
1

Я бегу довольно много времени (> 3 дня) моделирование с использованием ipyparallel в функции карты, как, что в Jupyter Notebookвосстановить значения из ipyparallel карты, если одна оценка не удалось

from ipyparallel import Client 
rc = Client() 
lview = rc.load_balanced_view() 
ar = lview.map(runsimulation, parameter) 

и мне действительно нужны эти результаты. Но, к сожалению, один случай умер от голода. Теперь я не могу получить доступ к результату с помощью ar [i]. Есть ли шанс восстановить все другие результаты, которые наиболее точно вычисляются (я могу видеть характеристику памяти и потребление времени процессора в мониторе Ganglia этого кластера).

У меня все еще есть объект ar в ноутбуке Jupyter.

ответ

1

Вы можете получить частичные результаты для отдельных сообщений msg_ids. С картой, каждое сообщение соответствует кусок карты (список):

import ipyparallel as ipp 

results = [] 
for msg_id in ar.msg_ids: 
    chunk_ar = rc.get_result(msg_id) 
    try: 
     chunk = chunk_ar.get() 
    except ipp.RemoteError as e: 
     print('ignoring error: %s' % e) 
    results.extend(chunk) 
0

Для меня ответ, данный minrk не работает, потому что он не смог уже get_result.

я изменил его немного, и это работает для меня:

results = [] 
for msg_id in ar.msg_ids: 
    try: 
     chunk_ar = rc.get_result(msg_id) 
     chunk = chunk_ar.get() 
    except: 
     chunk = None 
    results.append(chunk) 

Обратите внимание, что я добавляю None, так что я получаю равный список длины в качестве входов.

Смежные вопросы