Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HIVE core written in lower-level language #13

Closed
robfitzgerald opened this issue May 6, 2021 · 2 comments
Closed

HIVE core written in lower-level language #13

robfitzgerald opened this issue May 6, 2021 · 2 comments
Milestone

Comments

@robfitzgerald
Copy link
Collaborator

robfitzgerald commented May 6, 2021

the core of HIVE is Python. we could improve on memory management and runtime if HIVE were written in C++ or another language which can interface with Python.

the rewrite should be limited to "SimulationState", "Environment", and below. the instructions should still come in Python, though, the logic for their "apply" methods should join the refactor. immutability should still be enforced, and, Vehicles should still be serializable. id types could be made into integers (if the hive executable creates enumeration tables to maintain a reference to the user-provided ids).

@robfitzgerald robfitzgerald added this to the nice-to-haves milestone May 6, 2021
@nreinicke
Copy link
Collaborator

#118 opens the door to this by sampling the refactor for a single hive core object into Rust.

Before we continue down this road, though, it would be wise to do a "study" into how feasible a full core refactor would be by investigating:

  • how does Ray handle python libraries with compiled rust backend? (hive-distributed)
  • provide examples of CI/CD with python rust projects
  • are there stable rust libraries to support the required hive core dependencies?
    • immutable data stores
    • linear interpolation
    • shortest path search
    • rtree
    • h3

@nreinicke
Copy link
Collaborator

Closing to be replaced by #158

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants