[mpich-discuss] How locking on multi-VCI works

Guilherme Valarini guilherme.a.valarini at gmail.com
Mon Dec 6 10:10:19 CST 2021

Hello everyone,

I got one question regarding the multi-VCI support and possible locking
contentions of MPICH on multi-threaded environments.

I understand that there is a direct mapping between a VCI and a
communicator, so global locking is avoided on a multi-threaded application.
But I wanted to know: how do these VCIs work? When I have N VCIs, do I have
N virtual channels per rank (thus, one global lock per VCI-rank pair) or
only 2 channels at all (one lock per VCI)? I was wondering if, for example,
two MPI_Sends targeting different ranks on the same comm might need to be
synchronized using such a global lock.

Thanks for the help!
Guilherme Valarini
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20211206/d3248307/attachment.html>

More information about the discuss mailing list