[OMPI users] where is mpif.h ?

2008-09-22 Thread Shafagh Jafer
Does openmpi have any "mpif.h" ?? if yes, where? in openmpi_dir/include ??!!




Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Ahhh, now that makes sense.  Never included, always used.  Thanks!

On Mon, Sep 22, 2008 at 8:55 PM, Terry Frankcombe  wrote:
> Remember what include does:  it essentially dumps mpif.h into the
> source.  So to be proper F90 you need:
>
> PROGRAM main
> USE local_module
> IMPLICT NONE
> INCLUDE 'mpif.h'
> ...
>
>
> On Mon, 2008-09-22 at 20:17 -0600, Brian Harker wrote:
>> Well, I'm stumped then...my top-level program is the only one that
>> uses MPI interfaces.  I USE other f90 module files, but none of them
>> are dependent on MPI functions.  For example here's the first few
>> lines of code where things act up:
>>
>> PROGRAM main
>> INCLUDE 'mpif.h'  (this line used to be "USE mpi"...this is
>> correct replacement, right?)
>> USE local_module
>> IMPLICIT NONE
>> ...
>> STOP
>> END PROGRAM main
>>
>> with local_module.f90:
>>
>> MODULE local_module
>> CONTAINS
>>
>> SUBROUTINE local_subroutine
>> IMPLICIT NONE
>> ...
>> RETURN
>> END SUBROUTINE local_subroutine
>>
>> END MODULE local_module
>>
>> and mpif90 gives me grief about local_module being out of scope within
>> main.  To the best of my knowledge, I have never used fixed-form or
>> had free-vs-fixed form compiler issues with ifort.  Thanks!
>>
>> On Mon, Sep 22, 2008 at 7:56 PM, Gus Correa  wrote:
>> > Hi Brian and list
>> >
>> > On my code I have
>> >
>> >  include 'mpif.h'
>> >
>> > with single quotes around the file name.
>> > I use single quotes, but double quotes are also possible according to the
>> > F90 standard.
>> > If you start at column 7 and end at column 72,
>> > you avoid any problems with free vs. fixed Fortran form (which may happen 
>> > if
>> > one decides
>> > to mess the compiler options on Makefiles, for instance).
>> > This is PDP, paranoid defensive programming.
>> > I type the Fortran commands in lowercase (include) but this may not really
>> > make any difference
>> > (although there are compiler options to transliterate upper to lower, 
>> > be/not
>> > be case sensitive, etc)
>> >
>> > However, since you asked, I changed the "include 'mpif.h'" location to
>> > column 1, column 6,
>> > etc, and I could compile the code with OpenMPI mpif90 without any problems.
>> > Hence, I presume mpif90 uses the free form as default.
>> > So, I wonder if you still have some residual mix of gfortran and ifort
>> > there,
>> > or if there is some funny configuration on your ifort.cfg file choosing the
>> > fixed form as a default.
>> >
>> > In any case, going out of scope probably has nothing to do with fixed vs
>> > free form.
>> > I only have one "use mpi" statement, no other modules "used" in the little
>> > hello_f90.
>> > It may well be that if you try other "use"  statements, particularly if the
>> > respective modules
>> > involve other MPI modules or MPI function interfaces, things may break and
>> > be out of scope.
>> > I presume you are not talking of hello_f90 anymore, but of a larger code.
>> > The large code examples I have here use other F90 modules (not mpi.mod),
>> > but they don't rely on MPI interfaces.
>> >
>> > Glad to know that the main problem is gone (I read the more recent
>> > messages).
>> > I was reluctant to tell you to do a "make distclean", and start fresh,
>> > configure again, make again,
>> > because you said you had built the OpenMPI library more than once.
>> > Now I think that was exactly what I should have told you to do.
>> > Everybody builds these things many times to get them right.
>> > Then a few more times to make it efficient, to optimize, etc.
>> > Can you imagine how many times Rutherford set up that gold foil experiment
>> > until he got it right?  :)
>> > After it is done, the past errors become trivial, and all the rest is
>> > reduced just to stamp collecting.  :)
>> > Configure is always complex, and dumping its output to a log file is
>> > worth the effort, to check out for sticky problems like this, which often
>> > happen.
>> > (Likewise for make and make install.)
>> >
>> > I hope this helps,
>> > Gus Correa
>> >
>> > --
>> > -
>> > Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
>> > Lamont-Doherty Earth Observatory - Columbia University
>> > P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
>> > -
>> >
>> >
>> > Brian Harker wrote:
>> >
>> >> Hi Gus-
>> >>
>> >> Thanks for the idea.  One question: how do you position INCLUDE
>> >> statements in a fortran program, because if I just straight substitute
>> >> ' INCLUDE "mpif.h" ' for ' USE mpi ', I get a lot of crap telling me
>> >> my other USE statements are not positioned correctly within the scope
>> >> and nothing compiles.  I have tried various positions, but I seem to
>> >> be suffering from a lot of BS.  Am I overlooking something very
>> >> obvious?
>> >>
>> >> On Mon, Sep 22, 2008 at 5:42 PM, Gus Correa  
>> >> wrote:
>> >>
>> >>>
>> >>> Hi Brian and list

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Terry Frankcombe
Remember what include does:  it essentially dumps mpif.h into the
source.  So to be proper F90 you need:

PROGRAM main
USE local_module
IMPLICT NONE
INCLUDE 'mpif.h'
...


On Mon, 2008-09-22 at 20:17 -0600, Brian Harker wrote:
> Well, I'm stumped then...my top-level program is the only one that
> uses MPI interfaces.  I USE other f90 module files, but none of them
> are dependent on MPI functions.  For example here's the first few
> lines of code where things act up:
> 
> PROGRAM main
> INCLUDE 'mpif.h'  (this line used to be "USE mpi"...this is
> correct replacement, right?)
> USE local_module
> IMPLICIT NONE
> ...
> STOP
> END PROGRAM main
> 
> with local_module.f90:
> 
> MODULE local_module
> CONTAINS
> 
> SUBROUTINE local_subroutine
> IMPLICIT NONE
> ...
> RETURN
> END SUBROUTINE local_subroutine
> 
> END MODULE local_module
> 
> and mpif90 gives me grief about local_module being out of scope within
> main.  To the best of my knowledge, I have never used fixed-form or
> had free-vs-fixed form compiler issues with ifort.  Thanks!
> 
> On Mon, Sep 22, 2008 at 7:56 PM, Gus Correa  wrote:
> > Hi Brian and list
> >
> > On my code I have
> >
> >  include 'mpif.h'
> >
> > with single quotes around the file name.
> > I use single quotes, but double quotes are also possible according to the
> > F90 standard.
> > If you start at column 7 and end at column 72,
> > you avoid any problems with free vs. fixed Fortran form (which may happen if
> > one decides
> > to mess the compiler options on Makefiles, for instance).
> > This is PDP, paranoid defensive programming.
> > I type the Fortran commands in lowercase (include) but this may not really
> > make any difference
> > (although there are compiler options to transliterate upper to lower, be/not
> > be case sensitive, etc)
> >
> > However, since you asked, I changed the "include 'mpif.h'" location to
> > column 1, column 6,
> > etc, and I could compile the code with OpenMPI mpif90 without any problems.
> > Hence, I presume mpif90 uses the free form as default.
> > So, I wonder if you still have some residual mix of gfortran and ifort
> > there,
> > or if there is some funny configuration on your ifort.cfg file choosing the
> > fixed form as a default.
> >
> > In any case, going out of scope probably has nothing to do with fixed vs
> > free form.
> > I only have one "use mpi" statement, no other modules "used" in the little
> > hello_f90.
> > It may well be that if you try other "use"  statements, particularly if the
> > respective modules
> > involve other MPI modules or MPI function interfaces, things may break and
> > be out of scope.
> > I presume you are not talking of hello_f90 anymore, but of a larger code.
> > The large code examples I have here use other F90 modules (not mpi.mod),
> > but they don't rely on MPI interfaces.
> >
> > Glad to know that the main problem is gone (I read the more recent
> > messages).
> > I was reluctant to tell you to do a "make distclean", and start fresh,
> > configure again, make again,
> > because you said you had built the OpenMPI library more than once.
> > Now I think that was exactly what I should have told you to do.
> > Everybody builds these things many times to get them right.
> > Then a few more times to make it efficient, to optimize, etc.
> > Can you imagine how many times Rutherford set up that gold foil experiment
> > until he got it right?  :)
> > After it is done, the past errors become trivial, and all the rest is
> > reduced just to stamp collecting.  :)
> > Configure is always complex, and dumping its output to a log file is
> > worth the effort, to check out for sticky problems like this, which often
> > happen.
> > (Likewise for make and make install.)
> >
> > I hope this helps,
> > Gus Correa
> >
> > --
> > -
> > Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> > Lamont-Doherty Earth Observatory - Columbia University
> > P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> > -
> >
> >
> > Brian Harker wrote:
> >
> >> Hi Gus-
> >>
> >> Thanks for the idea.  One question: how do you position INCLUDE
> >> statements in a fortran program, because if I just straight substitute
> >> ' INCLUDE "mpif.h" ' for ' USE mpi ', I get a lot of crap telling me
> >> my other USE statements are not positioned correctly within the scope
> >> and nothing compiles.  I have tried various positions, but I seem to
> >> be suffering from a lot of BS.  Am I overlooking something very
> >> obvious?
> >>
> >> On Mon, Sep 22, 2008 at 5:42 PM, Gus Correa  wrote:
> >>
> >>>
> >>> Hi Brian and list
> >>>
> >>> I seldom used the "use mpi" syntax before.
> >>> I have a lot of code here written in Fortran 90,
> >>> but and mpif.h is included instead "use mpi".
> >>> The MPI function calls are the same in Fortran 77 and Fortran 90 syntax,
> >>> hence there is just one line 

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Well, I'm stumped then...my top-level program is the only one that
uses MPI interfaces.  I USE other f90 module files, but none of them
are dependent on MPI functions.  For example here's the first few
lines of code where things act up:

PROGRAM main
INCLUDE 'mpif.h'  (this line used to be "USE mpi"...this is
correct replacement, right?)
USE local_module
IMPLICIT NONE
...
STOP
END PROGRAM main

with local_module.f90:

MODULE local_module
CONTAINS

SUBROUTINE local_subroutine
IMPLICIT NONE
...
RETURN
END SUBROUTINE local_subroutine

END MODULE local_module

and mpif90 gives me grief about local_module being out of scope within
main.  To the best of my knowledge, I have never used fixed-form or
had free-vs-fixed form compiler issues with ifort.  Thanks!

On Mon, Sep 22, 2008 at 7:56 PM, Gus Correa  wrote:
> Hi Brian and list
>
> On my code I have
>
>  include 'mpif.h'
>
> with single quotes around the file name.
> I use single quotes, but double quotes are also possible according to the
> F90 standard.
> If you start at column 7 and end at column 72,
> you avoid any problems with free vs. fixed Fortran form (which may happen if
> one decides
> to mess the compiler options on Makefiles, for instance).
> This is PDP, paranoid defensive programming.
> I type the Fortran commands in lowercase (include) but this may not really
> make any difference
> (although there are compiler options to transliterate upper to lower, be/not
> be case sensitive, etc)
>
> However, since you asked, I changed the "include 'mpif.h'" location to
> column 1, column 6,
> etc, and I could compile the code with OpenMPI mpif90 without any problems.
> Hence, I presume mpif90 uses the free form as default.
> So, I wonder if you still have some residual mix of gfortran and ifort
> there,
> or if there is some funny configuration on your ifort.cfg file choosing the
> fixed form as a default.
>
> In any case, going out of scope probably has nothing to do with fixed vs
> free form.
> I only have one "use mpi" statement, no other modules "used" in the little
> hello_f90.
> It may well be that if you try other "use"  statements, particularly if the
> respective modules
> involve other MPI modules or MPI function interfaces, things may break and
> be out of scope.
> I presume you are not talking of hello_f90 anymore, but of a larger code.
> The large code examples I have here use other F90 modules (not mpi.mod),
> but they don't rely on MPI interfaces.
>
> Glad to know that the main problem is gone (I read the more recent
> messages).
> I was reluctant to tell you to do a "make distclean", and start fresh,
> configure again, make again,
> because you said you had built the OpenMPI library more than once.
> Now I think that was exactly what I should have told you to do.
> Everybody builds these things many times to get them right.
> Then a few more times to make it efficient, to optimize, etc.
> Can you imagine how many times Rutherford set up that gold foil experiment
> until he got it right?  :)
> After it is done, the past errors become trivial, and all the rest is
> reduced just to stamp collecting.  :)
> Configure is always complex, and dumping its output to a log file is
> worth the effort, to check out for sticky problems like this, which often
> happen.
> (Likewise for make and make install.)
>
> I hope this helps,
> Gus Correa
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>> Hi Gus-
>>
>> Thanks for the idea.  One question: how do you position INCLUDE
>> statements in a fortran program, because if I just straight substitute
>> ' INCLUDE "mpif.h" ' for ' USE mpi ', I get a lot of crap telling me
>> my other USE statements are not positioned correctly within the scope
>> and nothing compiles.  I have tried various positions, but I seem to
>> be suffering from a lot of BS.  Am I overlooking something very
>> obvious?
>>
>> On Mon, Sep 22, 2008 at 5:42 PM, Gus Correa  wrote:
>>
>>>
>>> Hi Brian and list
>>>
>>> I seldom used the "use mpi" syntax before.
>>> I have a lot of code here written in Fortran 90,
>>> but and mpif.h is included instead "use mpi".
>>> The MPI function calls are the same in Fortran 77 and Fortran 90 syntax,
>>> hence there is just one line of code to change, if one wants to go fully
>>> F90.
>>> All works well, though.
>>> This style is a legacy from the times when the Fortran90 interface of MPI
>>> was not fully developed,
>>> and the mpi.mod was broken most of the time.
>>> That is no longer the case, though.
>>>
>>> This mixed mode may be one way around your problem, although not ideal.
>>> The main drawback of using the "include mpif.h" syntax
>>> is that there is no parameter checking of the MPI f

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Gus Correa

Hi Brian and list

On my code I have

  include 'mpif.h'

with single quotes around the file name.
I use single quotes, but double quotes are also possible according to 
the F90 standard.

If you start at column 7 and end at column 72,
you avoid any problems with free vs. fixed Fortran form (which may 
happen if one decides

to mess the compiler options on Makefiles, for instance).
This is PDP, paranoid defensive programming.
I type the Fortran commands in lowercase (include) but this may not 
really make any difference
(although there are compiler options to transliterate upper to lower, 
be/not be case sensitive, etc)


However, since you asked, I changed the "include 'mpif.h'" location to 
column 1, column 6,

etc, and I could compile the code with OpenMPI mpif90 without any problems.
Hence, I presume mpif90 uses the free form as default.
So, I wonder if you still have some residual mix of gfortran and ifort 
there,
or if there is some funny configuration on your ifort.cfg file choosing 
the fixed form as a default.


In any case, going out of scope probably has nothing to do with fixed vs 
free form.
I only have one "use mpi" statement, no other modules "used" in the 
little hello_f90.
It may well be that if you try other "use"  statements, particularly if 
the respective modules
involve other MPI modules or MPI function interfaces, things may break 
and be out of scope.

I presume you are not talking of hello_f90 anymore, but of a larger code.
The large code examples I have here use other F90 modules (not mpi.mod),
but they don't rely on MPI interfaces.

Glad to know that the main problem is gone (I read the more recent 
messages).
I was reluctant to tell you to do a "make distclean", and start fresh, 
configure again, make again,

because you said you had built the OpenMPI library more than once.
Now I think that was exactly what I should have told you to do.
Everybody builds these things many times to get them right.
Then a few more times to make it efficient, to optimize, etc.
Can you imagine how many times Rutherford set up that gold foil 
experiment until he got it right?  :)
After it is done, the past errors become trivial, and all the rest is 
reduced just to stamp collecting.  :)

Configure is always complex, and dumping its output to a log file is
worth the effort, to check out for sticky problems like this, which 
often happen.

(Likewise for make and make install.)

I hope this helps,
Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


Hi Gus-

Thanks for the idea.  One question: how do you position INCLUDE
statements in a fortran program, because if I just straight substitute
' INCLUDE "mpif.h" ' for ' USE mpi ', I get a lot of crap telling me
my other USE statements are not positioned correctly within the scope
and nothing compiles.  I have tried various positions, but I seem to
be suffering from a lot of BS.  Am I overlooking something very
obvious?

On Mon, Sep 22, 2008 at 5:42 PM, Gus Correa  wrote:
 


Hi Brian and list

I seldom used the "use mpi" syntax before.
I have a lot of code here written in Fortran 90,
but and mpif.h is included instead "use mpi".
The MPI function calls are the same in Fortran 77 and Fortran 90 syntax,
hence there is just one line of code to change, if one wants to go fully
F90.
All works well, though.
This style is a legacy from the times when the Fortran90 interface of MPI
was not fully developed,
and the mpi.mod was broken most of the time.
That is no longer the case, though.

This mixed mode may be one way around your problem, although not ideal.
The main drawback of using the "include mpif.h" syntax
is that there is no parameter checking of the MPI function calls,
whereas the "use mpi" syntax provide some level of parameter checking
through the mpi.mod module.
If you are careful when you write your MPI calls,
and check if all parameters match the syntax requirements strictly,
this shouldn't be a problem, though.
(Nevertheless, a few days ago somebody was suffering here on the list with a
problem that was just
a missing "ierr" parameter in an MPI_Send call.   Jeff found it out, after
several emails back and forth.)

If not for anything else, just for the fun of it, to see how far the
compilation goes,
I would comment out "use mpi" and replace it by "include mpif.h".

As for architecture and compiler, I have used with no problem OpenMPI  (and
MPICH2 and MPICH-1) on various
x86 and x86_64 machines, both AMD and Intel, under different Linux flavors
(Fedora, CentOS, Red Hat),
in standalone machines (using SMP and shared memory),
and on a small cluster using Ethernet 100T , then using  Gigabit Ethernet,
compiling it with gcc and ifort and with gcc and pgf9

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Yes I have matched all the arguments.  I should mention that the code
compiles and runs flawlessly using MPICH2-1.0.7 so it's got to be an
issue with my specific build of openMPI. I want to get openMPI up and
running for performance comparisons.

On Mon, Sep 22, 2008 at 6:43 PM, Jeff Squyres  wrote:
> What's the source code in question, then?  Did you match all the arguments?
>
>
> On Sep 22, 2008, at 8:36 PM, Brian Harker wrote:
>
>> Nope, no user-defined types or arrays greater than 2 dimensions.
>>
>> On Mon, Sep 22, 2008 at 6:24 PM, Jeff Squyres  wrote:
>>>
>>> On Sep 22, 2008, at 6:48 PM, Brian Harker wrote:
>>>
 when I compile my production code, I get:

 fortcom: Error: driver.f90: line 211: There is no matching specific
 subroutine for this generic subroutine call.   [MPI_SEND]

 Seems odd that it would spit up on MPI_SEND, but has no problem with
 MPI_RECV...  What do you guys think?  And thanks again for your help
 and patience?
>>>
>>> The F90 MPI bindings have some well-known design flaws (i.e., problems
>>> with
>>> the standard itself, not any particular implementation).  Many of them
>>> center around the fact that F90 is a strongly-typed language.  See this
>>> paper for some details:
>>>
>>>  http://www.open-mpi.org/papers/euro-pvmmpi-2005-fortran/
>>>
>>> Here's the highlights, as they pertain to writing F90 MPI apps:
>>>
>>> - There is no equivalent to C's (void*).  This means that the F90 MPI
>>> bindings cannot accept user-defined datatypes.
>>>
>>> - This also means that *every* pre-defined type must have a F90 MPI
>>> binding.
>>> There are approximately 15 intrinsic size/type combinations.  There are
>>> 50
>>> MPI functions that take one choice buffer (e.g., MPI_SEND, etc.), and 25
>>> functions that take two choice buffers (e.g., MPI_REDUCE).  I'm copying
>>> this
>>> math from the paper, and I think we got it slightly wrong (there was a
>>> discussion about it on this list a while ago), but it results in many
>>> *millions* of F90 MPI bindings functions.  There's no compiler on the
>>> planet
>>> than can handle all of these in a single F90 module.
>>>
>>> Open MPI compensates for this with the following:
>>>
>>> - F90 bindings are not created for any of the 2-choice-buffer functions
>>> - F90 bindings are created for all the 1-choice-buffer functions, but
>>> only
>>> for dimensions up to N dimensions (N defaults to 4, IIRC).  You can
>>> change
>>> the value of N with OMPI's configure script; use the
>>> --with-f90-max-array-dim.  The maximum value of N is 7.
>>>
>>> So -- your app failed to compile because you either used a user-defined
>>> datatype or you used an array with a dimension greater than 4.  If it was
>>> a
>>> greater-dimension issue, you can reconfigure/recompile/reinstall OMPI
>>> (again, sorry) with a larger N value.  If it was a user-defined datatype,
>>> you unfortunately have to "include mpif.h" in that
>>> subroutine/function/whatever, sorry (and you lose the type checking).
>>>  :-(
>>>
>>> Here's some info from OMPI's README:
>>>
>>> -
>>> - The Fortran 90 MPI bindings can now be built in one of three sizes
>>> using --with-mpi-f90-size=SIZE (see description below).  These sizes
>>> reflect the number of MPI functions included in the "mpi" Fortran 90
>>> module and therefore which functions will be subject to strict type
>>> checking.  All functions not included in the Fortran 90 module can
>>> still be invoked from F90 applications, but will fall back to
>>> Fortran-77 style checking (i.e., little/none).
>>>
>>> - trivial: Only includes F90-specific functions from MPI-2.  This
>>>  means overloaded versions of MPI_SIZEOF for all the MPI-supported
>>>  F90 intrinsic types.
>>>
>>> - small (default): All the functions in "trivial" plus all MPI
>>>  functions that take no choice buffers (meaning buffers that are
>>>  specified by the user and are of type (void*) in the C bindings --
>>>  generally buffers specified for message passing).  Hence,
>>>  functions like MPI_COMM_RANK are included, but functions like
>>>  MPI_SEND are not.
>>>
>>> - medium: All the functions in "small" plus all MPI functions that
>>>  take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...).  All
>>>  one-choice-buffer functions have overloaded variants for each of
>>>  the MPI-supported Fortran intrinsic types up to the number of
>>>  dimensions specified by --with-f90-max-array-dim (default value is
>>>  4).
>>>
>>> Increasing the size of the F90 module (in order from trivial, small,
>>> and medium) will generally increase the length of time required to
>>> compile user MPI applications.  Specifically, "trivial"- and
>>> "small"-sized F90 modules generally allow user MPI applications to
>>> be compiled fairly quickly but lose type safety for all MPI
>>> functions with choice buffers.  "medium"-sized F90 modules generally
>>> take longer to compile user applications but provide greater type
>>> safety for MPI functions.
>>>
>>> Note that MPI func

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres
What's the source code in question, then?  Did you match all the  
arguments?



On Sep 22, 2008, at 8:36 PM, Brian Harker wrote:


Nope, no user-defined types or arrays greater than 2 dimensions.

On Mon, Sep 22, 2008 at 6:24 PM, Jeff Squyres   
wrote:

On Sep 22, 2008, at 6:48 PM, Brian Harker wrote:


when I compile my production code, I get:

fortcom: Error: driver.f90: line 211: There is no matching specific
subroutine for this generic subroutine call.   [MPI_SEND]

Seems odd that it would spit up on MPI_SEND, but has no problem with
MPI_RECV...  What do you guys think?  And thanks again for your help
and patience?


The F90 MPI bindings have some well-known design flaws (i.e.,  
problems with
the standard itself, not any particular implementation).  Many of  
them
center around the fact that F90 is a strongly-typed language.  See  
this

paper for some details:

  http://www.open-mpi.org/papers/euro-pvmmpi-2005-fortran/

Here's the highlights, as they pertain to writing F90 MPI apps:

- There is no equivalent to C's (void*).  This means that the F90 MPI
bindings cannot accept user-defined datatypes.

- This also means that *every* pre-defined type must have a F90 MPI  
binding.
There are approximately 15 intrinsic size/type combinations.  There  
are 50
MPI functions that take one choice buffer (e.g., MPI_SEND, etc.),  
and 25
functions that take two choice buffers (e.g., MPI_REDUCE).  I'm  
copying this
math from the paper, and I think we got it slightly wrong (there  
was a

discussion about it on this list a while ago), but it results in many
*millions* of F90 MPI bindings functions.  There's no compiler on  
the planet

than can handle all of these in a single F90 module.

Open MPI compensates for this with the following:

- F90 bindings are not created for any of the 2-choice-buffer  
functions
- F90 bindings are created for all the 1-choice-buffer functions,  
but only
for dimensions up to N dimensions (N defaults to 4, IIRC).  You can  
change

the value of N with OMPI's configure script; use the
--with-f90-max-array-dim.  The maximum value of N is 7.

So -- your app failed to compile because you either used a user- 
defined
datatype or you used an array with a dimension greater than 4.  If  
it was a

greater-dimension issue, you can reconfigure/recompile/reinstall OMPI
(again, sorry) with a larger N value.  If it was a user-defined  
datatype,

you unfortunately have to "include mpif.h" in that
subroutine/function/whatever, sorry (and you lose the type  
checking).  :-(


Here's some info from OMPI's README:

-
- The Fortran 90 MPI bindings can now be built in one of three sizes
using --with-mpi-f90-size=SIZE (see description below).  These sizes
reflect the number of MPI functions included in the "mpi" Fortran 90
module and therefore which functions will be subject to strict type
checking.  All functions not included in the Fortran 90 module can
still be invoked from F90 applications, but will fall back to
Fortran-77 style checking (i.e., little/none).

- trivial: Only includes F90-specific functions from MPI-2.  This
  means overloaded versions of MPI_SIZEOF for all the MPI-supported
  F90 intrinsic types.

- small (default): All the functions in "trivial" plus all MPI
  functions that take no choice buffers (meaning buffers that are
  specified by the user and are of type (void*) in the C bindings --
  generally buffers specified for message passing).  Hence,
  functions like MPI_COMM_RANK are included, but functions like
  MPI_SEND are not.

- medium: All the functions in "small" plus all MPI functions that
  take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...).  All
  one-choice-buffer functions have overloaded variants for each of
  the MPI-supported Fortran intrinsic types up to the number of
  dimensions specified by --with-f90-max-array-dim (default value is
  4).

Increasing the size of the F90 module (in order from trivial, small,
and medium) will generally increase the length of time required to
compile user MPI applications.  Specifically, "trivial"- and
"small"-sized F90 modules generally allow user MPI applications to
be compiled fairly quickly but lose type safety for all MPI
functions with choice buffers.  "medium"-sized F90 modules generally
take longer to compile user applications but provide greater type
safety for MPI functions.

Note that MPI functions with two choice buffers (e.g., MPI_GATHER)
are not currently included in Open MPI's F90 interface.  Calls to
these functions will automatically fall through to Open MPI's F77
interface.  A "large" size that includes the two choice buffer MPI
functions is possible in future versions of Open MPI.
-

FWIW, we're arguing^H^H^H^H^H^H^Hdiscussing new Fortran 2003  
bindings for
MPI in the MPI-3 Forum right now.  We have already addressed the  
problems
discussed above (F03 now has an equivalent of (void*)), and hope to  
do a few
more minor things as well.  There's also discussion of the  
possibility of a
Boost.MPI-l

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
BTW, thanks for hanging in there with me on this guys.  I appreciate
your time and input.

On Mon, Sep 22, 2008 at 6:36 PM, Brian Harker  wrote:
> Nope, no user-defined types or arrays greater than 2 dimensions.
>
> On Mon, Sep 22, 2008 at 6:24 PM, Jeff Squyres  wrote:
>> On Sep 22, 2008, at 6:48 PM, Brian Harker wrote:
>>
>>> when I compile my production code, I get:
>>>
>>> fortcom: Error: driver.f90: line 211: There is no matching specific
>>> subroutine for this generic subroutine call.   [MPI_SEND]
>>>
>>> Seems odd that it would spit up on MPI_SEND, but has no problem with
>>> MPI_RECV...  What do you guys think?  And thanks again for your help
>>> and patience?
>>
>> The F90 MPI bindings have some well-known design flaws (i.e., problems with
>> the standard itself, not any particular implementation).  Many of them
>> center around the fact that F90 is a strongly-typed language.  See this
>> paper for some details:
>>
>>http://www.open-mpi.org/papers/euro-pvmmpi-2005-fortran/
>>
>> Here's the highlights, as they pertain to writing F90 MPI apps:
>>
>> - There is no equivalent to C's (void*).  This means that the F90 MPI
>> bindings cannot accept user-defined datatypes.
>>
>> - This also means that *every* pre-defined type must have a F90 MPI binding.
>>  There are approximately 15 intrinsic size/type combinations.  There are 50
>> MPI functions that take one choice buffer (e.g., MPI_SEND, etc.), and 25
>> functions that take two choice buffers (e.g., MPI_REDUCE).  I'm copying this
>> math from the paper, and I think we got it slightly wrong (there was a
>> discussion about it on this list a while ago), but it results in many
>> *millions* of F90 MPI bindings functions.  There's no compiler on the planet
>> than can handle all of these in a single F90 module.
>>
>> Open MPI compensates for this with the following:
>>
>> - F90 bindings are not created for any of the 2-choice-buffer functions
>> - F90 bindings are created for all the 1-choice-buffer functions, but only
>> for dimensions up to N dimensions (N defaults to 4, IIRC).  You can change
>> the value of N with OMPI's configure script; use the
>> --with-f90-max-array-dim.  The maximum value of N is 7.
>>
>> So -- your app failed to compile because you either used a user-defined
>> datatype or you used an array with a dimension greater than 4.  If it was a
>> greater-dimension issue, you can reconfigure/recompile/reinstall OMPI
>> (again, sorry) with a larger N value.  If it was a user-defined datatype,
>> you unfortunately have to "include mpif.h" in that
>> subroutine/function/whatever, sorry (and you lose the type checking).  :-(
>>
>> Here's some info from OMPI's README:
>>
>> -
>> - The Fortran 90 MPI bindings can now be built in one of three sizes
>>  using --with-mpi-f90-size=SIZE (see description below).  These sizes
>>  reflect the number of MPI functions included in the "mpi" Fortran 90
>>  module and therefore which functions will be subject to strict type
>>  checking.  All functions not included in the Fortran 90 module can
>>  still be invoked from F90 applications, but will fall back to
>>  Fortran-77 style checking (i.e., little/none).
>>
>>  - trivial: Only includes F90-specific functions from MPI-2.  This
>>means overloaded versions of MPI_SIZEOF for all the MPI-supported
>>F90 intrinsic types.
>>
>>  - small (default): All the functions in "trivial" plus all MPI
>>functions that take no choice buffers (meaning buffers that are
>>specified by the user and are of type (void*) in the C bindings --
>>generally buffers specified for message passing).  Hence,
>>functions like MPI_COMM_RANK are included, but functions like
>>MPI_SEND are not.
>>
>>  - medium: All the functions in "small" plus all MPI functions that
>>take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...).  All
>>one-choice-buffer functions have overloaded variants for each of
>>the MPI-supported Fortran intrinsic types up to the number of
>>dimensions specified by --with-f90-max-array-dim (default value is
>>4).
>>
>>  Increasing the size of the F90 module (in order from trivial, small,
>>  and medium) will generally increase the length of time required to
>>  compile user MPI applications.  Specifically, "trivial"- and
>>  "small"-sized F90 modules generally allow user MPI applications to
>>  be compiled fairly quickly but lose type safety for all MPI
>>  functions with choice buffers.  "medium"-sized F90 modules generally
>>  take longer to compile user applications but provide greater type
>>  safety for MPI functions.
>>
>>  Note that MPI functions with two choice buffers (e.g., MPI_GATHER)
>>  are not currently included in Open MPI's F90 interface.  Calls to
>>  these functions will automatically fall through to Open MPI's F77
>>  interface.  A "large" size that includes the two choice buffer MPI
>>  functions is possible in future versions of Open MPI.
>> -
>>
>> FWIW, we're arguing^H^H^H^H^H^H^Hdiscussin

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Nope, no user-defined types or arrays greater than 2 dimensions.

