2016-04-21 15 views
1

私はマルコフ連鎖モンテカルロ法を使ってベイジアン逆転を実行するためのPython(およびCですが、 "制御"部分はPythonです)プログラムを作成しました。残念ながら、McMCは実行に数日かかることがあります。私の研究の一部は時間を短縮することにありますが、私たちはそれだけを減らすことができます。情報のためのPythonプロセスのプロービング

私はnohupを使用してヘッドレスのCentos 7マシンで実行していますが、接続を維持して数日間プリントを受け取ることは現実的ではないためです。しかし、私のプログラムでは、何回の繰り返しが行われたか、どのくらいの提案が受け入れられたか、焼き切りかどうかなどを確認することができます。

私が使用できるものはありますか?この情報を得るためにPythonプロセスとやり取りするには?

+3

あなたは画面に興味があるかもしれません、またはtmux –

+0

たとえば、 'SIGUSR1'のようなシグナルハンドラを使ってプロセスに情報を表示させることができます。また、「より良いssh」として「mosh」をチェックアウトしてください。 'mosh'を使うと、' tmux'や 'screen'セッションを信頼できない接続で簡単に開くことができます。 –

+0

あなたは[デバッガ( 'gdb')を添付することができます(http://stackoverflow.com/q/32941251/4279)、リモート(' ssh')(i)python REPLを実行する方が便利かもしれませんあなたのアプリケーションのコンテキストで(つまり、対話的にあなたのプログラムのオブジェクトで遊ぶことができます)、[twisted manhole example](https://twistedmatrix.com/documents/current/conch/examples/)を参照してください。 – jfs

答えて

2

SAWs(Scientific Application Web server)をお勧めします。 HTTPリクエストを処理するスレッドをプロセスに作成します。関心のある変数はJSON形式でクライアントに返されます。

Pythonランタイムで管理されている変数については、ハードディスク(または共有メモリ)の(JSON)ファイルに書き込んで、SimpleHTTPServerを使用してください。 JSON形式のSAWに従う限り、クライアント側のSAW Webインターフェイスを引き続き使用できます。

+0

これは本当にきれいですが、残念ながら、情報の大部分はプログラムのpython部分から来ています。 Pythonに似たものがあるかどうか知っていますか? –

+0

その後、ハードディスク(または任意の共有メモリ)上でファイルを更新しておくこともできます([JSON](https://docs.python.org/2/library/json.html)を使用して[SimpleHTTPServer](https ://docs.python.org/2/library/simplehttpserver.html)を参照してください。 SAW形式のJSON形式を模倣すると、そのWebアプリケーションを再利用できます。 – gdlmx

+0

ありがとう@gdlmx。私はそれが私が最もよく知っているので、私はフラスコでこれを行うと思う。 –

関連する問題