[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] GetFEM and MPI

From: Konstantinos Poulios
Subject: Re: [Getfem-users] GetFEM and MPI
Date: Fri, 20 Nov 2015 09:20:52 +0100

Dear Torquil

Regarding your first question you can also check the implementation of the method get_averaged_sigmas in

Best regards

On Thu, Nov 19, 2015 at 9:00 PM, Yves Renard <address@hidden> wrote:

Dear Torquil,

Concerning Q1, its depend on which interpolation you use. The interpolation of the high generic assembly language perform a MPI_SUM_VECTOR(result)
and divide the components for dof which are on multiple mpi regions so that the result is the same on each rank. It is recommended to use
this interpolation instead of the old one for which the result remains distributed, yes. There is no specific function. You can use
MPI_SUM_VECTOR(result) but you have to also sum a integer vector denoting the nonzero components on each rank in order to divide the multiple
computed dofs if you want to use the same strategy than the one used in the interpolation of the high generic assembly language.

Q2 : No this is no supported by Getfem. Moreover, I do  not see how it is possible in 2D and 3D for the dof that are shared with several regions ...

Best regards,


----- Mail original -----
De: "Torquil Macdonald Sørensen" <address@hidden>
À: "getfem-users" <address@hidden>
Envoyé: Jeudi 19 Novembre 2015 15:45:12
Objet: [Getfem-users] GetFEM and MPI


I'm using an MPI-enabled GetFEM, and I have two questions. I have read

Partitioning of the mesh seems to work fine on my system.

Q1: I've been trying to use getfem::interpolation_function. In the
reference documentation it says: "with the parallized version
(GETFEM_PARA_LEVEL >= 2) the resulting vector V is distributed". So
after running getfem::interpolation_function, my vector v is different
on each mpi_rank, as expected. Each rank has zeroes in V for DOFs that
are not in the corresponding MPI mesh region. How do I then collect the
vector components into a vector that is common for all MPI ranks, or at
least gather them to rank 0? Is there a functon for this in GetFEM, or
must I manually loop through the MPI region and MPI_Send the vector
components to rank 0 and/or the other MPI ranks? This is OK, but I'm
just wondering if there is a built-in function in GetFEM already which I
haven't noticed.

Q2: GetFEM doesn't seem to choose a DOF ordering so that a given MPI
rank will have a continuous range of DOF indices associated to it. I
would like to pass assembled matrices to PETSc, but PETSc relies on each
MPI rank being associated with a continuous range of row numbers. Is
there a simple way to achieve this automatically in GetFEM?

Best regards and thanks,
Torquil Sørensen

Getfem-users mailing list

Getfem-users mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]