Re: [mpi3-coll] Nonblocking collectives standard draft
Hi Christian,
I did a second reading and found several but only minor issues with the text. If you send me the TeX sources, I can send you my proposed corrections/improvements directly as a patch file (diff). I will send it via mail.
Some more things for discussion:
- p. 49 l. 41: MPI has the concept of error handlers. I don't see a reason why we should forbid ("return an error code") its usage. My suggestion is to simply delete the two sentences (from "If the call ..." to "... cases."). This is actually consistent with MPI-2.1 p 48:17. I would agree to omit the "return an error code", but since it's already written in this style for point-to-point, we should keep it consistent.
- p. 61 l 33-38: Should we really keep this Advice for implementors (same result for MPI_IREDUCE when called with same arguments)? For the blocking variant, there stands this argument of reproducibility vs. performance. However, the non-blocking variant could be optimized much better (e.g., might handle bad process skew) and we should consider to weaken this semantic restriction to allow this better performance. Yes, this is a bigger issue than we assume. Reproducability is very important for real applications.
- another argument _for_ MPI_REQUEST_FREE is the existence of intercommunicators where all processes (i.e., in group A and in group B) have to call the collective but only part of them might be involved (e.g., for MPI_IBCAST all but the root process in group A don't really participate in the operation - they pass MPI_PROC_NULL as root argument). So having a lightweight MPI_Wait alternative might not be too bad ... I disagree because an MPI_Wait() on a request that doesn't involve anything is as cheap as Request_free.
The NBC examples are quite buggy (missing MPI_STATUS in MPI_Recv, missing semicolons, duplicate usage of same req-argument -> bad Waitall, ...) - but as with the text, I can send you corrected versions in the diff. yes, it's version one and I have to admit that I did not try to compile them yet. Please go ahead and send corrections!
Best, Torsten -- bash$ :(){ :|:&};: --------------------- http://www.unixer.de/ ----- Torsten Hoefler | Postdoctoral Researcher Open Systems Lab | Indiana University 150 S. Woodlawn Ave. | Bloomington, IN, 474045, USA Lindley Hall Room 135 | +01 (812) 855-3608
participants (1)
-
Torsten Hoefler