<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.17080" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>Dear 
Developers,</FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>I have a Matrix and 
a Right Hand Side (RHS) </FONT><FONT face=Arial><FONT size=2>in an ASCII format 
stored in&nbsp;2 different files. I have written the code that reads the data 
and solve the system in sequential. I would like to solve the same problem in 
parallel. I read the FAQ section that says:</FONT></FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial><FONT 
size=2></FONT></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010>Never read or write in parallel an ASCII 
matrix file, instead for reading: read in sequentially then save the matrix with 
the binary viewer PetscBinaryViewerOpen() and load the matrix in parallel with 
MatLoad().</SPAN></DIV>
<DIV><SPAN class=483223209-29092010></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>So far, I did not 
manage to implement this. Could any one help me?</FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>My matrix is in the 
Matrix Market format. I have put below&nbsp;my current 
implementation.</FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>Kind 
regards,</FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010>&nbsp;&nbsp;&nbsp; <FONT face=Arial 
size=2>-Pierre.</FONT></SPAN></DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; 
PetscInitialize(&amp;argc,&amp;argv,(char *)0,help);<BR>&nbsp; ierr = 
MPI_Comm_size(PETSC_COMM_WORLD,&amp;size);CHKERRQ(ierr);<BR>&nbsp; if (size != 
1) SETERRQ(1,"This is a uniprocessor example only!");</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; /* Read in 
matrix */<BR>&nbsp; ierr = 
PetscOptionsGetString(PETSC_NULL,"-fin",filein,127,PETSC_NULL);CHKERRQ(ierr);<BR>&nbsp; 
ierr = PetscFOpen(PETSC_COMM_SELF,filein,"r",&amp;file);CHKERRQ(ierr);<BR>&nbsp; 
</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; /* find out 
size of sparse matrix .... */<BR>&nbsp; 
fgets(buf,PETSC_MAX_PATH_LEN-1,file);<BR>&nbsp; printf("%s",buf);<BR>&nbsp; 
fscanf(file,"%d %d %d\n",&amp;M,&amp;N,&amp;nz);</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; ierr = 
PetscPrintf(PETSC_COMM_SELF,"M: %d, N: %d, nz: 
%d\n",M,N,nz);CHKERRQ(ierr);</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; 
MatCreate(PETSC_COMM_WORLD,&amp;A);<BR>&nbsp; 
MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,M,N);<BR>&nbsp; 
MatSetType(A,MATAIJ);<BR>&nbsp; MatSetUp(A);</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; for (i=0; 
i&lt;nz; i++){<BR>&nbsp;&nbsp;&nbsp; fscanf(file,"%d %d 
%le\n",&amp;I,&amp;J,(double*)&amp;val);<BR>&nbsp;&nbsp;&nbsp; I = I-1; J = 
J-1;<BR>&nbsp;&nbsp;&nbsp; ierr = 
MatSetValues(A,1,&amp;I,1,&amp;J,&amp;val,INSERT_VALUES);CHKERRQ(ierr);<BR>&nbsp; 
}</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; ierr = 
MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr);<BR>&nbsp; ierr = 
MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr);</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=483223209-29092010><FONT face=Arial size=2>&nbsp; if (file 
!=stdin) fclose(file);<BR>&nbsp; ierr = PetscPrintf(PETSC_COMM_SELF,"Reading 
matrix completes.\n");CHKERRQ(ierr);<BR></FONT></SPAN></DIV> <br>
********************************************************************<br>
This email and any attachments are confidential to the intended<br>
recipient and may also be privileged. If you are not the intended<br>
recipient please delete it from your system and notify the sender.<br>
You should not copy it or use it for any purpose nor disclose or<br>
distribute its contents to any other person.<br>
********************************************************************<br>
<br>
</body></HTML>