openshmem-org / tests-sos

Sandia OpenSHMEM unit tests and performance testing suite
Other
6 stars 11 forks source link

unit: fix avoid spliting on SHMEM_TEAM_INVALID #21

Closed yfguo closed 2 years ago

yfguo commented 2 years ago

The test check splits of a even_team. The existing code would attempt split on odd PEs which causes failure here. The non-even PEs should check and simply wait for completion.

davidozog commented 2 years ago

@yfguo - I'm not the original author of this test (@jdinan is), but I'm pretty sure the intent is for odd PEs (which have even_team == SHMEM_TEAM_INVALID) to enter check_2d, then to fail to split even_team (line 37), then for check_2d to return 0. So no errors should occur, if I'm not mistaken.

So what do you mean by "causes failure"? Yes, the team-split fails for odd PEs, but that is supposed to happen and the check_2d function should print "2d split failed" but still return 0 on all odd PEs.

On a related note, are you aware of the recent clarification to the spec here? shmem_team_split_2d should return nonzero when the parent team is SHMEM_TEAM_INVALID. If it were to return 0, that could possibly lead to the issue you mention.

yfguo commented 2 years ago

@davidozog Thanks for the clarification. The "2d split failed" confused me. Now I see why it happened.