6 Dec
2021
6 Dec
'21
10:10 a.m.
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