Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: [OMPI users] Compiling an OpenMPI application with intel compilers
From: Stephen J. Barr (stephenjbarr_at_[hidden])
Date: 2012-08-12 00:33:16


Hello,

I have the latest OpenMPI on linux which I compiled with the Intel compiler
suite. I am trying to compile an OpenMPI application. My particular
application uses RInside and RcppEigen. If I comment out the openMPI parts
of my code, the compile string is:

icpc -I/usr/share/R/include -I/usr/lib/R/site-library/Rcpp/include
-I/usr/local/lib/R/site-library/RInside/include -O3 -pipe -g -Wall
 -I/usr/local/lib/R/site-library/RcppEigen/include
sjb_simple_smle_with_Rinside.cpp -L/usr/lib/R/lib -lR -lblas -llapack
-L/usr/lib/R/site-library/Rcpp/lib -lRcpp
-Wl,-rpath,/usr/lib/R/site-library/Rcpp/lib
-L/usr/local/lib/R/site-library/RInside/lib -lRInside
-Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o
sjb_simple_smle_with_Rinside

Thus, I tried to compile with mpic++ using:

mpic++ -I/usr/share/R/include -I/usr/lib/R/site-library/Rcpp/include
-I/usr/local/lib/R/site-library/RInside/include -O3 -pipe -g -Wall
 -I/usr/local/lib/R/site-library/RcppEigen/include
sjb_simple_smle_with_Rinside.cpp -L/usr/lib/R/lib -lR -lblas -llapack
-L/usr/lib/R/site-library/Rcpp/lib -lRcpp
-Wl,-rpath,/usr/lib/R/site-library/Rcpp/lib
-L/usr/local/lib/R/site-library/RInside/lib -lRInside
-Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o
sjb_simple_smle_with_Rinside

If I uncomment
#include "mpi.h"

and try to compile, I get the errors below. Is there any trick to compiling
OpenMPI applications with the Intel compilers?

Thanks,
Stephen

COMPILE ERROR:

stevejb_at_ursamajor:~/Projects/big_data_sim_mle/simple_smle/R_inside_version$
mpic++ -I/usr/share/R/include -I/usr/lib/R/site-library/Rcpp/include
-I/usr/local/lib/R/site-library/RInside/include -O3 -pipe -g -Wall
-I/usr/local/lib/R/site-library/RcppEigen/include
sjb_simple_smle_with_Rinside.cpp -L/usr/lib/R/lib -lR -lblas -llapack
-L/usr/lib/R/site-library/Rcpp/lib -lRcpp
-Wl,-rpath,/usr/lib/R/site-library/Rcpp/lib
-L/usr/local/lib/R/site-library/RInside/lib -lRInside
-Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o
sjb_simple_smle_with_Rinside -shared-intel -I/usr/local/include -pthread
-L/usr/local/lib -lmpi_cxx -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl
-lutil
/usr/local/include/openmpi/ompi/mpi/cxx/datatype.h(142): error: expected a
type specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/datatype.h(142): error: expected a
")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/datatype.h(142): error: expected an
identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/datatype.h(142): error: "virtual"
is not allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/datatype.h(142): error: expected a
";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/op.h(48): error: expected a type
specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/op.h(48): error: expected a ")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/op.h(48): error: expected an
identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/op.h(48): error: "virtual" is not
allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/op.h(48): error: expected a ";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/request.h(96): error: expected a
type specifier
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/request.h(96): error: expected a ")"
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/request.h(96): error: expected an
identifier
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/request.h(96): error: "virtual" is
not allowed
    virtual void Free(void);
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/request.h(96): error: expected a ";"
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/group.h(111): error: expected a
type specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/group.h(111): error: expected a ")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/group.h(111): error: expected an
identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/group.h(111): error: "virtual" is
not allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/group.h(111): error: expected a ";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/comm.h(264): error: expected a type
specifier
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/comm.h(264): error: expected a ")"
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/comm.h(264): error: expected an
identifier
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/comm.h(264): error: "virtual" is
not allowed
    virtual void Free(void);
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/comm.h(264): error: expected a ";"
    virtual void Free(void);
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/win.h(118): error: expected a type
specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/win.h(118): error: expected a ")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/win.h(118): error: expected an
identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/win.h(118): error: "virtual" is not
allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/win.h(118): error: expected a ";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/errhandler.h(59): error: expected a
type specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/errhandler.h(59): error: expected a
")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/errhandler.h(59): error: expected
an identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/errhandler.h(59): error: "virtual"
is not allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/errhandler.h(59): error: expected a
";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/info.h(84): error: expected a type
specifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/info.h(84): error: expected a ")"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/info.h(84): error: expected an
identifier
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/info.h(84): error: "virtual" is not
allowed
    virtual void Free();
    ^

/usr/local/include/openmpi/ompi/mpi/cxx/info.h(84): error: expected a ";"
    virtual void Free();
                 ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(39): error: expected
an identifier
  MPI::Request::Free()
                ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(38): error: inline
specifier allowed on function declarations only
  inline void
  ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(39): error:
incomplete type is not allowed
  MPI::Request::Free()
                ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(39): error: a
nonstatic member reference must be relative to a specific object
  MPI::Request::Free()
                ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(39): error: expected
an expression
  MPI::Request::Free()
                ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(39): error: expected
a ")"
  MPI::Request::Free()
                ^

/usr/local/include/openmpi/ompi/mpi/cxx/request_inln.h(40): error: expected
a ";"
  {
  ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(123): error: identifier
"ompi_op_set_cxx_callback" is undefined
      ompi_op_set_cxx_callback(mpi_op, (MPI_User_function*) func);
      ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(128): error: expected an
identifier
  MPI::Op::Free()
           ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(127): error: inline
specifier allowed on function declarations only
  inline void
  ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(128): error: incomplete
type is not allowed
  MPI::Op::Free()
           ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(128): error: a nonstatic
member reference must be relative to a specific object
  MPI::Op::Free()
           ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(128): error: expected an
expression
  MPI::Op::Free()
           ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(128): error: expected a
")"
  MPI::Op::Free()
           ^

/usr/local/include/openmpi/ompi/mpi/cxx/op_inln.h(129): error: expected a
";"
  {
  ^

sjb_simple_smle_with_Rinside.cpp(35): warning #12: parsing restarts here
after previous syntax error
  using namespace Rcpp;
                      ^

sjb_simple_smle_with_Rinside.cpp(77): error: identifier "as" is undefined
    const Map<MatrixXd> Xmat(as<Map<MatrixXd> >(Xmat_sexp));
                             ^

sjb_simple_smle_with_Rinside.cpp(77): error: type name is not allowed
    const Map<MatrixXd> Xmat(as<Map<MatrixXd> >(Xmat_sexp));
                                ^

sjb_simple_smle_with_Rinside.cpp(80): error: type name is not allowed
    const Map<MatrixXd> Ymat(as<Map<MatrixXd> >(Ymat_sexp));
                                ^

sjb_simple_smle_with_Rinside.cpp(87): error: type name is not allowed
    const Map<MatrixXd> ua(as<Map<MatrixXd> >(ua_sexp));
                              ^

sjb_simple_smle_with_Rinside.cpp(89): error: type name is not allowed
    const Map<MatrixXd> ub(as<Map<MatrixXd> >(ub_sexp));
                              ^

sjb_simple_smle_with_Rinside.cpp(98): error: type name is not allowed
    const Map<VectorXd> start_vector(as<Map<VectorXd> >(start_sexp));
                                        ^

compilation aborted for sjb_simple_smle_with_Rinside.cpp (code 2)