Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在MPI C中,如何将数组的最后一个元素与另一个进程的数组的第一个元素进行比较?_Arrays_C_If Statement_Mpi - Fatal编程技术网

Arrays 在MPI C中,如何将数组的最后一个元素与另一个进程的数组的第一个元素进行比较?

Arrays 在MPI C中,如何将数组的最后一个元素与另一个进程的数组的第一个元素进行比较?,arrays,c,if-statement,mpi,Arrays,C,If Statement,Mpi,我有一个MPI程序,它接受大小为M的整数序列,然后将部分序列共享给进程(p)。序列的这些部分的大小为(M/P) 每次我都希望将流程的最后一个元素与下一个流程的第一个元素进行比较 e.g. P1: 1 2 3 5 P2: 10 6 9 8 在上面显示的示例中,我希望将5与10进行比较。因此,我使用P2P通信,但是,下面显示的代码片段似乎不起作用,我也说不出原因 ... last_el = M/P; int flag; if(arr[0] > arr[last_el])

我有一个MPI程序,它接受大小为M的整数序列,然后将部分序列共享给进程(p)。序列的这些部分的大小为(M/P)

每次我都希望将流程的最后一个元素与下一个流程的第一个元素进行比较

e.g. P1: 1 2 3 5
     P2: 10 6 9 8
在上面显示的示例中,我希望将5与10进行比较。因此,我使用P2P通信,但是,下面显示的代码片段似乎不起作用,我也说不出原因

...
last_el = M/P;
int flag;
if(arr[0] > arr[last_el])
     flag = 1;
else 
     flag = 0;

if(rank == 0)
{
    for(i = 0; i < P; i++)
        MPI_Send(&arr[portion],1,MPI_INT, i+1, 55, MPI_COMM_WORLD);
}
else
{
    for(i = 0; i < P; i++)
        MPI_Recv(&arr[portion],1,MPI_INT, i, 55, MPI_COMM_WORLD, &s);
}
...
。。。
最后一次=M/P;
int标志;
如果(arr[0]>arr[last_el])
flag=1;
其他的
flag=0;
如果(秩==0)
{
对于(i=0;i

非常感谢您的帮助

您从MPI例程中得到的错误是什么?@Jose我看到我的计算机名和一个数字(6165)。然后它说:在MPI_发送中,在通信器上发生了一个错误,无效秩
P
MPI_COMM_WORLD
中的无效秩,第一个循环转到
i=P-1
,然后当目标秩变为等于
P
@user47时,
i+1
,你解决了问题吗?