On Mon, Sep 22, 2008 at 6:24 PM, Jeff Squyres  wrote:
> On Sep 22, 2008, at 6:48 PM, Brian Harker wrote:
>
>> when I compile my production code, I get:
>>
>> fortcom: Error: driver.f90: line 211: There is no matching specific
>> subroutine for this generic subroutine call.   [MPI_SEND]
>>
>> Seems odd that it would spit up on MPI_SEND, but has no problem with
>> MPI_RECV...  What do you guys think?  And thanks again for your help
>> and patience?
>
> The F90 MPI bindings have some well-known design flaws (i.e., problems with
> the standard itself, not any particular implementation).  Many of them
> center around the fact that F90 is a strongly-typed language.  See this
> paper for some details:
>
>http://www.open-mpi.org/papers/euro-pvmmpi-2005-fortran/
>
> Here's the highlights, as they pertain to writing F90 MPI apps:
>
> - There is no equivalent to C's (void*).  This means that the F90 MPI
> bindings cannot accept user-defined datatypes.
>
> - This also means that *every* pre-defined type must have a F90 MPI binding.
>  There are approximately 15 intrinsic size/type combinations.  There are 50
> MPI functions that take one choice buffer (e.g., MPI_SEND, etc.), and 25
> functions that take two choice buffers (e.g., MPI_REDUCE).  I'm copying this
> math from the paper, and I think we got it slightly wrong (there was a
> discussion about it on this list a while ago), but it results in many
> *millions* of F90 MPI bindings functions.  There's no compiler on the planet
> than can handle all of these in a single F90 module.
>
> Open MPI compensates for this with the following:
>
> - F90 bindings are not created for any of the 2-choice-buffer functions
> - F90 bindings are created for all the 1-choice-buffer functions, but only
> for dimensions up to N dimensions (N defaults to 4, IIRC).  You can change
> the value of N with OMPI's configure script; use the
> --with-f90-max-array-dim.  The maximum value of N is 7.
>
> So -- your app failed to compile because you either used a user-defined
> datatype or you used an array with a dimension greater than 4.  If it was a
> greater-dimension issue, you can reconfigure/recompile/reinstall OMPI
> (again, sorry) with a larger N value.  If it was a user-defined datatype,
> you unfortunately have to "include mpif.h" in that
> subroutine/function/whatever, sorry (and you lose the type checking).  :-(
>
> Here's some info from OMPI's README:
>
> -
> - The Fortran 90 MPI bindings can now be built in one of three sizes
>  using --with-mpi-f90-size=SIZE (see description below).  These sizes
>  reflect the number of MPI functions included in the "mpi" Fortran 90
>  module and therefore which functions will be subject to strict type
>  checking.  All functions not included in the Fortran 90 module can
>  still be invoked from F90 applications, but will fall back to
>  Fortran-77 style checking (i.e., little/none).
>
>  - trivial: Only includes F90-specific functions from MPI-2.  This
>means overloaded versions of MPI_SIZEOF for all the MPI-supported
>F90 intrinsic types.
>
>  - small (default): All the functions in "trivial" plus all MPI
>functions that take no choice buffers (meaning buffers that are
>specified by the user and are of type (void*) in the C bindings --
>generally buffers specified for message passing).  Hence,
>functions like MPI_COMM_RANK are included, but functions like
>MPI_SEND are not.
>
>  - medium: All the functions in "small" plus all MPI functions that
>take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...).  All
>one-choice-buffer functions have overloaded variants for each of
>the MPI-supported Fortran intrinsic types up to the number of
>dimensions specified by --with-f90-max-array-dim (default value is
>4).
>
>  Increasing the size of the F90 module (in order from trivial, small,
>  and medium) will generally increase the length of time required to
>  compile user MPI applications.  Specifically, "trivial"- and
>  "small"-sized F90 modules generally allow user MPI applications to
>  be compiled fairly quickly but lose type safety for all MPI
>  functions with choice buffers.  "medium"-sized F90 modules generally
>  take longer to compile user applications but provide greater type
>  safety for MPI functions.
>
>  Note that MPI functions with two choice buffers (e.g., MPI_GATHER)
>  are not currently included in Open MPI's F90 interface.  Calls to
>  these functions will automatically fall through to Open MPI's F77
>  interface.  A "large" size that includes the two choice buffer MPI
>  functions is possible in future versions of Open MPI.
> -
>
> FWIW, we're arguing^H^H^H^H^H^H^Hdiscussing new Fortran 2003 bindings for
> MPI in the MPI-3 Forum right now.  We have already addressed the problems
> discussed above (F03 now has an equivalent of (void*)), and hope to do a few
> more minor things as well.  There's also discussion of

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 6:48 PM, Brian Harker wrote:


when I compile my production code, I get:

fortcom: Error: driver.f90: line 211: There is no matching specific
subroutine for this generic subroutine call.   [MPI_SEND]

Seems odd that it would spit up on MPI_SEND, but has no problem with
MPI_RECV...  What do you guys think?  And thanks again for your help
and patience?


The F90 MPI bindings have some well-known design flaws (i.e., problems  
with the standard itself, not any particular implementation).  Many of  
them center around the fact that F90 is a strongly-typed language.   
See this paper for some details:


http://www.open-mpi.org/papers/euro-pvmmpi-2005-fortran/

Here's the highlights, as they pertain to writing F90 MPI apps:

- There is no equivalent to C's (void*).  This means that the F90 MPI  
bindings cannot accept user-defined datatypes.


- This also means that *every* pre-defined type must have a F90 MPI  
binding.  There are approximately 15 intrinsic size/type  
combinations.  There are 50 MPI functions that take one choice buffer  
(e.g., MPI_SEND, etc.), and 25 functions that take two choice buffers  
(e.g., MPI_REDUCE).  I'm copying this math from the paper, and I think  
we got it slightly wrong (there was a discussion about it on this list  
a while ago), but it results in many *millions* of F90 MPI bindings  
functions.  There's no compiler on the planet than can handle all of  
these in a single F90 module.


Open MPI compensates for this with the following:

- F90 bindings are not created for any of the 2-choice-buffer functions
- F90 bindings are created for all the 1-choice-buffer functions, but  
only for dimensions up to N dimensions (N defaults to 4, IIRC).  You  
can change the value of N with OMPI's configure script; use the --with- 
f90-max-array-dim.  The maximum value of N is 7.


So -- your app failed to compile because you either used a user- 
defined datatype or you used an array with a dimension greater than  
4.  If it was a greater-dimension issue, you can reconfigure/recompile/ 
reinstall OMPI (again, sorry) with a larger N value.  If it was a user- 
defined datatype, you unfortunately have to "include mpif.h" in that  
subroutine/function/whatever, sorry (and you lose the type  
checking).  :-(


Here's some info from OMPI's README:

-
- The Fortran 90 MPI bindings can now be built in one of three sizes
  using --with-mpi-f90-size=SIZE (see description below).  These sizes
  reflect the number of MPI functions included in the "mpi" Fortran 90
  module and therefore which functions will be subject to strict type
  checking.  All functions not included in the Fortran 90 module can
  still be invoked from F90 applications, but will fall back to
  Fortran-77 style checking (i.e., little/none).

  - trivial: Only includes F90-specific functions from MPI-2.  This
means overloaded versions of MPI_SIZEOF for all the MPI-supported
F90 intrinsic types.

  - small (default): All the functions in "trivial" plus all MPI
functions that take no choice buffers (meaning buffers that are
specified by the user and are of type (void*) in the C bindings --
generally buffers specified for message passing).  Hence,
functions like MPI_COMM_RANK are included, but functions like
MPI_SEND are not.

  - medium: All the functions in "small" plus all MPI functions that
take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...).  All
one-choice-buffer functions have overloaded variants for each of
the MPI-supported Fortran intrinsic types up to the number of
dimensions specified by --with-f90-max-array-dim (default value is
4).

  Increasing the size of the F90 module (in order from trivial, small,
  and medium) will generally increase the length of time required to
  compile user MPI applications.  Specifically, "trivial"- and
  "small"-sized F90 modules generally allow user MPI applications to
  be compiled fairly quickly but lose type safety for all MPI
  functions with choice buffers.  "medium"-sized F90 modules generally
  take longer to compile user applications but provide greater type
  safety for MPI functions.

  Note that MPI functions with two choice buffers (e.g., MPI_GATHER)
  are not currently included in Open MPI's F90 interface.  Calls to
  these functions will automatically fall through to Open MPI's F77
  interface.  A "large" size that includes the two choice buffer MPI
  functions is possible in future versions of Open MPI.
-

FWIW, we're arguing^H^H^H^H^H^H^Hdiscussing new Fortran 2003 bindings  
for MPI in the MPI-3 Forum right now.  We have already addressed the  
problems discussed above (F03 now has an equivalent of (void*)), and  
hope to do a few more minor things as well.  There's also discussion  
of the possibility of a Boost.MPI-like Fortran 2003 MPI library that  
would take advantage of many of the features of the language, but be a  
little farther away from the official MPI bindings (see www.boost-

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Hi Gus-

Thanks for the idea.  One question: how do you position INCLUDE
statements in a fortran program, because if I just straight substitute
' INCLUDE "mpif.h" ' for ' USE mpi ', I get a lot of crap telling me
my other USE statements are not positioned correctly within the scope
and nothing compiles.  I have tried various positions, but I seem to
be suffering from a lot of BS.  Am I overlooking something very
obvious?

On Mon, Sep 22, 2008 at 5:42 PM, Gus Correa  wrote:
> Hi Brian and list
>
> I seldom used the "use mpi" syntax before.
> I have a lot of code here written in Fortran 90,
> but and mpif.h is included instead "use mpi".
> The MPI function calls are the same in Fortran 77 and Fortran 90 syntax,
> hence there is just one line of code to change, if one wants to go fully
> F90.
> All works well, though.
> This style is a legacy from the times when the Fortran90 interface of MPI
> was not fully developed,
> and the mpi.mod was broken most of the time.
> That is no longer the case, though.
>
> This mixed mode may be one way around your problem, although not ideal.
> The main drawback of using the "include mpif.h" syntax
> is that there is no parameter checking of the MPI function calls,
> whereas the "use mpi" syntax provide some level of parameter checking
> through the mpi.mod module.
> If you are careful when you write your MPI calls,
> and check if all parameters match the syntax requirements strictly,
> this shouldn't be a problem, though.
> (Nevertheless, a few days ago somebody was suffering here on the list with a
> problem that was just
> a missing "ierr" parameter in an MPI_Send call.   Jeff found it out, after
> several emails back and forth.)
>
> If not for anything else, just for the fun of it, to see how far the
> compilation goes,
> I would comment out "use mpi" and replace it by "include mpif.h".
>
> As for architecture and compiler, I have used with no problem OpenMPI  (and
> MPICH2 and MPICH-1) on various
> x86 and x86_64 machines, both AMD and Intel, under different Linux flavors
> (Fedora, CentOS, Red Hat),
> in standalone machines (using SMP and shared memory),
> and on a small cluster using Ethernet 100T , then using  Gigabit Ethernet,
> compiling it with gcc and ifort and with gcc and pgf90.
>
> Note that I don't have icc, I use gcc and g++.
> Are the icc and ifort versions that you have the same?
> I don't know if different versions may not mix well, but it is a
> possibility.
>
> I tried to reproduce your problem by writing a simple hello_f90.f90 program,
> with the "use mpi" syntax,
> and compiling it with the OpenMPI mpif90.
> However, the program compiled without any problem,
> and I didn't need to point to the mpi.mod directory using the "-module" flag
> either,
> despite my having a "gfortran-openmpi" version of mpi.mod in
> /usr/lib/openmpi/.
> The program runs fine too, with  2 processes, 4 processes, etc.
>
> On your first message on this thread, your configure command declares
> environment
> variables for CC, CXX, F77, and FC without full paths.
> I wonder if there is any chance that there are multiple versions of Intel
> compilers on your
> system, that somehow may be the cause for the confusion (perhaps as early as
> the build time).
>
> Also, note that mpi.mod is not an include file.
> It is located in the lib directory of openmpi.
> There was some confusion about this before, with a discussion about "-I"
> directories, etc,
> but hopefully this was clarified already.
>
> Another thing to check is if there is any funny compiler configuration (say
> in /opt/intel/fc/bla/bla/ifort.cfg).
>
> Yet another thing I would look at are the logs for OpenMPI configure, make,
> and make install,
> if you saved them, to see if the Fortran90 interface was built to
> completion.
>
> Also, a suggestion is to compile with the verbose "-v" option, to see if it
> spits out some
> clue to what is going on.
> I hope this helps.
>
> Gus Correa
> (from the stamp-collecting side of science :) )
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>> Hi guys-
>>
>> Still no dice.  The only mpi.mod files I have are the ones generated
>> from my compile and build from source (and they are where they should
>> be), so there's definitely no confusion amongst the modules.  And
>> specifying the fulls path to the correct mpi.mod module (like Gus
>> suggested with the -module option) gives no change.  I am running out
>> of ideas and patience, as I'm sure you all are too!  Perhaps openMPI
>> just doesn't play nice with my compiler suite and hardware
>> architecture...?  Thanks for all the input!
>>
>> On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa 
>> wrote:
>>
>>>
>>> Hi Brian and list
>>

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 6:21 PM, Doug Reeder wrote:

I think that unless make all depends on make clean and make clean  
depends on Makefile, you have to manually run make clean and/or  
manually delete the module files.


We do have most everything in the code base that matters depend on  
opal_config.h, which is generated by configure.  I think it's  
unexpected behavior if you run configure a 2nd time (assumedly with  
different options) and don't have everything re-built properly.


Sorry for the hassle Brian; I'll file a bug about this.  I don't  
expect it'll be fixed in the 1.2 series and possibly not for v1.3.0,  
but certainly in some future release.


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Gus Correa

Hi Brian and list

I seldom used the "use mpi" syntax before.
I have a lot of code here written in Fortran 90,
but and mpif.h is included instead "use mpi".
The MPI function calls are the same in Fortran 77 and Fortran 90 syntax,
hence there is just one line of code to change, if one wants to go fully 
F90.

All works well, though.
This style is a legacy from the times when the Fortran90 interface of 
MPI was not fully developed,

and the mpi.mod was broken most of the time.
That is no longer the case, though.

This mixed mode may be one way around your problem, although not ideal.
The main drawback of using the "include mpif.h" syntax
is that there is no parameter checking of the MPI function calls,
whereas the "use mpi" syntax provide some level of parameter checking
through the mpi.mod module.
If you are careful when you write your MPI calls,
and check if all parameters match the syntax requirements strictly,
this shouldn't be a problem, though.
(Nevertheless, a few days ago somebody was suffering here on the list 
with a problem that was just
a missing "ierr" parameter in an MPI_Send call.   Jeff found it out, 
after several emails back and forth.)


If not for anything else, just for the fun of it, to see how far the 
compilation goes,

I would comment out "use mpi" and replace it by "include mpif.h".

As for architecture and compiler, I have used with no problem 
OpenMPI  (and MPICH2 and MPICH-1) on various
x86 and x86_64 machines, both AMD and Intel, under different Linux 
flavors (Fedora, CentOS, Red Hat),

in standalone machines (using SMP and shared memory),
and on a small cluster using Ethernet 100T , then using  Gigabit Ethernet,
compiling it with gcc and ifort and with gcc and pgf90.

Note that I don't have icc, I use gcc and g++.
Are the icc and ifort versions that you have the same?
I don't know if different versions may not mix well, but it is a 
possibility.


I tried to reproduce your problem by writing a simple hello_f90.f90 
program, with the "use mpi" syntax,

and compiling it with the OpenMPI mpif90.
However, the program compiled without any problem,
and I didn't need to point to the mpi.mod directory using the "-module" 
flag either,
despite my having a "gfortran-openmpi" version of mpi.mod in 
/usr/lib/openmpi/.

The program runs fine too, with  2 processes, 4 processes, etc.

On your first message on this thread, your configure command declares 
environment

variables for CC, CXX, F77, and FC without full paths.
I wonder if there is any chance that there are multiple versions of 
Intel compilers on your
system, that somehow may be the cause for the confusion (perhaps as 
early as the build time).


Also, note that mpi.mod is not an include file.
It is located in the lib directory of openmpi.
There was some confusion about this before, with a discussion about "-I" 
directories, etc,

but hopefully this was clarified already.

Another thing to check is if there is any funny compiler configuration 
(say in /opt/intel/fc/bla/bla/ifort.cfg).


Yet another thing I would look at are the logs for OpenMPI configure, 
make, and make install,
if you saved them, to see if the Fortran90 interface was built to 
completion.


Also, a suggestion is to compile with the verbose "-v" option, to see if 
it spits out some
clue to what is going on. 


I hope this helps.

Gus Correa
(from the stamp-collecting side of science :) )

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


Hi guys-

Still no dice.  The only mpi.mod files I have are the ones generated
from my compile and build from source (and they are where they should
be), so there's definitely no confusion amongst the modules.  And
specifying the fulls path to the correct mpi.mod module (like Gus
suggested with the -module option) gives no change.  I am running out
of ideas and patience, as I'm sure you all are too!  Perhaps openMPI
just doesn't play nice with my compiler suite and hardware
architecture...?  Thanks for all the input!

On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa  wrote:
 


Hi Brian and list

I read your original posting and Jeff's answers.

Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a mpi.mod,
compiled with gfortran.
Note that I don't even have gfortran installed!
This is besides the MPI versions (MPICH2 and OpenMPI)
I installed from scratch using combinations of ifort and pgi with gcc.
It may be that mpif90 is not picking the right mpi.mod, as Jeff suggested.
Something like this may be part of your problem.
A "locate mpi.mod" should show what your system has.

Have you tried to force the directory where mpi.mod is searched for?
Something like this:

/full/path/to/openmpi/bin/mpif90  -module
/full/path/to/openmpi_m

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
I humbly bow before my MPI masters!  Thank you guys!

make clean && make all install seemed to fix it.  The example code
compiles and runs fine...but...

when I compile my production code, I get:

fortcom: Error: driver.f90: line 211: There is no matching specific
subroutine for this generic subroutine call.   [MPI_SEND]

Seems odd that it would spit up on MPI_SEND, but has no problem with
MPI_RECV...  What do you guys think?  And thanks again for your help
and patience?



