I'm new to using ScaLAPACK and am experiencing unexpected hangs when using pdsyrk for matrix multiplication. My application involves variable matrix shapes depending on the user's input data, so I need to have a flexible code. I have developed a working test code that runs fine for square matrices but that sometimes fails for rectangular matrices. The problem is that it never returns from the call to pdsyrk (even after waiting for several minutes for something that should only take a few seconds). Here are some example tests:
Grid | Matrix | pdsyrk returns?
2 x 2 4000 x 4000 yes
2 x 2 1000 x 4000 no
2 x 2 4000 x 1000 yes
1 x 4 1000 x 4000 yes
2 x 4 1000 x 4000 no
4 x 4 1000 x 4000 yes
So short fat matrices fail on a small square processor grid (2 x 2) but work on either larger processor grids or a rectangular grid (1 x 4). Tall skinny matrices work fine. To add to the complications, the above failures only occur on one of my two testing platforms.
Any insights or advice would be greatly appreciated.