<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jul 23, 2018 at 4:26 AM 金degang <<a href="mailto:328937290@qq.com">328937290@qq.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hello,</div><div>      I am a beginner user.  I meet a problem.  I have a very big matrix.  In shaping the matrix, every nodes produce some rows of it. So it is very easy to store it with files at every node.  In the solve Ax=b, I hope every node to read the file and construct the big matrix in parallel. Every file's is a sub matrix which is row block. So I use MatCreateMPIAIJWithArrays to Create the matrix.</div></blockquote><div><br></div><div>1) Just give PETSC_DETERMINE for the number of local columns</div><div><br></div><div>2) I would caution you about this design. I do not think it will accomplish what you want:</div><div><br></div><div>  a) Modern machines are not scalable with respect to file I/O. Thus reading for a bunch of files</div><div>       onto a bunch of processes will not scale well. You just want to put it in a single file and</div><div>       distribute from proc 0. If you use PETSc binary or HDF5, it will do this.</div><div><br></div><div>   b) Using separate files prescribes the parallelism, which is inflexible. Done the other way, you</div><div>        can launch on any number of processes.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>For example: </div><div> -1<span style="white-space:pre-wrap">     </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0</div><div>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span></div><div>---------------------------------------------------------------</div><div>0<span style="white-space:pre-wrap">  </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0</div><div>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0</div><div>---------------------------------------------------------------<span style="white-space:pre-wrap"> </span></div><div>0<span style="white-space:pre-wrap">        </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span></div><div>0<span style="white-space:pre-wrap">        </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span></div><div>---------------------------------------------------------------</div><div>0<span style="white-space:pre-wrap">  </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>0<span style="white-space:pre-wrap">       </span></div><div>0<span style="white-space:pre-wrap">        </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span></div><div>---------------------------------------------------------------</div><div>0<span style="white-space:pre-wrap">  </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span>2<span style="white-space:pre-wrap">       </span></div><div>0<span style="white-space:pre-wrap">        </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>0<span style="white-space:pre-wrap">       </span>-1<span style="white-space:pre-wrap">      </span></div><div><br></div><div>Node 1    0-1 row block   </div><div> Node 2   2-3 row block  </div><div>Node 3   4-5 row block</div><div>Node 4   6-7 row block</div><div>Node 5  8-9 row block</div><div><br></div><div>use </div><div><br></div><div>MatCreateMPIAIJWithArrays(PETSC_COMM_SELF, 2, 10, 10,10, i,j,a); for node1</div><div>MatCreateMPIAIJWithArrays(PETSC_COMM_SELF, 2, 10, 10,10, i,j,a); for node2</div><div>MatCreateMPIAIJWithArrays(PETSC_COMM_SELF, 2, 10, 10,10, i,j,a); for node3</div><div>MatCreateMPIAIJWithArrays(PETSC_COMM_SELF, 2, 10, 10,10, i,j,a); for node4</div><div>MatCreateMPIAIJWithArrays(PETSC_COMM_SELF, 2, 10, 10,10, i,j,a); for node5</div><div><br></div><div>but there are error .   sum of cols of five nodes is not equal 10 (global column).</div><div><br></div><div>How to solve this problem,  Hope to get your help!</div><div><br></div><div>thanks</div><div><br></div><div>Degang Jin</div></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div>