Skip to content

shmem_get_config binary compatibility #153

@gmegan

Description

@gmegan

Using the solution for config structs from UCX, we can support backward compatibility to shmem_get_config without adding any new arguments to the existing API routine.

We can place the flags inside the config struct rather than pass them as a separate argument. The header file can set the flags for shmem_get_config to only the valid fields for the version of the struct in the header file. As long as future versions do not remove or rearrange struct members, no recompile is required for programs.

We can also address the issue of backward compatibility for implementation specific configuration using a void * to refer to a struct supplied by the implementation.

Using this solution, we do not need the config_mask argument to team creation since the mask will be set in the struct.

Here is an example of code snippets with three versions of config flags and an example program to illustate this solution:
https://gitlab.com/gmegan/openshmem-examples/tree/master/shmem_team/get_conf

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions