我有以下代码,当使用eclipse 2020.12执行时,输出如下:“从0级到1级”
#include <iostream>
#include <mpi.h>
using namespace std;
int main(int argc, char* argv[])
{
MPI_Init(&argc, &argv);
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
int size;
MPI_Comm_size(MPI_COMM_WORLD, &size);
int data;
if (rank > 0) {
MPI_Recv(&data, 1, MPI_INT, rank-1, 0, MPI_COMM_WORLD,MPI_STATUS_IGNORE);
cout << "Rank "<< rank<< " has received message with data " << data
<< " from rank " << rank-1
<< endl;
}
cout << "Hello from rank " << rank<< " out of " << size<< endl;
if (rank < size-1) {
data = rank*rank;
MPI_Send(&data, 1, MPI_INT, rank+1, 0, MPI_COMM_WORLD);
}
MPI_Finalize();
return 0;
}
但是,当我使用以下命令通过命令行执行此命令时,它的工作方式与预期的一样。
mpic++ -o name name.cpp
mpiexec -np 4 ./name
它显示了4你好,这是我的核心数。我想知道为什么eclipse不能识别,但是带有另一种执行方式的sampe文件工作得很好!产出如下:
Hello from rank 0 out of 4
Rank 1 has received message with data 0 from rank 0
Hello from rank 1 out of 4
Rank 2 has received message with data 1 from rank 1
Hello from rank 2 out of 4
Rank 3 has received message with data 4 from rank 2
Hello from rank 3 out of 4
发布于 2021-02-16 00:25:26
从并行应用程序模板创建新的运行配置。在“Resources”选项卡上,根据您的实现是来自OpenMPI还是来自开放OpenMPI或OpenMPI交互,将目标系统配置设置为通用OpenMPI交互式或泛型MPICH2 Interactive。将连接类型设置为本地。然后在Basic Options选项卡中设置进程数。
切换到应用程序选项卡,并将路径放置到应用程序中的可执行文件。只需单击它旁边的浏览按钮,导航到Debug或Release,并在那里选择可执行文件。
运行按钮现在应该变成蓝色,你可以按它。
发布于 2021-02-15 11:15:28
前往该项目,并:
点击第二个鼠标按钮
Run As
> Run Configurations
”
点击Application
/usr/bin/mpirun
application argument
中的参数
https://stackoverflow.com/questions/66213712
复制相似问题