Я настроил кластер с помощью
ipcluster start --n=8
, затем получил доступ к нему с помощью
from IPython.parallel import Client
c=Client()
dview=c[:]
e=[i for i in c]
Я запускаю процессы на подчиненных узлах (e [0] -e [7]), которые занимают много времени, и я хотел бы, чтобы они отправляли отчеты о ходе работ мастеру, чтобы я мог следить за их проделкой.
Есть два способа, которые я могу сделатьэто, но до сих пор я не смог реализовать ни один из них, несмотря на часы обхода страниц с вопросами.
Либо я хочу, чтобы узлы передавали некоторые данные мастеру без запроса.т. е. в длинном процессе, который выполняется на узлах, я реализую функцию, которая через регулярные промежутки времени передает свой ход мастеру.
Или я мог бы перенаправить стандартный вывод узлов на тот, что у мастера, а затем простоотслеживать прогресс с помощью печати.Это то, над чем я работаю до сих пор.У каждого узла есть свой стандартный вывод, поэтому print ничего не делает, если работает удаленно.Я пытался протолкнуть sys.stdout к узлам, но это просто закрывает его.
Не могу поверить, что я единственный человек, который хочет это сделать, поэтому, возможно, я упускаю что-то очень простое.Как я могу отслеживать длинные процессы, происходящие удаленно с помощью ipython?