Hi,
My name is Jason Sadowski and am currently performing research in the
Department of Physics and Engineering Physics at the University of
Saskatchewan. I am using ScaLapack to perform calculations for the
project I am currently working on which is a study of the interface
between d-wave and s-wave superconductivity. I have a few questions
regarding efficient access of the distributed matrix elements. First I
will quickly summarize the calculation I am trying to perform.
For this project I must essentially solve an eigenvalue problem
repeatedly. For this I am using the routine PDSYEVD to generate the
eigenvalues and eigenvectors on a distributed memory architecture. The
diagonalization of the matrix with this routine is very fast, however
the problem I have comes from the analysis after the diagonalization.
The overall routine is an iterative process, so I must perform some
calculation using the eigenvectors, and then use the results to
re-evaluate the matrix elements and repeat this until the results
converge.
The problem is that accessing the eigenvectors using PDELGET requires
upwards of 10x more time than the original diagonalization routine (Due
to the repeated broadcasts). This extra time eliminates the advantage
of using a parallel routine. Is it possible to broadcast the
distributed matrix of eigenvectors so that all nodes have a copy of the
total matrix (similar to the allgatther operation in mpi) ?
Thanks in advance,
Jason Sadowski
Department of Physics and Engineering Physics
University of Saskatchewan
|