Re: [O-MPI users] [Beowulf] MPI ABI
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
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
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
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
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/