Skip to content

Enable multicore/GPU parallelism #6

Description

@therooler

GEOPE relies on JAX's device parallelism (JIT, vmap) but does not expose any mechanism for running multiple independent optimisations in parallel across CPU cores or accelators

Proposed change:
We should investigate if we can enable sharding of the heavy subroutines. For example, when running on multiple cores the jacobian calculation could be sharded over devices, which would require sharding the individual pulses over all devices. This would also require padding
to ensure that parameters can always be sharded correctly.

Ideally we could rely on single axis sharding and access only `jax.devices()' on single nodes. Multi-node setups would be a long term goal.

Acceptance criteria:

  • Geope tests runs correctly with n_workers=1 (sequential fallback) and n_workers>1.
  • Does not break JAX JIT caching within each worker process.
  • At least one integration test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions