Per http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-errata/ , the errata item entitled "C++ constructors for MPI objects". Mail discussing: http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-errata/discuss... Proposal: MPI-2, page 350, before line 37, add // MPI::Op::Init is deprecated MPI-2, page 350, after line 37, add Op Op::Create(User_function* function, bool commute); --> In MPI-2.2, if the C++ bindings for MPI-1 functions (like MPI_OP_CREATE) are put in the rest of the document, MPI::Op::Init should be marked as deprecated. Rationale: I'm actually reversing my position from the April 2000 e-mail; the path of least resistance is to make MPI::Op be the same as all other MPI classes, even if it is awkward. Specifically, if we *really* wanted to do it right, the C++ bindings for various MPI_*_CREATE functions should be overloaded C++ constructors (e.g., MPI::Op::Op(User_function* function, bool commute), MPI::Intracomm::Intracomm(const Group& group), etc.) so that you could do things like this: MPI::Op op(user_function, true); MPI::Intracomm(group); But I think that's too much for MPI-2.2. Perhaps for MPI-3 (if anyone cares). Note that such constructors would only be syntactic sugar since the same functionality can be obtained in the current MPI C++ API, but the current functionality feels slightly "unnatural" to C++. Note that this is an MPI-2.2 proposal. -- Jeff Squyres Cisco Systems
participants (1)
-
unknown@example.com