RadioAstronomySoftwareGroup / RadioAstronomySoftwareGroup/pyuvdata

Re-evaluate Cython Dependencies

Open
#1,543 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement major needs research technical debt
Dominant language
Python
Stars
102
Forks
36
Avg merge
1d 20h
Merged PRs (30d)
14

Description

Cython is not the most fun language to work in. There are some advantages to moving out compiled extensions to another language (pybind11, rust, etc), but for now we decided we'd like to move what we can to numba.

Numba appears to be asymptotically equivalent in execution to our compiled extensions for large number of inputs. The only real advantage other languages seem to have is overhead at the nano-second level and the users probably will never notice this.

We should evaluate all the compiled extensions to see if we can refactor them to numba for now.
The main advantage we see to numba is the barrier for entry for others to maintain the code and not need experience with the compiled languages.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points; start by inventorying the project's compiled extensions and reading their implementations and callers. Compare each extension with the stated Numba goal, then define a scoped migration or exclusion for each one. Done means the extensions have been evaluated and any selected refactors are clearly scoped.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.