<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 7 Feb 2019, at 15:10, Patrick Sanan via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" class="">petsc-dev@mcs.anl.gov</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Menlo-Regular; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
(Forgot to reply-all before)
<div class=""><br class="">
</div>
<div class="">I'd propose to update the guidelines in the dev manual to say that unless otherwise specified, collectivity is wrt the communicator associated with the PETSc object in the first argument slot.<br class="">
</div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>Let me take e.g.</div>
<div><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatTranspose.html" class="">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatTranspose.html</a></div>
<div>as an example.</div>
<div><br class="">
</div>
<div>So you mean that</div>
<div>  Collective on Mat</div>
<div>could be replaced by just</div>
<div>  Collective</div>
<div>which would implicitly mean</div>
<div>  Collective [on Mat mat argument]</div>
<div><br class="">
</div>
<div>That's perhaps quite a good idea!</div>
<div><br class="">
</div>
<div>Note that it's an information also for users, so this interpretation note about probably shouldn't be mentioned _only_ in <span style="font-family: Menlo-Regular;" class="">the dev manual.</span></div>
<div><br class="">
</div>
<div>Cheers,</div>
<div>Vaclav</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Menlo-Regular; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<div class=""><br class="">
</div>
</div>
<br style="caret-color: rgb(0, 0, 0); font-family: Menlo-Regular; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<div class="gmail_quote" style="caret-color: rgb(0, 0, 0); font-family: Menlo-Regular; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div dir="ltr" class="gmail_attr">Am Do., 7. Feb. 2019 um 10:35 Uhr schrieb Patrick Sanan <<a href="mailto:patrick.sanan@gmail.com" class="">patrick.sanan@gmail.com</a>>:<br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr" class="">
<div dir="ltr" class=""><br class="">
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am Mi., 6. Feb. 2019 um 21:09 Uhr schrieb Matthew Knepley via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" target="_blank" class="">petsc-dev@mcs.anl.gov</a>>:<br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr" class="">
<div dir="ltr" class="">On Wed, Feb 6, 2019 at 3:03 PM Dave May via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" target="_blank" class="">petsc-dev@mcs.anl.gov</a>> wrote:<br class="">
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">* I notice that most man pages will say
<div class="">  Collective on <type><br class="">
</div>
<div class="">e.g.</div>
<div class=""><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMDA/DMDACreate.html" target="_blank" class="">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMDA/DMDACreate.html</a><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">* Some others say</div>
<div class="">  Collective on <implementation-name><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">e.g.</div>
<div class=""><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMDA/DMDACreateNaturalVector.html" target="_blank" class="">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMDA/DMDACreateNaturalVector.html</a><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">or </div>
<div class=""><br class="">
</div>
<div class=""><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMCompositeAddDM.html" target="_blank" class="">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMCompositeAddDM.html</a><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">In the former, at least the word "DMDA" gets linked back to the implementation, whilst in the latter "DMComposite" does not.</div>
<div class=""><br class="">
</div>
<div class="">Should "Collective on <implementation-name>" be avoided?</div>
<div class="">It is potentially somewhat unclear given that the name of the implementation does not appear anywhere in the arg  list (type or variable name).</div>
<div class=""><br class="">
</div>
<div class="">That said, "collective on <type>" could be similarly criticized if a method existed with two args of the same type.  </div>
<div class=""><br class="">
</div>
<div class="">* Many of the methods in this file</div>
<div class=""><br class="">
</div>
<div class=""> <span class="Apple-converted-space"> </span><a href="http://www.mcs.anl.gov/petsc/petsc-current/src/dm/impls/shell/dmshell.c.html" target="_blank" class="">www.mcs.anl.gov/petsc/petsc-current/src/dm/impls/shell/dmshell.c.html</a><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">simply say "Collective" (without a type or implementation name), or they say "Logically Collective on XXX"</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">I do realize that there is a pattern that the statement "collective on xxx" or "not collective" applies (implicitly) to the first argument of any PETSc function call (at least that I've come across) so possibly just indicating the method as "Collective"
 might suffice (assuming (i) there is a pattern and (ii) everyone knows about the pattern).</div>
</div>
<div class=""><br class="">
</div>
<div class="">Q: Should I make a PR to unify these man pages (and any others I spot) to just say "Collective on <type>"?</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">This has always bugged me. It should say, I think, 'Collective on <arg name>", or "Logically collective on <arg name>".</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">I agree - ultimately I think we're just trying to say "this operation is [logically] collective wrt the MPI communicator associated with object XXX", so specifying this with respect to an argument makes the most sense. Right now the dev manual
 says "class XXX" which seems potentially ambiguous (for instance you could have two arguments for local/global Vecs living on different communicators).</div>
<div class=""><br class="">
</div>
<div class="">In terms of reducing clutter and making things more maintainable, I would support explicitly adopting the convention that if no argument is specified (e.g. just "Collective"), then this refers to the first argument - I think this is very intuitive
 for class methods (e.g. DMFoo(DM dm,..,) is going to be collective or not wrt the communicator associated with "dm").</div>
<div class=""><br class="">
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr" class="">
<div class="gmail_quote">
<div class=""><br class="">
</div>
<div class="">  Thanks,</div>
<div class=""><br class="">
</div>
<div class="">     Matt</div>
<div class=""> </div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class="">Thanks,</div>
<div class="">  Dave</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br clear="all" class="">
<div class=""><br class="">
</div>
--<span class="Apple-converted-space"> </span><br class="">
<div dir="ltr" class="gmail-m_-912850822730805952gmail-m_3361126391979871154gmail_signature">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">
-- Norbert Wiener</div>
<div class=""><br class="">
</div>
<div class=""><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>