installation error

65 views
Skip to first unread message

Juan Carlos Araujo Cabarcas

unread,
Jan 23, 2018, 3:12:20 PM1/23/18
to deal.II User Group
Dear all,

I am trying to install deal.II from the GIT repository with the following features:

        petsc_ver='3.6.0';
        trilinos_ver='12.4.2';

        git clone https://github.com/dealii/dealii.git dealii

        cmake \
        -DTRILINOS_DIR=${install_dir}/trilinos-${trilinos_ver} \
        -DP4EST_DIR=${install_dir}/FAST \
        -DDEAL_II_WITH_METIS=ON \
        -DMETIS_DIR=$METIS_DIR \
        -DDEAL_II_WITH_MPI=ON \
        -DDEAL_II_WITH_THREADS=OFF \
        -DDEAL_II_WITH_UMFPACK=ON \
        -DDEAL_II_WITH_LAPACK=ON \
        -DDEAL_II_WITH_PETSC=ON \
        -DPETSC_ARCH=$PETSC_ARCH \
        -DPETSC_DIR=$PETSC_DIR \
        -DDEAL_II_WITH_SLEPC=ON \
        -DSLEPC_DIR=$SLEPC_DIR \
        -DDEAL_II_WITH_P4EST=ON \
        -DDEAL_II_WITH_ARPACK=ON \
        -DDEAL_II_WITH_TRILINOS=ON \
        -DCMAKE_INSTALL_PREFIX=${install_dir}/dealii ${install_dir}/dealii;

        make -j${virtual_proc} install;

I get the following installation error:

[ 50%] Building CXX object source/fe/CMakeFiles/obj_fe_debug.dir/fe_poly.cc.o
mypath/dealii/source/lac/scalapack.cc: In member function ‘void dealii::ScaLAPACKMatrix<NumberType>::copy_to(dealii::ScaLAPACKMatrix<NumberType>&) const’:
mypath/dealii/source/lac/scalapack.cc:243:91: error: there are no arguments to ‘MPI_Comm_create_group’ that depend on a template parameter, so a declaration of ‘MPI_Comm_create_group’ must be available [-fpermissive]
       ierr = MPI_Comm_create_group(MPI_COMM_WORLD, group_union, 5, &mpi_communicator_union);
                                                                                           ^
mypath/dealii/source/lac/scalapack.cc:243:91: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
mypath/dealii/source/lac/scalapack.cc: In instantiation of ‘void dealii::ScaLAPACKMatrix<NumberType>::copy_to(dealii::ScaLAPACKMatrix<NumberType>&) const [with NumberType = double]’:
mypath/dealii/source/lac/scalapack.cc:760:16:   required from here
mypath/dealii/source/lac/scalapack.cc:243:91: error: ‘MPI_Comm_create_group’ was not declared in this scope
mypath/dealii/source/lac/scalapack.cc: In instantiation of ‘void dealii::ScaLAPACKMatrix<NumberType>::copy_to(dealii::ScaLAPACKMatrix<NumberType>&) const [with NumberType = float]’:
mypath/dealii/source/lac/scalapack.cc:761:16:   required from here
mypath/dealii/source/lac/scalapack.cc:243:91: error: ‘MPI_Comm_create_group’ was not declared in this scope
[ 50%] Building CXX object source/grid/CMakeFiles/obj_grid_debug.dir/grid_reordering.cc.o
make[2]: *** [source/lac/CMakeFiles/obj_lac_debug.dir/scalapack.cc.o] Error 1
make[1]: *** [source/lac/CMakeFiles/obj_lac_debug.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Last time I had errors was due to Trilinos version, but I updated that one to the current in use.
Any ideas for resolving the error?

Aditionally, how can I set from GIT the last stable (tested) version?

Thanks in advance,
Juan Carlos Araújo,
Umeå Universitet

Bruno Turcksin

unread,
Jan 23, 2018, 4:13:35 PM1/23/18
to deal.II User Group
Juan Carlos


On Tuesday, January 23, 2018 at 3:12:20 PM UTC-5, Juan Carlos Araujo Cabarcas wrote:
[ 50%] Building CXX object source/fe/CMakeFiles/obj_fe_debug.dir/fe_poly.cc.o
mypath/dealii/source/lac/scalapack.cc: In member function ‘void dealii::ScaLAPACKMatrix<NumberType>::copy_to(dealii::ScaLAPACKMatrix<NumberType>&) const’:
mypath/dealii/source/lac/scalapack.cc:243:91: error: there are no arguments to ‘MPI_Comm_create_group’ that depend on a template parameter, so a declaration of ‘MPI_Comm_create_group’ must be available [-fpermissive]
       ierr = MPI_Comm_create_group(MPI_COMM_WORLD, group_union, 5, &mpi_communicator_union);

Do you need scalapack? If you don't, just add DEAL_II_WITH_SCALAPACK=OFF

Last time I had errors was due to Trilinos version, but I updated that one to the current in use.
Any ideas for resolving the error?

Aditionally, how can I set from GIT the last stable (tested) version?
Every commit is tested see https://cdash.kyomu.43-1.org/index.php?project=deal.II It happens that we break something but it's pretty rare so you should be fine using master

Best,

Bruno

Wolfgang Bangerth

unread,
Jan 23, 2018, 5:02:14 PM1/23/18
to dea...@googlegroups.com
On 01/23/2018 02:13 PM, Bruno Turcksin wrote:
>
> mypath/dealii/source/lac/scalapack.cc:243:91: error: there are no
> arguments to ‘MPI_Comm_create_group’ that depend on a template parameter,
> so a declaration of ‘MPI_Comm_create_group’ must be available [-fpermissive]
> ierr = MPI_Comm_create_group(MPI_COMM_WORLD, group_union, 5,
> &mpi_communicator_union);
>
> Do you need scalapack? If you don't, just add DEAL_II_WITH_SCALAPACK=OFF

Out of curiosity, can you also send the output of the detailed.log file in
your build directory?

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Juan Carlos Araujo Cabarcas

unread,
Jan 24, 2018, 9:34:52 AM1/24/18
to deal.II User Group
Please find the file: detailed.log attached.
detailed.log

Wolfgang Bangerth

unread,
Jan 25, 2018, 12:29:53 PM1/25/18
to dea...@googlegroups.com
On 01/24/2018 07:34 AM, Juan Carlos Araujo Cabarcas wrote:
> Please find the file: detailed.log attached.
>
> El martes, 23 de enero de 2018, 17:02:14 (UTC-5), Wolfgang Bangerth
> escribió:
>
> On 01/23/2018 02:13 PM, Bruno Turcksin wrote:
> >
> >     mypath/dealii/source/lac/scalapack.cc:243:91: error: there
> are no
> >     arguments to ‘MPI_Comm_create_group’ that depend on a
> template parameter,
> >     so a declaration of ‘MPI_Comm_create_group’ must be available
> [-fpermissive]
> >             ierr = MPI_Comm_create_group(MPI_COMM_WORLD,
> group_union, 5,
> >     &mpi_communicator_union);

It confused me that you are compiling the scalapack file but get an
error message that a particular MPI function was not found. This would
ordinarily suggest that either scalapack.cc is missing an #include of
<mpi.h> (which is not the case) or that your installation is not
configured with MPI (which is the case for you). So the error did not
make sense to me at first.

But it turns out that the call in question, MPI_Comm_create_group is a
function that was only added to MPI in version 3.0. Apparently all of us
use an MPI installation that is sufficiently up to date. What is the
version you use?
Message has been deleted

Juan Carlos Araujo Cabarcas

unread,
Jan 26, 2018, 8:59:39 AM1/26/18
to deal.II User Group
Hi, when I install PETSc I allow the configuration process to download the necessary libraries it needs:

./config/configure.py --with-shared=1 --with-x=0 --with-mpi=1 --with-scalar-type=complex --download-mumps --download-metis --download-parmetis --download-superlu_dist --download-blacs --download-scalapack --download-superlu_dist

From the dealii detailed.log I see that:
MPI_VERSION = 2.1
OMPI_VERSION = 1.6.5

From the terminal:
$ mpicc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

So it seems I need to upgrade to MPI 3.0.
Thanks, for having a look at this.

Wolfgang Bangerth

unread,
Jan 26, 2018, 9:03:58 AM1/26/18
to dea...@googlegroups.com
On 01/26/2018 06:59 AM, Juan Carlos Araujo Cabarcas wrote:
>
> From the dealii detailed.log I see that:
>
> MPI_VERSION = 2.1
> OMPI_VERSION = 1.6.5
>
> From the terminal:
>
> $ mpicc --version
> gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
>
> So it seems I need to upgrade to MPI 3.0.
> Thanks, for having a look at this.

That's one option. You could also try to modify the place in deal.II where we
use MPI_Comm_create_group to use MPI_Comm_create instead. The difference
between the two functions is minor, and may be useful to keep our interface at
MPI 2.x. Any patch would of course be appreciated!
Reply all
Reply to author
Forward
0 new messages