理解C中MPI_发送的常用参数
我正在学习MPI,在我的导师给我们复习的发送函数中,有一个参数我不理解。我了解MPI函数中发生的事情。我不熟悉语法,需要一些澄清 参数 (我的排名+1)%comm_sz 接收消息的目的地是理解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
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。也许你能想出一个答案?