I am trying to use Scalapack to calculate the eigenvalues of a large matrix using the pzheevd. If I use all processes to calculate a single matrix everything seems to work fine. But i would like to calculate different matrices in parallel:
Say I have 32 processes then I'd divide it into a 32 = 4 x 8 grid. Where I distribute my matrices across 4 processes and then calculate 8 matrices in parallel.
I tried to do this using MPI_Comm_split, but I realized that Scalapack doesn't use a communicator provided by the user. Instead it uses BLACS grids. How can I distribute my Scalapack matrices such that I have parallelism between matrices as well as within one matrix?
I couldn't find any examples and I couldn't understand how the BLACS grid is divided. Could you tell me some decent resources? Are there any alternative libraries that rely on MPI rather than PVM?