{"action":"created","issue":{"url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/12","repository_url":"https://api.github.com/repos/wesbland/mpi-forum-historic","labels_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/12/comments","events_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/12/events","html_url":"https://github.com/wesbland/mpi-forum-historic/issues/12","id":165796147,"number":12,"title":"MPI_TYPE_GET_ENVELOPE and MPI_TYPE_GET_CONTENTS ambiguities introduced in MPI-2.1","user":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-15T14:15:08Z","updated_at":"2016-07-15T14:15:09Z","closed_at":null,"body":"**Reported by jsquyres on 5 Sep 2008 12:54 UTC**\n== Description ==\r\n\r\nMPI-2.1 introduced an ambiguity in the interpretation of what MPI_TYPE_GET_CONTENTS is supposed to return.  Specifically: MPI-2.1 introduced that user-defined datatypes could be created with zero counts for datatypes.  The ambiguity originates from two sections of text:\r\n\r\n * MPI-2.1: p78:18-20\r\n     Most datatype constructors have replication count or block length arguments. Allowed values are nonnegative integers. If the value is zero, no elements are generated in the type map and there is no effect on datatype bounds or extent.\r\n * MPI-2.1: p107:47-48\r\n     The datatypes returned in array_of_datatypes are handles to datatype objects that are equivalent to the datatypes used in the original construction call.\r\n\r\nIf datatype constructors accept 0-count datatype arguments that are supposed to have \"no elements are generated in the type map\" and \"no effect on datatype bounds or extent\", should MPI_TYPE_GET_CONTENTS return those 0-count datatypes in array_of_datatypes?  After all, MPI_TYPE_GET_CONTENTS says that array_of_datatypes is supposed to contain handles to datatype objects that are equivalent to the datatypes used in the original construction call (which used 0-count datatypes).\r\n\r\nA similar problem exists with MPI_TYPE_GET_ENVELOPE; does num_datatypes contain a count of all the zero-count datatypes specified in the constructor?\r\n\r\n== History ==\r\n\r\nAmbiguity was accidentally introduced in MPI-2.1 (verified in July 2008 Forum meeting).\r\n\r\n== Proposed Solution ==\r\n\r\nChange MPI-2.1 p107:47-48 from:\r\n\r\n  The datatypes returned in array_of_datatypes are handles to datatype objects that are equivalent to the datatypes used in the original construction call.\r\n\r\nto\r\n\r\n  The datatypes returned in array_of_datatypes are handles to datatype objects that are equivalent to the datatypes used in the original construction call, including any zero-count datatypes that were specified in the original datatype constructor.\r\n\r\n== Impact on Implementations ==\r\n\r\nImplementations that do not currently save the zero-count datatypes will need to be changed to do so.\r\n\r\n== Impact on Applications / Users ==\r\n\r\nUsers will need to handle zero-count datatypes in what they get back from MPI_TYPE_CONTENTS.  This is not expected to be a burden because the user created the datatype with a zero-count datatype anyway.\r\n\r\n== Alternative Solutions ==\r\n\r\n * Change it so that MPI_TYPE_CONTENTS specifically excludes zero-count datatypes.  This does not seem to be consistent.\r\n * Allow MPI implementations to either return the zero-count datatypes or not.  From the user perspective, this is the same as requiring MPI implementations to return the zero-count datatypes because the application will need to check for zero-count datatypes in array_of_datatypes.\r\n\r\n== Entry for the Change Log ==\r\n\r\nRemove ambiguity regarding zero-count datatypes with MPI_TYPE_GET_ENVELOPE and MPI_TYPE_GET_CONTENTS.\n\nMigrated-From: https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/2"},"comment":{"url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/comments/232962078","html_url":"https://github.com/wesbland/mpi-forum-historic/issues/12#issuecomment-232962078","issue_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/12","id":232962078,"user":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"created_at":"2016-07-15T14:15:09Z","updated_at":"2016-07-15T14:15:09Z","body":"**Comment by jsquyres on 5 Sep 2008 12:55 UTC**\n(added by Dick Treumann 7/30/08)\r\n\r\nWhy does the user want back the types that turned out to be irrelevant because they represent zero bytes and do not change bound?  How about:\r\nChange MPI-2.1 p107:47-48 from:\r\n\r\n  The datatypes returned in array_of_datatypes are handles to datatype objects that are equivalent to the datatypes used in the original construction call.\r\n\r\nto\r\n\r\n  The datatypes returned in array_of_datatypes are handles to datatype objects that are equivalent to the significant datatypes used in the original construction call. (datatypes with 0 count or 0 blocklength are not considered significant)"}}
{"actor":{"display_login":"wesbland"}}