Skip to content

HPX 2 #4329

@msimberg

Description

@msimberg

I'm opening this as a placeholder for discussion on long term plans for HPX (which we may call 2). See this as a wishlist of things that should be finally deprecated, cleaned up, or implemented.

I'll start (please extend this list):

  • Follow semver
  • Complete modularization
  • CMake modernization
  • Namespace and header location cleanup (clear policy on what's part of the API, what's experimental, what's private) (Formalize public API, namespace, and release policy  #4364)
  • Executors; there should be a clear story about what executor to use in which situations
  • Libfabric improvements in master: this is one of the strongest selling points of distributed HPX to existing applications using MPI (features have to be amazing for them to care, performance is a much better selling point)
  • ROCm support (minimal future support, not full parallel algorithms)

Many of these things are already in progress but moving to 2 would allow us to "officially" clean up and break compatibility without feeling too bad about ourselves. If needed we can keep 1.X in lifesupport mode for users who can't take all the breaking changes yet.

The namespace cleanup is partly motivated by having e.g. an experimental namespace (this has been discussed before, but should be formalized) so that we can introduce new features and if needed break or remove them without deprecation warnings as long as they are experimental.

The alternative to this is of course keep incrementally adding and removing features as we've been doing now, but I think going for a new major release would be good for both visibility and for allowing us to clean up things properly.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions