我不确定在MPI发送和接收调用中的tag字段何时需要使用不同的数字。我已经阅读了这篇文章,但我无法理解它。
有时A可能需要向B发送许多不同类型的消息。为了避免B必须采取额外的措施来区分所有这些消息,MPI允许发送方和接收方在消息中指定消息ID(称为标签)。当进程B仅请求具有特定标记号的消息时,具有不同标记的消息将被网络缓冲,直到B准备好接收它们。
例如,当进程A从多个" isend "调用(具有不同标记)中进行选择,并且只有一个"ireceive"调用的进程B时,是否必须使用标记?
有时A可能需要向B发送许多不同类型的消息。为了避免B必须采取额外的措施来区分所有这些消息,MPI允许发送方和接收方在消息中指定消息ID(称为标签)。当进程B仅请求具有特定标记号的消息时,具有不同标记的消息将被网络缓冲,直到B准备好接收它们。
例如,当进程A从多个" isend "调用(具有不同标记)中进行选择,并且只有一个"ireceive"调用的进程B时,是否必须使用标记?
MPI_TAG_ANY
,在接收后查看状态结构以确定使用了哪个标记,然后相应地进行处理。 - Jonathan Dursi