Hi.
I want to use psgemm to multiply a matrix A by its transpose on its left-hand-side, namely: C = At * A
I am trying to run a simple program with 9 processors placed in a 3x3 grid. Each processor generates a random square matrix, Ablock, of size block_dim x block_dim (choosing here block_dim = 10), that is a submatrix of A. Hence the global matrix A is a 30x30 matrix.
myrow and mycol are the row and column grid indexes of processors.
idesca and idescc are the descriptors of matrices A and C.
C is initialized as a block_dim x block_dim array.
I call psgemm as follows, but I get a segmentation fault:
psgemm_('T', 'N', block_dim, block_dim, block_dim, &one, Ablock, myrow * block_dim, mycol * block_dim, idesca, Ablock, myrow * block_dim, mycol * block_dim, idescal, &zero, C, myrow * block_dim, mycol * block_dim, idescc);
what am I doing wrong?