我目前正在尝试在我们的本地集群(Scientific Linux 6.9 和 Python 2.7.8)上使用 fipy 来执行一些漂移扩散计算,但我在并行求解时遇到了困难。当我尝试运行调用 --trilinos 选项的脚本时,出现以下错误:
进程执行了涉及调用“fork()”系统调用以创建子进程的操作。Open MPI 当前在可能导致内存损坏或其他系统错误的条件下运行;您的工作可能会挂起、崩溃或产生静默数据损坏。强烈建议不要使用 fork()(或 system() 或其他创建子进程的调用)。
调用 fork 的过程是:
本地主机:[[20666,15131],0](PID 21499)
如果您绝对确定您的应用程序将成功且正确地在对 fork() 的调用中幸存下来,则可以通过将 mpi_warn_on_fork MCA 参数设置为 0 来禁用此警告。
我在简单的脚本中隔离了这个错误:
from mpi4py import *
from fipy import *
我认为因此 mpi4py 和 fipy 之间存在一些冲突,但我不知道如何诊断冲突。我在安装中缺少一些简单的东西吗?我已经通过 pip 安装了 fipy 和 mpi4py,并且 PyTrilinos 是从源代码安装的。