Remember also that the RTE API's changed between 1.2 and 1.3 - so I'm not sure what will happen in that case. It could be that the ones touching the MPI layer remained stable (don't honestly recall), though I believe there are RTE calls in 1.3 that don't exist in 1.2. I would think you would have a problem if you hit one of those (e.g., when doing a comm_spawn).
On Mon, Apr 27, 2009 at 12:36 PM, Jeff Squyres <jsquy...@cisco.com> wrote: > I'd actually be surprised if it works. > > The back-end sizes of Open MPI structures definitely changed between 1.2 > and 1.3. We used to think that this didn't matter, but then we found out > that we were wrong. :-) Hence, I'd think that the same exact issues you > have with taking a 1.2-compiled MPI application and running with 1.3 would > also occur if you took a 1.3-compiled application and ran it with 1.2. If > it works at all, I'm guessing that you're getting lucky. > > We only finally put in some ABI fixes in 1.3.2. So the ABI *should* be > steady throughout the rest of the 1.3 and 1.4 series. > > > > On Apr 27, 2009, at 2:30 PM, Brian W. Barrett wrote: > > I think Serge is talking about compiling the application against one >> version of Open MPI, linking dynamically, then running against another >> version of Open MPI. Since it's dynamically linked, the ORTE/OMPI >> interactions are covered (the version of mpirun, libopen-rte, and libmpi >> all match). The question of application binary compatibility can >> generally be traced to a couple of issues: >> >> - function signatures of all MPI functions >> - constants in mpi.h changing >> - size of structures due to the bss optimization for globals >> >> I can't remember when we changed function signatures last, but it probably >> has happened. They may be minor enough to not matter, and definitely >> wouldn't be in the usual set of functions people use (send,recv,wait, >> etc.) >> >> The constants in mpi.h have been pretty steady since day 1, although I >> haven't checked when they last changed. >> >> The final one actually should be ok for going from later versions of Open >> MPI to newer versions, as the structures in question usually grow and >> rarely shrink in size. >> >> In other words, it'll probably work, but no one in the group is going to >> say anything stronger than that. >> >> Brian >> >> On Mon, 27 Apr 2009, Ralph Castain wrote: >> >> > It's hard for me to believe that would work as there are fundamental >> > differences in the MPI-to-RTE interactions between those releases. If it >> > does, it could be a fluke - I personally would not trust it. >> > >> > Ralph >> > >> > On Mon, Apr 27, 2009 at 12:04 PM, Serge <sk...@ap.smu.ca> wrote: >> > Hi Jeff, >> > >> > > That being said, we have fixed this issue and expect to >> > support binary >> > > compatibility between Open MPI releases starting with >> > v1.3.2 (v1.3.1 >> > >> > As far as I can tell from reading the release notes for >> > v1.3.2, the binary compatibility has not been announced yet. >> > It was rather a bug fix release. Is it correct? Does it mean >> > that the compatibility feature is pushed to later releases, >> > v1.3.3, 1.3.4? >> > >> > In my original message (see below) I was looking for advice >> > as for a seamless transition from v1.2.x to v1.3.x in a >> > shared multi-user environment. >> > >> > Interestingly enough, recently I noticed that although it's >> > impossible to run an application compiled with v1.2.x under >> > v1.3.x, the opposite does actually work. An application >> > compiled with v1.3.x runs using Open MPI v1.2.x. >> > Specifically, I tested an application compiled with v1.3.0 >> > and v1.3.2, running under Open MPI v1.2.7. >> > >> > This gives me a perfect opportunity to recompile all the >> > parallel applications with v1.3.x, transparently to users; >> > and then switch the default Open MPI library from v1.2.7 to >> > v1.3.x, when all the apps have been rebuilt. >> > >> > The problem is that I am not 100% sure in this approach, even >> > having some successful tests done. >> > >> > Is it safe to run an application built with 1.3.x under >> > 1.2.x? Does it make sense to you? >> > >> > = Serge >> > >> > >> > Jeff Squyres wrote: >> > Unfortunately, binary compatibility between Open >> > MPI release versions has never been guaranteed >> > (even between subreleases). >> > >> > That being said, we have fixed this issue and >> > expect to support binary compatibility between >> > Open MPI releases starting with v1.3.2 (v1.3.1 >> > should be released soon; we're aiming for v1.3.2 >> > towards the beginning of next month). >> > >> > >> > >> > On Mar 10, 2009, at 11:59 AM, Serge wrote: >> > >> > Hello, >> > >> > We have a number of applications >> > built with Open MPI 1.2 in a shared >> > multi-user environment. The Open MPI >> > library upgrade has been always >> > transparent and painless within the >> > v1.2 branch. Now we would like to >> > switch to Open MPI 1.3 as seamlessly. >> > However, an application built with >> > ompi v1.2 will not run with the 1.3 >> > library; the typical error messages >> > are given below. Apparently, the type >> > ompi_communicator_t has changed. >> > >> > Symbol `ompi_mpi_comm_null' has >> > different size in shared object, >> > consider re-linking >> > Symbol `ompi_mpi_comm_world' has >> > different size in shared object, >> > consider re-linking >> > >> > Do I have to rebuild all the >> > applications with Open MPI 1.3? >> > >> > Is there a better way to do a smooth >> > upgrade? >> > >> > Thank you. >> > >> > = Serge >> > >> > _______________________________________________ >> > 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 > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >