I would like to request support for solving many independent small systems where each system is distributed along the axis being solved.
My use case is a structured-grid PDE code. The domain is decomposed across MPI ranks in the y direction. Each rank owns data shaped logically like:
nx * nz * ny_local
I need to solve many independent pentadiagonal systems in y, one for each (x, z) line.
At the moment, it is not clear that cuDSS supports this use case. The documentation appears inconsistent:
- The release notes for cuDSS 0.6.0 say: “Disabled support for batched matrices in the MGMN mode.”
- The current MGMN limitations say: “MGMN mode does not support matrix batches.”
cudssMatrixCreateBatchDn()also says: “MGMN mode does not support matrix batches.”- However, the
cudssExecute()documentation still describes requirements “in the batch case” for MGMN, including that all processes must have a validbatchCount. - The Examples for MGMN say that it is for large matrices.
What is the current support status of batches for MGMN?
It would be very useful if cuDSS supported this class of problems directly: many independent tridiagonal/pentadiagonal/banded systems, with each system distributed along the solve direction.
My current approaches to the problem are
- global transpose before/after the solve, and use cusparse
- custom distributed Schur-like pentadiagonal solver (cusparse does not expose the partially eliminated matrix, so I have do to this myself)
Thanks in advance!