gpt4 book ai didi

c++ - 避免在 Mac-OSX 上的 mpirun 中接受传入网络连接对话框

转载 作者:太空狗 更新时间:2023-10-29 23:17:17 27 4
gpt4 key购买 nike

我是 MPI 初学者。我正在尝试在运行 Mac_OSX Mountain Lion 的 macbook 上运行最简单的 MPI“hello world”代码。它只有 1 个处理器,但有 4 个内核。 C++代码是这样的

#include <iostream>
#include "mpi.h"
using namespace std;

int main(int argc, char* argv[])
{
int rank, size;
MPI::Init();
rank = MPI::COMM_WORLD.Get_rank();
size = MPI::COMM_WORLD.Get_size();
std::cout << "Hello, world! I am " << rank << " of " << size << std::endl;
cout << "size is " << size << endl;
cout << "rank is " << rank << endl;
MPI::Finalize();
return 0;
}

然后我编译并运行代码

$ mpic++ -o bb code2.cpp
$ mpirun -np 2 bb

我立即收到 2 个对话框,显示警告“您希望应用程序“bb”接受传入的网络连接吗?”。对话框出现和消失,代码运行正常-

Hello, world!  I am 0 of 2
size is 2
rank is 0
Hello, world! I am 1 of 2
size is 2
rank is 1

我认为 MPI 在集群或 CPU 组上运行时会使用网络连接。但是看到防火墙对话框一次又一次地出现和消失是很烦人的。我可以禁用防火墙,也可以允许特定可执行文件的传入连接,但我不想那样做。有没有办法告诉 MPI 不要使用网络连接,因为我在一台计算机上运行它?谢谢。

最佳答案

不,根本没有办法告诉 Open MPI 不使用网络连接。除了在程序员特别指示的情况下,Open MPI 进程还会相互通信并与 MPI 启动器通信以交换控制数据——即所谓的带外消息传递。 oob 框架负责交换带外信息,并且该框架只有一个实现,该实现使用 TCP/IP。

Open MPI 中有很多隐藏的通信 channel 。例如,当所有进程在同一个节点上运行时,它们使用共享内存段来传输数据,但它们也使用 FIFO 传递控制信息和 TCP/IP 连接到 MPI 启动器 orterun(通常称为作为 mpiexecmpirun)。

关于c++ - 避免在 Mac-OSX 上的 mpirun 中接受传入网络连接对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com