[OMPI users] Compiling an OpenMPI application with intel compilers

2012-08-12 Thread Stephen J. Barr
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@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
   

Re: [OMPI users] User Interface for MPMD

2012-08-12 Thread Ralph Castain
r27012 implements this for you - it is in the OMPI trunk and should make it 
into the 1.7.0 release.

The info keys you want are:

for item (1): "num_app_ctx"
for item (2): "first_rank" - returns a space-separated list of 1st ranks for 
each app_context ("instance" in your terminology)
for item (3): "np" - returns a space-separated list of num procs for each 
app_context

HTH
Ralph


On Aug 10, 2012, at 4:19 PM, Frank Kampe  wrote:

> Thanks to all for your help.
> 
> 
> From: users-boun...@open-mpi.org [users-boun...@open-mpi.org] on behalf of 
> Ralph Castain [r...@open-mpi.org]
> Sent: Friday, August 10, 2012 4:50 PM
> To: Open MPI Users
> Subject: Re: [OMPI users] User Interface for MPMD
> 
> ...and, as I told Jeff on the phone, I already signed up to implement it for 
> the 1.7 series :-)
> 
> Should get to it next week. In the interim, you could access that data 
> directly from the ORTE structures, but it would be a tad ugly - probably 
> easier for me to get this implemented for you if your timing can wait.
> 
> 
> On Aug 10, 2012, at 2:42 PM, Jeff Squyres  wrote:
> 
>> Ah, I was wrong: it wasn't Adam Moody -- it was Marc Snir's proposal.  It's 
>> MPI Forum 3.0 ticket #313:
>> 
>>   https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/313
>> 
>> Download the 313.pdf to see the changes for this proposal.  It did pass and 
>> will be part of MPI-3.0.
>> 
>> Basically, MPI now defines a pre-defined MPI_Info object named MPI_INFO_ENV 
>> containing the information that you are looking for.
>> 
>> ***NOTE: the MPI_INFO_ENV name is different than what is shown in the 
>> 313.pdf -- see the MPI-3 draft doc document for the final/official text: 
>> http://meetings.mpi-forum.org/MPI_3.0_main_page.php).
>> 
>> 
>> 
>> On Aug 10, 2012, at 4:45 PM, Jeff Squyres wrote:
>> 
>>> I swear that there was an MPI-3 proposal for just about exactly this issue 
>>> (because there is currently no MPI-standardized way to get this 
>>> information).
>>> 
>>> I honestly don't remember what happened to this proposal, but I know who 
>>> made it (Adam Moody, from Livermore).  I've just pinged him off list to 
>>> find out what happened to that proposal.
>>> 
>>> Stay tuned...
>>> 
>>> 
>>> 
>>> On Aug 10, 2012, at 1:50 PM, Frank Kampe wrote:
>>> 
 OK.  I think I am not being clear and am using the wrong terms.  For 
 example, suppose we launch and MPMD job:
 
 mpirun -np 1 a.out : -np 8 a.out2 : -np 512 a.out3
 
 There are three "instances" invoked here---that's info item(1).  In other 
 words, how many executables are started.  Given MPMD mode, the entire set 
 of apps belong to the same MPI_COMM_WORLD. So, MPI Task 0 is the MPI rank 
 of the process executing a.out, MPI Task 1 is the 1st MPI rank for 
 process(s) executing a.out2, and Task 9 is the 1st MPI rank for 
 processes(s) executing a.out3.  That's the info in item (2) below.  
 Finally number of tasks for instance 1 is 1, for instance 2 is 8, and for 
 instance 3 is 512---that's item (3).
 
 What user-callable interface does OpenMPI provide to get that information 
 in a.out, a.out2, and a.out3 during run-time?
 
 Thanks.
 
 
 From: users-boun...@open-mpi.org [users-boun...@open-mpi.org] on behalf of 
 Ralph Castain [r...@open-mpi.org]
 Sent: Friday, August 10, 2012 12:00 PM
 To: Open MPI Users
 Subject: Re: [OMPI users] User Interface for MPMD
 
 I gather you don't want to use the MPI calls to get it? Perhaps it would 
 help if we understood a little more about what you are trying to do.
 
 Or maybe we just aren't understanding the term "instance" - e.g., for #1, 
 you want to know how many processes are executing in the job, yes?
 
 If that's correct, then the second question doesn't make sense to me - so 
 I'm a little lost.
 
 
 On Aug 10, 2012, at 9:49 AM, Frank Kampe  wrote:
 
> No.  I am looking for a user-callable function that will return 
> information about the running OpenMPI MPMD program from within the 
> running program---the information listed below in (1) -- (3).
> 
> 
> From: users-boun...@open-mpi.org [users-boun...@open-mpi.org] on behalf 
> of Ralph Castain [r...@open-mpi.org]
> Sent: Friday, August 10, 2012 11:15 AM
> To: Open MPI Users
> Subject: Re: [OMPI users] User Interface for MPMD
> 
> I'm actually not sure I understand the question - are you talking about a 
> programmatic API where an application wants to spawn an MPI program? Or 
> an inter-program communication API that wants to tell another program 
> some information? Or an API by which the app can tell MPI "I'm going to 
> spawn N threads"? Or...?
> 
> 
> On Aug 10, 2012, at 9:00 AM, Gus Correa  wrote:
> 
>> On 08/10/2012 11:31 AM, 

[OMPI users] Open MPI exit statuses

2012-08-12 Thread Sverdlov, Boris
Hello,

When trying to run Open MPI application using  mpirun I get the following error:
"A daemon (pid 6816) died unexpectedly with status 252 while attempting to 
launch so we are aborting."
What does this status means? Is there a list of MPI exit statuses with their 
meanings somewhere?

Thanks for your response,
Boris
-
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


Re: [OMPI users] Open MPI exit statuses

2012-08-12 Thread Ralph Castain

On Aug 12, 2012, at 1:09 AM, "Sverdlov, Boris"  wrote:

> Hello,
>  
> When trying to run Open MPI application using  mpirun I get the following 
> error:
> “A daemon (pid 6816) died unexpectedly with status 252 while attempting to 
> launch so we are aborting.”
> What does this status means? Is there a list of MPI exit statuses with their 
> meanings somewhere?

Not really - it depends on your launch environment. Usually there is more to 
the error message - was there?

>  
> Thanks for your response,
> Boris
> -
> Intel Israel (74) Limited
> 
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> 
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users