"numroc" vs "local_size"

Open discussion regarding features, bugs, issues, vendors, etc.

"numroc" vs "local_size"

Postby slavic » Wed Sep 17, 2014 4:20 am


I am studying Scalapack, and faced some difficulties with Cpdgemr2d.

I am trying to use Cpdgemr2d to redistribute the dense matrix with 500 rows on 4x4 process grid changing the number of rows and columns per block.
One of the matrix (destination) has 10 rows per block. Function “numroc” gives 130 number of local rows for the 0 process in the row and 120 local rows for other process rows.
I use these numbers as LDA in the matrix descriptor. However, Cpdgemr2d gives me the error message: “??MR2D:bad lda arg:row=1,m=500,p=4,nbrow=10,lda=120,sprow=0”.
I tracked the origin of the message and found that Cpdgemr2d calls “paramcheck” function that checks that lda >= than result of “local_size” function (located in pgemraux.c).
“local_size” function gives 130 rows for process row with index 1.

Why "numroc" and "local_size" give different numbers? Am I missing something?
I could not find similar quesiton on this forum, sorry if it is a repetition. Thank you for your help in advance.
Posts: 1
Joined: Wed Sep 17, 2014 3:41 am

Return to User Discussion

Who is online

Users browsing this forum: No registered users and 37 guests