<div dir="ltr">MatCreate is collective so you want to check that it is not seeing load imbalance from earlier code.<div><br></div><div>And duplicating communicators can be expensive on some systems.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 8, 2019 at 10:21 AM Ale Foggia via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello all,</div><div><br></div><div>I have a problem with the scaling of the MatCreate() function. I wrote a code to diagonalize sparse matrices and I'm running it in parallel. I've observed a very bad speedup of the code and it's given by the MatCreate part of it: for a fixed matrix size, when I increase the number of processes the time taken by the function also increases.   I wanted to know if you expect this behavior or if maybe there's something wrong with my code. When I go to (what I consider) very big matrix sizes, and depending on the number of mpi processes, in some cases, MatCreate takes more time than the time the solver takes to solve the system for one eigenvalue or the time it takes to set up the values.</div><div><br></div><div>Ale<br></div></div>
</blockquote></div>