On Mon, Sep 22, 2008 at 4:21 PM, Doug Reeder  wrote:
> Jeff,
>
> I think that unless make all depends on make clean and make clean depends on
> Makefile, you have to manually run make clean and/or manually delete the
> module files.
>
> Doug Reeder
> On Sep 22, 2008, at 3:16 PM, Jeff Squyres wrote:
>
>> On Sep 22, 2008, at 6:08 PM, Brian Harker wrote:
>>
>>> Here's the config.log file...now that I look through it more
>>> carefully, I see some errors that I didn't see when watching
>>> ./configure scroll by...still don't know what to do though.  :(
>>
>> Not to worry; there are many tests in configure that are designed to fail.
>>  So it's not a problem to see lots of failures in config.log.
>>
>> I see that it did use ifort for both the F77 and F90 compilers; that's
>> what I wanted to check with configure output and config.log.
>>
>> Per Doug's comment, if OMPI is not re-compiling the Fortran module when
>> you reconfigure with a new fortran compiler, that is likely a bug.  Can you
>> "make clean all install" and see if it works?  If not, send all the output
>> here (see http://www.open-mpi.org/community/help/ for instructions; please
>> compress).
>>
>> --
>> Jeff Squyres
>> Cisco Systems
>>
>> ___
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



-- 
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is stamp-collecting."
 -Ernest Rutherford


Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Doug Reeder

Jeff,

I think that unless make all depends on make clean and make clean  
depends on Makefile, you have to manually run make clean and/or  
manually delete the module files.


Doug Reeder
On Sep 22, 2008, at 3:16 PM, Jeff Squyres wrote:


On Sep 22, 2008, at 6:08 PM, Brian Harker wrote:


Here's the config.log file...now that I look through it more
carefully, I see some errors that I didn't see when watching
./configure scroll by...still don't know what to do though.  :(


Not to worry; there are many tests in configure that are designed  
to fail.  So it's not a problem to see lots of failures in config.log.


I see that it did use ifort for both the F77 and F90 compilers;  
that's what I wanted to check with configure output and config.log.


Per Doug's comment, if OMPI is not re-compiling the Fortran module  
when you reconfigure with a new fortran compiler, that is likely a  
bug.  Can you "make clean all install" and see if it works?  If  
not, send all the output here (see http://www.open-mpi.org/ 
community/help/ for instructions; please compress).


--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 6:08 PM, Brian Harker wrote:


Here's the config.log file...now that I look through it more
carefully, I see some errors that I didn't see when watching
./configure scroll by...still don't know what to do though.  :(


Not to worry; there are many tests in configure that are designed to  
fail.  So it's not a problem to see lots of failures in config.log.


I see that it did use ifort for both the F77 and F90 compilers; that's  
what I wanted to check with configure output and config.log.


Per Doug's comment, if OMPI is not re-compiling the Fortran module  
when you reconfigure with a new fortran compiler, that is likely a  
bug.  Can you "make clean all install" and see if it works?  If not,  
send all the output here (see http://www.open-mpi.org/community/help/  
for instructions; please compress).


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Doug Reeder

Brian,

Try doing a make clean before doing the build with your new make file  
(from the new configure process). It looks like you are getting the  
leftover module files from the old makefile/compilers.


Doug reeder
On Sep 22, 2008, at 2:52 PM, Brian Harker wrote:


Ok, here's something funny/weird/stupid:

Looking at the actual mpi.mod module file in the $OPENMPI_HOME/lib
directory, the very first line is:
GFORTRAN module created from mpi.f90 on Fri Sep 19 14:01:27 2008

WTF!?  I specified that I wanted to use the ifort/icc/icpc compiler
suite when I installed (see my first post)!  Why would it create the
module with gfortran?  This would seem to be the source of my
troubles...



On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa  
 wrote:

Hi Brian and list

I read your original posting and Jeff's answers.

Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with  
a mpi.mod,

compiled with gfortran.
Note that I don't even have gfortran installed!
This is besides the MPI versions (MPICH2 and OpenMPI)
I installed from scratch using combinations of ifort and pgi with  
gcc.
It may be that mpif90 is not picking the right mpi.mod, as Jeff  
suggested.

Something like this may be part of your problem.
A "locate mpi.mod" should show what your system has.

Have you tried to force the directory where mpi.mod is searched for?
Something like this:

/full/path/to/openmpi/bin/mpif90  -module
 /full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90

The ifort man pages has the "-module" syntax details.

I hope this helps.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


Hi Gus-

Thanks for the input.  I have been using full path names to both the
wrapper compilers and mpiexec from the first day I had two MPI
implementations on my machine, depending on if I want to use  
MPICH or

openMPI, but still the problem remains.  ARGG!

On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  
 wrote:




Hello Brian and list

My confusing experiences with multiple MPI implementations
were fixed the day I decided to use full path names to the MPI  
compiler

wrappers (mpicc, mpif77, etc) at compile time,
and to the MPI job launcher (mpirun, mpiexec, and so on) at run  
time,
and to do this in a consistent fashion (using the tools from the  
same

install to compile and to run the programs).

Most Linux distributions come with built in MPI implementations  
(often

times
more than one),
and so do commercial compilers and other tools.
You end up with a mess of different MPI versions on your  
"native" PATH,

as well as variety of bin, lib, and include directories containing
different
MPI stuff.
The easy way around is to use full path names, particularly if you
install
yet another MPI implementation
from scratch.
Another way is to fix your PATH on your initialization files  
(.cshrc,

etc)
to point to your preferred implementation (put the appropriate bin
directory
ahead of everything else).
Yet another is to install the "environment modules" package on your
system
and use it consistently.

My two cents.

Gus Correa

--
--- 
--

Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
--- 
--



Brian Harker wrote:




I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules  
located in

/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at  
compile time,

right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before  
going
to where you tell it to go.  Or am I too optimistic?  Thanks  
again for

the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres 
wrote:




On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:





Thanks for the reply...crap, $HOME/openmpi/lib does contains  
all the

various lilbmpi* files as well as mpi.mod,




That should be correct.





but still get the same
error at compile-time.  Yes, I made sure to specifically  
build openMPI
with ifort 10.1.012, and did run the --showme command right  
after
installation to make sure the wrapper compiler was using  
ifort as

well.




Ok, good.





Before posting to this mailing list, I did uninstall and re- 
install
openMPI several times to make sure I had a clean install.   
Still no

