Hi, There are some big shrink-wrapped HPC apps that use C++ extensively. They may be unavailable under Windows yet. One would have to ask their authors whether the MPI C++ interface is used directly or abstracted away via an internal layer talking to C. Applications that are deployed over a tightly controlled OS like Windows would probably recompile after some grumbling, or migrate to a less tightly controlled OS. Under that less centrally controlled OS, like Linux, a change in the ABI would basically add another tree to the MPI forest, instead of consolidating all of them in one bundle. And then ISVs would have a problem, and us, implementors, would have a problem, too. Do we want to create a standard with a built-in set of problems? I don't think so. Best regards. Alexander -----Original Message----- From: mpi-22-bounces_at_[hidden] [mailto:mpi-22-bounces_at_[hidden]] On Behalf Of Erez Haba Sent: Saturday, April 04, 2009 8:48 PM To: MPI 2.2 Subject: Re: [Mpi-22] [MPI Forum] #59: Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL Its not always the choice of the MPI Application provider. In many cases there's an upgrade path for the infrastructure (like upgrading from Windows Compute Cluster Server to the newer version of Windows HPC Server) that includes an upgrade to the MPI implementation, any already deployed application that is not compatible with the new version would break. That would be a blocker for an upgrade and an important scenario for us. Another example is the impact on the application provider. Because of the release of the incompatible MPI 2.2 impl, the app provider has to re-ship an already shipped version of their app just to cope with the new installations of of MPI 2.2. (in those cases, yes, they don't ship the MPI implementation). That said, I didn't see any commercial app that depends on the C++ bindings. Thanks, .Erez -----Original Message----- From: mpi-22-bounces_at_[hidden] [mailto:mpi-22-bounces_at_[hidden]] On Behalf Of Jeff Squyres Sent: Saturday, April 04, 2009 6:54 AM To: MPI 2.2 Subject: Re: [Mpi-22] [MPI Forum] #59: Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL Regardless of this point, note that the C++ bindings are *broken* in MPI-2.1 with regards to #55. You can't compile C++ MPI-2.1 applications that use MPI::FILE_NULL, MPI::WIN_NULL as specified in #55, so the point may be moot for this ticket. But the general point may need broad discussion next week -- have we been sure to adhere to the "must be ABI compatible" rule for all MPI-2.2 issues? My $0.02: why would ISV's (or any MPI application provider) upgrade to an MPI-2.2 implementation? They would only upgrade if there are features or bug fixes that they want. They would not upgrade for the sake of upgrading to 2.2. In such cases, I think it's ok for any MPI application developer (ISV or not) to re-compile. Indeed, most ISV's bundle/ship their own MPI implementation, so they tightly control the MPI anyway. If they don't want to upgrade to an MPI-2.2 implementation, they won't. On Apr 3, 2009, at 4:04 PM, Supalov, Alexander wrote:
Right. This is why I'm not sure whether changing the const status may break existing apps: only compiler writers know for sure what kind of repercussions this change may have in a C++ program. We should probably ask them, at least in order to make data based decisions.
Semantic changes are also important and should be reduced only to clean extensions. If an application expects a certain outcome, and this outcome changes, the application may break, defeating MPI-2.2 charter.
-----Original Message----- From: mpi-22-bounces_at_[hidden] [mailto:mpi-22-bounces_at_[hidden] ] On Behalf Of Erez Haba Sent: Friday, April 03, 2009 9:58 PM To: MPI 2.2 Subject: Re: [Mpi-22] [MPI Forum] #59: Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL
I think it's both; Any compiled application that is running against any specific implementation does not have to recompile/rebuild to continue and run against an updated implementation that is compliant with MPI 2.2. i.e., MPI 2.2 does not mandate any runtime incompatibility. An example for such incompatibility would be to for a change of the rank parameter from int to MPI_Aint.
Plus - any application that recompiles with the new MPI 2.2 headers should not incur any (new) compiler errors.
The first rule is significant to ISV's that release binary implementation. Without this requirement, MPI 2.2 would create a significant backward compatibility to those implementing.
Thanks, .Erez -----Original Message----- From: mpi-22-bounces_at_[hidden] [mailto:mpi-22-bounces_at_[hidden] ] On Behalf Of Jeff Squyres Sent: Friday, April 03, 2009 11:07 AM To: MPI Forum Subject: Re: [Mpi-22] [MPI Forum] #59: Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL
This is worth raising to the list.
What is the rule for 2.2 -- that existing MPI applications must be able to run with no changes against an MPI-2.2 library? Or is it that existing MPI applications must be able to compile and run with no source code changes against an MPI-2.2 implementation?
I hope it's the latter; this change is relatively important.
On Apr 3, 2009, at 5:56 AM, MPI Forum wrote:
#59: Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL ----------------------------------- +---------------------------------------- Reporter: hubertritzdorf | Owner: hubertritzdorf Type: Correction to standard | Status: new Priority: Waiting for reviews | Milestone: 2009/04/06 Chicago Version: MPI 2.2 | Resolution: Keywords: | Implementation: Completed ----------------------------------- +---------------------------------------- Changes (by asupalov):
* cc: alexander.supalov_at_[hidden] (added)
Comment:
Aren't we changing C++ ABI herewith? If so, we may want to postpone this change till MPI-3.
-- Ticket URL: <https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/ 59#comment:33
MPI Forum <https://svn.mpi-forum.org/> MPI Forum
-- Jeff Squyres Cisco Systems
_______________________________________________ mpi-22 mailing list mpi-22_at_[hidden] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22
_______________________________________________ mpi-22 mailing list mpi-22_at_[hidden] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22 --------------------------------------------------------------------- Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen Germany Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer Registergericht: Muenchen HRB 47456 Ust.-IdNr. VAT Registration No.: DE129385895 Citibank Frankfurt (BLZ 502 109 00) 600119052
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
_______________________________________________ mpi-22 mailing list mpi-22_at_[hidden] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22
-- Jeff Squyres Cisco Systems _______________________________________________ mpi-22 mailing list mpi-22_at_[hidden] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22 _______________________________________________ mpi-22 mailing list mpi-22_at_[hidden] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22 --------------------------------------------------------------------- Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen Germany Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer Registergericht: Muenchen HRB 47456 Ust.-IdNr. VAT Registration No.: DE129385895 Citibank Frankfurt (BLZ 502 109 00) 600119052 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.