MatMerge_SeqsToMPI

Barry Smith bsmith at mcs.anl.gov
Tue May 20 15:49:59 CDT 2008


On May 20, 2008, at 3:16 PM, Waad Subber wrote:

> Thank you Matt,
>
> Any suggestion to solve the problem I am trying to tackle. I want to  
> solve a linear system:
>
> Sum(A_i) u= Sum(f_i) , i=1.... to No. of CPUs.
>
> Where  A_i is a sparse sequential matrix and f_i is a sequential  
> vector. Each CPU has one matrix and one vector of the same size. Now  
> I want to sum up and solve the system in parallel.

    Does each A_i have nonzero entries (mostly) associated with one  
part of the matrix? Or does each process have values
scattered all around the matrix?

    In the former case you should simply create one parallel MPIAIJ  
matrix and call MatSetValues() to put the values
into it. We don't have any kind of support for the later case, perhaps  
if you describe how the matrix entries come about someone
would have suggestions on how to proceed.

   Barry

>
>
> Thanks again
>
> Waad
>
> Matthew Knepley <knepley at gmail.com> wrote: On Tue, May 20, 2008 at  
> 2:12 PM, Waad Subber wrote:
> > Hi,
> >
> > I am trying to construct a sparse parallel matrix (MPIAIJ) by  
> adding up
> > sparse sequential matrices (SeqAIJ) from each CPU. I am using
> >
> > MatMerge_SeqsToMPI(MPI_Comm comm,Mat seqmat,PetscInt m,PetscInt  
> n,MatReuse
> > scall,Mat *mpimat)
> >
> > to do that. However, when I compile the code I get the following
> >
> > undefined reference to `matmerge_seqstompi_'
> > collect2: ld returned 1 exit status
> > make: *** [all] Error 1
> >
> > Am I using this function correctly ?
>
> These have no Fortran bindings right now.
>
> Matt
>
> > Thanks
> >
> > Waad
> >
>
>
>
> -- 
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>
>
>




More information about the petsc-users mailing list