Jupiter Notebookからの私の最初の問題/観察はここにあります。%%bash
IPythonコンソールでも再現するマジックセルです。ノートブックのページからいくつかのMPIプログラムを立ち上げるつもりです。ここでは、シンプルな再生装置としてdate
システムコマンドを使用します。Pythonのサブプロセスすべてのコマンドを処理する前にPopenがハングします
In [1]: %%bash
...: echo "First"
...: mpirun -np 2 date
...: echo "Second"
...: mpirun -np 2 date
...: echo "End"
...:
First
mar. juin 27 15:17:36 CEST 2017
mar. juin 27 15:17:36 CEST 2017
最初のmpirun
コマンドだけが実行され、その後はすべて実行されません。私はおそらくPopen
何か最初mpirun
後にすべてのコマンドの実行を停止するようだが行方不明です
from subprocess import *
from IPython.utils import py3compat
def test(s):
p = Popen(['bash'], stdout=PIPE, stderr=PIPE, stdin=PIPE)
out, err = p.communicate(s.encode('utf8', 'replace'))
print(py3compat.bytes_to_str(out))
test("""echo "First"
mpirun -np 2 date
echo "Second"
mpirun -np 2 date
echo "End" """)
:この動作は直接subprocess.Popen
と、以下のサンプルコードを参照してください再現します。すべてが一つのライン上に置かれたとき、私は期待される結果を得るが、それはIPython魔法の細胞にとって本当に興味深いものではありません。
test("""echo "First"; mpirun -np 2 date; echo "Second";mpirun -np 2 date; echo "End" """)
なぜPopen
ハング理由で任意のアイデア? フィードバックありがとうございます。
(IPython-5.4.1でのPython-2.7.13を使用して、Linux上でテストされ、またIPython 6.1.0とPythonの3.6.1を使用し、OpenMPIの-1.10.xおよび2.1.Xのいくつかのバージョンを使用して)
私はPython 3.6.1とiPython 6.1.0を利用していますが、そのような問題はありません。 [1]:https://i.stack.imgur.com/78dut.png \t 私は、Python 3.6.1と6.1.0 iPythonを利用していると私はその問題を持っていません。ここに画像の説明を入力してください 私はPythonのバージョンとiPythonのバージョンを変更することがわかります。あなたはこの動作を引き起こしているあなたのbashにいくつかの設定をしているかもしれません。 – Gilbert