luck.  :(




Ok.  Have you checked around your machine to ensure that there  
is no

other
mpi.mod that the compiler is fin

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Here's the config.log file...now that I look through it more
carefully, I see some errors that I didn't see when watching
./configure scroll by...still don't know what to do though.  :(
Thanks!

On Mon, Sep 22, 2008 at 3:54 PM, Jeff Squyres  wrote:
> Good question.  Can you send the full stdout/stderr output from configure
> and config.log?
>
> (please compress)
>
>
> On Sep 22, 2008, at 5:52 PM, Brian Harker wrote:
>
>> Ok, here's something funny/weird/stupid:
>>
>> Looking at the actual mpi.mod module file in the $OPENMPI_HOME/lib
>> directory, the very first line is:
>> GFORTRAN module created from mpi.f90 on Fri Sep 19 14:01:27 2008
>>
>> WTF!?  I specified that I wanted to use the ifort/icc/icpc compiler
>> suite when I installed (see my first post)!  Why would it create the
>> module with gfortran?  This would seem to be the source of my
>> troubles...
>>
>>
>>
>> On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa 
>> wrote:
>>>
>>> Hi Brian and list
>>>
>>> I read your original posting and Jeff's answers.
>>>
>>> Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a
>>> mpi.mod,
>>> compiled with gfortran.
>>> Note that I don't even have gfortran installed!
>>> This is besides the MPI versions (MPICH2 and OpenMPI)
>>> I installed from scratch using combinations of ifort and pgi with gcc.
>>> It may be that mpif90 is not picking the right mpi.mod, as Jeff
>>> suggested.
>>> Something like this may be part of your problem.
>>> A "locate mpi.mod" should show what your system has.
>>>
>>> Have you tried to force the directory where mpi.mod is searched for?
>>> Something like this:
>>>
>>> /full/path/to/openmpi/bin/mpif90  -module
>>> /full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90
>>>
>>> The ifort man pages has the "-module" syntax details.
>>>
>>> I hope this helps.
>>>
>>> Gus Correa
>>>
>>> --
>>> -
>>> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
>>> Lamont-Doherty Earth Observatory - Columbia University
>>> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
>>> -
>>>
>>>
>>> Brian Harker wrote:
>>>
 Hi Gus-

 Thanks for the input.  I have been using full path names to both the
 wrapper compilers and mpiexec from the first day I had two MPI
 implementations on my machine, depending on if I want to use MPICH or
 openMPI, but still the problem remains.  ARGG!

 On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa 
 wrote:

>
> Hello Brian and list
>
> My confusing experiences with multiple MPI implementations
> were fixed the day I decided to use full path names to the MPI compiler
> wrappers (mpicc, mpif77, etc) at compile time,
> and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
> and to do this in a consistent fashion (using the tools from the same
> install to compile and to run the programs).
>
> Most Linux distributions come with built in MPI implementations (often
> times
> more than one),
> and so do commercial compilers and other tools.
> You end up with a mess of different MPI versions on your "native" PATH,
> as well as variety of bin, lib, and include directories containing
> different
> MPI stuff.
> The easy way around is to use full path names, particularly if you
> install
> yet another MPI implementation
> from scratch.
> Another way is to fix your PATH on your initialization files (.cshrc,
> etc)
> to point to your preferred implementation (put the appropriate bin
> directory
> ahead of everything else).
> Yet another is to install the "environment modules" package on your
> system
> and use it consistently.
>
> My two cents.
>
> Gus Correa
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>
>>
>> I built and installed both MPICH2 and openMPI from source, so no
>> distribution packages or anything.  MPICH2 has the modules located in
>> /usr/local/include, which I assume would be found (since its in my
>> path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
>> right?  I can't imagine that if you tell it where to look for the
>> correct modules, it would search through your path first before going
>> to where you tell it to go.  Or am I too optimistic?  Thanks again for
>> the input!
>>
>> On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres 
>> wrote:
>>
>>
>>>
>>> On Sep 22, 2008, at 10:10 AM

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres
Good question.  Can you send the full stdout/stderr output from  
configure and config.log?


(please compress)


On Sep 22, 2008, at 5:52 PM, Brian Harker wrote:


Ok, here's something funny/weird/stupid:

Looking at the actual mpi.mod module file in the $OPENMPI_HOME/lib
directory, the very first line is:
GFORTRAN module created from mpi.f90 on Fri Sep 19 14:01:27 2008

WTF!?  I specified that I wanted to use the ifort/icc/icpc compiler
suite when I installed (see my first post)!  Why would it create the
module with gfortran?  This would seem to be the source of my
troubles...



On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa   
wrote:

Hi Brian and list

I read your original posting and Jeff's answers.

Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a  
mpi.mod,

compiled with gfortran.
Note that I don't even have gfortran installed!
This is besides the MPI versions (MPICH2 and OpenMPI)
I installed from scratch using combinations of ifort and pgi with  
gcc.
It may be that mpif90 is not picking the right mpi.mod, as Jeff  
suggested.

Something like this may be part of your problem.
A "locate mpi.mod" should show what your system has.

Have you tried to force the directory where mpi.mod is searched for?
Something like this:

/full/path/to/openmpi/bin/mpif90  -module
/full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90

The ifort man pages has the "-module" syntax details.

I hope this helps.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


Hi Gus-

Thanks for the input.  I have been using full path names to both the
wrapper compilers and mpiexec from the first day I had two MPI
implementations on my machine, depending on if I want to use MPICH  
or

openMPI, but still the problem remains.  ARGG!

On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  
 wrote:




Hello Brian and list

My confusing experiences with multiple MPI implementations
were fixed the day I decided to use full path names to the MPI  
compiler

wrappers (mpicc, mpif77, etc) at compile time,
and to the MPI job launcher (mpirun, mpiexec, and so on) at run  
time,
and to do this in a consistent fashion (using the tools from the  
same

install to compile and to run the programs).

Most Linux distributions come with built in MPI implementations  
(often

times
more than one),
and so do commercial compilers and other tools.
You end up with a mess of different MPI versions on your "native"  
PATH,

as well as variety of bin, lib, and include directories containing
different
MPI stuff.
The easy way around is to use full path names, particularly if you
install
yet another MPI implementation
from scratch.
Another way is to fix your PATH on your initialization files  
(.cshrc,

etc)
to point to your preferred implementation (put the appropriate bin
directory
ahead of everything else).
Yet another is to install the "environment modules" package on your
system
and use it consistently.

My two cents.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:




I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules  
located in

/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at compile  
time,

right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before  
going
to where you tell it to go.  Or am I too optimistic?  Thanks  
again for

the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres 
wrote:




On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:





Thanks for the reply...crap, $HOME/openmpi/lib does contains  
all the

various lilbmpi* files as well as mpi.mod,




That should be correct.





but still get the same
error at compile-time.  Yes, I made sure to specifically build  
openMPI
with ifort 10.1.012, and did run the --showme command right  
after
installation to make sure the wrapper compiler was using ifort  
as

well.




Ok, good.





Before posting to this mailing list, I did uninstall and re- 
install
openMPI several times to make sure I had a clean install.   
Still no

luck.  :(




Ok.  Have you checked around your machine to ensure that there  
is no

other
mpi.mod that the compiler is finding first?  E.g., in your MPICH2
installation?  Or is Open MPI installed by your distro,  
perchance?  You
might

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Ok, here's something funny/weird/stupid:

Looking at the actual mpi.mod module file in the $OPENMPI_HOME/lib
directory, the very first line is:
GFORTRAN module created from mpi.f90 on Fri Sep 19 14:01:27 2008

WTF!?  I specified that I wanted to use the ifort/icc/icpc compiler
suite when I installed (see my first post)!  Why would it create the
module with gfortran?  This would seem to be the source of my
troubles...



On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa  wrote:
> Hi Brian and list
>
> I read your original posting and Jeff's answers.
>
> Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a mpi.mod,
> compiled with gfortran.
> Note that I don't even have gfortran installed!
> This is besides the MPI versions (MPICH2 and OpenMPI)
> I installed from scratch using combinations of ifort and pgi with gcc.
> It may be that mpif90 is not picking the right mpi.mod, as Jeff suggested.
> Something like this may be part of your problem.
> A "locate mpi.mod" should show what your system has.
>
> Have you tried to force the directory where mpi.mod is searched for?
> Something like this:
>
> /full/path/to/openmpi/bin/mpif90  -module
>  /full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90
>
> The ifort man pages has the "-module" syntax details.
>
> I hope this helps.
>
> Gus Correa
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>> Hi Gus-
>>
>> Thanks for the input.  I have been using full path names to both the
>> wrapper compilers and mpiexec from the first day I had two MPI
>> implementations on my machine, depending on if I want to use MPICH or
>> openMPI, but still the problem remains.  ARGG!
>>
>> On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  wrote:
>>
>>>
>>> Hello Brian and list
>>>
>>> My confusing experiences with multiple MPI implementations
>>> were fixed the day I decided to use full path names to the MPI compiler
>>> wrappers (mpicc, mpif77, etc) at compile time,
>>> and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
>>> and to do this in a consistent fashion (using the tools from the same
>>> install to compile and to run the programs).
>>>
>>> Most Linux distributions come with built in MPI implementations (often
>>> times
>>> more than one),
>>> and so do commercial compilers and other tools.
>>> You end up with a mess of different MPI versions on your "native" PATH,
>>> as well as variety of bin, lib, and include directories containing
>>> different
>>> MPI stuff.
>>> The easy way around is to use full path names, particularly if you
>>> install
>>> yet another MPI implementation
>>> from scratch.
>>> Another way is to fix your PATH on your initialization files (.cshrc,
>>> etc)
>>> to point to your preferred implementation (put the appropriate bin
>>> directory
>>> ahead of everything else).
>>> Yet another is to install the "environment modules" package on your
>>> system
>>> and use it consistently.
>>>
>>> My two cents.
>>>
>>> Gus Correa
>>>
>>> --
>>> -
>>> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
>>> Lamont-Doherty Earth Observatory - Columbia University
>>> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
>>> -
>>>
>>>
>>> Brian Harker wrote:
>>>
>>>

 I built and installed both MPICH2 and openMPI from source, so no
 distribution packages or anything.  MPICH2 has the modules located in
 /usr/local/include, which I assume would be found (since its in my
 path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
 right?  I can't imagine that if you tell it where to look for the
 correct modules, it would search through your path first before going
 to where you tell it to go.  Or am I too optimistic?  Thanks again for
 the input!

 On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres 
 wrote:


>
> On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:
>
>
>
>>
>> Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
>> various lilbmpi* files as well as mpi.mod,
>>
>>
>
> That should be correct.
>
>
>
>>
>> but still get the same
>> error at compile-time.  Yes, I made sure to specifically build openMPI
>> with ifort 10.1.012, and did run the --showme command right after
>> installation to make sure the wrapper compiler was using ifort as
>> well.
>>
>>
>
> Ok, good.
>
>
>
>>
>> Before posting to this mailing list, I did uninstall and re-install
>> openMPI several times to make su

Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Hi guys-

Still no dice.  The only mpi.mod files I have are the ones generated
from my compile and build from source (and they are where they should
be), so there's definitely no confusion amongst the modules.  And
specifying the fulls path to the correct mpi.mod module (like Gus
suggested with the -module option) gives no change.  I am running out
of ideas and patience, as I'm sure you all are too!  Perhaps openMPI
just doesn't play nice with my compiler suite and hardware
architecture...?  Thanks for all the input!

On Mon, Sep 22, 2008 at 11:27 AM, Gus Correa  wrote:
> Hi Brian and list
>
> I read your original posting and Jeff's answers.
>
> Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a mpi.mod,
> compiled with gfortran.
> Note that I don't even have gfortran installed!
> This is besides the MPI versions (MPICH2 and OpenMPI)
> I installed from scratch using combinations of ifort and pgi with gcc.
> It may be that mpif90 is not picking the right mpi.mod, as Jeff suggested.
> Something like this may be part of your problem.
> A "locate mpi.mod" should show what your system has.
>
> Have you tried to force the directory where mpi.mod is searched for?
> Something like this:
>
> /full/path/to/openmpi/bin/mpif90  -module
>  /full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90
>
> The ifort man pages has the "-module" syntax details.
>
> I hope this helps.
>
> Gus Correa
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>> Hi Gus-
>>
>> Thanks for the input.  I have been using full path names to both the
>> wrapper compilers and mpiexec from the first day I had two MPI
>> implementations on my machine, depending on if I want to use MPICH or
>> openMPI, but still the problem remains.  ARGG!
>>
>> On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  wrote:
>>
>>>
>>> Hello Brian and list
>>>
>>> My confusing experiences with multiple MPI implementations
>>> were fixed the day I decided to use full path names to the MPI compiler
>>> wrappers (mpicc, mpif77, etc) at compile time,
>>> and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
>>> and to do this in a consistent fashion (using the tools from the same
>>> install to compile and to run the programs).
>>>
>>> Most Linux distributions come with built in MPI implementations (often
>>> times
>>> more than one),
>>> and so do commercial compilers and other tools.
>>> You end up with a mess of different MPI versions on your "native" PATH,
>>> as well as variety of bin, lib, and include directories containing
>>> different
>>> MPI stuff.
>>> The easy way around is to use full path names, particularly if you
>>> install
>>> yet another MPI implementation
>>> from scratch.
>>> Another way is to fix your PATH on your initialization files (.cshrc,
>>> etc)
>>> to point to your preferred implementation (put the appropriate bin
>>> directory
>>> ahead of everything else).
>>> Yet another is to install the "environment modules" package on your
>>> system
>>> and use it consistently.
>>>
>>> My two cents.
>>>
>>> Gus Correa
>>>
>>> --
>>> -
>>> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
>>> Lamont-Doherty Earth Observatory - Columbia University
>>> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
>>> -
>>>
>>>
>>> Brian Harker wrote:
>>>
>>>

 I built and installed both MPICH2 and openMPI from source, so no
 distribution packages or anything.  MPICH2 has the modules located in
 /usr/local/include, which I assume would be found (since its in my
 path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
 right?  I can't imagine that if you tell it where to look for the
 correct modules, it would search through your path first before going
 to where you tell it to go.  Or am I too optimistic?  Thanks again for
 the input!

 On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres 
 wrote:


>
> On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:
>
>
>
>>
>> Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
>> various lilbmpi* files as well as mpi.mod,
>>
>>
>
> That should be correct.
>
>
>
>>
>> but still get the same
>> error at compile-time.  Yes, I made sure to specifically build openMPI
>> with ifort 10.1.012, and did run the --showme command right after
>> installation to make sure the wrapper compiler was using ifort as
>> well.
>>
>>
>
> Ok, good.
>
>
>
>>
>> Before 

Re: [OMPI users] Mpirun don't execute

2008-09-22 Thread Jeff Squyres
Exactly what version of Open MPI are you using?  You mentioned "1.3"  
-- did you download a nightly tarball at some point, or do you have an  
SVN checkout?  Since you have a development copy of Open MPI, it is  
possible that your copy is simply broken (sorry; we *do* break the  
development head every once in a while...).  Can you update?


Note that Josh just made some FT fixes on the trunk today that aren't  
on the v1.3 branch yet; they'll likely take a day or three to get there.




On Sep 22, 2008, at 5:03 PM, Santolo Felaco wrote:


Hi, this is my  openmpi-default-hostfile:
127.0.0.1 slots=2

If I invoke comand CTRL+C the application is not killed.
With mpirun -np 1 uptime the comand is ever blocked.

The comand is blocked with any comand, also comands not existent.

Thanks.


2008/9/22 Jeff Squyres 
On Sep 19, 2008, at 6:50 PM, Santolo Felaco wrote:

Hi, I try to be clearer:
osa@libertas:~$ echo $LD_LIBRARY_PATH
/usr/local/lib:/home/osa/blcr/lib
osa@libertas:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ 
games:/home/osa/blcr/bin


I compile the file with mpicc, then:
osa@libertas:~/prove/openmpi$ mpirun -np 2 es1

The comand is blocked. Don't run. CTRL+X  does not end the program.

Try ctrl-c -- that's usually the way to kill applications that  
appear to have been hung.



This is ps output:

osa@libertas:~/prove/openmpi$ mpirun -np 2 es1 &
[1] 6151
osa@libertas:~/prove/openmpi$ ps
 PID TTY  TIME CMD
 6135 pts/200:00:00 bash
 6151 pts/200:00:00 mpirun
 6153 pts/200:00:00 ssh
 6161 pts/200:00:00 ps


What is your program doing?  Can you tell if it's getting past  
MPI_INIT, or even launching at all?  Can you mpirun non-MPI  
applications, such as "hostname" and "uptime"?


Are you launching this es1 application locally or remotely?  From  
your command line and previous description, I *assume* that it's  
local, but I see an "ssh" in your ps output, possibly meaning that  
mpirun has launched the application remotely (e.g., if you specified  
a default hostfile or somesuch).



--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Mpirun don't execute

2008-09-22 Thread Santolo Felaco
Hi, this is my  openmpi-default-hostfile:
127.0.0.1 slots=2

If I invoke comand CTRL+C the application is not killed.
With mpirun -np 1 uptime the comand is ever blocked.

The comand is blocked with any comand, also comands not existent.

Thanks.


2008/9/22 Jeff Squyres 

> On Sep 19, 2008, at 6:50 PM, Santolo Felaco wrote:
>
>  Hi, I try to be clearer:
>> osa@libertas:~$ echo $LD_LIBRARY_PATH
>> /usr/local/lib:/home/osa/blcr/lib
>> osa@libertas:~$ echo $PATH
>>
>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/osa/blcr/bin
>>
>> I compile the file with mpicc, then:
>> osa@libertas:~/prove/openmpi$ mpirun -np 2 es1
>>
>> The comand is blocked. Don't run. CTRL+X  does not end the program.
>>
>
> Try ctrl-c -- that's usually the way to kill applications that appear to
> have been hung.
>
>  This is ps output:
>>
>> osa@libertas:~/prove/openmpi$ mpirun -np 2 es1 &
>> [1] 6151
>> osa@libertas:~/prove/openmpi$ ps
>>  PID TTY  TIME CMD
>>  6135 pts/200:00:00 bash
>>  6151 pts/200:00:00 mpirun
>>  6153 pts/200:00:00 ssh
>>  6161 pts/200:00:00 ps
>>
>
>
> What is your program doing?  Can you tell if it's getting past MPI_INIT, or
> even launching at all?  Can you mpirun non-MPI applications, such as
> "hostname" and "uptime"?
>
> Are you launching this es1 application locally or remotely?  From your
> command line and previous description, I *assume* that it's local, but I see
> an "ssh" in your ps output, possibly meaning that mpirun has launched the
> application remotely (e.g., if you specified a default hostfile or
> somesuch).
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>


Re: [OMPI users] BLCR not found

2008-09-22 Thread Josh Hursey
I have committed a patch (r19607) to clean up the BLCR configure  
logic. It should be in tonight's tarball of the trunk. I've requested  
that this fix be moved to v1.3, but that is going to take a day or so  
to process.


This patch adds a new configure option '--with-blcr-libdir' which lets  
you specify the directory in which the BLCR libraries are installed.  
So something like the following may work for you:

 ./configure --with-ft=cr --enable-ft-thread --enable-mpi-threads \
   --with-blcr=/home/osa/blcr/ --with-blcr-libdir=/home/osa/blcr/lib

Let me know if that fixes your configure problem.

Cheers,
Josh

On Sep 18, 2008, at 6:57 AM, Santolo Felaco wrote:


Ok, Thanks.

2008/9/17 Josh Hursey 
It looks like the configure script is picking up the wrong lib- 
directory (/home/osa/blcr/lib64 instead of /home/osa/blcr/lib):
 gcc -o conftest -O3 -DNDEBUG -finline-functions -fno-strict- 
aliasing -pthread \

   -I/home/osa/blcr/include   -L/home/osa/blcr/lib64 \
   conftest.c -lcr  -lnsl -lutil  -lm
 /usr/bin/ld: cannot find -lcr

I'll try to reproduce and work up a patch. In the mean time you may  
check to make sure that the BLCR path is set correctly in your $PATH  
and $LD_LIBRARY_PATH.


Josh



On Sep 17, 2008, at 7:44 AM, Santolo Felaco wrote:

This is the zipped file config.log

2008/9/17 Josh Hursey 
Can you send me a zip'ed up version of the config.log from your  
build? That will help in determining what went wrong with configure.


Cheers,
Josh


On Sep 17, 2008, at 6:09 AM, Santolo Felaco wrote:

Hi, I want to install openmpi-1.3. I have invoked ./configure --with- 
ft=cr --enable-ft-thread --enable-mpi-threads --with-blcr=/home/osa/ 
blcr/ --enable-progress-threads

This is error message that show:
 BLCR support requested but not found.  Perhaps you need to specify  
the location of the BLCR libraries.


I have installed blcr in /home/osa/blcr, I report the list of  
directory blcr:

.:
bin  include  lib  libexec  man

./bin:
cr_checkpoint  cr_restart  cr_run

./include:
blcr_common.h  blcr_errcodes.h  blcr_ioctl.h  blcr_proc.h  libcr.h

./lib:
blcr  libcr_omit.la  libcr_omit.so.0  libcr_run.la   
libcr_run.so.0  libcr.solibcr.so.0.4.1
libcr.la  libcr_omit.so  libcr_omit.so.0.4.1  libcr_run.so   
libcr_run.so.0.4.1  libcr.so.0


./lib/blcr:
2.6.24-16-generic

./lib/blcr/2.6.24-16-generic:
blcr_imports.ko  blcr.ko  blcr_vmadump.ko

./libexec:

./man:
man1

./man/man1:
cr_checkpoint.1  cr_restart.1  cr_run.1


Help me, please

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___

users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 2:48 PM, Shafagh Jafer wrote:

I am not using any of the files that exist in /usr/local/include,  
this doesn't even show on my PATH and my mpicc -show tells that the  
openmpi path is correct.


/usr/local/include is likely a default include path from the  
compiler.  So even if you don't reference it directly, the compiler  
may still be using files from there.  It *shouldn't*, if the same file  
exists in /opt/openmpi*/include and /usr/local/include/*, but there  
seems to be some confusion on your machine.


Note that include directories have nothing to do with your PATH.

I dont know what to do, I have contacted the technician to hide or  
delete /usr/local/include...Millions of thanks for ur replies and  
patience. I'll keep you updated!


Don't just move or hide /usr/local/include -- that will likely break  
things.  Just uninstall MPICH from /usr/local and re-install it  
somewhere else.


Good luck.



--- On Mon, 9/22/08, Jeff Squyres  wrote:
From: Jeff Squyres 
Subject: Re: [OMPI users] conflict among differenv MPIs
To: "Open MPI Users" 
Date: Monday, September 22, 2008, 11:28 AM

On Sep 22, 2008, at 2:12 PM, Shafagh Jafer wrote:

> I am gonna kill myself :( i dont know what the problem is... I 'm
> gonna explain the details again, please bare me and help me :(
>
> Ok yes I used mpic++. Actually I checked mpicxx -show and the path
> were correct. let me describe my problem again.
> When I run my code (after making sure that openmpi is installed
> correctly and all the env varibles are set properly), i get the
> following error which is when I make a call to the following  
function:

> --
> int CommPhyMPI:: physicalGetSize() const {
> int size ;
> MPI_Comm_size(MPI_COMM_WORLD,&size);
> return size ;
> }
> ---
> The errors i get are the follwoing:
> =
> [DeepThought:31144] *** Process received signal ***
> [DeepThought:31144] Signal: Segmentation fault (11)
> [DeepThought:31144] Signal code: Address not mapped (1)
> [DeepThought:31144] Failing at address: 0xcf
> [DeepThought:31144] [ 0] /lib/tls/libpthread.so.0 [0xc16f80]
> [DeepThought:31144] [ 1] /nfs/sjafer/phd/openMPI/latest_cd+
> +_timewarp/cd++(physicalGetId__C10CommPhyMPI+0x14) [0x8305880]

This *likely* indicates that you are mixing MPI implementations.

> So I thought that maybe my problem is that when I include
"mpi.h" in
> my source code, it picks the wrong one. So in my source code instead
> of just saying include "mpi.h" I put the path too, so it looks
like
> => "include /opt/openmpi/1.2.7/include/mpi.h", and now when I
run my
> code aftre this change, aside from errors which I will paste below,
> i get a warning that shows mpi.h in mpicxx.h is the wrong one from
> usr/local/include and not from /opt/openmpi/...
> --
> In file included from /usr/local/include/mpidefs.h:49,

What is /usr/local/include/mpidefs.h?  Is that part of your  
application?


> from /usr/local/include/mpi.h:230,

This definitely indicates that you're including the wrong file.

I don't know what the exact cause of your problem is, but it seems
like you are somehow mixing multiple mpi.h files together.  This can
definitely lead to segv's at run time.

As I think I indicated before, I think your best solution is likely to
uninstall MPICH from /usr/local and install it somewhere else (e.g., /
opt/mpich).  Then the compiler won't automatically pick up header
files from MPICH (it shouldn't do that anyway, but there seems to be
some confusion on your system, so who knows?).

You should probably get your local system administrator involved; they
can actually see exactly what is happening on your system, diagnose
the default compiler include paths, etc.  But I'd try moving the MPICH
install first.

--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
Jeff Squyres
Cisco Systems



Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Shafagh Jafer
I am not using any of the files that exist in /usr/local/include, this doesn't 
even show on my PATH and my mpicc -show tells that the openmpi path is correct. 
I dont know what to do, I have contacted the technician to hide or delete 
/usr/local/include...Millions of thanks for ur replies and patience. I'll keep 
you updated!

--- On Mon, 9/22/08, Jeff Squyres  wrote:

From: Jeff Squyres 
Subject: Re: [OMPI users] conflict among differenv MPIs
To: "Open MPI Users" 
List-Post: users@lists.open-mpi.org
Date: Monday, September 22, 2008, 11:28 AM

On Sep 22, 2008, at 2:12 PM, Shafagh Jafer wrote:

> I am gonna kill myself :( i dont know what the problem is... I 'm  
> gonna explain the details again, please bare me and help me :(
>
> Ok yes I used mpic++. Actually I checked mpicxx -show and the path  
> were correct. let me describe my problem again.
> When I run my code (after making sure that openmpi is installed  
> correctly and all the env varibles are set properly), i get the  
> following error which is when I make a call to the following function:
> --
> int CommPhyMPI:: physicalGetSize() const {
> int size ;
> MPI_Comm_size(MPI_COMM_WORLD,&size);
> return size ;
> }
> ---
> The errors i get are the follwoing:
> =
> [DeepThought:31144] *** Process received signal ***
> [DeepThought:31144] Signal: Segmentation fault (11)
> [DeepThought:31144] Signal code: Address not mapped (1)
> [DeepThought:31144] Failing at address: 0xcf
> [DeepThought:31144] [ 0] /lib/tls/libpthread.so.0 [0xc16f80]
> [DeepThought:31144] [ 1] /nfs/sjafer/phd/openMPI/latest_cd+ 
> +_timewarp/cd++(physicalGetId__C10CommPhyMPI+0x14) [0x8305880]

This *likely* indicates that you are mixing MPI implementations.

> So I thought that maybe my problem is that when I include
"mpi.h" in  
> my source code, it picks the wrong one. So in my source code instead  
> of just saying include "mpi.h" I put the path too, so it looks
like  
> => "include /opt/openmpi/1.2.7/include/mpi.h", and now when I
run my  
> code aftre this change, aside from errors which I will paste below,  
> i get a warning that shows mpi.h in mpicxx.h is the wrong one from  
> usr/local/include and not from /opt/openmpi/...
> --
> In file included from /usr/local/include/mpidefs.h:49,

What is /usr/local/include/mpidefs.h?  Is that part of your application?

> from /usr/local/include/mpi.h:230,

This definitely indicates that you're including the wrong file.

I don't know what the exact cause of your problem is, but it seems  
like you are somehow mixing multiple mpi.h files together.  This can  
definitely lead to segv's at run time.

As I think I indicated before, I think your best solution is likely to  
uninstall MPICH from /usr/local and install it somewhere else (e.g., / 
opt/mpich).  Then the compiler won't automatically pick up header  
files from MPICH (it shouldn't do that anyway, but there seems to be  
some confusion on your system, so who knows?).

You should probably get your local system administrator involved; they  
can actually see exactly what is happening on your system, diagnose  
the default compiler include paths, etc.  But I'd try moving the MPICH  
install first.

-- 
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users





Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 2:12 PM, Shafagh Jafer wrote:

I am gonna kill myself :( i dont know what the problem is... I 'm  
gonna explain the details again, please bare me and help me :(


Ok yes I used mpic++. Actually I checked mpicxx -show and the path  
were correct. let me describe my problem again.
When I run my code (after making sure that openmpi is installed  
correctly and all the env varibles are set properly), i get the  
following error which is when I make a call to the following function:

--
int CommPhyMPI:: physicalGetSize() const {
int size ;
MPI_Comm_size(MPI_COMM_WORLD,&size);
return size ;
}
---
The errors i get are the follwoing:
=
[DeepThought:31144] *** Process received signal ***
[DeepThought:31144] Signal: Segmentation fault (11)
[DeepThought:31144] Signal code: Address not mapped (1)
[DeepThought:31144] Failing at address: 0xcf
[DeepThought:31144] [ 0] /lib/tls/libpthread.so.0 [0xc16f80]
[DeepThought:31144] [ 1] /nfs/sjafer/phd/openMPI/latest_cd+ 
+_timewarp/cd++(physicalGetId__C10CommPhyMPI+0x14) [0x8305880]


This *likely* indicates that you are mixing MPI implementations.

So I thought that maybe my problem is that when I include "mpi.h" in  
my source code, it picks the wrong one. So in my source code instead  
of just saying include "mpi.h" I put the path too, so it looks like  
=> "include /opt/openmpi/1.2.7/include/mpi.h", and now when I run my  
code aftre this change, aside from errors which I will paste below,  
i get a warning that shows mpi.h in mpicxx.h is the wrong one from  
usr/local/include and not from /opt/openmpi/...

--
In file included from /usr/local/include/mpidefs.h:49,


What is /usr/local/include/mpidefs.h?  Is that part of your application?


from /usr/local/include/mpi.h:230,


This definitely indicates that you're including the wrong file.

I don't know what the exact cause of your problem is, but it seems  
like you are somehow mixing multiple mpi.h files together.  This can  
definitely lead to segv's at run time.


As I think I indicated before, I think your best solution is likely to  
uninstall MPICH from /usr/local and install it somewhere else (e.g., / 
opt/mpich).  Then the compiler won't automatically pick up header  
files from MPICH (it shouldn't do that anyway, but there seems to be  
some confusion on your system, so who knows?).


You should probably get your local system administrator involved; they  
can actually see exactly what is happening on your system, diagnose  
the default compiler include paths, etc.  But I'd try moving the MPICH  
install first.


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Shafagh Jafer
I am gonna kill myself :( i dont know what the problem is... I 'm gonna explain 
the details again, please bare me and help me :(
 
Ok yes I used mpic++. Actually I checked mpicxx -show and the path were 
correct. let me describe my problem again.
When I run my code (after making sure that openmpi is installed correctly and 
all the env varibles are set properly), i get the following error which is when 
I make a call to the following function:
--
int CommPhyMPI:: physicalGetSize() const {
int size ;
MPI_Comm_size(MPI_COMM_WORLD,&size);
return size ;
}
---
The errors i get are the follwoing:
=
[DeepThought:31144] *** Process received signal ***
[DeepThought:31144] Signal: Segmentation fault (11)
[DeepThought:31144] Signal code: Address not mapped (1)
[DeepThought:31144] Failing at address: 0xcf
[DeepThought:31144] [ 0] /lib/tls/libpthread.so.0 [0xc16f80]
[DeepThought:31144] [ 1] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(physicalGetId__C10CommPhyMPI+0x14)
 [0x8305880]
[DeepThought:31144] [ 2] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(physicalCommGetId__Fv+0x43) 
[0x82ff81b]
[DeepThought:31144] [ 3] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(openComm__16StandAloneLoader+0x1f)
 [0x80fdf43]
[DeepThought:31144] [ 4] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(run__21ParallelMainSimulator+0x1640)
 [0x81ea53c]
[DeepThought:31144] [ 5] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(main+0xde) [0x80a58ce]
[DeepThought:31144] [ 6] /lib/tls/libc.so.6(__libc_start_main+0xda) [0x1c979a]
[DeepThought:31144] [ 7] 
/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/cd++(sinh+0x4d) [0x80a2221]
[DeepThought:31144] *** End of error message ***
mpirun noticed that job rank 0 with PID 31144 on node 
DeepThought.sce.carleton.ca exited on signal 11 (Segmentation fault).
=
So I thought that maybe my problem is that when I include "mpi.h" in my source 
code, it picks the wrong one. So in my source code instead of just saying 
include "mpi.h" I put the path too, so it looks like => "include 
/opt/openmpi/1.2.7/include/mpi.h", and now when I run my code aftre this 
change, aside from errors which I will paste below, i get a warning that shows 
mpi.h in mpicxx.h is the wrong one from usr/local/include and not from 
/opt/openmpi/...
--
In file included from /usr/local/include/mpidefs.h:49,
from /usr/local/include/mpi.h:230,
from /opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:32,
from /opt/openmpi/1.2.7/include/mpi.h:1795,
from CommPhyMPI.cc:36:
/usr/local/include/mpio.h:79: warning: `MPI_FILE_NULL' redefined
/opt/openmpi/1.2.7/include/mpi.h:456: warning: this is the location of the 
previous definition
In file included from 
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:32,
from /opt/openmpi/1.2.7/include/mpi.h:1795,
from CommPhyMPI.cc:36:
/usr/local/include/mpi.h:263: warning: `MPI_STATUS_IGNORE' redefined
/opt/openmpi/1.2.7/include/mpi.h:458: warning: this is the location of the 
previous definition
/usr/local/include/mpi.h:264: warning: `MPI_STATUSES_IGNORE' redefined
/opt/openmpi/1.2.7/include/mpi.h:459: warning: this is the location of the 
previous definition
--
 
here are the errors:

In file included from /opt/openmpi/1.2.7/include/mpi.h:1795,
from CommPhyMPI.cc:36:
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:167: 
openmpi/ompi/mpi/cxx/constants.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:168: 
openmpi/ompi/mpi/cxx/functions.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:169: 
openmpi/ompi/mpi/cxx/datatype.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:193: 
openmpi/ompi/mpi/cxx/exception.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:194: 
openmpi/ompi/mpi/cxx/op.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:195: 
openmpi/ompi/mpi/cxx/status.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:196: 
openmpi/ompi/mpi/cxx/request.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:197: 
openmpi/ompi/mpi/cxx/group.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:198: 
openmpi/ompi/mpi/cxx/comm.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:199: 
openmpi/ompi/mpi/cxx/win.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:200: 
openmpi/ompi/mpi/cxx/file.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:201: 
openmpi/ompi/mpi/cxx/errhandler.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:202: 
openmpi/ompi/mpi/cxx/intracomm.h: No such file or di

Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 1:24 PM, Shafagh Jafer wrote:

I am confused now...should I use "/openmpi/mpic++ -E"  or "/openmpi/ 
mpic++" to compile my entire code??


mpic++.  I was showing you the -E functionality so that you could  
determine whether it really is picking up the wrong mpi.h or not.





--- On Mon, 9/22/08, Jeff Squyres  wrote:
From: Jeff Squyres 
Subject: Re: [OMPI users] conflict among differenv MPIs
To: "Open MPI Users" 
Date: Monday, September 22, 2008, 6:12 AM

On Sep 22, 2008, at 8:48 AM, Robert Kubrick wrote:

> Recompile your own version of openmpi in a local directory, set your
> PATH to your local openmpi install.
>
> export PATH=/my/openmpi/install/include:/usr/local/include
>
> mpicxx -show

mpicxx --showme should show you the exact command that Open MPI's
wrapper compiler is using to compile your application.  There should
already be an explicit -I there for where OMPI's mpi.h resides.  If
that's the case, the compiler should look there *first* for mpi.h,
not /usr/local/include.  Consider following example:

- I created include-test.c which just does an "#include
".
- If I run this through the preprocessor, you can see that it's
getting /usr/include/stdio.h:

[6:09] svbu-mpi:~/tmp % cat include-test.c
#include 
[6:09] svbu-mpi:~/tmp % gcc -E include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 28 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 319 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 320 "/usr/include/features.h" 2 3 4

- But now I make my-include-dir/stdio.h with a single line in it
- Then I recompile with an explicit -I for that directory and you can
see that the compiler picks up that stdio.h, not /usr/include/stdio.h

[6:09] svbu-mpi:~/tmp % cat my-include-dir/stdio.h
typedef int foo;
[6:09] svbu-mpi:~/tmp % gcc -E -Imy-include-dir include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "my-include-dir/stdio.h" 1
typedef int foo;
# 2 "include-test.c" 2
[6:10] svbu-mpi:~/tmp %

Are you sure that OMPI's mpicxx.h is picking up MPICH's mpi.h?  If so,

how?  Did you run it through the preprocessor (perhaps similar to
above), or step through a debugger or something?

--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Gus Correa

Hi Brian and list

I read your original posting and Jeff's answers.

Here on CentOS from Rocks Cluster I have a "native" OpenMPI, with a mpi.mod,
compiled with gfortran.
Note that I don't even have gfortran installed!
This is besides the MPI versions (MPICH2 and OpenMPI)
I installed from scratch using combinations of ifort and pgi with gcc.
It may be that mpif90 is not picking the right mpi.mod, as Jeff suggested.
Something like this may be part of your problem.
A "locate mpi.mod" should show what your system has.

Have you tried to force the directory where mpi.mod is searched for?
Something like this:

/full/path/to/openmpi/bin/mpif90  -module  
/full/path/to/openmpi_mpi.mod_directory/   hello_f90.f90


The ifort man pages has the "-module" syntax details.

I hope this helps.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


Hi Gus-

Thanks for the input.  I have been using full path names to both the
wrapper compilers and mpiexec from the first day I had two MPI
implementations on my machine, depending on if I want to use MPICH or
openMPI, but still the problem remains.  ARGG!

On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  wrote:
 


Hello Brian and list

My confusing experiences with multiple MPI implementations
were fixed the day I decided to use full path names to the MPI compiler
wrappers (mpicc, mpif77, etc) at compile time,
and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
and to do this in a consistent fashion (using the tools from the same
install to compile and to run the programs).

Most Linux distributions come with built in MPI implementations (often times
more than one),
and so do commercial compilers and other tools.
You end up with a mess of different MPI versions on your "native" PATH,
as well as variety of bin, lib, and include directories containing different
MPI stuff.
The easy way around is to use full path names, particularly if you install
yet another MPI implementation
from scratch.
Another way is to fix your PATH on your initialization files (.cshrc, etc)
to point to your preferred implementation (put the appropriate bin directory
ahead of everything else).
Yet another is to install the "environment modules" package on your system
and use it consistently.

My two cents.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:

   


I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules located in
/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before going
to where you tell it to go.  Or am I too optimistic?  Thanks again for
the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres  wrote:

 


On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:


   


Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
various lilbmpi* files as well as mpi.mod,

 


That should be correct.


   


but still get the same
error at compile-time.  Yes, I made sure to specifically build openMPI
with ifort 10.1.012, and did run the --showme command right after
installation to make sure the wrapper compiler was using ifort as
well.

 


Ok, good.


   


Before posting to this mailing list, I did uninstall and re-install
openMPI several times to make sure I had a clean install.  Still no
luck.  :(

 


Ok.  Have you checked around your machine to ensure that there is no
other
mpi.mod that the compiler is finding first?  E.g., in your MPICH2
installation?  Or is Open MPI installed by your distro, perchance?  You
might want to try a "rpm -qa | grep openmpi" (or whatever your distro's
equivalent is to check already-installed packages).

--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


   




 


___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

   





 





Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Shafagh Jafer
I am confused now...should I use "/openmpi/mpic++ -E"  or "/openmpi/mpic++" to 
compile my entire code??

--- On Mon, 9/22/08, Jeff Squyres  wrote:

From: Jeff Squyres 
Subject: Re: [OMPI users] conflict among differenv MPIs
To: "Open MPI Users" 
List-Post: users@lists.open-mpi.org
Date: Monday, September 22, 2008, 6:12 AM

On Sep 22, 2008, at 8:48 AM, Robert Kubrick wrote:

> Recompile your own version of openmpi in a local directory, set your  
> PATH to your local openmpi install.
>
> export PATH=/my/openmpi/install/include:/usr/local/include
>
> mpicxx -show

mpicxx --showme should show you the exact command that Open MPI's  
wrapper compiler is using to compile your application.  There should  
already be an explicit -I there for where OMPI's mpi.h resides.  If  
that's the case, the compiler should look there *first* for mpi.h,  
not /usr/local/include.  Consider following example:

- I created include-test.c which just does an "#include
".
- If I run this through the preprocessor, you can see that it's  
getting /usr/include/stdio.h:

[6:09] svbu-mpi:~/tmp % cat include-test.c
#include 
[6:09] svbu-mpi:~/tmp % gcc -E include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 28 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 319 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 320 "/usr/include/features.h" 2 3 4

- But now I make my-include-dir/stdio.h with a single line in it
- Then I recompile with an explicit -I for that directory and you can  
see that the compiler picks up that stdio.h, not /usr/include/stdio.h

[6:09] svbu-mpi:~/tmp % cat my-include-dir/stdio.h
typedef int foo;
[6:09] svbu-mpi:~/tmp % gcc -E -Imy-include-dir include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "my-include-dir/stdio.h" 1
typedef int foo;
# 2 "include-test.c" 2
[6:10] svbu-mpi:~/tmp %

Are you sure that OMPI's mpicxx.h is picking up MPICH's mpi.h?  If so, 

how?  Did you run it through the preprocessor (perhaps similar to  
above), or step through a debugger or something?

-- 
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



  

Re: [OMPI users] Checkpointing a restarted app fails

2008-09-22 Thread Josh Hursey
I believe this is now fixed in the trunk. I was able to reproduce with  
the current trunk and committed a fix a few minutes ago in r19601. So  
the fix should be in tonight's tarball (or you can grab it from SVN).  
I've made a request to have the patch applied to v1.3, but that may  
take a day or so to complete.


Let me know if this fix eliminates your SIGPIPE issues.

Thanks for the bug report :)

Cheers,
Josh

On Sep 17, 2008, at 11:55 PM, Matthias Hovestadt wrote:


Hi Josh!

First of all, thanks a lot for replying. :-)


When executing this checkpoint command, the running application
directly aborts, even though I did not specify the "--term" option:

--
mpirun noticed that process rank 1 with PID 14050 on node grid- 
demo-1.cit.tu-berlin.de exited on signal 13 (Broken pipe).

--
ccs@grid-demo-1:~$
Interesting. This looks like a bug with the restart mechanism in  
Open MPI. This was working fine, but something must have changed in  
the trunk to break it.


Do you perhaps know a SVN revision number of OMPI that
is known to be working? If this issue is a regression
failure, I would be glad to use the source from an old
but working SVN state...

A useful piece of debugging information for me would be a stack  
trace from the failed process. You should be able to get this from  
a core file it left or If you would set the following MCA variable  
in $HOME/.openmpi/mca-params.conf:

 opal_cr_debug_sigpipe=1
This will cause the Open MPI app to wait in a sleep loop when it  
detects a Broken Pipe signal. Then you should be able to attach a  
debugger and retrieve a stack trace.


I created this file:

ccs@grid-demo-1:~$ cat .openmpi/mca-params.conf
opal_cr_debug_sigpipe=1
ccs@grid-demo-1:~$

Then I restarted the application from a checkpointed state
and tried to checkpoint this restarted application. Unfortunately
the restated application still terminates, despite of this para-
meter. However, the output slightly changed :


worker fetch area available 1
[grid-demo-1.cit.tu-berlin.de:26220] opal_cr: sigpipe_debug: Debug  
SIGPIPE [13]: PID (26220)

--
mpirun noticed that process rank 0 with PID 26248 on node grid- 
demo-1.cit.tu-berlin.de exited on signal 0 (Unknown signal 0).

--
2 total processes killed (some possibly by mpirun during cleanup)
ccs@grid-demo-1:~$


There is now this additional "opal_cr: sigpipe_debug" line, so
he apparently evaluates the .openmpi/mca-params.conf


I also tried to get a corefile by setting "ulimit -c 5", so
that ulimit -a gives me the following output:

ccs@grid-demo-1:~$ ulimit -a
core file size  (blocks, -c) 0
data seg size   (kbytes, -d) unlimited
scheduling priority (-e) 20
file size   (blocks, -f) unlimited
pending signals (-i) unlimited
max locked memory   (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files  (-n) 1024
pipe size(512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority  (-r) 0
stack size  (kbytes, -s) 8192
cpu time   (seconds, -t) unlimited
max user processes  (-u) unlimited
virtual memory  (kbytes, -v) unlimited
file locks  (-x) unlimited
ccs@grid-demo-1:~$

Unfortunately, no corefile is generated, so that I do not know
how to give you the requested stacktrace.

Are there perhaps other debug parameters I could use?


Best,
Matthias
___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Hi Gus-

Thanks for the input.  I have been using full path names to both the
wrapper compilers and mpiexec from the first day I had two MPI
implementations on my machine, depending on if I want to use MPICH or
openMPI, but still the problem remains.  ARGG!

On Mon, Sep 22, 2008 at 9:40 AM, Gus Correa  wrote:
> Hello Brian and list
>
> My confusing experiences with multiple MPI implementations
> were fixed the day I decided to use full path names to the MPI compiler
> wrappers (mpicc, mpif77, etc) at compile time,
> and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
> and to do this in a consistent fashion (using the tools from the same
> install to compile and to run the programs).
>
> Most Linux distributions come with built in MPI implementations (often times
> more than one),
> and so do commercial compilers and other tools.
> You end up with a mess of different MPI versions on your "native" PATH,
> as well as variety of bin, lib, and include directories containing different
> MPI stuff.
> The easy way around is to use full path names, particularly if you install
> yet another MPI implementation
> from scratch.
> Another way is to fix your PATH on your initialization files (.cshrc, etc)
> to point to your preferred implementation (put the appropriate bin directory
> ahead of everything else).
> Yet another is to install the "environment modules" package on your system
> and use it consistently.
>
> My two cents.
>
> Gus Correa
>
> --
> -
> Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
> Lamont-Doherty Earth Observatory - Columbia University
> P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
> -
>
>
> Brian Harker wrote:
>
>> I built and installed both MPICH2 and openMPI from source, so no
>> distribution packages or anything.  MPICH2 has the modules located in
>> /usr/local/include, which I assume would be found (since its in my
>> path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
>> right?  I can't imagine that if you tell it where to look for the
>> correct modules, it would search through your path first before going
>> to where you tell it to go.  Or am I too optimistic?  Thanks again for
>> the input!
>>
>> On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres  wrote:
>>
>>>
>>> On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:
>>>
>>>

 Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
 various lilbmpi* files as well as mpi.mod,

>>>
>>> That should be correct.
>>>
>>>

 but still get the same
 error at compile-time.  Yes, I made sure to specifically build openMPI
 with ifort 10.1.012, and did run the --showme command right after
 installation to make sure the wrapper compiler was using ifort as
 well.

>>>
>>> Ok, good.
>>>
>>>

 Before posting to this mailing list, I did uninstall and re-install
 openMPI several times to make sure I had a clean install.  Still no
 luck.  :(

>>>
>>> Ok.  Have you checked around your machine to ensure that there is no
>>> other
>>> mpi.mod that the compiler is finding first?  E.g., in your MPICH2
>>> installation?  Or is Open MPI installed by your distro, perchance?  You
>>> might want to try a "rpm -qa | grep openmpi" (or whatever your distro's
>>> equivalent is to check already-installed packages).
>>>
>>> --
>>> Jeff Squyres
>>> Cisco Systems
>>>
>>> ___
>>> users mailing list
>>> us...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>>
>>
>>
>>
>>
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



-- 
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is stamp-collecting."
 -Ernest Rutherford


Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Gus Correa

Hello Brian and list

My confusing experiences with multiple MPI implementations
were fixed the day I decided to use full path names to the MPI compiler
wrappers (mpicc, mpif77, etc) at compile time,
and to the MPI job launcher (mpirun, mpiexec, and so on) at run time,
and to do this in a consistent fashion (using the tools from the same 
install to compile and to run the programs).


Most Linux distributions come with built in MPI implementations (often 
times more than one),

and so do commercial compilers and other tools.
You end up with a mess of different MPI versions on your "native" PATH,
as well as variety of bin, lib, and include directories containing 
different MPI stuff.
The easy way around is to use full path names, particularly if you 
install yet another MPI implementation

from scratch.
Another way is to fix your PATH on your initialization files (.cshrc, 
etc) to point to your preferred implementation (put the appropriate bin 
directory ahead of everything else).
Yet another is to install the "environment modules" package on your 
system and use it consistently.


My two cents.

Gus Correa

--
-
Gustavo J. Ponce Correa, PhD - Email: g...@ldeo.columbia.edu
Lamont-Doherty Earth Observatory - Columbia University
P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000 - USA
-


Brian Harker wrote:


I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules located in
/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before going
to where you tell it to go.  Or am I too optimistic?  Thanks again for
the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres  wrote:
 


On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:

   


Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
various lilbmpi* files as well as mpi.mod,
 


That should be correct.

   


but still get the same
error at compile-time.  Yes, I made sure to specifically build openMPI
with ifort 10.1.012, and did run the --showme command right after
installation to make sure the wrapper compiler was using ifort as
well.
 


Ok, good.

   


Before posting to this mailing list, I did uninstall and re-install
openMPI several times to make sure I had a clean install.  Still no
luck.  :(
 


Ok.  Have you checked around your machine to ensure that there is no other
mpi.mod that the compiler is finding first?  E.g., in your MPICH2
installation?  Or is Open MPI installed by your distro, perchance?  You
might want to try a "rpm -qa | grep openmpi" (or whatever your distro's
equivalent is to check already-installed packages).

--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

   





 





Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres
I unfortunately don't know ifort's precedence rules for finding  
modules -- I actually don't even remember if -I is the right flag to  
find them.  mpif90 should be adding whatever flags are necessary to  
find out mpi.mod, though -- but I'm wondering if MPICH's is being  
found first, since it's in /usr/local/lib.  Check the ifort man page,  
I guess...?  An easy way to test would be to rename /usr/local/lib/ 
mpi.mod to be /usr/local/lib/foo.mod, and then see if your compile  
works.  If it does, it might be simplest to install MPICH into  
somewhere other than /usr/local.


You might also want to check your distro anyway; some distros are  
shipping Open MPI these days and I don't know what options you need to  
select to get their version of Open MPI installed by default (or not).



On Sep 22, 2008, at 11:14 AM, Brian Harker wrote:


I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules located in
/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before going
to where you tell it to go.  Or am I too optimistic?  Thanks again for
the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres   
wrote:

On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:


Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
various lilbmpi* files as well as mpi.mod,


That should be correct.


but still get the same
error at compile-time.  Yes, I made sure to specifically build  
openMPI

with ifort 10.1.012, and did run the --showme command right after
installation to make sure the wrapper compiler was using ifort as
well.


Ok, good.


Before posting to this mailing list, I did uninstall and re-install
openMPI several times to make sure I had a clean install.  Still no
luck.  :(


Ok.  Have you checked around your machine to ensure that there is  
no other

mpi.mod that the compiler is finding first?  E.g., in your MPICH2
installation?  Or is Open MPI installed by your distro, perchance?   
You
might want to try a "rpm -qa | grep openmpi" (or whatever your  
distro's

equivalent is to check already-installed packages).

--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users





--
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is stamp-collecting."
-Ernest Rutherford
___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
I built and installed both MPICH2 and openMPI from source, so no
distribution packages or anything.  MPICH2 has the modules located in
/usr/local/include, which I assume would be found (since its in my
path), were it not for specifying -I$OPENMPI_HOME/lib at compile time,
right?  I can't imagine that if you tell it where to look for the
correct modules, it would search through your path first before going
to where you tell it to go.  Or am I too optimistic?  Thanks again for
the input!

On Mon, Sep 22, 2008 at 8:58 AM, Jeff Squyres  wrote:
> On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:
>
>> Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
>> various lilbmpi* files as well as mpi.mod,
>
> That should be correct.
>
>> but still get the same
>> error at compile-time.  Yes, I made sure to specifically build openMPI
>> with ifort 10.1.012, and did run the --showme command right after
>> installation to make sure the wrapper compiler was using ifort as
>> well.
>
> Ok, good.
>
>> Before posting to this mailing list, I did uninstall and re-install
>> openMPI several times to make sure I had a clean install.  Still no
>> luck.  :(
>
> Ok.  Have you checked around your machine to ensure that there is no other
> mpi.mod that the compiler is finding first?  E.g., in your MPICH2
> installation?  Or is Open MPI installed by your distro, perchance?  You
> might want to try a "rpm -qa | grep openmpi" (or whatever your distro's
> equivalent is to check already-installed packages).
>
> --
> Jeff Squyres
> Cisco Systems
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



-- 
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is stamp-collecting."
 -Ernest Rutherford


Re: [OMPI users] Segmentation Fault--libc.so.6(__libc_start_main...

2008-09-22 Thread Jeff Squyres
Aurelien's advice is good -- check and see exactly what the debugger  
is telling you.  You might want to look at the corefile in the  
debugger and see exactly where it failed -- it may or may not be an  
MPI issue.


Also -- Aurelien didn't directly say it, but don't worry about the  
OMPI_DECLSPEC stuff.  You'll see earlier in mpi.h that OMPI_DECLSPEC  
is #define'd to be empty (it's for Windows compatibility).


Keep in mind that although different MPI implementations provide  
source code compatibility for MPI applications, they are not binary- 
portable.


So if you compile an MPI application with MPICH's wrapper compilers,  
it will not run properly under Open MPI's mpirun (and vice versa).   
You must entirely compile your application with Open MPI's wrapper  
compilers and then run it with Open MPI's mpirun.



On Sep 21, 2008, at 12:35 PM, Aurélien Bouteiller wrote:

Are you sure that you have matching versions of the MPI library and  
mpi.h file ? Open MPI and MPICH have different internal types for  
the opaque MPI objects (such as MPI_Comm). If you have mismatching  
mpi.h and mpi library, you'll transmit those as integer to the  
library while it is expecting pointers. This will obviously segfault  
very badly. Please make sure that you actually use the mpi.h from  
open MPI (by using Open MPI's mpicc) to compile your program when  
using Open MPI. Also make sure that you don't have another version  
of libmpi in your LD_LIBRARY_PATH that could be used instead of the  
one you used to compile.


Aurelien

Le 21 sept. 08 à 04:38, Shafagh Jafer a écrit :



Ok. I noticed that whenever in my code, i use an MPI fucntion that  
has
"OMPI_DECLSPEC"  in front of it in mpi.h , I get this segfault  
error. Could some one please tell me what is "OMPI_DECLSPEC"?? is  
it a macro that I need to enable ?!?
forexample, in MPICH the function getsize in mpi.h looks like the  
following:


int MPI_Comm_size(MPI_Comm, int *);

but the same function in OMPI apears as follows:
OMPI_DECLSPEC int MPI_Comm_size(MPI_Comm comm, int *size);

--- On Sat, 9/20/08, Shafagh Jafer  wrote:
From: Shafagh Jafer 
Subject: Re: [OMPI users] Segmentation Fault--libc.so. 
6(__libc_start_main...

To: "Open MPI Users" 
Date: Saturday, September 20, 2008, 9:50 PM

My code was working perfect when I had it with MPICH now I have  
replaced that with OMPI. Could that be the problem?? Do I need to  
change any part of my source code if I migrate from MPICH-1.2.6 to  
OpenMPI-1.2.7?? Please let me know.


--- On Sat, 9/20/08, Aurélien Bouteiller   
wrote:

From: Aurélien Bouteiller 
Subject: Re: [OMPI users] Segmentation Fault--libc.so. 
6(__libc_start_main...

To: "Open MPI Users" 
Date: Saturday, September 20, 2008, 6:54 AM

Shafagh,

You have a segfault in your own code. Because Open MPI detects it, it
forwards the error to you and pretty print it but Open MPI is not the
source of the bug. From the stack trace, I suggest you gdb debug the
PhysicalGetID function.

Aurelien

Le 19 sept. 08 à 22:22, Shafagh Jafer a écrit :

> Hi every one,
> I need urgent help plz :-(
> I am getting the following error when i run my program. OpenMPI
> compilation was all fine and went well, but now i dont understand
> the source of this error:
> 
> [node01:29264] *** Process received signal ***
> [node01:29264] Signal: Segmentation fault (11)
> [node01:29264] Signal code: Address not mapped (1)
> [node01:29264] Failing at address: 0xcf
> [node01:29264] [ 0] /lib/tls/libpthread.so.0 [0x7ccf80]
> [node01:29264] [ 1] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (physicalGetId__C10CommPhyMPI+0x14) [0x8305880]
> [node01:29264] [ 2] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (physicalCommGetId__Fv+0x43) [0x82ff81b]
> [node01:29264] [ 3] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (openComm__16StandAloneLoader+0x1f) [0x80fdf43]
> [node01:29264] [ 4] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (run__21ParallelMainSimulator+0x1640) [0x81ea53c]
> [node01:29264] [ 5] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (main+0xde) [0x80a58ce]
> [node01:29264] [ 6] /lib/tls/libc.so.6(__libc_start_main+0xda)
> [0xe3d79a]
> [node01:29264] [ 7] /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
cd++

> (sinh+0x4d) [0x80a2221]
> [node01:29264] *** End of error message ***
> mpirun noticed that job rank 0 with PID 29264 on node node01 exited
> on signal 11 (Segmentation fault).
> ===
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users



--
* Dr. Aurélien Bouteiller
* Sr. Research Associate at Innovative Computing Laboratory
* University of Tennessee
* 1122 Volunteer Boulevard, suite 350
* Knoxville, TN 37996
* 865 974 6321





___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.c

Re: [OMPI users] Segmentation Fault--libc.so.6(__libc_start_main...

2008-09-22 Thread Jeff Squyres

On Sep 21, 2008, at 3:46 PM, Shafagh Jafer wrote:


Yes I am using openmpi mpicc and mpic++ to compile my code,


Are you 100% sure that you're using Open MPI's mpicc / mpic++?  (and  
not MPICH's)  This could be a cause for error.



and I only have openmpi's lib directory in my LD_LIBRARY_PATH. to  
make sure that I am including the mpi.h of openmpi, i added this  
line to my source code

#include "/opt/openmpi/1.2.7/include/mpi.h"
instead of only saying
#include "mpi.h"
but now i get the following errors, which show that the wrapper  
compiler is not adding "
-I${prefix}/include/openmpi" infron of the included files from cxx  
folder.


In file included from /opt/openmpi/1.2.7/include/mpi.h:1795,
 from CommPhyMPI.cc:36:
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:167:  
CommMgrInterface.cc -o /nfs/sjafer/phd/openMPI/latest_cd++_timewarp/ 
warped/TimeWarp/src/obj/CommMgrInterface.o

openmpi/ompi/mpi/cxx/constants.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:168:  
openmpi/ompi/mpi/cxx/functions.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:169:  
openmpi/ompi/mpi/cxx/datatype.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:193:  
openmpi/ompi/mpi/cxx/exception.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:194:  
openmpi/ompi/mpi/cxx/op.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:195:  
openmpi/ompi/mpi/cxx/status.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:196:  
openmpi/ompi/mpi/cxx/request.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:197:  
openmpi/ompi/mpi/cxx/group.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:198:  
openmpi/ompi/mpi/cxx/comm.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:199:  
openmpi/ompi/mpi/cxx/win.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:200:  
openmpi/ompi/mpi/cxx/file.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:201:  
openmpi/ompi/mpi/cxx/errhandler.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:202:  
openmpi/ompi/mpi/cxx/intracomm.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:203:  
openmpi/ompi/mpi/cxx/topology.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:204:  
openmpi/ompi/mpi/cxx/intercomm.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:205:  
openmpi/ompi/mpi/cxx/info.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:244:  
openmpi/ompi/mpi/cxx/datatype_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:245:  
openmpi/ompi/mpi/cxx/functions_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:246:  
openmpi/ompi/mpi/cxx/request_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:247:  
openmpi/ompi/mpi/cxx/comm_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:248:  
openmpi/ompi/mpi/cxx/intracomm_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:249:  
openmpi/ompi/mpi/cxx/topology_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:250:  
openmpi/ompi/mpi/cxx/intercomm_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:251:  
openmpi/ompi/mpi/cxx/group_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:252:  
openmpi/ompi/mpi/cxx/op_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:253:  
openmpi/ompi/mpi/cxx/errhandler_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:254:  
openmpi/ompi/mpi/cxx/status_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:255:  
openmpi/ompi/mpi/cxx/info_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:256:  
openmpi/ompi/mpi/cxx/win_inln.h: No such file or directory
/opt/openmpi/1.2.7/include/openmpi/ompi/mpi/cxx/mpicxx.h:257:  
openmpi/ompi/mpi/cxx/file_inln.h: No such file or directory
make[1]: *** [/nfs/sjafer/phd/openMPI/latest_cd++_timewarp/warped/ 
TimeWarp/src/obj/CommPhyMPI.o] Error 1



--- On Sun, 9/21/08, Aurélien Bouteiller   
wrote:

From: Aurélien Bouteiller 
Subject: Re: [OMPI users] Segmentation Fault--libc.so. 
6(__libc_start_main...

To: "Open MPI Users" 
Date: Sunday, September 21, 2008, 9:35 AM

Are you sure that you have matching versions of the MPI library and
mpi.h file ? Open M

Re: [OMPI users] Migrating from MPICH-1.2.6 to OpenMPI-1.2.7

2008-09-22 Thread Jeff Squyres
Open MPI and MPICH are both implementations of the MPI standard.  As  
such, correct MPI applications should be completely source-portable  
between Open MPI and any other MPI implementation (including MPICH).



On Sep 21, 2008, at 12:46 AM, Shafagh Jafer wrote:


Hello,
I want to know if I need to make any modifications to my source code  
to replace MPICH-1.2.6 with Openmpi-1.2.7?? I mean are the function  
interfaces exactly the same in both MPISH and OMPI?? please let me  
know.

Thanks.

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 10:10 AM, Brian Harker wrote:


Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
various lilbmpi* files as well as mpi.mod,


That should be correct.


but still get the same
error at compile-time.  Yes, I made sure to specifically build openMPI
with ifort 10.1.012, and did run the --showme command right after
installation to make sure the wrapper compiler was using ifort as
well.


Ok, good.


Before posting to this mailing list, I did uninstall and re-install
openMPI several times to make sure I had a clean install.  Still no
luck.  :(


Ok.  Have you checked around your machine to ensure that there is no  
other mpi.mod that the compiler is finding first?  E.g., in your  
MPICH2 installation?  Or is Open MPI installed by your distro,  
perchance?  You might want to try a "rpm -qa | grep openmpi" (or  
whatever your distro's equivalent is to check already-installed  
packages).


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Brian Harker
Hi Jeff-

Thanks for the reply...crap, $HOME/openmpi/lib does contains all the
various lilbmpi* files as well as mpi.mod, but still get the same
error at compile-time.  Yes, I made sure to specifically build openMPI
with ifort 10.1.012, and did run the --showme command right after
installation to make sure the wrapper compiler was using ifort as
well.

Before posting to this mailing list, I did uninstall and re-install
openMPI several times to make sure I had a clean install.  Still no
luck.  :(

I do have MPICH2 installed, but I keep it isolated with the -I
specifier option at compile-time.




On Mon, Sep 22, 2008 at 7:04 AM, Jeff Squyres  wrote:
> On Sep 19, 2008, at 6:51 PM, Brian Harker wrote:
>
>> I have configured openMPI to work with the Intel C (icc) and C++
>> (icpc) compilers, as well as the Intel fortran (ifort) compiler, and
>> built all the single choice buffer fortran 90 bindings:
>>
>> ./configure --prefix=$HOME/openmpi CC=icc CXX=icpc F77=ifort FC=ifort
>> --enable-mpi-f90 --with-mpi-f90-size=medium
>
> That all looks correct.
>
>> which works fine.  Ok.  Onto make all install.  Works fine too.  Now
>> when I try to compile the example hello_f90.f90 program, I get the
>> following error:
>>
>>> $HOME/openmpi/bin/mpif90 hello_f90.f90 -I$HOME/openmpi/include
>
> FWIW, you shouldn't need that -I, but that *probably* shouldn't be causing
> your problem here (note that OMPI's F90 module file is installed into
> $prefix/lib, not $prefix/include).
>
>> fortcom: Error: hello_f90.f90, line 12:  This module file was not
>> generated by any release of this compiler.[MPI]
>>   use mpi
>> ---^
>
> Two things to check:
>
> 1. Are you using exactly the same ifort to build Open MPI as mpif90 is?  I
> assume it is, but it's worth checking.  You can run the following to see
> exactly what mpif90 will execute:
>
> $HOME/openmpi/bin/mpif90 hello_f90.f90 -I$HOME/openmpi/include --showme
>
> And then run it yourself, ensuring that your $PATH is set to get the exact
> same ifort, etc.  I'm *guessing* that this is all correct, but it's worth
> checking.
>
> 2. Check to see if there is another mpi.mod installed somewhere in the
> compiler search path that is not the mpi.mod that you expect.  For example,
> you might want to "rm -rf $HOME/openmpi" to ensure to have a 100% clean Open
> MPI install.  And look elsewhere on the machine for mpi.mod that may be
> found in the compiler search patch before the Open MPI-installed mpi.mod is
> found.
>
> --
> Jeff Squyres
> Cisco Systems
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



-- 
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is stamp-collecting."
 -Ernest Rutherford


Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Jeff Squyres

On Sep 22, 2008, at 8:48 AM, Robert Kubrick wrote:

Recompile your own version of openmpi in a local directory, set your  
PATH to your local openmpi install.


export PATH=/my/openmpi/install/include:/usr/local/include

mpicxx -show


mpicxx --showme should show you the exact command that Open MPI's  
wrapper compiler is using to compile your application.  There should  
already be an explicit -I there for where OMPI's mpi.h resides.  If  
that's the case, the compiler should look there *first* for mpi.h,  
not /usr/local/include.  Consider following example:


- I created include-test.c which just does an "#include ".
- If I run this through the preprocessor, you can see that it's  
getting /usr/include/stdio.h:


[6:09] svbu-mpi:~/tmp % cat include-test.c
#include 
[6:09] svbu-mpi:~/tmp % gcc -E include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 28 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 319 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 320 "/usr/include/features.h" 2 3 4

- But now I make my-include-dir/stdio.h with a single line in it
- Then I recompile with an explicit -I for that directory and you can  
see that the compiler picks up that stdio.h, not /usr/include/stdio.h


[6:09] svbu-mpi:~/tmp % cat my-include-dir/stdio.h
typedef int foo;
[6:09] svbu-mpi:~/tmp % gcc -E -Imy-include-dir include-test.c | head
# 1 "include-test.c"
# 1 ""
# 1 ""
# 1 "include-test.c"
# 1 "my-include-dir/stdio.h" 1
typedef int foo;
# 2 "include-test.c" 2
[6:10] svbu-mpi:~/tmp %

Are you sure that OMPI's mpicxx.h is picking up MPICH's mpi.h?  If so,  
how?  Did you run it through the preprocessor (perhaps similar to  
above), or step through a debugger or something?


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Configure and Build ok, but mpi module not recognized?

2008-09-22 Thread Jeff Squyres

On Sep 19, 2008, at 6:51 PM, Brian Harker wrote:


I have configured openMPI to work with the Intel C (icc) and C++
(icpc) compilers, as well as the Intel fortran (ifort) compiler, and
built all the single choice buffer fortran 90 bindings:

./configure --prefix=$HOME/openmpi CC=icc CXX=icpc F77=ifort FC=ifort
--enable-mpi-f90 --with-mpi-f90-size=medium


That all looks correct.


which works fine.  Ok.  Onto make all install.  Works fine too.  Now
when I try to compile the example hello_f90.f90 program, I get the
following error:


$HOME/openmpi/bin/mpif90 hello_f90.f90 -I$HOME/openmpi/include


FWIW, you shouldn't need that -I, but that *probably* shouldn't be  
causing your problem here (note that OMPI's F90 module file is  
installed into $prefix/lib, not $prefix/include).



fortcom: Error: hello_f90.f90, line 12:  This module file was not
generated by any release of this compiler.[MPI]
   use mpi
---^


Two things to check:

1. Are you using exactly the same ifort to build Open MPI as mpif90  
is?  I assume it is, but it's worth checking.  You can run the  
following to see exactly what mpif90 will execute:


$HOME/openmpi/bin/mpif90 hello_f90.f90 -I$HOME/openmpi/include --showme

And then run it yourself, ensuring that your $PATH is set to get the  
exact same ifort, etc.  I'm *guessing* that this is all correct, but  
it's worth checking.


2. Check to see if there is another mpi.mod installed somewhere in the  
compiler search path that is not the mpi.mod that you expect.  For  
example, you might want to "rm -rf $HOME/openmpi" to ensure to have a  
100% clean Open MPI install.  And look elsewhere on the machine for  
mpi.mod that may be found in the compiler search patch before the Open  
MPI-installed mpi.mod is found.


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] conflict among differenv MPIs

2008-09-22 Thread Robert Kubrick
Recompile your own version of openmpi in a local directory, set your  
PATH to your local openmpi install.


export PATH=/my/openmpi/install/include:/usr/local/include

mpicxx -show

On Sep 21, 2008, at 11:05 PM, Shafagh Jafer wrote:


I have tried this, but didn't help :-( could any one help please???

--- On Sun, 9/21/08, Brian Harker  wrote:
From: Brian Harker 
Subject: Re: [OMPI users] conflict among differenv MPIs
To: "Open MPI Users" 
Date: Sunday, September 21, 2008, 6:52 PM

Just specify where each individual MPI distribution's stuff is on the
command line when you compile with mpicc *.c -I$MPICH_HOME/include or
mpicc *.c -I$OPENMPI_HOME/include where the "HOME" directories were
specified with --prefix= when you installed.  Hope this helps.  This
works for me.  Hope this helps.  Cheers!

On Sun, Sep 21, 2008 at 7:37 PM, Shafagh Jafer   
wrote:
> I have both openmpi and MPICH on my cluster, the problem is that  
mpi.h of
> MPICH is in /usr/local/include and I dont have permission to  
rename or

> remove it from there. In my source code I am including the mpi.h of
openmpi
> and this works fine, but then mpi.h itself includes mpicxx.h  
which it

again
> includes openmpi's mpi.h and this is my problem becase the system  
goes

and
> takes the mpi.h file of MPICH which is in /usr/local/include and  
thus i

get
> errors segfaults! I am using mpicc wrapper to compile my code and  
i think

my
> problem is due to having other mpi.h files. Am I right?? What  
should I do

to
> make /usr/local/include in-accesible from my code??? Please help me!
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



--
Cheers,
Brian
brian.har...@gmail.com


"In science, there is only physics; all the rest is
stamp-collecting."
 -Ernest Rutherford
___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




Re: [OMPI users] Mpirun don't execute

2008-09-22 Thread Jeff Squyres

On Sep 19, 2008, at 6:50 PM, Santolo Felaco wrote:


Hi, I try to be clearer:
osa@libertas:~$ echo $LD_LIBRARY_PATH
/usr/local/lib:/home/osa/blcr/lib
osa@libertas:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ 
games:/home/osa/blcr/bin


I compile the file with mpicc, then:
osa@libertas:~/prove/openmpi$ mpirun -np 2 es1

The comand is blocked. Don't run. CTRL+X  does not end the program.


Try ctrl-c -- that's usually the way to kill applications that appear  
to have been hung.



This is ps output:

osa@libertas:~/prove/openmpi$ mpirun -np 2 es1 &
[1] 6151
osa@libertas:~/prove/openmpi$ ps
  PID TTY  TIME CMD
 6135 pts/200:00:00 bash
 6151 pts/200:00:00 mpirun
 6153 pts/200:00:00 ssh
 6161 pts/200:00:00 ps



What is your program doing?  Can you tell if it's getting past  
MPI_INIT, or even launching at all?  Can you mpirun non-MPI  
applications, such as "hostname" and "uptime"?


Are you launching this es1 application locally or remotely?  From your  
command line and previous description, I *assume* that it's local, but  
I see an "ssh" in your ps output, possibly meaning that mpirun has  
launched the application remotely (e.g., if you specified a default  
hostfile or somesuch).


--
Jeff Squyres
Cisco Systems



Re: [OMPI users] Problem with MPI_Send and MPI_Recv

2008-09-22 Thread Sofia Aparicio Secanellas

Hello Terry,

I do not have an active firewall. I have typed on both computers:

netstat -lnut

I enclose you the results.

I have also written on both computers:

mpirun -np 2 --host 10.1.10.208,10.1.10.240 --mca mpi_preconnect_all 
1 --prefix /usr/local -mca btl self,tcp -mca btl_tcp_if_include eth1 
./PruebaSumaParalela.out


I enclose you the results.

Thank you.

Sofia

- Original Message - 
From: "Terry Dontje" 

To: 
Sent: Friday, September 19, 2008 7:54 PM
Subject: Re: [OMPI users] Problem with MPI_Send and MPI_Recv



Hello Sofia,

After further reflection I wonder if you have a firewall that is 
preventing connections to certain ports.


--td

Terry Dontje wrote:

Hello Sofia,

Ok, so I really wanted the stack of when you run with "-mca 
mpi_preconnect_all 1"  I believe you'll see that one of the processes 
will be in init.  However, the stack still probably will not help me help 
you.  What needs to happen is to step through the code in dbx while the 
connection is trying to be established.  I am hoping you might find the 
connect call fails or that we've been given an interface that somehow 
cannot reach the other node.  However, when you specified "-mca 
btl_tcp_if_include eth1" that should have forced things to use the 
interface you need.  So it really comes down to why are we not connecting 
to the eth1 address?  Are we failing on routing to that address or is the 
connect failing because we are trying to use a port that we are not 
really allowed to use or is it something else?


I don't think it is a routing problem since you are able to reach each 
node via ssh.  Is there someone else on the list that might want to lend 
a hand here?  I feel like I am missing something obvious going on here.


--td

Date: Fri, 19 Sep 2008 16:09:11 +0200
From: "Sofia Aparicio Secanellas" 
Subject: Re: [OMPI users] Problem with MPI_Send and MPI_Recv
To: "Open MPI Users" 
Message-ID: <1BBF50FE29F743B5829CC3785F47CADD@aparicio1>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"

Hello Terry,

I have installed 1.2.7 and I obtain the same result.

I will explain you what I have done.

1. On my computer edu@10.1.10.240 I have added a new user called sofia. 
This way I have sofia@10.1.10.208 and sofia@10.1.10.240.
2. I have downloaded the openmpi 1.2.7 from the openmpi website on both 
computers in /home/sofia/Desktop.
3. I have installed everything using "sudo ./configure", "sudo make" and 
"sudo make install".
4. To make ssh not ask me for a password. I have typed in 
sofia@10.1.10.208 "ssh-keygen -t dsa", "cd $HOME/.ssh" and "cp 
id_dsa.pub authorized_keys". I have copied the directory 
"/home/sofia/.ssh" from sofia@10.1.10.208 to /home/sofia/.ssh in 
sofia@10.1.10.240. The ssh  command without password works on computer 
sofia@10.1.10.208  but computer sofia@10.1.10.208 ask me for a 
passphrase and for the password. Is it normal?
5. I have created a directory "/home/sofia/programasparalelos" on both 
computers and I have given permissions to the directory with "chmod 
777".
6. I have copied on both computers in "/home/sofia/programasparalelos" 
the program "PruebaSumaParalela.c" (I have changed a little bit the 
program, I enclose you the new program) and I have compiled using "mpicc 
PruebaSumaParalela.c -o PruebaSumaParalela.out".


7. Now I run the program on both computersusing the command:

mpirun -np2 --host 10.1.10.208,10.1.10.240 --prefix /usr/local 
./PruebaSumaParalela.out


 When I run the program I obtain 3 PIDs executing on every computer, 2 
of "./PruebaSumaParalela.out" and 1 of  "mpirun -np2 --host 
10.1.10.208,10.1.10.240 --prefix /usr/local ./PruebaSumaParalela.out". I 
enclose you the results obtained on every computer for every 
"./PruebaSumaParalela.out".


Thank you very much.

Sofia






___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



No virus found in this incoming message
Checked by PC Tools AntiVirus (4.0.0.26 - 10.100.007).
http://www.pctools.com/free-antivirus/ 


No virus found in this outgoing message
Checked by PC Tools AntiVirus (4.0.0.26 - 10.100.007).
http://www.pctools.com/free-antivirus/


current thread: t@3083814576
 [1] 0xe410(0x0, 0x8051584, 0xb7d1fc29, 0x0, 0x0, 0xb7ec48d0), at 0xe410 
 [2] sigprocmask(0x0, 0x8051584, 0x0, 0xbfa13c40, 0x0, 0xb7ee4458), at 0xb7d1fc29 
 [3] opal_evsignal_recalc(0x8051584, 0x4, 0x0, 0xb7ee4458, 0x8051568, 0x4), at 0xb7ec47f4 
 [4] opal_poll_dispatch(0x8051530, 0x8051568, 0xbfa13d40, 0xb7f668b4, 0x80482e8, 0x1), at 0xb7ec5870 
 [5] opal_event_base_loop(0x8051530, 0x2, 0x0, 0xb7ee4458, 0xb7ec2e69), at 0xb7ec2ae9 
 [6] opal_event_loop(0x2, 0xb7c301a8, 0x1a9b860, 0x0, 0x1a9dd9c, 0x0), at 0xb7ec2e89 
 [7] opal_progress(0x820ca00, 0x8049c00, 0x1, 0xbfa13e68, 0xb7fda408, 0xb7fda408), at 0xb7ebd606 
 [8] mca_pml_ob1_recv(0xbfa13e68, 0x1, 0x8049c00, 0x1, 0x1, 0x8049d40), at 0xb7c25e56 
 [9] PMPI_Recv(0xbfa13e68, 0x1, 0x8049c