Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 11, 2014, at 9:43 AM, Dave Lovewrote: > I haven't checked the source, but the commit message above says > > If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV, > then we'll build the MPI_SIZEOF interfaces. If not, we'll skip > MPI_SIZEOF in mpif.h and the mpi module. > > which implies it it's been removed for gcc < 4.9, whereas it worked before. I'll update the README to be more clear. >> Any chance I could convince you to submit a patch? :-) > > Maybe, but I don't really know what it should involve or whether it can > be done mechanically; I definitely don't have time to dissect the spec. > Actually, I'd have expected the API man pages to be reference versions, > shared across implementations, but MPICH's are different. Yeah, we don't actually share man pages. I think the main issue would be just to edit the *.3in pages here: https://github.com/open-mpi/ompi/tree/master/ompi/mpi/man/man3 They're all native nroff format (they're .3in instead of .3 because we pre-process them during "make" to substitute things like the release date and version in). I'm guessing it would be a pretty mechanical kind of patch -- just adding Fortran interfaces at the top of each page. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 11, 2014, at 9:38 AM, Dave Lovewrote: >> 1. All modern compilers have ignore-TKR syntax, > > Hang on! (An equivalent of) ignore_tkr only appeared in gfortran 4.9 > (the latest release) as far as I know. The system compiler of the bulk > of GNU/Linux HPC systems currently is distinctly older (and the RHEL > devtoolset packaging of gcc-4.9 is still beta). RHEL 6 has gcc 4.4 as > te system compiler and Debian stable has 4.7 and older. > > I'm just pointing that out in case decisions are being made assuming > everyone has this. No worries if not. Sorry, that statement was loaded with my assumption that "gfortran 4.9 is a modern fortran compiler; prior versions are not." So don't worry: we're well aware that only gfortran >=4.9 has these features, and most everyone is not using it yet. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
"Jeff Squyres (jsquyres)"writes: > On Nov 10, 2014, at 8:27 AM, Dave Love wrote: > >>> https://github.com/open-mpi/ompi/commit/d7eaca83fac0d9783d40cac17e71c2b090437a8c >> >> I don't have time to follow this properly, but am I reading right that >> that says mpi_sizeof will now _not_ work with gcc < 4.9, i.e. the system >> compiler of the vast majority of HPC GNU/Linux systems, whereas it did >> before (at least in simple cases)? > > You raise a very good point, which raises another unfortunately good related > point. > > 1. No, the goal is to enable MPI_SIZEOF in *more* cases, and still preserve > all the old cases. Your mail made me go back and test all the old cases this > morning, and I discovered a bug which I need to fix before 1.8.4 is released > (details unimportant, unless someone wants to gory details). I haven't checked the source, but the commit message above says If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV, then we'll build the MPI_SIZEOF interfaces. If not, we'll skip MPI_SIZEOF in mpif.h and the mpi module. which implies it it's been removed for gcc < 4.9, whereas it worked before. > The answer actually turned out to be "yes". :-\ > > Specifically: the spec just says it's available in the Fortran interfaces. > It doesn't say "the Fortran interfaces, except MPI_SIZEOF." > > Indeed, the spec doesn't prohibit explicit interfaces in mpif.h (it never > has). It's just that most (all?) MPI implementations have not provided > explicit interfaces in mpif.h. > > But for MPI_SIZEOF to work, explicit interfaces are *required*. [Yes, I understand -- sorry if that wasn't clear and you wasted time explaining.] >> but I'd expect that to be deprecated anyhow. >> (The man pages generally don't mention USE, only INCLUDE, which seems >> wrong.) > > Mmm. Yes, true. > > Any chance I could convince you to submit a patch? :-) Maybe, but I don't really know what it should involve or whether it can be done mechanically; I definitely don't have time to dissect the spec. Actually, I'd have expected the API man pages to be reference versions, shared across implementations, but MPICH's are different. > Fortran 77 compilers haven't existed for *many, many years*. [I think f2c still gets some use, and g77 was only obsoleted with gcc 4 -- I'm not _that old_! I'm not actually advocating f77, of course.] > And I'll say it again: MPI has *never* supported Fortran 77 (it's a > common misconception that it ever did). Well, having "Fortran77 interface" in the standard could confuse a stupid person! (As a former language lawyer for it, I'd allow laxity in "Fortran77", like the latest MPI isn't completely compatible with the latest Fortran either.) >> Fortran has interfaces, not prototypes! > > Yes, sorry -- I'm a C programmer and I dabble in Fortran That was mainly as in it's better ☺. > (read: I'm the guy who keeps the Fortran stuff maintained in OMPI), so > I sometimes use the wrong terminology. Mea culpa! Sure, and thanks. I dare say you can get some community help if you need it, especially if people think Fortran isn't being properly supported, though I'm not complaining.
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
"Jeff Squyres (jsquyres)"writes: > There are several reasons why MPI implementations have not added explicit > interfaces to their mpif.h files, mostly boiling down to: they may/will break > real world MPI programs. > > 1. All modern compilers have ignore-TKR syntax, Hang on! (An equivalent of) ignore_tkr only appeared in gfortran 4.9 (the latest release) as far as I know. The system compiler of the bulk of GNU/Linux HPC systems currently is distinctly older (and the RHEL devtoolset packaging of gcc-4.9 is still beta). RHEL 6 has gcc 4.4 as te system compiler and Debian stable has 4.7 and older. I'm just pointing that out in case decisions are being made assuming everyone has this. No worries if not. > so it's at least not a problem for subroutines like MPI_SEND (with a choice > buffer). However: a) this was not true at the time when MPI-3 was written, > and b) it's not standard fortran.
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
"Jeff Squyres (jsquyres)"writes: > There were several commits; this was the first one: > > https://github.com/open-mpi/ompi/commit/d7eaca83fac0d9783d40cac17e71c2b090437a8c I don't have time to follow this properly, but am I reading right that that says mpi_sizeof will now _not_ work with gcc < 4.9, i.e. the system compiler of the vast majority of HPC GNU/Linux systems, whereas it did before (at least in simple cases)? > IIRC, it only affected certain configure situations (e.g., only > certain fortran compilers). I'm failing to remember the exact > scenario offhand that was problematic right now, but it led to the > larger question of: "hey, wait, don't we have to support MPI_SIZEOF in > mpif.h, too?" I'd have said the answer was a clear "no", without knowing what the standard says about mpif.h, but I'd expect that to be deprecated anyhow. (The man pages generally don't mention USE, only INCLUDE, which seems wrong.) > >> I don't understand how it can work generally with mpif.h (f77?), as >> implied by the man page, rather than the module. > > According to discussion in the Forum Fortran working group, it is > required that MPI_SIZEOF must be supported in *all* MPI Fortran > interfaces, including mpif.h. Well that's generally impossible if it's meant to include Fortran77 compilers (which I must say doesn't seem worth it at this stage). > Hence, if certain conditions are met by your Fortran compiler (i.e., > it's modern enough), OMPI 1.8.4 will have MPI_SIZEOF prototypes in > mpif.h. If not, then you get the same old mpif.h you've always had > (i.e., no MPI_SIZEOF prototypes, and MPI_SIZEOF won't work properly if > you use the mpif.h interfaces). If it's any consolation, it doesn't work in the other MPIs here (mp(va)pich and intel), as I'd expect. > Keep in mind that MPI does not prohibit having prototypes in mpif.h -- > it's just that most (all?) MPI implementations don't tend to provide > them. However, in the case of MPI_SIZEOF, it is *required* that > prototypes are available because the implementation needs the type > information to return the size properly (in mpif.h., mpi module, and > mpi_f08 module). > > Make sense? Fortran has interfaces, not prototypes! I understand the technicalities -- I hacked on g77 intrinsics -- but I'm not sure how much sense it's making if things have effectively gone backwards with gfortran.
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Dear Mr. Squyres, Thank you for your clear answer on the state of the interfaces in the mpi modules of OPENMPI. A good state! And I have coded sufficiently bugs myself, so I do not become too angry about the bugs of others. If I should stumble upon missing Ftn-bindings in the future, I will send you a hint. Greetings to you all! Michael Rachner -Ursprüngliche Nachricht- Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Jeff Squyres (jsquyres) Gesendet: Donnerstag, 6. November 2014 15:10 An: Open MPI User's List Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF On Nov 6, 2014, at 8:55 AM, <michael.rach...@dlr.de> <michael.rach...@dlr.de> wrote: > I agree fully with omitting the explicit interfaces from mpif.h . It is an > important resort for legacy codes. > But, in the mpi and mpi_f08 module explicit interfaces are required for > all(!) MPI-routines. > So far, this is not fulfilled in MPI-versions I know. Bugs happen. I think you're saying that we don't intend to have all the routines in the mpi and mpi_f08 modules. That's not correct. We *do* have all explicit MPI interface in the mpi and mpi_f08 modules. If some are missing -- like WIN_ALLOCATE was just discovered to be missing in the 1.8.3 release -- those are bugs. We try really hard to avoid bugs, but sometimes they happen. :-( Are you aware of other routines that are missing from the OMPI mpi / mpi_f08 modules? -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/ ___ users mailing list us...@open-mpi.org Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users Link to this post: http://www.open-mpi.org/community/lists/users/2014/11/25700.php
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 6, 2014, at 8:55 AM,wrote: > I agree fully with omitting the explicit interfaces from mpif.h . It is an > important resort for legacy codes. > But, in the mpi and mpi_f08 module explicit interfaces are required for > all(!) MPI-routines. > So far, this is not fulfilled in MPI-versions I know. Bugs happen. I think you're saying that we don't intend to have all the routines in the mpi and mpi_f08 modules. That's not correct. We *do* have all explicit MPI interface in the mpi and mpi_f08 modules. If some are missing -- like WIN_ALLOCATE was just discovered to be missing in the 1.8.3 release -- those are bugs. We try really hard to avoid bugs, but sometimes they happen. :-( Are you aware of other routines that are missing from the OMPI mpi / mpi_f08 modules? -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Dear Mr. Squyres, I agree fully with omitting the explicit interfaces from mpif.h . It is an important resort for legacy codes. But, in the mpi and mpi_f08 module explicit interfaces are required for all(!) MPI-routines. So far, this is not fulfilled in MPI-versions I know. I want to point out here, that this has a negative consequence for the Ftn-coding: 'If someone uses the mpi (or mpi_f08) module, then he cannot put the name of an MPI-routine in the "only"-list of the mpi module'. I explain that now: The following stmt is an example of a desirable stmt, because the programmer sees at a glance, which quantities are used from this module in his subroutine, and this stmt limits the quantities in the mpi module only to those actually needed in the subroutine: use MPI, only: MPI_COMM_WORLD, MPI_IN_PLACE, MPI_REDUCE However this stmt will work only, if the explicit interface for MPI_REDUCE is actually present in the mpi module. Unfortunately the explicit interfaces are not complete in the MPI distributions I know, so the programmer must use instead: a) use MPI, only: MPI_COMM_WORLD, MPI_IN_PLACE This has the drawback, that always the implicit interface for MPI_REDUCE will be used, i.e. there is no control of the parameter list by the explicit interface, even if there exists an explicit interface in the mpi module or : b) use MPI Here the explicit interface will be used if present in the module, otherwise the implicit interface will be used, this is o.k., but the drawback is now, that the whole MPI world is (silently) present in the subroutine, and the programmer cannot see at a glance, what quantities are really used from the module in the sbr. Greetings Michael Rachner -Ursprüngliche Nachricht- Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Jeff Squyres (jsquyres) Gesendet: Donnerstag, 6. November 2014 12:42 An: Open MPI User's List Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF On Nov 6, 2014, at 5:37 AM, <michael.rach...@dlr.de> <michael.rach...@dlr.de> wrote: > a) When looking in your mpi_sizeof_mpifh.f90 test program I found a little > thing: You may (but need not) change the name of the integer variable size >to e.g. isize , because size is just an intrinsic function in > Fortran (you may see it already, if you have an editor with > Fortran-highlighting). > Although your type declaration overrides the intrinsic function, a renaming > would make the coding unambiguous. Good catch. I'll do that. > b) My idea was, that OPENMPI should provide always an declaration > (interface) for each MPI-routine >(and that's what the MPI-3.0 Standard document (Sept.21, 2012) prescribes > (p. 599+601+603)), Note that MPI-3 p603 says (about mpif.h): "For each MPI routine, an implementation can choose to use an implicit or explicit interface..." I.e., it is *not* mandated that MPI implementations have explicit interfaces for mpif.h (although, obviously, it *is* mandated for the mpi and mpi_f08 modules). There are several reasons why MPI implementations have not added explicit interfaces to their mpif.h files, mostly boiling down to: they may/will break real world MPI programs. 1. All modern compilers have ignore-TKR syntax, so it's at least not a problem for subroutines like MPI_SEND (with a choice buffer). However: a) this was not true at the time when MPI-3 was written, and b) it's not standard fortran. 2. There are (very) likely real-world programs out there that aren't quite right (i.e., would fail to compile with explicit interfaces), but still work fine. On the one hand, it's terrible that we implementers continue to allow people to run "incorrect" programs. But on the other hand, users *have* very simple option to run their codes through explicit interfaces (the mpi module), and can do so if they choose to. Hence, the MPI Forum has decided that backwards compatibility is important enough for legacy codes -- some of which are tens of thousands of lines long (and more!), and there are no maintainers for them any more (!) -- to allow the "good enough" to keep going. 3. But #1 and #2 are mostly trumped by: the g
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 6, 2014, at 5:37 AM,wrote: > a) When looking in your mpi_sizeof_mpifh.f90 test program I found a little > thing: You may (but need not) change the name of the integer variable size >to e.g. isize , because size is just an intrinsic function in > Fortran (you may see it already, if you have an editor with > Fortran-highlighting). > Although your type declaration overrides the intrinsic function, a renaming > would make the coding unambiguous. Good catch. I'll do that. > b) My idea was, that OPENMPI should provide always an declaration > (interface) for each MPI-routine >(and that's what the MPI-3.0 Standard document (Sept.21, 2012) prescribes > (p. 599+601+603)), Note that MPI-3 p603 says (about mpif.h): "For each MPI routine, an implementation can choose to use an implicit or explicit interface..." I.e., it is *not* mandated that MPI implementations have explicit interfaces for mpif.h (although, obviously, it *is* mandated for the mpi and mpi_f08 modules). There are several reasons why MPI implementations have not added explicit interfaces to their mpif.h files, mostly boiling down to: they may/will break real world MPI programs. 1. All modern compilers have ignore-TKR syntax, so it's at least not a problem for subroutines like MPI_SEND (with a choice buffer). However: a) this was not true at the time when MPI-3 was written, and b) it's not standard fortran. 2. There are (very) likely real-world programs out there that aren't quite right (i.e., would fail to compile with explicit interfaces), but still work fine. On the one hand, it's terrible that we implementers continue to allow people to run "incorrect" programs. But on the other hand, users *have* very simple option to run their codes through explicit interfaces (the mpi module), and can do so if they choose to. Hence, the MPI Forum has decided that backwards compatibility is important enough for legacy codes -- some of which are tens of thousands of lines long (and more!), and there are no maintainers for them any more (!) -- to allow the "good enough" to keep going. 3. But #1 and #2 are mostly trumped by: the goal is to deprecate mpif.h, anyway (perhaps in MPI-4?) -- so why bother spending any more time on it than we have to? Ultimately, we'd like to get rid of the mpi module too (maybe in MPI-5?) -- the mpi_f08 module is the True Way Forward. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Dear Mr. Squyres, a) When looking in your mpi_sizeof_mpifh.f90 test program I found a little thing: You may (but need not) change the name of the integer variable size to e.g. isize , because size is just an intrinsic function in Fortran (you may see it already, if you have an editor with Fortran-highlighting). Although your type declaration overrides the intrinsic function, a renaming would make the coding unambiguous. b) My idea was, that OPENMPI should provide always an declaration (interface) for each MPI-routine (and that's what the MPI-3.0 Standard document (Sept.21, 2012) prescribes (p. 599+601+603)), independent whether you have already a test program in your suite for an MPI-routine or not. Because: If all the interfaces are present, you a priory will avoid "2-step" User messages: first the User complains about a missing MPI-routine, and when the MPI-routine is made available, possibly later about a bug in that MPI-routine. So bugs in MPI-routines will be detected and removed faster in the course of the OPENMPI development. Good for all. Greetings Michael Rachner -Ursprüngliche Nachricht- Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Jeff Squyres (jsquyres) Gesendet: Mittwoch, 5. November 2014 16:48 An: Open MPI User's List Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF Meh. I forgot to attach the test. :-) Here it is. On Nov 5, 2014, at 10:46 AM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> wrote: > On Nov 5, 2014, at 9:59 AM, <michael.rach...@dlr.de> <michael.rach...@dlr.de> > wrote: > >> In my sharedmemtest.f90 coding just sent to you, >> I have added a call of MPI_SIZEOF (at present it is deactivated, because of >> the missing Ftn-binding in OPENMPI-1.8.3). > > FWIW, I attached one of the tests I put in our test suite for SIZEOF issues > after the last bug was found. I have that same test replicated essentially > three times: > > - once for mpif.h > - once for "use mpi" > - ones for "use mpi_f08" > >> I suggest, that you may activate the 2 respective statements in the >> coding , and use yourself the program for testing whether MPI_SIZEOF works >> now in the upcoming 1.8.4-version. >> For me, the installation of a tarball version is not so easy to do as >> for you, and the problem with the missing Ftn-bindings is not limited to a >> special machine. > > Right; it was a larger problem. > >> Can you tell me, from which OPENMPI-version on the bug will be removed? > > 1.8.4 will contain the fix. > >> To generalize the problem with the Ftn-bindings: >> I think OPENMPI-development should go the whole hog, and check, >> whether for all MPI-routines the Ftn-bindings exist. >> This not so much a complicated task, but a somewhat time-consuming task. >> But otherwise, over a long time more or less angry Users will write emails >> on missing FTN-bindings and grumble on "that buggy OPENMPI". >> And you will have to write the answers on and on... . >> This will finally take more time for developers and users then doing that >> work now once-for-all. > > We do have a bunch of fortran tests, but I admit that our coverage is > not complete. SIZEOF was not tested at all, for example, until > recently. :-( > > SIZEOF is also a bit of a special case in the MPI API because it *must* be > polymorphic (I don't think any other MPI API is) -- even for mpif.h. > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25689.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 5, 2014, at 12:23 PM, Dave Lovewrote: > Is the issue documented publicly? I'm puzzled, because it certainly > works in a simple case: There were several commits; this was the first one: https://github.com/open-mpi/ompi/commit/d7eaca83fac0d9783d40cac17e71c2b090437a8c A few more were required after that one to clean up some bugs and corner cases that grew from that commit. > $ cat x.f90 > use mpi ...trying to remember the details... IIRC, it only affected certain configure situations (e.g., only certain fortran compilers). I'm failing to remember the exact scenario offhand that was problematic right now, but it led to the larger question of: "hey, wait, don't we have to support MPI_SIZEOF in mpif.h, too?" > I don't understand how it can work generally with mpif.h (f77?), as > implied by the man page, rather than the module. According to discussion in the Forum Fortran working group, it is required that MPI_SIZEOF must be supported in *all* MPI Fortran interfaces, including mpif.h. Hence, if certain conditions are met by your Fortran compiler (i.e., it's modern enough), OMPI 1.8.4 will have MPI_SIZEOF prototypes in mpif.h. If not, then you get the same old mpif.h you've always had (i.e., no MPI_SIZEOF prototypes, and MPI_SIZEOF won't work properly if you use the mpif.h interfaces). Keep in mind that MPI does not prohibit having prototypes in mpif.h -- it's just that most (all?) MPI implementations don't tend to provide them. However, in the case of MPI_SIZEOF, it is *required* that prototypes are available because the implementation needs the type information to return the size properly (in mpif.h., mpi module, and mpi_f08 module). Make sense? -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
"Jeff Squyres (jsquyres)"writes: > Yes, this is a correct report. > > In short, the MPI_SIZEOF situation before the upcoming 1.8.4 was a bit > of a mess; it actually triggered a bunch of discussion up in the MPI > Forum Fortran working group (because the design of MPI_SIZEOF actually > has some unintended consequences that came to light when another OMPI > user noted the same thing you did a few months ago). > > Can you download a 1.8.4 nightly tarball (or the rc) and see if > MPI_SIZEOF is working for you there? Is the issue documented publicly? I'm puzzled, because it certainly works in a simple case: $ cat x.f90 use mpi integer size, ierror double precision d call mpi_sizeof (size, size, ierror) print *, size call mpi_sizeof (d, size, ierror) print *, size end $ mpif90 --showme:version mpif90: Open MPI 1.8.3 (Language: Fortran) $ mpif90 --showme:command gfortran $ mpif90 x.f90 && ./a.out 4 8 The missing routine is in the library for me: $ nm -D $MPI_LIB/libmpi_usempi.so | grep mpi_sizeof0di4_ 1cf0 T mpi_sizeof0di4_ I don't understand how it can work generally with mpif.h (f77?), as implied by the man page, rather than the module.
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Meh. I forgot to attach the test. :-) Here it is. On Nov 5, 2014, at 10:46 AM, Jeff Squyres (jsquyres)wrote: > On Nov 5, 2014, at 9:59 AM, > wrote: > >> In my sharedmemtest.f90 coding just sent to you, >> I have added a call of MPI_SIZEOF (at present it is deactivated, because of >> the missing Ftn-binding in OPENMPI-1.8.3). > > FWIW, I attached one of the tests I put in our test suite for SIZEOF issues > after the last bug was found. I have that same test replicated essentially > three times: > > - once for mpif.h > - once for "use mpi" > - ones for "use mpi_f08" > >> I suggest, that you may activate the 2 respective statements in the coding , >> and use yourself the program for testing whether MPI_SIZEOF works now in the >> upcoming 1.8.4-version. >> For me, the installation of a tarball version is not so easy to do as for >> you, >> and the problem with the missing Ftn-bindings is not limited to a special >> machine. > > Right; it was a larger problem. > >> Can you tell me, from which OPENMPI-version on the bug will be removed? > > 1.8.4 will contain the fix. > >> To generalize the problem with the Ftn-bindings: >> I think OPENMPI-development should go the whole hog, >> and check, whether for all MPI-routines the Ftn-bindings exist. >> This not so much a complicated task, but a somewhat time-consuming task. >> But otherwise, over a long time more or less angry Users will write emails >> on missing FTN-bindings and grumble on "that buggy OPENMPI". >> And you will have to write the answers on and on... . >> This will finally take more time for developers and users then doing that >> work now once-for-all. > > We do have a bunch of fortran tests, but I admit that our coverage is not > complete. SIZEOF was not tested at all, for example, until recently. :-( > > SIZEOF is also a bit of a special case in the MPI API because it *must* be > polymorphic (I don't think any other MPI API is) -- even for mpif.h. > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25689.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/ mpi_sizeof_mpifh.f90 Description: mpi_sizeof_mpifh.f90
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
On Nov 5, 2014, at 9:59 AM,wrote: > In my sharedmemtest.f90 coding just sent to you, > I have added a call of MPI_SIZEOF (at present it is deactivated, because of > the missing Ftn-binding in OPENMPI-1.8.3). FWIW, I attached one of the tests I put in our test suite for SIZEOF issues after the last bug was found. I have that same test replicated essentially three times: - once for mpif.h - once for "use mpi" - ones for "use mpi_f08" > I suggest, that you may activate the 2 respective statements in the coding , > and use yourself the program for testing whether MPI_SIZEOF works now in the > upcoming 1.8.4-version. > For me, the installation of a tarball version is not so easy to do as for > you, > and the problem with the missing Ftn-bindings is not limited to a special > machine. Right; it was a larger problem. > Can you tell me, from which OPENMPI-version on the bug will be removed? 1.8.4 will contain the fix. > To generalize the problem with the Ftn-bindings: > I think OPENMPI-development should go the whole hog, > and check, whether for all MPI-routines the Ftn-bindings exist. > This not so much a complicated task, but a somewhat time-consuming task. > But otherwise, over a long time more or less angry Users will write emails > on missing FTN-bindings and grumble on "that buggy OPENMPI". > And you will have to write the answers on and on... . > This will finally take more time for developers and users then doing that > work now once-for-all. We do have a bunch of fortran tests, but I admit that our coverage is not complete. SIZEOF was not tested at all, for example, until recently. :-( SIZEOF is also a bit of a special case in the MPI API because it *must* be polymorphic (I don't think any other MPI API is) -- even for mpif.h. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Dear Mr. Squyres, In my sharedmemtest.f90 coding just sent to you, I have added a call of MPI_SIZEOF (at present it is deactivated, because of the missing Ftn-binding in OPENMPI-1.8.3). I suggest, that you may activate the 2 respective statements in the coding , and use yourself the program for testing whether MPI_SIZEOF works now in the upcoming 1.8.4-version. For me, the installation of a tarball version is not so easy to do as for you, and the problem with the missing Ftn-bindings is not limited to a special machine. Can you tell me, from which OPENMPI-version on the bug will be removed? To generalize the problem with the Ftn-bindings: I think OPENMPI-development should go the whole hog, and check, whether for all MPI-routines the Ftn-bindings exist. This not so much a complicated task, but a somewhat time-consuming task. But otherwise, over a long time more or less angry Users will write emails on missing FTN-bindings and grumble on "that buggy OPENMPI". And you will have to write the answers on and on... . This will finally take more time for developers and users then doing that work now once-for-all. Thank You Michael Rachner -Ursprüngliche Nachricht- Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Jeff Squyres (jsquyres) Gesendet: Mittwoch, 5. November 2014 13:40 An: Open MPI User's List Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF Yes, this is a correct report. In short, the MPI_SIZEOF situation before the upcoming 1.8.4 was a bit of a mess; it actually triggered a bunch of discussion up in the MPI Forum Fortran working group (because the design of MPI_SIZEOF actually has some unintended consequences that came to light when another OMPI user noted the same thing you did a few months ago). Can you download a 1.8.4 nightly tarball (or the rc) and see if MPI_SIZEOF is working for you there? On Nov 5, 2014, at 6:24 AM, <michael.rach...@dlr.de> <michael.rach...@dlr.de> wrote: > Sorry, Gilles, you might be wrong: > > The error occurs also with gfortran-4.9.1, when running my small shared > memory testprogram: > > This is the answer of the linker with gfortran-4.9.1 : > sharedmemtest.f90:(.text+0x1145): undefined reference to `mpi_sizeof0di4_' > > and this is the answer with intel-14.0.4: >sharedmemtest.f90:(.text+0x11c3): undefined reference to `mpi_sizeof0di4_' > > > If openmpi actually provides a module file mpi.mod, that was precompiled > by openmpi for a certain Fortran compiler, > then the whole installation of openmpi on a User machine from the > openmpi-sourcecode for a User chosen Ftn-compiler would be a farce. > The module file mpi.mod must be either generated during the > installation process of openmpi on the User-machine for the User chosen > Ftn-compiler, or alternatively Openmpi must provide the module not by a > mpi.mod file, but a mpi.f90 file. MS-MPI does it that way. > In my opinion, providing a mpi.f90 file is indeed better than > providing an mpi.mod file, because the User can look inside the module and > can directly see, if something is missing or possibly wrongly coded. > > Greetings > Michael Rachner > > > -Ursprüngliche Nachricht- > Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Gilles > Gouaillardet > Gesendet: Mittwoch, 5. November 2014 11:33 > An: Open MPI Users > Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for > MPI_SIZEOF > > Michael, > > the root cause is openmpi was not compiled with the intel compilers but the > gnu compiler. > fortran modules are not binary compatible so openmpi and your application > must be compiled with the same compiler. > > Cheers, > > Gilles > > On 2014/11/05 18:25, michael.rach...@dlr.de wrote: >> Dear OPENMPI developers, >> >> In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using >> the mpi-module and when using mpif.h . >> (I have not controlled, whether they are present in the mpi_08 >> module.) >> >> I get this message from the linker (Intel-14.0.2): >> /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to >> `mpi_sizeof0di4_' >> >> So can you add the Ftn-bindings for MPI_SIZEOF? >> >> Once again I feel, that Fortran-bindings are unloved step-children for >> C-programmers. >> >> Greetings to you all >> Michael Rachner >> ___ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/11/25676.php > >
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Yes, this is a correct report. In short, the MPI_SIZEOF situation before the upcoming 1.8.4 was a bit of a mess; it actually triggered a bunch of discussion up in the MPI Forum Fortran working group (because the design of MPI_SIZEOF actually has some unintended consequences that came to light when another OMPI user noted the same thing you did a few months ago). Can you download a 1.8.4 nightly tarball (or the rc) and see if MPI_SIZEOF is working for you there? On Nov 5, 2014, at 6:24 AM, <michael.rach...@dlr.de> <michael.rach...@dlr.de> wrote: > Sorry, Gilles, you might be wrong: > > The error occurs also with gfortran-4.9.1, when running my small shared > memory testprogram: > > This is the answer of the linker with gfortran-4.9.1 : > sharedmemtest.f90:(.text+0x1145): undefined reference to `mpi_sizeof0di4_' > > and this is the answer with intel-14.0.4: >sharedmemtest.f90:(.text+0x11c3): undefined reference to `mpi_sizeof0di4_' > > > If openmpi actually provides a module file mpi.mod, that was precompiled > by openmpi for a certain Fortran compiler, > then the whole installation of openmpi on a User machine from the > openmpi-sourcecode for a User chosen Ftn-compiler would be a farce. > The module file mpi.mod must be either generated during the installation > process of openmpi on the User-machine for the User chosen Ftn-compiler, > or alternatively Openmpi must provide the module not by a mpi.mod file, but > a mpi.f90 file. MS-MPI does it that way. > In my opinion, providing a mpi.f90 file is indeed better than providing an > mpi.mod file, because the User can look inside the module > and can directly see, if something is missing or possibly wrongly coded. > > Greetings > Michael Rachner > > > -Ursprüngliche Nachricht- > Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Gilles > Gouaillardet > Gesendet: Mittwoch, 5. November 2014 11:33 > An: Open MPI Users > Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for > MPI_SIZEOF > > Michael, > > the root cause is openmpi was not compiled with the intel compilers but the > gnu compiler. > fortran modules are not binary compatible so openmpi and your application > must be compiled with the same compiler. > > Cheers, > > Gilles > > On 2014/11/05 18:25, michael.rach...@dlr.de wrote: >> Dear OPENMPI developers, >> >> In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using >> the mpi-module and when using mpif.h . >> (I have not controlled, whether they are present in the mpi_08 >> module.) >> >> I get this message from the linker (Intel-14.0.2): >> /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to >> `mpi_sizeof0di4_' >> >> So can you add the Ftn-bindings for MPI_SIZEOF? >> >> Once again I feel, that Fortran-bindings are unloved step-children for >> C-programmers. >> >> Greetings to you all >> Michael Rachner >> ___ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/11/25676.php > > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25682.php > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25683.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Michael, Did you recompile with gfortran compiler or relink only ? You need to recompile and relink Can you attach your program so i can have a look ? You really need one mpi install per compiler, and more if compilers versions from the same vendor are not compatible. modules are useful to make this easy for end users, and this is out of the scope of openmpi. Cheers, Gilles michael.rach...@dlr.de wrote: >Sorry, Gilles, you might be wrong: > >The error occurs also with gfortran-4.9.1, when running my small shared memory >testprogram: > >This is the answer of the linker with gfortran-4.9.1 : > sharedmemtest.f90:(.text+0x1145): undefined reference to `mpi_sizeof0di4_' > >and this is the answer with intel-14.0.4: >sharedmemtest.f90:(.text+0x11c3): undefined reference to `mpi_sizeof0di4_' > > >If openmpi actually provides a module file mpi.mod, that was precompiled >by openmpi for a certain Fortran compiler, >then the whole installation of openmpi on a User machine from the >openmpi-sourcecode for a User chosen Ftn-compiler would be a farce. >The module file mpi.mod must be either generated during the installation >process of openmpi on the User-machine for the User chosen Ftn-compiler, >or alternatively Openmpi must provide the module not by a mpi.mod file, but >a mpi.f90 file. MS-MPI does it that way. >In my opinion, providing a mpi.f90 file is indeed better than providing an >mpi.mod file, because the User can look inside the module >and can directly see, if something is missing or possibly wrongly coded. > >Greetings > Michael Rachner > > >-Ursprüngliche Nachricht- >Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Gilles >Gouaillardet >Gesendet: Mittwoch, 5. November 2014 11:33 >An: Open MPI Users >Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for >MPI_SIZEOF > >Michael, > >the root cause is openmpi was not compiled with the intel compilers but the >gnu compiler. >fortran modules are not binary compatible so openmpi and your application must >be compiled with the same compiler. > >Cheers, > >Gilles > >On 2014/11/05 18:25, michael.rach...@dlr.de wrote: >> Dear OPENMPI developers, >> >> In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using >> the mpi-module and when using mpif.h . >> (I have not controlled, whether they are present in the mpi_08 >> module.) >> >> I get this message from the linker (Intel-14.0.2): >> /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to >> `mpi_sizeof0di4_' >> >> So can you add the Ftn-bindings for MPI_SIZEOF? >> >> Once again I feel, that Fortran-bindings are unloved step-children for >> C-programmers. >> >> Greetings to you all >> Michael Rachner >> ___ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/11/25676.php > >___ >users mailing list >us...@open-mpi.org >Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >Link to this post: >http://www.open-mpi.org/community/lists/users/2014/11/25682.php >___ >users mailing list >us...@open-mpi.org >Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >Link to this post: >http://www.open-mpi.org/community/lists/users/2014/11/25683.php
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Sorry, Gilles, you might be wrong: The error occurs also with gfortran-4.9.1, when running my small shared memory testprogram: This is the answer of the linker with gfortran-4.9.1 : sharedmemtest.f90:(.text+0x1145): undefined reference to `mpi_sizeof0di4_' and this is the answer with intel-14.0.4: sharedmemtest.f90:(.text+0x11c3): undefined reference to `mpi_sizeof0di4_' If openmpi actually provides a module file mpi.mod, that was precompiled by openmpi for a certain Fortran compiler, then the whole installation of openmpi on a User machine from the openmpi-sourcecode for a User chosen Ftn-compiler would be a farce. The module file mpi.mod must be either generated during the installation process of openmpi on the User-machine for the User chosen Ftn-compiler, or alternatively Openmpi must provide the module not by a mpi.mod file, but a mpi.f90 file. MS-MPI does it that way. In my opinion, providing a mpi.f90 file is indeed better than providing an mpi.mod file, because the User can look inside the module and can directly see, if something is missing or possibly wrongly coded. Greetings Michael Rachner -Ursprüngliche Nachricht- Von: users [mailto:users-boun...@open-mpi.org] Im Auftrag von Gilles Gouaillardet Gesendet: Mittwoch, 5. November 2014 11:33 An: Open MPI Users Betreff: Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF Michael, the root cause is openmpi was not compiled with the intel compilers but the gnu compiler. fortran modules are not binary compatible so openmpi and your application must be compiled with the same compiler. Cheers, Gilles On 2014/11/05 18:25, michael.rach...@dlr.de wrote: > Dear OPENMPI developers, > > In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using > the mpi-module and when using mpif.h . > (I have not controlled, whether they are present in the mpi_08 > module.) > > I get this message from the linker (Intel-14.0.2): > /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to > `mpi_sizeof0di4_' > > So can you add the Ftn-bindings for MPI_SIZEOF? > > Once again I feel, that Fortran-bindings are unloved step-children for > C-programmers. > > Greetings to you all > Michael Rachner > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25676.php ___ users mailing list us...@open-mpi.org Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users Link to this post: http://www.open-mpi.org/community/lists/users/2014/11/25682.php
Re: [OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Michael, the root cause is openmpi was not compiled with the intel compilers but the gnu compiler. fortran modules are not binary compatible so openmpi and your application must be compiled with the same compiler. Cheers, Gilles On 2014/11/05 18:25, michael.rach...@dlr.de wrote: > Dear OPENMPI developers, > > In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using > the mpi-module and when using mpif.h . > (I have not controlled, whether they are present in the mpi_08 module.) > > I get this message from the linker (Intel-14.0.2): > /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to > `mpi_sizeof0di4_' > > So can you add the Ftn-bindings for MPI_SIZEOF? > > Once again I feel, that Fortran-bindings are unloved step-children for > C-programmers. > > Greetings to you all > Michael Rachner > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2014/11/25676.php
[OMPI users] OPENMPI-1.8.3: missing fortran bindings for MPI_SIZEOF
Dear OPENMPI developers, In OPENMPI-1.8.3 the Ftn-bindings for MPI_SIZEOF are missing, when using the mpi-module and when using mpif.h . (I have not controlled, whether they are present in the mpi_08 module.) I get this message from the linker (Intel-14.0.2): /home/vat/src/KERNEL/mpi_ini.f90:534: undefined reference to `mpi_sizeof0di4_' So can you add the Ftn-bindings for MPI_SIZEOF? Once again I feel, that Fortran-bindings are unloved step-children for C-programmers. Greetings to you all Michael Rachner