Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I would like to diagonalize one unitary non-sparse matrix of size 12870 with complex number entries (not symbols, this is really a numerical problem). Is is possible to make eigensystem run in parallel - I have access to a HPC cluster with many kernels - so that the diagonalization runs as fast as possible?

share|improve this question
Likely the best approach to this problem is to use/write a parallel solver in your favorite traditional language and call it from mathematica. –  george2079 May 23 '14 at 14:42
I guess it can help you: mathematica.stackexchange.com/questions/13419/… –  Rom38 May 23 '14 at 15:02
Have you tried it? Eigenvalues for instance should use all available cores on the machine it's running. By the way 12870 is Binomial[16, 8] so presumably you're looking at spinless fermions on a 16-site lattice at half filling? And the entries are complex so you are looking at a time-dependent H? Or maybe a density matrix? (idle guessing here while waiting for mma to finish something) –  acl May 23 '14 at 17:01
@acl . You are close! Eigenvalues uses all the cores (there are 12 nodes) but still takes 2 hours. I need to do this for 500 matrices of the same size. –  lagoa May 23 '14 at 20:07
For a dense numerical problem, that you want to distribute over a cluster--provided that it can be done at machine precision, my suggestion would be to use ScaLAPACK (but make sure that your cluster has InfiniBand). But I think that @acl's suggestion of doing the 500 matrices in parallel one on each node, rather than one at a time over all nodes, will be more computationally efficient. –  Oleksandr R. May 24 '14 at 0:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.