2016-04-21 3 views
1

Я создал питон (и C, но «контрольная» часть - это программа Python) для выполнения байесовской инверсии с использованием меток Маркова в методе Монте-Карло. К сожалению, McMC может занять несколько дней. Часть моих исследований заключается в сокращении времени, но мы можем только уменьшить так много.Проверка работы процесса python для информации

Я запускаю его на безголовой машине Centos 7, используя nohup, так как поддержание соединения и получение отпечатков в течение нескольких дней нецелесообразно. Тем не менее, я хотел бы периодически проверять свою программу, чтобы узнать, сколько итераций это сделано, сколько предложений было принято, независимо от того, было ли оно ожогом и т. Д.

Есть ли что-то, что я могу использовать взаимодействовать с процессом python для получения этой информации?

+3

вас может заинтересовать экран или tmux –

+0

Вы можете использовать обработчик сигнала, например, 'SIGUSR1', чтобы заставить процесс печатать некоторую информацию. Оформить заказ 'mosh' как« лучший ssh ​​»тоже. С помощью 'mosh' вы можете легко открыть сеанс' tmux' или 'screen' через ненадежное соединение. –

+0

вы можете [приложить отладчик ('gdb')] (http://stackoverflow.com/q/32941251/4279), но было бы удобнее предоставить удаленный (' ssh') (i) python REPL, который запускается в контексте вашего приложения (т. е. вы можете интерактивно взаимодействовать с объектом вашей программы), см. [пример скрученного люка] (https://twistedmatrix.com/documents/current/conch/examples/) – jfs

ответ

2

Я бы порекомендовал SAWs (Scientific Application Web server). Он создает поток в вашем процессе для обработки HTTP-запроса. Переменные, представляющие интерес, возвращаются клиенту в формате JSON.

Для переменных, управляемых исполняемой средой python, запишите их в файл (JSON) на жестком диске (или в любой разделяемой памяти) и используйте SimpleHTTPServer для его обслуживания. Веб-интерфейс SAWs на стороне клиента все еще может использоваться до тех пор, пока вы следите за формами SAW JSON.

+0

Это выглядит очень аккуратно, но к сожалению, большая часть информации поступает из части программы python. Вы знаете, есть ли что-то подобное для python? –

+0

Затем вы можете продолжать обновлять файл (возможно, используйте [JSON] (https://docs.python.org/2/library/json.html)) на жестком диске (или любой общей памяти) и используйте [SimpleHTTPServer] (https : //docs.python.org/2/library/simplehttpserver.html) для его обслуживания. Если вы имитируете JSON-формат SAW, вы можете повторно использовать его веб-приложение. – gdlmx

+0

Спасибо @gdlmx. Думаю, я сделаю это с флягой, так как это то, с чем я больше всего знаком. –

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