On Sun, Oct 26, 2008 at 7:21 PM, Matthew Knepley <[EMAIL PROTECTED]> wrote:
> On Sun, Oct 26, 2008 at 8:13 AM, Evan Lezar <[EMAIL PROTECTED]> wrote: > > > > > > On Sun, Oct 26, 2008 at 2:41 PM, Garth N. Wells <[EMAIL PROTECTED]> wrote: > >> > >> Whether or not something is being run in parallel should be determined > by > >> the number of processes, > >> > >> uint dolfin::MPI::num_processes() > >> > >> Garth > > > > Yes, I am aware of that, but I want to have a bit more control over the > > parallelisation. What I want is a number of processes each solving an > > independent eigenvalue system (actually I am doing a sweep in frequency > for > > an electromagnetic problem and each frequency point has its own > > eigensystem). > > There is aleady an elegant mechanism for controlling this, namely the > communicator. > Every PETSc object has a communicator, thus determining how many processes > participate. Why make up another, less powerful mechanism? > > Matt > Fair enough. I have to admit that I am new to PETSc and MPI programming in general, but from what I gather from the existing PETScMatrix code is that the only two communicators used are PETSC_COMM_WORLD and PETSC_COMM_SELF. The selection of these is based on the value of MPI::num_processes() and as such I have no controll over the communicator used, so in my opinion some work is needed in this regard. Evan > > > I did send an earlier mail discussing this. > > > > Any help with swig would be much appreciated. > > > > Evan > > > >> > >> Evan Lezar wrote: > >>> > >>> Hi > >>> > >>> I have added a constructor to PETScMatrix to allow me to control > whether > >>> the matrix is to be created in parallel or not. The declarations are > given > >>> below > >>> > >>> /// Create empty matrix > >>> explicit PETScMatrix(Type type=default_matrix); > >>> > >>> /// Create an empty matrix explicitly setting the parallel flag > >>> explicit PETScMatrix(bool is_parallel, Type type=default_matrix); > >>> > >>> The idea is that I use > >>> > >>> S = PETScMatrix(False) > >>> If I want to create a matrix that is local. The problem is that swig > >>> can't differentiate between Type and bool (and uint for the > PETScMatrix(uint > >>> M, uint N, Type type=default_matrix); constructor). I have seen that > it is > >>> possible to rename PETScMatrix(bool) to PETScMatrix_bool(bool) for > example > >>> so that the python call would be > >>> > >>> S = PETScMatrix_bool(False), > >>> > >>> but I can't seem to get this working. Any suggestions? > >>> > >>> Thanks > >>> Evan > >>> > >>> > >>> > ------------------------------------------------------------------------ > >>> > >>> _______________________________________________ > >>> DOLFIN-dev mailing list > >>> [email protected] > >>> http://www.fenics.org/mailman/listinfo/dolfin-dev > >> > > > > > > _______________________________________________ > > DOLFIN-dev mailing list > > [email protected] > > http://www.fenics.org/mailman/listinfo/dolfin-dev > > > > > > > > -- > 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 >
_______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
