我正在将一个mpi通信器从python传递给C.我选择使用boost的mpi通信器,因为mpi4py似乎没有很好的C支持.看看这个:
try: from boost.mpi import world
except ImportError: from mpi import world
err = run_with_mpi(infile, world, stdout, stderr, exc)
Run Code Online (Sandbox Code Playgroud)
在安装了boost.mpi的系统上,这不会引发任何错误.但是,无法在mac上安装boost.mpi.我使用自制程序的boost155公式安装了boost的mpi.so模块,然后将.so文件添加到pythonpath.
一般来说,Fatal Python error: PyThreadState_Get: no current thread意味着什么?这条消息给像我这样的开发者提供了哪些线索?
完整的错误消息:
Fatal Python error: PyThreadState_Get: no current thread
[kilojoules-20160s:64471] *** Process received signal ***
[kilojoules-20160s:64471] Signal: Abort trap: 6 (6)
[kilojoules-20160s:64471] Signal code: (0)
[kilojoules-20160s:64471] *** End of error message ***
Run Code Online (Sandbox Code Playgroud)