-
Notifications
You must be signed in to change notification settings - Fork 868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libnbc nonuniform type failures in ibcast, iallgather(v) #2256
Comments
Here is the test case for this issue: Sorry it's not more general, but should help reproduce the problem. |
In order to optimize for MPI_IN_PLACE, data is sent from the receive buffer. consequently, it should be sent with the receive type and count. Thanks Josh Hursey for the report and test case Refs #2256
@jjhursey i fixed the issue with |
In order to optimize for MPI_IN_PLACE, data is sent from the receive buffer. consequently, it should be sent with the receive type and count. Thanks Josh Hursey for the report and test case Refs open-mpi#2256 (cherry picked from commit open-mpi/ompi@45336d0)
In order to optimize for MPI_IN_PLACE, data is sent from the receive buffer. consequently, it should be sent with the receive type and count. Thanks Josh Hursey for the report and test case Refs open-mpi#2256 (cherry picked from commit open-mpi/ompi@45336d0)
In order to optimize for MPI_IN_PLACE, data is sent from the receive buffer. consequently, it should be sent with the receive type and count. Thanks Josh Hursey for the report and test case Refs open-mpi#2256 (back-ported from commit open-mpi/ompi@45336d0)
@ggouaillardet I can confirm that your commit fixed the problem with the Adding a reference to Issue #1763 - which describes the data corruption problem with As a workaround I might look into adding an MCA parameter to skip the algorithm selection based upon message size for bcast. |
@jjhursey IIRC, coll/tuned has a (per collective ?) segment_size MCA param, and we recommend it is set to 0 when running into this kind of pattern. You might want to use the same naming scheme for libnbc. |
Btw, if coll/tuned are used, the default behavior is MPI_ERR_TRUNCATE causes the program abort. |
* If (legal) non-uniform data type signatures are used in ibcast then the chosen algorithm may fail on the request, and worst case it could produce wrong answers. * Add an MCA parameter that, by default, protects the user from this scenario. If the user really wants to use it then they have to 'opt-in' by setting the following parameter to false: - `-mca coll_libnbc_ibcast_skip_dt_decision f` * Once the following Issues are resolved then this parameter can be removed. - open-mpi#2256 - open-mpi#1763 * Fixes STG Defect #114680 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
* If (legal) non-uniform data type signatures are used in ibcast then the chosen algorithm may fail on the request, and worst case it could produce wrong answers. * Add an MCA parameter that, by default, protects the user from this scenario. If the user really wants to use it then they have to 'opt-in' by setting the following parameter to false: - `-mca coll_libnbc_ibcast_skip_dt_decision f` * Once the following Issues are resolved then this parameter can be removed. - open-mpi#2256 - open-mpi#1763 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
I created PR #2330 which adds a new MCA parameter to avoid this datatype size based decision. It's not ideal (since the Let me know if you have any ideas for improvements on that PR. |
maybe this should be moved to 2.1 for a more complete solution? |
Yeah. I'll PR over my bcast parameter to the 2.(0.)x series. Then we can move it to v2.1 for a complete bcast solution. |
* If (legal) non-uniform data type signatures are used in ibcast then the chosen algorithm may fail on the request, and worst case it could produce wrong answers. * Add an MCA parameter that, by default, protects the user from this scenario. If the user really wants to use it then they have to 'opt-in' by setting the following parameter to false: - `-mca coll_libnbc_ibcast_skip_dt_decision f` * Once the following Issues are resolved then this parameter can be removed. - open-mpi#2256 - open-mpi#1763 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com> (cherry picked from commit 350ef67) Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
* If (legal) non-uniform data type signatures are used in ibcast then the chosen algorithm may fail on the request, and worst case it could produce wrong answers. * Add an MCA parameter that, by default, protects the user from this scenario. If the user really wants to use it then they have to 'opt-in' by setting the following parameter to false: - `-mca coll_libnbc_ibcast_skip_dt_decision f` * Once the following Issues are resolved then this parameter can be removed. - open-mpi#2256 - open-mpi#1763 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com> (cherry picked from commit 350ef67) Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
I'm closing this issue now that the work around has been put into the v2.(0.).x branches. Followup work will be on Issue #1763 |
* If (legal) non-uniform data type signatures are used in ibcast then the chosen algorithm may fail on the request, and worst case it could produce wrong answers. * Add an MCA parameter that, by default, protects the user from this scenario. If the user really wants to use it then they have to 'opt-in' by setting the following parameter to false: - `-mca coll_libnbc_ibcast_skip_dt_decision f` * Once the following Issues are resolved then this parameter can be removed. - open-mpi#2256 - open-mpi#1763 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com> (cherry picked from commit 350ef67) Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
When testing
coll/libnbc
with nonuniform data types three of the algorithms failed. I'll post a link to the test case in the comments. The unit test only works with-np 5
some of the tests pass fine with-np 4
.ibcast
Falls into an infinite error loop inlibnbc
iallgather
andiallgatherv
produce wrong answers. Might be the same underlying problem.ibcast
FailureNote: This test will enter an infinite loop displaying
MPI Error in MPI_Testall() (18)
until PR #2245 is resolved.iallgather
Failureiallgatherv
FailureThe text was updated successfully, but these errors were encountered: