getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] Questions regarding Parallelization version of GetFEM


From: David Danan
Subject: Re: [Getfem-users] Questions regarding Parallelization version of GetFEM/add_initialized_matrix_data
Date: Fri, 2 Jun 2017 17:48:49 +0200

Dear Yves,

first thanks for your answers, once again. The "Reshape(M_fibres,3,3):Grad_Test_u" seems to work just fine.

Regarding the installation of the parallel version of Getfem, i found out what was wrong for the linking (it is necessary to add environment variables for homebrew and reinstall openmpi and its dependencies from source so that mpicc/mpic++ are not linked to the apple gcc/g++).  Now, the compilation of a test case is possible but it fails at the execution at a very specific point.

$ ./elastostatic elastostatic.param
Trace 1 in elastostatic.cc, line 501: Running parallelized Getfem level 2
MESH_FILE=structured:GT="GT_PK(2,1)";SIZES=[1,1];NOISED=0
FEM_TYPE=FEM_PK(2,1)
INTEGRATION=IM_TRIANGLE(6)
temps creation maillage 0.00184703
Selecting Neumann and Dirichlet boundaries
enumerate dof time 0.00225782
temps init 0.00539494
begining resol
Number of dof for P: 600
Number of dof for u: 242
Total number of variables : Trace 2 in getfem_models.cc, line 4558: Mass term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 4602: Source term assembly for Dirichlet condition
904
Trace 2 in getfem_models.cc, line 6455: Linearized isotropic elasticity: generic matrix assembly
Trace 2 in getfem_models.cc, line 3481: Linear incompressibility: generic matrix assembly
Trace 2 in getfem_models.cc, line 3328: Generic source term assembly
Trace 2 in getfem_models.cc, line 3335: Source term: generic source term assembly
Trace 2 in getfem_models.cc, line 3342: Source term: generic matrix assembly
Trace 2 in getfem_models.cc, line 3328: Generic source term assembly
Trace 2 in getfem_models.cc, line 3335: Source term: generic source term assembly
Trace 2 in getfem_models.cc, line 3342: Source term: generic matrix assembly
Trace 2 in getfem_models.cc, line 4558: Mass term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 4602: Source term assembly for Dirichlet condition
Assembly time 0.014689
dyld: lazy symbol binding failed: Symbol not found: _mpi_bcast_
  Referenced from: /usr/local/opt/mumps/lib/libdmumps.dylib
  Expected in: flat namespace

dyld: Symbol not found: _mpi_bcast_
  Referenced from: /usr/local/opt/mumps/lib/libdmumps.dylib
  Expected in: flat namespace

Trace/BPT trap: 5

Here are my configure options
./configure CXX=g++-7 CC=gcc-7 MPICXX=mpic++ MPICC=mpicc CXXFLAGS=-g --with-mumps-include-dir="-I/usr/local/Cellar/mumps/5.0.2_1/include/" CPPFLAGS='-I/usr/local/Cellar/open-mpi/2.1.1/include' LDFLAGS='-L/usr/local/Cellar/mumps/5.0.2_1/lib -L/usr/local/lib  -L/usr/local/Cellar/open-mpi/2.1.1/lib' LIBS="-lmumps_common -lpord" --enable-paralevel=2 --enable-qhull --enable-python=no --enable-mumps --enable-boost --enable-shared --with-optimization=-O2 --with-pic --with-mumps="smumps dmumps cmumps zmumps"

By any chance, did i forget a tag/option/something else necessary here?
Thanks in advance for your help,
David.
 

2017-05-19 20:25 GMT+02:00 Yves Renard <address@hidden>:

Dear David,

First, please now use the list address@hidden. GetFEM has been migrated to Savannah and the old list
address@hidden is not to be used anymore and will be deactivated soon.

Concerning your first question, I am not familiar with Mac OS, but it seems that the mpi library (libmpi) has not been linked. Make sure that it is installed and detected by the configure file.

Concerning the second question, you are right, there were an error in src/getfem_generic_assembly.cc in line 9521. "pnode->init_vector_tensor(n);" has to be replaced by "pnode->t.adjust_sizes(workspace.qdims(name));". I make a commit of this change. Alternatively, you can use "Reshape(M_fibres,3,3):Grad_Test_u", it should work as well.

Thank you for your bug report,

Yves.



Le 18/05/2017 à 13:13, David Danan a écrit :
Dear Getfem users,

i have several questions regarding completely different issues:

1) I am struggling to install the parallel version of Getfem (on OS X Yosemite).

After the first steps without visible issues/errors (./configure, make, make install), when i try to compile one of the test cases, i have the following errors

Undefined symbols for architecture x86_64:
  "_MPI_Allreduce", referenced from:
      double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
      double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
  "_MPI_Comm_rank", referenced from:
      elastostatic_problem::compute_error(std::vector<double, std::allocator<double> >&) in elastostatic.o
      _main in elastostatic.o
  "_MPI_Finalize", referenced from:
      _main in elastostatic.o
  "_MPI_Init", referenced from:
      _main in elastostatic.o
  "_MPI_Wtime", referenced from:
      elastostatic_problem::init()      in elastostatic.o
      elastostatic_problem::solve(std::vector<double, std::allocator<double> >&) in elastostatic.o
      _main in elastostatic.o
  "_ompi_mpi_comm_world", referenced from:
      double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
      double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
      elastostatic_problem::compute_error(std::vector<double, std::allocator<double> >&) in elastostatic.o
      _main in elastostatic.o
  "_ompi_mpi_double", referenced from:
      double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
      double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
  "_ompi_mpi_op_sum", referenced from:
      double getfem::asm_L2_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
      double getfem::asm_H1_semi_norm_sqr<std::vector<double, std::allocator<double> >, double>(getfem::mesh_im const&, getfem::mesh_fem const&, std::vector<double, std::allocator<double> > const&, getfem::mesh_region const&, double) in elastostatic.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [elastostatic] Error 1

Here is the options i used for configure
./configure CXX=g++-7 MPICXX=mpic++ CXXFLAGS=-g --with-mumps-include-dir=/usr/local/Cellar/mumps/5.0.2_1/include/ --with-blas=/usr/local/opt/openblas/include LDFLAGS='-L/usr/local/Cellar/mumps/5.0.2_1/lib -L/usr/local/lib -L/usr/local/opt/openblas/lib  -L/usr/local/Cellar/open-mpi/2.1.1/lib/' --enable-paralevel=2 --enable-qhull --enable-python=no --enable-mumps --enable-boost --enable-shared --with-optimization=-O2 --with-pic

If it is not enough, please find enclosed the config.log.


2) I wanted to consider a matrix in a problem, therefore i used

  base_matrix M_fibres(3,3);
//Definition of the matrix ommited here
  model.add_initialized_matrix_data("M_fibres", M_fibres);

However, when i added the associated brick in the model:
 getfem::add_linear_generic_assembly_brick(model, mim,"M_fibres:Grad_Test_u");

it generated the following error

M_fibres:Grad_Test_u
--------^
Frobenius product of expressions of different sizes (9,1 != 3,3).
terminate called after throwing an instance of 'gmm::gmm_error'
  what():  Error in getfem_generic_assembly.cc, line 7164 :
Error in assembly string
Abort trap: 6

It seems M_fibres is seen as a 9x1 vector instead of a 3x3 matrix, if i am not mistaken. Is there another way to do it?

Thanks in advance for your help,
David.


_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users


-- 

  Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
  Pole de Mathematiques, INSA-Lyon             fax : (33) 04.72.43.85.29
  20, rue Albert Einstein
  69621 Villeurbanne Cedex, FRANCE
  http://math.univ-lyon1.fr/~renard

---------



reply via email to

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