MPI がインポートされている Python スクリプト内で mpiexec へのサブプロセス呼び出しを開始すると、呼び出しが失敗します。たとえば、 を呼び出す場合python test.py
、 wheretest.py
には次のコードがあります
import subprocess
if __name__ == "__main__":
subprocess.check_call(["mpiexec","-n","2", "echo", "hello world!"])
出力は
hello world!
hello world!
しかし、いつtest.py
ですか
import subprocess
from mpi4py import MPI
from mpi4py.futures import MPICommExecutor
if __name__ == "__main__":
subprocess.check_call(["mpiexec","-n","2", "echo", "hello world!"])
出力は
Traceback (most recent call last):
File "test.py", line 10, in <module>
subprocess.check_call(["mpiexec","-n","2", "echo", "hello world!"])
File "anaconda3/lib/python3.7/subprocess.py", line 347, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['mpiexec', '-n', '2', 'echo', 'hello world!']' returned non-zero exit status 1.
なぜこれが起こるのか誰か説明できますか?