jcmgray / quimb

A python library for quantum information and many-body calculations including tensor networks.
http://quimb.readthedocs.io
Other
484 stars 108 forks source link

Implementation of Cython or pybind for better performance #228

Closed ACE07-Sev closed 5 months ago

ACE07-Sev commented 5 months ago

Is your feature request related to a problem?

This feature request would provide an objectively better performance, especially on exponentially expensive operations such as tensor contraction, which in context of quantum computing, and more specifically state preparation using MPS become massively expensive in terms of time and computation when piled up.

Whilst the package is using numpy, it's not as efficient or as fast as a C based code, so this would be a great but also difficult addition.

Describe the solution you'd like

Depending on preference, quimb should use either pybind11, or Cython to implement the computationally intensive operations, such as contraction, permutation, compression, and SVD using C code instead of python, and simply use python as the interface. This will allow for the integration of the feature without breaking the current codebase or requiring massive update for current users.

Describe alternatives you've considered

No response

Additional context

No response