Re: [O-MPI users] [Beowulf] MPI ABI

2005-10-11 Thread Toon Knapen
Greg Lindahl wrote:
>>ignoring the politics for a moment, what are the technical sticking points?
> 
> Fortran name-mangling

Up to the MPI 1.2, f77 is used so only functions that are new in MPI2
will be available in a mangled version only. So all others can be linked
with using C linkage conventions.


> Fortran LOGICAL


could you elaborate?




Re: [O-MPI users] [Beowulf] MPI ABI

2005-10-11 Thread Toon Knapen
William Gropp wrote:
> 
> Fortran name mangling here means how are Fortran routine names in the
> source code mapped to names in the object library.  For example, is
> 
> MPI_Init
> 
> in the Fortran source mapped to
> 
> MPI_INIT
> mpi_init
> mpi_init_
> mpi_init__
> MPI_Init_
> 
> Each of these has been chosen by some Fortran 77 compiler.  Confusion
> over this is one of the most common problems that users face,
> particularly when they use command line options to *change* the way the
> Fortran compiler maps the names in their code.


but that's an easy one to solve. We already do it for BLAS and LAPACK.
Based on some preprocessor directives we generate macro's that convert
every 'dgemm' in our C/C++ app into DGEMM, dgemm_, dgemm__ etc.

It get's more complicated once the arguments are taken into account to
mangle the function-name (like in C++ and also f90 AFAICT). The x86 ABI
defines how the C++ compiler should mangle the arguments along with the
function-name but for fortran90 there is no such ABI, certainly not on
all platforms.


> 
> Calling conventions introduce another issue.  How are Fortran CHARACTER
> data passed to and from a routine?  A common but not universal choice in
> the Unix world is to pass the address of the character data in the
> position that the argument occurs in the calling sequence and append as
> an integer value (not pointer to integer) the length of the CHARACTER
> data to the end of the argument list.  Other compilers insert the length
> immediately after the address of the character data and still others
> pass the address of a dope vector describing the character data.


There again we have routines that do 'the right thing' dependent on the
compiler that is being detected. Not very complicated (once you found
out what the convention is ;-).


>> > Fortran LOGICAL
>>
>>
>> could you elaborate?
> 
> 
> What is the value of .TRUE.?  Is it 1? 0? -1? Any negative value?  All
> of those have been used by some Fortran 77 compiler.  The Fortran
> standard leaves this up to the implementer.

Hm, I never encountered this problem yet.


The one thing about linking f77 and C that I do not know how to solve
yet is e.g. fortran functions that return a complex. I understand
functions that return e.g. a double just use the same calling convention
as C functions that return a double. Fortran functions that return a
complex however use a calling convention that is similar to C functions
that have the same argument list but with an additional complex argument
and a void return type. And I'm not sure this is the case on all
platforms BTW.


toon


[O-MPI users] RE-make problems

2005-10-11 Thread sdamjad
Brain
here is the output of make and make install


make.out
Description: Binary data


makeinstall.out
Description: Binary data


[O-MPI users] Difficulties building 1.0rc2 on Tiger

2005-10-11 Thread Charles Williams
Hi,I have successfully built several previous releases on my machine, but this last release exited with an error.  I am attaching the build and config logs, but as near as I can tell, the problem is a simple typo in the source file.  I was able to get things to build (although I haven't yet tested things) by simply changing the following line in openmpi-1.0rc2/orte/mca/pls/xgrid/src/pls_xgrid_client.m:Original line 254:  rc = orte_rmaps_base_mapped_node_query(&mapping_list, &nodes, jobid);Changed line 254:  ret = orte_rmaps_base_mapped_node_query(&mapping_list, &nodes, jobid);Please let me know if this is a reasonable change.  I don't have XGrid set up, so I wouldn't be able to test this anyway.Thanks,Charles Williams

config.log
Description: Binary data


openmpi-make1.log
Description: Binary data
 Charles A. Williams Dept. of Earth & Environmental Sciences Science Center, 2C01B Rensselaer Polytechnic Institute Troy, NY  12180 Phone:    (518) 276-3369 FAX:        (518) 276-2012 e-mail:    will...@rpi.edu  

Re: [O-MPI users] Difficulties building 1.0rc2 on Tiger

2005-10-11 Thread Brian Barrett

On Oct 11, 2005, at 1:10 PM, Charles Williams wrote:

I have successfully built several previous releases on my machine,  
but this last release exited with an error.  I am attaching the  
build and config logs, but as near as I can tell, the problem is a  
simple typo in the source file.  I was able to get things to build  
(although I haven't yet tested things) by simply changing the  
following line in openmpi-1.0rc2/orte/mca/pls/xgrid/src/ 
pls_xgrid_client.m:


Original line 254:  rc = orte_rmaps_base_mapped_node_query 
(&mapping_list, &nodes, jobid);
Changed line 254:  ret = orte_rmaps_base_mapped_node_query 
(&mapping_list, &nodes, jobid);


Please let me know if this is a reasonable change.  I don't have  
XGrid set up, so I wouldn't be able to test this anyway.


Thanks for letting us know - Not sure how that slipped through for so  
long.  I've committed a change to fix this problem (and some problems  
with the operation of the XGrid starter).  Tonight's nightly builds  
and 1.0rc3 should have the fixes.


Thanks again,

Brian


--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/