OpenFermion
OpenFermion copied to clipboard
Parallelization of Jordan-Wigner transformation
For systems of >10 orbitals, I noticed that a jordan wigner transformation on the fermionic hamiltonian is quite expensive, probably because it is pure python code so it runs on just 1 core. Is there any way of improving the speed of the get_jordan_wigner() function and/or parallelize it?
Probably. It would be nice to have faster code for this. The runtime should be roughly linear in the number of terms in the Hamiltonian. Of course, for large chemistry Hamiltonians with O(N^4) terms, that's not very good. But for the case of molecules there is a special routine that maps the InteractionOperators directly to qubits without going through the fermion Hamiltonian as an intermediate, and that is faster. Feel free to suggest a better implementation for the jordan wigner transform applied to the FermionOperator data structure.
I think at some point we might want to implement the basic transforms in Cython.