Skip to content
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

Inconsistency in maximum rank #487

Open
wesbland opened this issue Apr 21, 2022 · 1 comment
Open

Inconsistency in maximum rank #487

wesbland opened this issue Apr 21, 2022 · 1 comment

Comments

@wesbland
Copy link
Contributor

It looks to me as if there is an inconsistency in how UCC determines the maximum rank within a team. On the one hand, there's this code in src/utils/ucc_datastruct.h that says the maximum rank is UINT32_MAX - 1 (4,294,967,295):

#define UCC_RANK_INVALID UINT32_MAX
#define UCC_RANK_MAX UCC_RANK_INVALID - 1

On the other hand, within the UCP TL, this code seems to only handle a maximum of 24 bits (16,777,216):

/*
* UCP tag structure:
*
* 01 | 01234567 01234567 | 234 | 567 | 01234567 01234567 01234567 | 01234567 01234567
* | | | | |
* RESERV(2) | message tag (16) | SCOPE(3) | SCOPE_ID(3) | source rank (24) | team id (16)
*/
#define UCC_TL_UCP_RESERVED_BITS 2
#define UCC_TL_UCP_SCOPE_BITS 3
#define UCC_TL_UCP_SCOPE_ID_BITS 3
#define UCC_TL_UCP_TAG_BITS 16
#define UCC_TL_UCP_SENDER_BITS 24
#define UCC_TL_UCP_ID_BITS 16

I don't think it's likely that either maximum is being hit right now, but it would probably be good to be consistent. Particularly as different TLs could potentially support different maximum sizes.

@vspetrov
Copy link
Collaborator

you are right. probably need to add a TL iface to query max size and in runtime disqualify TLs if user team size exceeds max supported. While UCC_RANK_MAX is internal max for any TL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants