{"action":"created","issue":{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/109","repository_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic","labels_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/109/labels{/name}","comments_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/109/comments","events_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/109/events","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/issues/109","id":167222780,"number":109,"title":"Nonblocking Collective Operations","user":{"login":"mpiforumbot","id":20617676,"avatar_url":"https://avatars.githubusercontent.com/u/20617676?v=3","gravatar_id":"","url":"https://api.github.com/users/mpiforumbot","html_url":"https://github.com/mpiforumbot","followers_url":"https://api.github.com/users/mpiforumbot/followers","following_url":"https://api.github.com/users/mpiforumbot/following{/other_user}","gists_url":"https://api.github.com/users/mpiforumbot/gists{/gist_id}","starred_url":"https://api.github.com/users/mpiforumbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpiforumbot/subscriptions","organizations_url":"https://api.github.com/users/mpiforumbot/orgs","repos_url":"https://api.github.com/users/mpiforumbot/repos","events_url":"https://api.github.com/users/mpiforumbot/events{/privacy}","received_events_url":"https://api.github.com/users/mpiforumbot/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/MPI%203%5C.0","name":"MPI 3\\.0","color":"ededed"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/New%20routine%5C(s%5C)","name":"New routine\\(s\\)","color":"ededed"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/Text%20committed","name":"Text committed","color":"d93f0b"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/Waiting%20for%20PDF%20reviews","name":"Waiting for PDF reviews","color":"fef2c0"}],"state":"open","locked":false,"assignee":{"login":"mpiforumbot","id":20617676,"avatar_url":"https://avatars.githubusercontent.com/u/20617676?v=3","gravatar_id":"","url":"https://api.github.com/users/mpiforumbot","html_url":"https://github.com/mpiforumbot","followers_url":"https://api.github.com/users/mpiforumbot/followers","following_url":"https://api.github.com/users/mpiforumbot/following{/other_user}","gists_url":"https://api.github.com/users/mpiforumbot/gists{/gist_id}","starred_url":"https://api.github.com/users/mpiforumbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpiforumbot/subscriptions","organizations_url":"https://api.github.com/users/mpiforumbot/orgs","repos_url":"https://api.github.com/users/mpiforumbot/repos","events_url":"https://api.github.com/users/mpiforumbot/events{/privacy}","received_events_url":"https://api.github.com/users/mpiforumbot/received_events","type":"User","site_admin":false},"assignees":[{"login":"mpiforumbot","id":20617676,"avatar_url":"https://avatars.githubusercontent.com/u/20617676?v=3","gravatar_id":"","url":"https://api.github.com/users/mpiforumbot","html_url":"https://github.com/mpiforumbot","followers_url":"https://api.github.com/users/mpiforumbot/followers","following_url":"https://api.github.com/users/mpiforumbot/following{/other_user}","gists_url":"https://api.github.com/users/mpiforumbot/gists{/gist_id}","starred_url":"https://api.github.com/users/mpiforumbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpiforumbot/subscriptions","organizations_url":"https://api.github.com/users/mpiforumbot/orgs","repos_url":"https://api.github.com/users/mpiforumbot/repos","events_url":"https://api.github.com/users/mpiforumbot/events{/privacy}","received_events_url":"https://api.github.com/users/mpiforumbot/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/milestones/5","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/milestones/2009/02/09%20San%20Jose","labels_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/milestones/5/labels","id":1900466,"number":5,"title":"2009/02/09 San Jose","description":"","creator":{"login":"mpiforumbot","id":20617676,"avatar_url":"https://avatars.githubusercontent.com/u/20617676?v=3","gravatar_id":"","url":"https://api.github.com/users/mpiforumbot","html_url":"https://github.com/mpiforumbot","followers_url":"https://api.github.com/users/mpiforumbot/followers","following_url":"https://api.github.com/users/mpiforumbot/following{/other_user}","gists_url":"https://api.github.com/users/mpiforumbot/gists{/gist_id}","starred_url":"https://api.github.com/users/mpiforumbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpiforumbot/subscriptions","organizations_url":"https://api.github.com/users/mpiforumbot/orgs","repos_url":"https://api.github.com/users/mpiforumbot/repos","events_url":"https://api.github.com/users/mpiforumbot/events{/privacy}","received_events_url":"https://api.github.com/users/mpiforumbot/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":17,"state":"closed","created_at":"2016-07-23T22:09:06Z","updated_at":"2016-07-24T08:10:41Z","due_on":"2009-02-11T05:00:00Z","closed_at":"2016-07-23T22:09:06Z"},"comments":53,"created_at":"2016-07-24T08:10:40Z","updated_at":"2016-07-24T08:21:11Z","closed_at":null,"body":"**Originally by _htor_ on 2009-01-21 12:53:26 -0600**\n\n___\nAuthor: Torsten Hoefler\n\n## Description\nNonblocking collective operations provide optimization potential and new semantic properties to the user. \n\n## History\n\nThis particular issue (and proposal) has been discussed several times at the MPI Forum. An official reading was performed at the December 2008 meeting.\n\n## Proposed Solution\n\nMPI-2.1 Sections 5.1 (p129:19-42, p131:11-33) and Section 5.2.2 (p133:6-29, p133:41-p134:5) are modified according to the new text shown in the attached pdf. A new Section 5.12 \"Nonblocking Collective Operations\" is added. At the end of MPI-2.1 Sect. 5.12 (in the attached pdf, it is Sect. 5.13), new examples are added, starting with Example 5.28 in the attached pdf.\n\nThe following tickets discuss subitems of this ticket:\n - ~~NBC - Phrasing for send buffer restriction ~~#81\n - ~~NBC - number of outstanding collectives/requests ~~#82\n - ~~NBC - rationale against MPI_Request_free ~~#83\n - ~~NBC - status object handling ~~#84\n - ~~NBC - overloaded word \"operation\" ~~#85\n - ~~NBC - dealing with many requests - advice to implementers ~~#86\n - ~~NBC - Ireduce discussion ~~#112\n\nand are currently under review. They will be merged and closed (striked) as soon as the individual reviews are done.\n\n## Impact on Implementations\n\nMinor, new operations have to be added. However, a full open-source implementation is available with [LibNBC](http://www.unixer.de/research/nbcoll/libnbc/) and possible implementation options are well documented. [LibNBC](http://www.unixer.de/research/nbcoll/libnbc/) is BSD licensed and could be included in any MPI library as a first step.\n\n## Impact on Applications / Users\n\nNone, new API functions become available for use.\n\n## Alternative Solutions\nSplit collectives (see JoD) have been discussed and are generally considered as too limited.\n\n## Entry for the Change Log\nAdded nonblocking interfaces to all collective operations"},"comment":{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/comments/234764539","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/issues/109#issuecomment-234764539","issue_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/109","id":234764539,"user":{"login":"mpiforumbot","id":20617676,"avatar_url":"https://avatars.githubusercontent.com/u/20617676?v=3","gravatar_id":"","url":"https://api.github.com/users/mpiforumbot","html_url":"https://github.com/mpiforumbot","followers_url":"https://api.github.com/users/mpiforumbot/followers","following_url":"https://api.github.com/users/mpiforumbot/following{/other_user}","gists_url":"https://api.github.com/users/mpiforumbot/gists{/gist_id}","starred_url":"https://api.github.com/users/mpiforumbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpiforumbot/subscriptions","organizations_url":"https://api.github.com/users/mpiforumbot/orgs","repos_url":"https://api.github.com/users/mpiforumbot/repos","events_url":"https://api.github.com/users/mpiforumbot/events{/privacy}","received_events_url":"https://api.github.com/users/mpiforumbot/received_events","type":"User","site_admin":false},"created_at":"2016-07-24T08:21:11Z","updated_at":"2016-07-24T08:21:11Z","body":"**Originally by _htor_ on 2010-11-02 09:24:55 -0500**\n\n___\nReplying to RolfRabenseifner:\n> Replying to htor:\n> > Replying to RolfRabenseifner:\n> ...\n> > >  In the new Section 5.12 before the paragraph \"Multiple nonblocking collective...\",\n> > >  the following paragraph should be added:\n> > > \n> > >    The fields in a status object returned by a call \n> > >    to MPI_{TEST|WAIT}{ALL|SOME}, \n> > >    where the request corresponds to a nonblocking collective call, \n> > >    are undefined, with one exceptions: \n> > >    The error status field will contain valid information if the wait or \n> > >    test call returned with MPI_ERR_IN_STATUS.\n> > Can you elaborate what this adds to the current wording \"Upon returning from a completion call in which a nonblocking collective operation completes, the MPI_ERROR field in the associated status object is set appropriately. The values of the MPI_SOURCE and MPI_TAG fields are undefined.\"\n> > \n> > Yes, we don't describe what happens if one calls the query functions but I agree to Rolf on this.\n> \n> I have overseen the existing text \n> \n>   Upon returning from a completion call in which a nonblocking collective operation\n>   completes, the MPI_ERROR field in the associated status object is set\n>   appropriately. The values of the MPI_SOURCE and MPI_TAG fields are undefined.\n> \n> which is incorrect, because MPI_Wait/Test must not set the MPI_ERROR field.\nI don't believe it is. We can add a back-reference to the p2p chapter which says: \"     The fields in a status object returned by a call to MPI_WAIT, MPI_TEST, or any\nof the other derived functions (MPI_{TEST|WAIT}{ALL|SOME|ANY}), where the request\ncorresponds to a send call, are undefined, with two exceptions: The error status field will contain valid information if the wait or test call returned with MPI_ERR_IN_STATUS; and the returned status can be queried by the call MPI_TEST_CANCELLED.\". The current wording \"set appropriately\" means exactly that.\n\nCould you elaborate why you think it's incorrect?\n\n> Additionally, my first proposal does not say that in case of MPI_Wait/Test, the status is fully undefined.\nIt is defined, see above.\n\n> Therefore, and to solve all these problems about inconsistencies and incompleteness,\n> I propose:\n> \n> Remove \n> \n>   Upon returning from a completion call in which a nonblocking collective operation\n>   completes, the MPI_ERROR field in the associated status object is set\n>   appropriately. The values of the MPI_SOURCE and MPI_TAG fields are undefined.\n> \n> Before the paragraph \"Multiple nonblocking collective...\",\n> the following paragraph should be added:\n> \n>   The fields in a status object returned by a call \n>   to MPI_WAIT, MPI_TEST, or MPI_{TEST|WAIT}{ALL|SOME|ANY}, \n>   where the request corresponds to a nonblocking collective call, \n>   are undefined, with one exceptions: \n>   The error status field will contain valid information if the wait or \n>   test call returned with MPI_ERR_IN_STATUS.\n>   MPI_ERR_IN_STATUS can be returned only by MPI_{TEST|WAIT}{ALL|SOME}.\n> \n> The text should not be earlier, because after the sentence on MPI_CANCEL,\n> it is clear, that the second exception (compare MPI-2.2, page 53, lines 25-27)\n> is not needed.\nMPI-2.2: \"Error codes belonging to the error class MPI_ERR_IN_STATUS should be returned only by the MPI completion functions that take arrays of MPI_STATUS.\". Now we can discuss whether \"should be\" is normative or not (who introduced such wording in a *standard* anyway?). I still think the \"set appropriately\" (maybe with a back-reference) is correct.\n\n> And please don't forget the lines\n> \n>   \\mpifuncindex{MPI\\_WAITALL}%[[BR]]\n>   \\mpifuncindex{MPI\\_WAITSOME}%[[BR]]\n>   \\mpifuncindex{MPI\\_TESTALL}%[[BR]]\n>   \\mpifuncindex{MPI\\_TESTSOME}% \nSure, if we end up accepting the change.\n\nI don't think this is a critical issue. If you think so, we can talk quickly on the phone. Otherwise, we can either wait until the next Forum.\n\nThanks,\n    Torsten\n\n"}}
{"actor":{"display_login":"mpiforumbot"}}