【发布时间】:2019-08-24 19:06:53
【问题描述】:
在尝试使用 MPI 库执行我用 C 编写的代码时,我遇到了一些非常奇怪的事情。 当我尝试时,我的代码还没有产生语法错误
mpirun -n 3 ./q4
我明白了
hello
hello
hello
from the other side.
from the other side.
from the other side.
似乎永远不会进入rank 0进程。我不知道为什么会这样。此代码在结构上与我编写的其他一些示例相同(如果需要,我可以提供整个代码) 但是,如果我在第六行之后输入任意两个随机的东西,我会得到这个
1213
123
Enter a length for the string that is divisible by the number of processes Number of vowels 27
除了检查我的代码是否存在逻辑错误外,我真的不知道该怎么做如果 case 应该执行。
int main(int argc, char * argv[])
{
printf("hello\n");
int rank,m,size,num;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
printf("from the other side.\n");
char str[100];
if (rank == 0 )
{
printf("Enter a length for the string that is divisible by the number of processes ");
scanf("%d",&m);
scanf("%s",str);
}
.
.
如果相关,我正在运行 Ubuntu 18.04。
【问题讨论】:
-
stdout默认为行缓冲。 -
请尽量在您的问题描述中更清楚。 “发生了一些奇怪的事情”是一个非常模糊的标题。
-
@Zulan,感谢您的意见。我会记住的。
-
标记 C,但 mpic++(这是 C++ 驱动程序)????
-
我找不到mpic的,所以我即兴创作。
标签: c parallel-processing mpi