{"action":"created","issue":{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/50","repository_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic","labels_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/50/labels{/name}","comments_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/50/comments","events_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/50/events","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/issues/50","id":167214553,"number":50,"title":"Ibsend and Irsend Advice to Users misleading","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/Correction%20to%20standard%20%5C(for%20upcoming%20release%5C)","name":"Correction to standard \\(for upcoming release\\)","color":"ededed"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/MPI%202%5C.2","name":"MPI 2\\.2","color":"ededed"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/Not%20ready%20%5C/%20author%20rework","name":"Not ready \\/ author rework","color":"ededed"},{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/labels/Text%20committed","name":"Text committed","color":"d93f0b"}],"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/6","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/milestones/2009/04/06%20Chicago","labels_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/milestones/6/labels","id":1900467,"number":6,"title":"2009/04/06 Chicago","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":4,"state":"closed","created_at":"2016-07-23T22:09:07Z","updated_at":"2016-07-24T03:13:17Z","due_on":"2009-04-08T04:00:00Z","closed_at":"2016-07-23T22:09:07Z"},"comments":6,"created_at":"2016-07-24T03:13:10Z","updated_at":"2016-07-24T03:13:19Z","closed_at":null,"body":"**Originally by _dgsolt_ on 2008-10-20 01:11:21 -0500**\n\n___\n## Status\n Sep 8 2008 Straw Vote\n\n|| Yes || Maybe || No for 2.2 || Abstain ||\n|| 0 || all but 6 || 0 || 6 ||\n\n## Description\n\nThe following text is given in 2.1 (page 48, line 43):\n\n  Nonblocking sends in the buffered and ready modes have a more limited impact. A nonblocking send will return as soon as possible, whereas a blocking send will return after the data has been copied out of the sender memory. The use of nonblocking sends is advantageous in these cases *only* if data copying can be concurrent with computation.\n\nThe word \"*only*\" is clearly wrong.\n\nThe text appears to be written with the assumption that MPI_Ibsend is always going to begin the operation of buffering a message and that doing so in a non-blocking call is only advantageous if the copy can happen concurrently with the execution of the application code.  However, I believe that the following code:\n\nMPI_Ibsend(..., &req);\nMPI_Wait(&req);\n\ncould result in any of the following scenarios for some MPI implementations:\n \n   1. Scenario 1\n      1. MPI_Ibsend begins the process of copying data to the specified user buffer\n      1. MPI_Wait finishes the process of copying data to the buffer.  The data is communicated to the receiver at some later time.\n   1. Scenario 2 \n      1. MPI_Ibsend copies the data to the specified user buffer\n      1. MPI_Wait does nothing.  The data is communicated to the receiver at some later time.\n   1. Scenario 3\n      1. MPI_Ibsend does nothing\n      1. MPI_Wait begins and finishes the process of copying data to the buffer. The data is communicated to the receiver at some later time.\n   1. Scenario 4 \n      1. MPI_Ibsend does nothing\n      1. MPI_Wait detects that a matching receive has been posted and sends the data directly to the receiver.\n   1. Scenario 5\n      1. MPI_Ibsend begins the process of copying data to the specified user buffer\n      1. MPI_Wait detects that a matching receive has been posted and cancels the buffering operation in favor of sending the data directly to the receiver.\n\nI do not claim this is an exhaustive list, but I think it shows some legal possibilities.  For some of these, there are advantages even when concurrent data copying is not used.  MPI_Bsend is not required to buffer the message if it can complete the send without buffering.  However, the decision whether to buffer or send directly to the receiver must be made within the confines of the MPI_Bsend call.  Using MPI_Ibsend + a completion routing widens the window of decision making for the implementation so that from the time of the initial MPI_Ibsend call until the completion, the implementation can decide to begin the buffering process or defer the decision until the last possible moment (when the completion routine is called).  \n\nIn addition, the text lumps together MPI_Ibsend and MPI_Irsend.  I do not understand why these are linked together.  In this case, MPI_Irsend has no relationship to buffering or concurrent copying of data.   MPI_Irsend has all of the advantages that MPI_Isend has.  \n\n## History\n\nnone\n\n## Proposed Solution\n\nPage 48:43-48 reads:\n\n  Nonblocking sends in the buffered and ready modes have a more limited impact. A nonblocking send will return as soon as possible, whereas a blocking send will return after the data has been copied out of the sender memory. The use of nonblocking sends is advantageous in these cases only if data copying can be concurrent with computation.\n\nbut should read: \n\n  Nonblocking sends in the buffered and ready modes have a more limited impact because the blocking versions are both capable of completing irregardless of when a matching receive call is made.   However, separating the start from the completion of these sends still gives some opportunity for optimization within the MPI library.  For example, starting a buffered send gives an implementation more flexibility in determining if and how the message is buffered.  There are also advantages for both nonblocking buffered and ready modes when data copying can be done concurrently with computation.\n\n## Impact on Implementations\n\nNone (I doubt any implementations currently believe that they must begin copying data at the point of an MPI_Ibsend)\n\n## Impact on Applications / Users\n\nUsers may be more likely to use MPI_Ibsend and expect some advantage in doing so.\n\n## Alternative Solutions\n\nWe could require that MPI_Ibsend must either begin a send or begin a copy operation.   There is no way to validate this however.  An implementation could also copy one byte of the message to a buffer and then claim the copy operation has been \"started\".  \n\n\nChanged the proposed new text to call out the possible advantages of MPI_Irsend as well.  First proposal text was:\n\nNonblocking sends in the buffered and ready modes have a more limited impact because the blocking versions are both capable of completing irregardless of when a matching receive call is made.   In the case of the non-blocking buffered sends, however, the window of time between the start and the completion of the send gives the implementation more flexibility in determining if and how the message is buffered.  There are also advantages for both nonblocking buffered and ready modes when data copying can be done concurrently with computation.\n\n## Entry for the Change Log\n\nSection 3.7 on page 47.[[BR]]\nThe *Advice to users* for IBSEND and IRSEND was slightly changed."},"comment":{"url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/comments/234754467","html_url":"https://github.com/mpiforumbot/mpi-forum-historic/issues/50#issuecomment-234754467","issue_url":"https://api.github.com/repos/mpiforumbot/mpi-forum-historic/issues/50","id":234754467,"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-24T03:13:18Z","updated_at":"2016-07-24T03:13:18Z","body":"**Originally by _rlgraham_ on 2009-04-04 16:19:26 -0500**\n\n___\nThese changes look ok to me."}}
{"actor":{"display_login":"mpiforumbot"}}