我正在将一个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)
在安装了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 ***