Skip to content

opaque types need an ABI #499

Description

@jeffhammond

I've spent a couple years now on MPI ABI stuff, and I think it would be really good for OpenSHMEM to define an ABI for shmem_team_t and related opaque types.

We are wrapping OpenSHMEM with Python in https://github.com/mpi4py/shmem4py and it is quite difficult because CFFI cares whether shmem_team_t is a pointer or an integer. Cray is using an integer (unsigned long) while everyone else seems to be using a pointer.

I asked Cray to change their ABI but am not optimistic about the outcome (they haven't responded yet but it has only been -2 business hours since I asked). However, it would make a lot more sense for everybody to just decide on an ABI so there is no doubt for users.

To summarize hundreds of hours of analysis and debate from the MPI effort, incomplete struct pointers (ala Open MPI) is the best ABI for such opaque types.

I know that most SHMEM users don't really care about ABI related things like being able to LD_PRELOAD different implementations with an existing binary, but both this and the use of OpenSHMEM from languages that are not C greatly benefit from this.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions