Hello Luca:
Thanks, this makes sense, but I am scratching my head regarding
this situation:
1) Once the correct compilers are used, I run "mpiexec -np 2 ./step-17"
and get an error that METIS is not installed. I installed libparmetis-dev
and try and try to compile, but get a huge number of compile errors
regarding conflicting declarations of many MPI::FUNCTIONs. Before I go
any farther with this, it occured to me that should I be using the
serial version of METIS, correct?
2) Shouldn't the configure script automagically set CC,CXX,and F77 to
the MPI wrappers if PETSc is specified (since PETSc requires MPI)?
3) I still do not understand why calling the MPI functions when deal.II
is not compiled to support MPI does not result in an error state.
As-is, there is zero indication to the user that he/she is just running
many individual copies of the program, other than a crash and the
subsequent wasted time of trying to debug.
Nasser
Luca Heltai wrote:
Nasser,
you should specify the mpi compilers in the configure line. You can do
something like this:
./configure --with-petsc=/usr/lib/petscdir/3.0.0
--with-petsc-arch=linux-gnu-c-opt CC=mpicc CXX=mpic++ F77=mpif77
and everything should work.
Your analysis is correct, in the sense that deal.II thinks that mpi is
not there, and fills the values of the internal mpi functions with the
defaults (id=0, nprocs=1), for consistency reasons.
If you specify mpi compilers, they are detected, and those functions
should work properly.
Luca.
--
Luca Heltai <[email protected]>
http://people.sissa.it/~heltai/
Scuola Internazionale Superiore di Studi Avanzati
Phone: +39 040 3787 449, Office: 255
--
There are no answers, only cross references.
On 29/ott/2009, at 13.27, Nasser Mohieddin Abukhdeir wrote:
Hello Wolfgang:
I am definitely getting the output twice and I applied the patch
and reran "mpiexec -np 2 ./step-17" on my machine. The first part of
the error follows this message, the OpenMPI package in Ubuntu 8.10 is
version 1.3.2-3. I did some fiddling, and it seems both MPI processes
are being given the same ID of 0. I found that in the utilities.cc code
the #define DEAL_II_COMPILER_SUPPORTS_MPI not existing would default to
functions that return 1 for get_n_mpi_processes() and 0 for
get_this_mpi_process() which is probably what happens, thus I have two
questions:
• Am I compiling deal.II correct? I used "./configure
--with-petsc=/usr/lib/petscdir/3.0.0 --with-petsc-arch=linux-gnu-c-opt"
and then "make debug optimized" and the configure script gives this
output:
---------------- configuring additional libs ----------------
checking for PETSc library directory... /usr/lib/petscdir/3.0.0
checking for PETSc version... 3.0.0
checking for PETSc library architecture... linux-gnu-c-opt
checking for PETSc libmpiuni library...
I also checked in the makefile, in "common/Make.global_options" and I
do not see the compilers specified as "mpiCC" etc
• In utilities.cc, do you think it would be a better idea to throw
an error if the user's code uses PETSC and PETSC is not available?
Thanks.
Nasser
|
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii