<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><br></div> Is your code sequential (with possibly OpenMP) or MPI parallel? Do you plan to make your part of the code MPI parallel?<div><br></div><div> If it is sequential or OpenMP parallel you might consider using the new feature <a href="https://petsc.org/release/manualpages/PC/PCMPI/#pcmpi">https://petsc.org/release/manualpages/PC/PCMPI/#pcmpi</a> Depending on your system it is an easy way to run linear solver in parallel while the code is sequential and can give some reasonable speedup.<br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Oct 26, 2023, at 8:58 AM, Qiyue Lu <qiyuelu1@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr">Hello,<br><div>I am trying to incorporate PETSc as a linear solver to compute Ax=b in my code. Currently, the sequential version works. </div><div>1) I have the global matrix A in CSR format and they are stored in three 1-dimensional arrays: row_ptr[ ], col_idx[ ], values[ ], and I am using MatCreateSeqAIJWithArrays to get the PETSc format matrix. This works. </div><div>2) I am trying to use multicores, and when I use "srun -n 6", I got the error <b>Comm must be of size 1</b> from the MatCreateSeqAIJWithArrays. Saying I cannot use SEQ function in a parallel context. </div><div>3) I don't think MatCreateMPIAIJWithArrays and MatMPIAIJSetPreallocationCSR are good options for me, since I already have the global matrix as a whole. </div><div><br></div><div>I wonder, from the global CSR format data, how can I reach the PETSc format matrix for parallel KSP computation. Are the MatSetValue, MatSetValues what I need?</div><div><br></div><div>Thanks,</div><div>Qiyue Lu</div></div>
</div></blockquote></div><br></div></body></html>