I have a large block diagonal matrix which I have computed using serial code. I essentially want to calculate the cholesky factorisation of each block using the scalapack routine PDPOTRF. My problem is that I cannot figure out how to generalise some of the parameters for the array descriptor. Note: I'm working in fortran.
Anyway, I have got through most of the examples and documentation and am at the stage where I have to set the various parameters ready to call the routine DESCINIT( DESC, M, N, MB, NB, IRSRC, ICSRC, ICTXT,LLD, INFO ).
I know that DESC is an integer array of size 9. M and N are equal to the global size of my matrix (M=N in this case). MB and NB is the dimension of my process grid (MB=NB too). then IRSRC and ICSRC are both zero (as I'm going to put the first entry of the matix into the process 0. ICTXT comes from a call to SL_INIT and BLACS_GRIDINFO. Which leaves me with LLD.
I simply don't quite understand how to calculate this value. Could someone give me an explanation how to do this for a matrix of size NxN, possibly with an example?
Moreover, if someone has any example code where an existing matrix NxN matrix is distributed, that would be very helpful. I just can't quite follow the example code from the documentation here.
Thanks a lot in advance for any help! - I should probably say I'm an applied mathematician and have not got a huge amount of experience using libraries.. which hopefully explains my confusion a little?