理解C中MPI_发送的常用参数

理解C中MPI_发送的常用参数,c,mpi,C,Mpi,我正在学习MPI,在我的导师给我们复习的发送函数中,有一个参数我不理解。我了解MPI函数中发生的事情。我不熟悉语法,需要一些澄清 参数 (我的排名+1)%comm_sz 接收消息的目的地是my_rank+1,但是%comm\u size有什么作用 MPI_Send(Greeting, strlen(Greeting) + 1, MPI_CHAR, (my_rank + 1) % comm_sz, 0, MPI_COMM_WORLD); %是模数运算符。如果你除以(my_rank+1)/comm

我正在学习MPI,在我的导师给我们复习的发送函数中,有一个参数我不理解。我了解MPI函数中发生的事情。我不熟悉语法,需要一些澄清

参数

(我的排名+1)%comm_sz

接收消息的目的地是
my_rank+1
,但是
%comm\u size
有什么作用

MPI_Send(Greeting, strlen(Greeting) + 1, MPI_CHAR, (my_rank + 1) % comm_sz, 0, MPI_COMM_WORLD);

%
是模数运算符。如果你除以
(my_rank+1)/comm_sz
,但不改变
myrank
,它会给出余数。明白了。忘了整数除法。它创建了一个循环拓扑,其中每个列发送到它的右邻居。基本上,模运算通过使第一个秩(0)成为最后一个秩的右邻域来闭合圆。对于左列,它将是
(我的排名-1+comm\u sz)%comm\u sz
。我同意@HristoIliev。也许你能想出一个答案?