I'm solving an optimization problem using Bayesian analysis, which involves solving an eigenvalue problem for a sparse hermitian matrix. (Link to a brief presentation describing the problem).

The Bayesian analysis uses a number of "walkers" which explores the parameter-space. Each walker solves the eigenvalue problem for various set of model-parameters. We have been using the emcee package which parallelizes each walker using MPI. So each compute core solves the eigenvalue problem separately and this forms the bottleneck in terms of computational time.

So far I've tried eigenvalue functions from

  • tensorflow (tf.linalg.eigh)
  • scipy (scipy.sparse.linalg.eigsh)
  • numpy (numpy.linalg.eigh)

(profiling each of these can be done using this code)

and found that the solver from scipy.sparse is the fastest among the three.

Is there an already known computational architecture (GPU/CPU) in python to speedup the eigenvalue computation?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.