Skip to content

shmem_get_config binary compatibility #153

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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