{"action":"closed","number":3825,"pull_request":{"url":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825","id":68761229,"html_url":"https://github.com/chapel-lang/chapel/pull/3825","diff_url":"https://github.com/chapel-lang/chapel/pull/3825.diff","patch_url":"https://github.com/chapel-lang/chapel/pull/3825.patch","issue_url":"https://api.github.com/repos/chapel-lang/chapel/issues/3825","number":3825,"state":"closed","locked":false,"title":"A second attempt with the MPI module","user":{"login":"npadmana","id":597866,"avatar_url":"https://avatars.githubusercontent.com/u/597866?v=3","gravatar_id":"","url":"https://api.github.com/users/npadmana","html_url":"https://github.com/npadmana","followers_url":"https://api.github.com/users/npadmana/followers","following_url":"https://api.github.com/users/npadmana/following{/other_user}","gists_url":"https://api.github.com/users/npadmana/gists{/gist_id}","starred_url":"https://api.github.com/users/npadmana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/npadmana/subscriptions","organizations_url":"https://api.github.com/users/npadmana/orgs","repos_url":"https://api.github.com/users/npadmana/repos","events_url":"https://api.github.com/users/npadmana/events{/privacy}","received_events_url":"https://api.github.com/users/npadmana/received_events","type":"User","site_admin":false},"body":"@mppf -- thanks for your comments; here's a new version that should be good to review.\r\n\r\nOne of the changes suggested in  PR #3798 required a new branch to cleanly include this module and avoid extraneous commits (that included the MPI 1.1 html files that we didn't want included in the git history).\r\n\r\nA detailed description of open issues is below; this is also duplicated in test/users/npadmana/mpi/mpi.pr.notes. \r\n\r\nMichael --  I'll also respond line-by-line to your comments in the discussion in #PR3768; if you're happy with that, we can close that PR, since this supersedes it.\r\n\r\nKnown issues/TODOs\r\n=====================\r\n\r\n* Documentation is still WIP. It should run through chpldoc; parts of the documentation \r\n  (at the top) appear to render properly, but the sectioning of the various MPI routines seems to fail. \r\n  I'd be glad to make these work, but I might need help/suggestions on what I'm doing wrong.\r\n\r\n* The higher level module functions (currently just auto-initialization) \r\n  assume that you are running Chapel in single-locale\r\n  mode. If we were running this in multi-locale mode, then we need to revisit some\r\n  of the assumptions here. For instance, the auto-init step  must call MPI_Init on all locales.\r\n\r\n* The code has the ability to auto-initialize, but requires the user to\r\n  explicitly call MPI_Finalize. This probably can be worked around by creating\r\n  a module level record, that on destruction, calls MPI_Finalize.\r\n\r\n* The module has two module-level variables : worldRank and worldSize. The latter\r\n  is fine, but the former will be an issue when we mix Chapel and MPI communication,\r\n  or run Chapel in multi-locale mode. We could make worldRank an array...\r\n\r\n* The current version of the API is just a direct translation of the C-API. Calling\r\n  functions therefore requires passing eg. MPI type information that, at least for\r\n  a number of cases, is known to the compiler. Future work could add in more\r\n  Chapel-esque calls, but the exact scope of this (which functions to wrap, what to\r\n  support etc) is probably worth determining depending on the usage of this module.\r\n\r\n Fixes\r\n =====\r\n\r\n 2016-04-30 :\r\n * Removed extraneous files and commits\r\n * Added in a license\r\n * README now describes how the module was created.\r\n * Change \"C style pointer\" to \"c_ptr\" in documentation, more precise\r\n","created_at":"2016-05-03T19:29:52Z","updated_at":"2016-05-05T20:16:29Z","closed_at":"2016-05-05T20:16:29Z","merged_at":"2016-05-05T20:16:29Z","merge_commit_sha":"fe2fc523f1eb316408c0a8d8dbad05537e2ec191","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825/commits","review_comments_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825/comments","review_comment_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments{/number}","comments_url":"https://api.github.com/repos/chapel-lang/chapel/issues/3825/comments","statuses_url":"https://api.github.com/repos/chapel-lang/chapel/statuses/b86cdcbc7b4297c52017e8930a06851cb8a46fc1","head":{"label":"npadmana:mpi-release-v2","ref":"mpi-release-v2","sha":"b86cdcbc7b4297c52017e8930a06851cb8a46fc1","user":{"login":"npadmana","id":597866,"avatar_url":"https://avatars.githubusercontent.com/u/597866?v=3","gravatar_id":"","url":"https://api.github.com/users/npadmana","html_url":"https://github.com/npadmana","followers_url":"https://api.github.com/users/npadmana/followers","following_url":"https://api.github.com/users/npadmana/following{/other_user}","gists_url":"https://api.github.com/users/npadmana/gists{/gist_id}","starred_url":"https://api.github.com/users/npadmana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/npadmana/subscriptions","organizations_url":"https://api.github.com/users/npadmana/orgs","repos_url":"https://api.github.com/users/npadmana/repos","events_url":"https://api.github.com/users/npadmana/events{/privacy}","received_events_url":"https://api.github.com/users/npadmana/received_events","type":"User","site_admin":false},"repo":{"id":29264670,"name":"chapel","full_name":"npadmana/chapel","owner":{"login":"npadmana","id":597866,"avatar_url":"https://avatars.githubusercontent.com/u/597866?v=3","gravatar_id":"","url":"https://api.github.com/users/npadmana","html_url":"https://github.com/npadmana","followers_url":"https://api.github.com/users/npadmana/followers","following_url":"https://api.github.com/users/npadmana/following{/other_user}","gists_url":"https://api.github.com/users/npadmana/gists{/gist_id}","starred_url":"https://api.github.com/users/npadmana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/npadmana/subscriptions","organizations_url":"https://api.github.com/users/npadmana/orgs","repos_url":"https://api.github.com/users/npadmana/repos","events_url":"https://api.github.com/users/npadmana/events{/privacy}","received_events_url":"https://api.github.com/users/npadmana/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/npadmana/chapel","description":"a Productive Parallel Programming Language","fork":true,"url":"https://api.github.com/repos/npadmana/chapel","forks_url":"https://api.github.com/repos/npadmana/chapel/forks","keys_url":"https://api.github.com/repos/npadmana/chapel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/npadmana/chapel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/npadmana/chapel/teams","hooks_url":"https://api.github.com/repos/npadmana/chapel/hooks","issue_events_url":"https://api.github.com/repos/npadmana/chapel/issues/events{/number}","events_url":"https://api.github.com/repos/npadmana/chapel/events","assignees_url":"https://api.github.com/repos/npadmana/chapel/assignees{/user}","branches_url":"https://api.github.com/repos/npadmana/chapel/branches{/branch}","tags_url":"https://api.github.com/repos/npadmana/chapel/tags","blobs_url":"https://api.github.com/repos/npadmana/chapel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/npadmana/chapel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/npadmana/chapel/git/refs{/sha}","trees_url":"https://api.github.com/repos/npadmana/chapel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/npadmana/chapel/statuses/{sha}","languages_url":"https://api.github.com/repos/npadmana/chapel/languages","stargazers_url":"https://api.github.com/repos/npadmana/chapel/stargazers","contributors_url":"https://api.github.com/repos/npadmana/chapel/contributors","subscribers_url":"https://api.github.com/repos/npadmana/chapel/subscribers","subscription_url":"https://api.github.com/repos/npadmana/chapel/subscription","commits_url":"https://api.github.com/repos/npadmana/chapel/commits{/sha}","git_commits_url":"https://api.github.com/repos/npadmana/chapel/git/commits{/sha}","comments_url":"https://api.github.com/repos/npadmana/chapel/comments{/number}","issue_comment_url":"https://api.github.com/repos/npadmana/chapel/issues/comments{/number}","contents_url":"https://api.github.com/repos/npadmana/chapel/contents/{+path}","compare_url":"https://api.github.com/repos/npadmana/chapel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/npadmana/chapel/merges","archive_url":"https://api.github.com/repos/npadmana/chapel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/npadmana/chapel/downloads","issues_url":"https://api.github.com/repos/npadmana/chapel/issues{/number}","pulls_url":"https://api.github.com/repos/npadmana/chapel/pulls{/number}","milestones_url":"https://api.github.com/repos/npadmana/chapel/milestones{/number}","notifications_url":"https://api.github.com/repos/npadmana/chapel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/npadmana/chapel/labels{/name}","releases_url":"https://api.github.com/repos/npadmana/chapel/releases{/id}","deployments_url":"https://api.github.com/repos/npadmana/chapel/deployments","created_at":"2015-01-14T20:40:34Z","updated_at":"2016-03-30T15:22:44Z","pushed_at":"2016-05-03T19:19:41Z","git_url":"git://github.com/npadmana/chapel.git","ssh_url":"git@github.com:npadmana/chapel.git","clone_url":"https://github.com/npadmana/chapel.git","svn_url":"https://github.com/npadmana/chapel","homepage":"http://chapel.cray.com/","size":354431,"stargazers_count":0,"watchers_count":0,"language":"Chapel","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"chapel-lang:master","ref":"master","sha":"b52d66d7f46c58da206d4b6a9cc6aec4ee8e0670","user":{"login":"chapel-lang","id":7597261,"avatar_url":"https://avatars.githubusercontent.com/u/7597261?v=3","gravatar_id":"","url":"https://api.github.com/users/chapel-lang","html_url":"https://github.com/chapel-lang","followers_url":"https://api.github.com/users/chapel-lang/followers","following_url":"https://api.github.com/users/chapel-lang/following{/other_user}","gists_url":"https://api.github.com/users/chapel-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/chapel-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chapel-lang/subscriptions","organizations_url":"https://api.github.com/users/chapel-lang/orgs","repos_url":"https://api.github.com/users/chapel-lang/repos","events_url":"https://api.github.com/users/chapel-lang/events{/privacy}","received_events_url":"https://api.github.com/users/chapel-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":21663285,"name":"chapel","full_name":"chapel-lang/chapel","owner":{"login":"chapel-lang","id":7597261,"avatar_url":"https://avatars.githubusercontent.com/u/7597261?v=3","gravatar_id":"","url":"https://api.github.com/users/chapel-lang","html_url":"https://github.com/chapel-lang","followers_url":"https://api.github.com/users/chapel-lang/followers","following_url":"https://api.github.com/users/chapel-lang/following{/other_user}","gists_url":"https://api.github.com/users/chapel-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/chapel-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chapel-lang/subscriptions","organizations_url":"https://api.github.com/users/chapel-lang/orgs","repos_url":"https://api.github.com/users/chapel-lang/repos","events_url":"https://api.github.com/users/chapel-lang/events{/privacy}","received_events_url":"https://api.github.com/users/chapel-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/chapel-lang/chapel","description":"a Productive Parallel Programming Language","fork":false,"url":"https://api.github.com/repos/chapel-lang/chapel","forks_url":"https://api.github.com/repos/chapel-lang/chapel/forks","keys_url":"https://api.github.com/repos/chapel-lang/chapel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chapel-lang/chapel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chapel-lang/chapel/teams","hooks_url":"https://api.github.com/repos/chapel-lang/chapel/hooks","issue_events_url":"https://api.github.com/repos/chapel-lang/chapel/issues/events{/number}","events_url":"https://api.github.com/repos/chapel-lang/chapel/events","assignees_url":"https://api.github.com/repos/chapel-lang/chapel/assignees{/user}","branches_url":"https://api.github.com/repos/chapel-lang/chapel/branches{/branch}","tags_url":"https://api.github.com/repos/chapel-lang/chapel/tags","blobs_url":"https://api.github.com/repos/chapel-lang/chapel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chapel-lang/chapel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chapel-lang/chapel/git/refs{/sha}","trees_url":"https://api.github.com/repos/chapel-lang/chapel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chapel-lang/chapel/statuses/{sha}","languages_url":"https://api.github.com/repos/chapel-lang/chapel/languages","stargazers_url":"https://api.github.com/repos/chapel-lang/chapel/stargazers","contributors_url":"https://api.github.com/repos/chapel-lang/chapel/contributors","subscribers_url":"https://api.github.com/repos/chapel-lang/chapel/subscribers","subscription_url":"https://api.github.com/repos/chapel-lang/chapel/subscription","commits_url":"https://api.github.com/repos/chapel-lang/chapel/commits{/sha}","git_commits_url":"https://api.github.com/repos/chapel-lang/chapel/git/commits{/sha}","comments_url":"https://api.github.com/repos/chapel-lang/chapel/comments{/number}","issue_comment_url":"https://api.github.com/repos/chapel-lang/chapel/issues/comments{/number}","contents_url":"https://api.github.com/repos/chapel-lang/chapel/contents/{+path}","compare_url":"https://api.github.com/repos/chapel-lang/chapel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chapel-lang/chapel/merges","archive_url":"https://api.github.com/repos/chapel-lang/chapel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chapel-lang/chapel/downloads","issues_url":"https://api.github.com/repos/chapel-lang/chapel/issues{/number}","pulls_url":"https://api.github.com/repos/chapel-lang/chapel/pulls{/number}","milestones_url":"https://api.github.com/repos/chapel-lang/chapel/milestones{/number}","notifications_url":"https://api.github.com/repos/chapel-lang/chapel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chapel-lang/chapel/labels{/name}","releases_url":"https://api.github.com/repos/chapel-lang/chapel/releases{/id}","deployments_url":"https://api.github.com/repos/chapel-lang/chapel/deployments","created_at":"2014-07-09T18:15:54Z","updated_at":"2016-04-30T16:38:08Z","pushed_at":"2016-05-05T20:16:29Z","git_url":"git://github.com/chapel-lang/chapel.git","ssh_url":"git@github.com:chapel-lang/chapel.git","clone_url":"https://github.com/chapel-lang/chapel.git","svn_url":"https://github.com/chapel-lang/chapel","homepage":"http://chapel.cray.com/","size":469559,"stargazers_count":257,"watchers_count":257,"language":"Chapel","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":13,"forks":101,"open_issues":13,"watchers":257,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825"},"html":{"href":"https://github.com/chapel-lang/chapel/pull/3825"},"issue":{"href":"https://api.github.com/repos/chapel-lang/chapel/issues/3825"},"comments":{"href":"https://api.github.com/repos/chapel-lang/chapel/issues/3825/comments"},"review_comments":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825/comments"},"review_comment":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/3825/commits"},"statuses":{"href":"https://api.github.com/repos/chapel-lang/chapel/statuses/b86cdcbc7b4297c52017e8930a06851cb8a46fc1"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mppf","id":3653132,"avatar_url":"https://avatars.githubusercontent.com/u/3653132?v=3","gravatar_id":"","url":"https://api.github.com/users/mppf","html_url":"https://github.com/mppf","followers_url":"https://api.github.com/users/mppf/followers","following_url":"https://api.github.com/users/mppf/following{/other_user}","gists_url":"https://api.github.com/users/mppf/gists{/gist_id}","starred_url":"https://api.github.com/users/mppf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mppf/subscriptions","organizations_url":"https://api.github.com/users/mppf/orgs","repos_url":"https://api.github.com/users/mppf/repos","events_url":"https://api.github.com/users/mppf/events{/privacy}","received_events_url":"https://api.github.com/users/mppf/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":5,"additions":892,"deletions":0,"changed_files":8}}