{"action":"created","comment":{"url":"https://api.github.com/repos/open-mpi/ompi/pulls/comments/186875286","pull_request_review_id":118539630,"id":186875286,"diff_hunk":"@@ -0,0 +1,212 @@\n+/*\n+ * Copyright (c) 2018      The University of Tennessee and The University\n+ *                         of Tennessee Research Foundation.  All rights\n+ *                         reserved.\n+ *\n+ * $COPYRIGHT$\n+ *\n+ * Additional copyrights may follow\n+ *\n+ * $HEADER$\n+ */\n+\n+#ifndef OMPI_SPC\n+#define OMPI_SPC\n+\n+#include <stdio.h>\n+#include <stdlib.h>\n+#include <string.h>\n+#include <dlfcn.h>\n+\n+#include \"ompi/communicator/communicator.h\"\n+#include \"ompi/datatype/ompi_datatype.h\"\n+#include \"ompi/runtime/params.h\"\n+#include \"opal/mca/timer/timer.h\"\n+#include \"opal/mca/base/mca_base_pvar.h\"\n+#include \"opal/util/argv.h\"\n+#include \"opal/util/show_help.h\"\n+#include \"opal/util/output.h\"\n+\n+#include MCA_timer_IMPLEMENTATION_HEADER\n+\n+/* INSTRUCTIONS FOR ADDING COUNTERS\n+ * 1.) Add a new counter name in the ompi_spc_counters_t enum before\n+ *     OMPI_SPC_NUM_COUNTERS below.\n+ * 2.) Add corresponding counter name and descriptions to the\n+ *     counter_names and counter_descriptions arrays in\n+ *     ompi_spc.c  NOTE: The names and descriptions\n+ *     MUST be in the same array location as where you added the\n+ *     counter name in step 1.\n+ * 3.) If this counter is based on a timer, add its enum name to\n+ *     the logic for timer-based counters in the ompi_spc_init\n+ *     function in ompi_spc.c\n+ * 4.) Instrument the Open MPI code base where it makes sense for\n+ *     your counter to be modified using the SPC_RECORD macro.\n+ *     Note: If your counter is timer-based you should use the\n+ *     SPC_TIMER_START and SPC_TIMER_STOP macros to record\n+ *     the time in cycles to then be converted to microseconds later\n+ *     in the ompi_spc_get_count function when requested by MPI_T\n+ */\n+\n+/* This enumeration serves as event ids for the various events */\n+enum ompi_spc_counters_t {\n+    OMPI_SEND,\n+    OMPI_BSEND,\n+    OMPI_RSEND,\n+    OMPI_SSEND,\n+    OMPI_RECV,\n+    OMPI_MRECV,\n+    OMPI_ISEND,\n+    OMPI_IBSEND,\n+    OMPI_IRSEND,\n+    OMPI_ISSEND,\n+    OMPI_IRECV,\n+    OMPI_SENDRECV,\n+    OMPI_SENDRECV_REPLACE,\n+    OMPI_PUT,\n+    OMPI_RPUT,\n+    OMPI_GET,\n+    OMPI_RGET,\n+    OMPI_PROBE,\n+    OMPI_IPROBE,\n+    OMPI_BCAST,\n+    OMPI_IBCAST,\n+    OMPI_REDUCE,\n+    OMPI_IREDUCE,\n+    OMPI_IREDUCE_SCATTER,\n+    OMPI_IREDUCE_SCATTER_BLOCK,\n+    OMPI_ALLREDUCE,\n+    OMPI_IALLREDUCE,\n+    OMPI_SCAN,\n+    OMPI_ISCAN,\n+    OMPI_SCATTER,\n+    OMPI_SCATTERV,\n+    OMPI_ISCATTER,\n+    OMPI_ISCATTERV,\n+    OMPI_GATHER,\n+    OMPI_GATHERV,\n+    OMPI_IGATHER,\n+    OMPI_ALLTOALL,\n+    OMPI_IALLTOALL,\n+    OMPI_IALLTOALLV,\n+    OMPI_IALLTOALLW,\n+    OMPI_NEIGHBOR_ALLTOALL,\n+    OMPI_NEIGHBOR_ALLTOALLV,\n+    OMPI_NEIGHBOR_ALLTOALLW,\n+    OMPI_ALLGATHER,\n+    OMPI_ALLGATHERV,\n+    OMPI_IALLGATHER,\n+    OMPI_IALLGATHERV,\n+    OMPI_NEIGHBOR_ALLGATHER,\n+    OMPI_NEIGHBOR_ALLGATHERV,\n+    OMPI_TEST,\n+    OMPI_TESTALL,\n+    OMPI_TESTANY,\n+    OMPI_TESTSOME,\n+    OMPI_WAIT,\n+    OMPI_WAITALL,\n+    OMPI_WAITANY,\n+    OMPI_WAITSOME,\n+    OMPI_BARRIER,\n+    OMPI_IBARRIER,\n+    OMPI_WTIME,\n+    OMPI_CANCEL,\n+    OMPI_BYTES_RECEIVED_USER,\n+    OMPI_BYTES_RECEIVED_MPI,\n+    OMPI_BYTES_SENT_USER,\n+    OMPI_BYTES_SENT_MPI,\n+    OMPI_BYTES_PUT,\n+    OMPI_BYTES_GET,\n+    OMPI_UNEXPECTED,\n+    OMPI_OUT_OF_SEQUENCE,\n+    OMPI_MATCH_TIME,\n+    OMPI_UNEXPECTED_IN_QUEUE,\n+    OMPI_OOS_IN_QUEUE,\n+    OMPI_MAX_UNEXPECTED_IN_QUEUE,\n+    OMPI_MAX_OOS_IN_QUEUE,\n+    OMPI_SPC_NUM_COUNTERS /* This serves as the number of counters.  It must be last. */\n+};\n+\n+/* There is currently no support for atomics on long long values so we will default to\n+ * size_t for now until support for such atomics is implemented.\n+ */\n+typedef size_t ompi_spc_value_t;\n+\n+/* A structure for storing the event data */\n+typedef struct ompi_spc_s{\n+    char *name;\n+    ompi_spc_value_t value;\n+} ompi_spc_t;\n+\n+/* Events data structure initialization function */\n+void events_init(void);","path":"ompi/runtime/ompi_spc.h","position":142,"original_position":142,"commit_id":"3c1c791f6ef02d3cbec2a101a15f0f49e8fd2417","original_commit_id":"3c1c791f6ef02d3cbec2a101a15f0f49e8fd2417","user":{"login":"jsquyres","id":617316,"avatar_url":"https://avatars2.githubusercontent.com/u/617316?v=4","gravatar_id":"","url":"https://api.github.com/users/jsquyres","html_url":"https://github.com/jsquyres","followers_url":"https://api.github.com/users/jsquyres/followers","following_url":"https://api.github.com/users/jsquyres/following{/other_user}","gists_url":"https://api.github.com/users/jsquyres/gists{/gist_id}","starred_url":"https://api.github.com/users/jsquyres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsquyres/subscriptions","organizations_url":"https://api.github.com/users/jsquyres/orgs","repos_url":"https://api.github.com/users/jsquyres/repos","events_url":"https://api.github.com/users/jsquyres/events{/privacy}","received_events_url":"https://api.github.com/users/jsquyres/received_events","type":"User","site_admin":false},"body":"This function name needs to be prefixed with `ompi_spc_`.","created_at":"2018-05-08T21:36:09Z","updated_at":"2018-05-08T21:45:31Z","html_url":"https://github.com/open-mpi/ompi/pull/4885#discussion_r186875286","pull_request_url":"https://api.github.com/repos/open-mpi/ompi/pulls/4885","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/comments/186875286"},"html":{"href":"https://github.com/open-mpi/ompi/pull/4885#discussion_r186875286"},"pull_request":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/4885"}}},"pull_request":{"url":"https://api.github.com/repos/open-mpi/ompi/pulls/4885","id":173578167,"html_url":"https://github.com/open-mpi/ompi/pull/4885","diff_url":"https://github.com/open-mpi/ompi/pull/4885.diff","patch_url":"https://github.com/open-mpi/ompi/pull/4885.patch","issue_url":"https://api.github.com/repos/open-mpi/ompi/issues/4885","number":4885,"state":"open","locked":false,"title":"Initial Software-based Performance Counters PR","user":{"login":"davideberius","id":15352465,"avatar_url":"https://avatars2.githubusercontent.com/u/15352465?v=4","gravatar_id":"","url":"https://api.github.com/users/davideberius","html_url":"https://github.com/davideberius","followers_url":"https://api.github.com/users/davideberius/followers","following_url":"https://api.github.com/users/davideberius/following{/other_user}","gists_url":"https://api.github.com/users/davideberius/gists{/gist_id}","starred_url":"https://api.github.com/users/davideberius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davideberius/subscriptions","organizations_url":"https://api.github.com/users/davideberius/orgs","repos_url":"https://api.github.com/users/davideberius/repos","events_url":"https://api.github.com/users/davideberius/events{/privacy}","received_events_url":"https://api.github.com/users/davideberius/received_events","type":"User","site_admin":false},"body":"Added Software-based Performance Counters driver code along with several counters.\r\n    \r\n> This code is the implementation of Software-base Performance Counters as described in the paper 'Using Software-Base Performance Counters to Expose Low-Level Open MPI Performance Information' in EuroMPI/USA '17 (http://icl.cs.utk.edu/news_pub/submissions/software-performance-counters.pdf).  More practical usage information can be found here: https://github.com/davideberius/ompi/wiki/How-to-Use-Software-Based-Performance-Counters-(SPCs)-in-Open-MPI.\r\n> \r\n> All software events functions are put in macros that become no-ops when SOFTWARE_EVENTS_ENABLE is not defined.  The internal timer units have been changed to cycles to avoid division operations which was a large source of overhead as discussed in the paper.  Added a --with-spc configure option to enable SPCs in the Open MPI build.  This defines SOFTWARE_EVENTS_ENABLE.  Added an MCA parameter, mpi_spc_enable, for turning on specific counters.  Added an MCA parameter, mpi_spc_dump_enabled, for turning on and off dumping SPC counters in MPI_Finalize.  Added an SPC test and example.","created_at":"2018-03-07T21:27:36Z","updated_at":"2018-05-08T21:45:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"807c3005e7832ae85e9bccc1a048155e5b1e20f4","assignee":{"login":"bosilca","id":642701,"avatar_url":"https://avatars3.githubusercontent.com/u/642701?v=4","gravatar_id":"","url":"https://api.github.com/users/bosilca","html_url":"https://github.com/bosilca","followers_url":"https://api.github.com/users/bosilca/followers","following_url":"https://api.github.com/users/bosilca/following{/other_user}","gists_url":"https://api.github.com/users/bosilca/gists{/gist_id}","starred_url":"https://api.github.com/users/bosilca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bosilca/subscriptions","organizations_url":"https://api.github.com/users/bosilca/orgs","repos_url":"https://api.github.com/users/bosilca/repos","events_url":"https://api.github.com/users/bosilca/events{/privacy}","received_events_url":"https://api.github.com/users/bosilca/received_events","type":"User","site_admin":false},"assignees":[{"login":"bosilca","id":642701,"avatar_url":"https://avatars3.githubusercontent.com/u/642701?v=4","gravatar_id":"","url":"https://api.github.com/users/bosilca","html_url":"https://github.com/bosilca","followers_url":"https://api.github.com/users/bosilca/followers","following_url":"https://api.github.com/users/bosilca/following{/other_user}","gists_url":"https://api.github.com/users/bosilca/gists{/gist_id}","starred_url":"https://api.github.com/users/bosilca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bosilca/subscriptions","organizations_url":"https://api.github.com/users/bosilca/orgs","repos_url":"https://api.github.com/users/bosilca/repos","events_url":"https://api.github.com/users/bosilca/events{/privacy}","received_events_url":"https://api.github.com/users/bosilca/received_events","type":"User","site_admin":false},{"login":"ggouaillardet","id":7233259,"avatar_url":"https://avatars0.githubusercontent.com/u/7233259?v=4","gravatar_id":"","url":"https://api.github.com/users/ggouaillardet","html_url":"https://github.com/ggouaillardet","followers_url":"https://api.github.com/users/ggouaillardet/followers","following_url":"https://api.github.com/users/ggouaillardet/following{/other_user}","gists_url":"https://api.github.com/users/ggouaillardet/gists{/gist_id}","starred_url":"https://api.github.com/users/ggouaillardet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ggouaillardet/subscriptions","organizations_url":"https://api.github.com/users/ggouaillardet/orgs","repos_url":"https://api.github.com/users/ggouaillardet/repos","events_url":"https://api.github.com/users/ggouaillardet/events{/privacy}","received_events_url":"https://api.github.com/users/ggouaillardet/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":659687073,"url":"https://api.github.com/repos/open-mpi/ompi/labels/Target:%20master","name":"Target: master","color":"fbca04","default":false},{"id":129984009,"url":"https://api.github.com/repos/open-mpi/ompi/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/open-mpi/ompi/pulls/4885/commits","review_comments_url":"https://api.github.com/repos/open-mpi/ompi/pulls/4885/comments","review_comment_url":"https://api.github.com/repos/open-mpi/ompi/pulls/comments{/number}","comments_url":"https://api.github.com/repos/open-mpi/ompi/issues/4885/comments","statuses_url":"https://api.github.com/repos/open-mpi/ompi/statuses/3c1c791f6ef02d3cbec2a101a15f0f49e8fd2417","head":{"label":"davideberius:spc_pr","ref":"spc_pr","sha":"3c1c791f6ef02d3cbec2a101a15f0f49e8fd2417","user":{"login":"davideberius","id":15352465,"avatar_url":"https://avatars2.githubusercontent.com/u/15352465?v=4","gravatar_id":"","url":"https://api.github.com/users/davideberius","html_url":"https://github.com/davideberius","followers_url":"https://api.github.com/users/davideberius/followers","following_url":"https://api.github.com/users/davideberius/following{/other_user}","gists_url":"https://api.github.com/users/davideberius/gists{/gist_id}","starred_url":"https://api.github.com/users/davideberius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davideberius/subscriptions","organizations_url":"https://api.github.com/users/davideberius/orgs","repos_url":"https://api.github.com/users/davideberius/repos","events_url":"https://api.github.com/users/davideberius/events{/privacy}","received_events_url":"https://api.github.com/users/davideberius/received_events","type":"User","site_admin":false},"repo":{"id":56269613,"name":"ompi","full_name":"davideberius/ompi","owner":{"login":"davideberius","id":15352465,"avatar_url":"https://avatars2.githubusercontent.com/u/15352465?v=4","gravatar_id":"","url":"https://api.github.com/users/davideberius","html_url":"https://github.com/davideberius","followers_url":"https://api.github.com/users/davideberius/followers","following_url":"https://api.github.com/users/davideberius/following{/other_user}","gists_url":"https://api.github.com/users/davideberius/gists{/gist_id}","starred_url":"https://api.github.com/users/davideberius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davideberius/subscriptions","organizations_url":"https://api.github.com/users/davideberius/orgs","repos_url":"https://api.github.com/users/davideberius/repos","events_url":"https://api.github.com/users/davideberius/events{/privacy}","received_events_url":"https://api.github.com/users/davideberius/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/davideberius/ompi","description":"Open MPI main development repository","fork":true,"url":"https://api.github.com/repos/davideberius/ompi","forks_url":"https://api.github.com/repos/davideberius/ompi/forks","keys_url":"https://api.github.com/repos/davideberius/ompi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davideberius/ompi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davideberius/ompi/teams","hooks_url":"https://api.github.com/repos/davideberius/ompi/hooks","issue_events_url":"https://api.github.com/repos/davideberius/ompi/issues/events{/number}","events_url":"https://api.github.com/repos/davideberius/ompi/events","assignees_url":"https://api.github.com/repos/davideberius/ompi/assignees{/user}","branches_url":"https://api.github.com/repos/davideberius/ompi/branches{/branch}","tags_url":"https://api.github.com/repos/davideberius/ompi/tags","blobs_url":"https://api.github.com/repos/davideberius/ompi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davideberius/ompi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davideberius/ompi/git/refs{/sha}","trees_url":"https://api.github.com/repos/davideberius/ompi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davideberius/ompi/statuses/{sha}","languages_url":"https://api.github.com/repos/davideberius/ompi/languages","stargazers_url":"https://api.github.com/repos/davideberius/ompi/stargazers","contributors_url":"https://api.github.com/repos/davideberius/ompi/contributors","subscribers_url":"https://api.github.com/repos/davideberius/ompi/subscribers","subscription_url":"https://api.github.com/repos/davideberius/ompi/subscription","commits_url":"https://api.github.com/repos/davideberius/ompi/commits{/sha}","git_commits_url":"https://api.github.com/repos/davideberius/ompi/git/commits{/sha}","comments_url":"https://api.github.com/repos/davideberius/ompi/comments{/number}","issue_comment_url":"https://api.github.com/repos/davideberius/ompi/issues/comments{/number}","contents_url":"https://api.github.com/repos/davideberius/ompi/contents/{+path}","compare_url":"https://api.github.com/repos/davideberius/ompi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davideberius/ompi/merges","archive_url":"https://api.github.com/repos/davideberius/ompi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davideberius/ompi/downloads","issues_url":"https://api.github.com/repos/davideberius/ompi/issues{/number}","pulls_url":"https://api.github.com/repos/davideberius/ompi/pulls{/number}","milestones_url":"https://api.github.com/repos/davideberius/ompi/milestones{/number}","notifications_url":"https://api.github.com/repos/davideberius/ompi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davideberius/ompi/labels{/name}","releases_url":"https://api.github.com/repos/davideberius/ompi/releases{/id}","deployments_url":"https://api.github.com/repos/davideberius/ompi/deployments","created_at":"2016-04-14T20:57:49Z","updated_at":"2016-04-14T20:58:06Z","pushed_at":"2018-04-03T20:46:17Z","git_url":"git://github.com/davideberius/ompi.git","ssh_url":"git@github.com:davideberius/ompi.git","clone_url":"https://github.com/davideberius/ompi.git","svn_url":"https://github.com/davideberius/ompi","homepage":null,"size":100113,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"open-mpi:master","ref":"master","sha":"85ce76fa369b77737f03d7ced12b7982c5849599","user":{"login":"open-mpi","id":2165682,"avatar_url":"https://avatars1.githubusercontent.com/u/2165682?v=4","gravatar_id":"","url":"https://api.github.com/users/open-mpi","html_url":"https://github.com/open-mpi","followers_url":"https://api.github.com/users/open-mpi/followers","following_url":"https://api.github.com/users/open-mpi/following{/other_user}","gists_url":"https://api.github.com/users/open-mpi/gists{/gist_id}","starred_url":"https://api.github.com/users/open-mpi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-mpi/subscriptions","organizations_url":"https://api.github.com/users/open-mpi/orgs","repos_url":"https://api.github.com/users/open-mpi/repos","events_url":"https://api.github.com/users/open-mpi/events{/privacy}","received_events_url":"https://api.github.com/users/open-mpi/received_events","type":"Organization","site_admin":false},"repo":{"id":24107001,"name":"ompi","full_name":"open-mpi/ompi","owner":{"login":"open-mpi","id":2165682,"avatar_url":"https://avatars1.githubusercontent.com/u/2165682?v=4","gravatar_id":"","url":"https://api.github.com/users/open-mpi","html_url":"https://github.com/open-mpi","followers_url":"https://api.github.com/users/open-mpi/followers","following_url":"https://api.github.com/users/open-mpi/following{/other_user}","gists_url":"https://api.github.com/users/open-mpi/gists{/gist_id}","starred_url":"https://api.github.com/users/open-mpi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open-mpi/subscriptions","organizations_url":"https://api.github.com/users/open-mpi/orgs","repos_url":"https://api.github.com/users/open-mpi/repos","events_url":"https://api.github.com/users/open-mpi/events{/privacy}","received_events_url":"https://api.github.com/users/open-mpi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/open-mpi/ompi","description":"Open MPI main development repository","fork":false,"url":"https://api.github.com/repos/open-mpi/ompi","forks_url":"https://api.github.com/repos/open-mpi/ompi/forks","keys_url":"https://api.github.com/repos/open-mpi/ompi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/open-mpi/ompi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/open-mpi/ompi/teams","hooks_url":"https://api.github.com/repos/open-mpi/ompi/hooks","issue_events_url":"https://api.github.com/repos/open-mpi/ompi/issues/events{/number}","events_url":"https://api.github.com/repos/open-mpi/ompi/events","assignees_url":"https://api.github.com/repos/open-mpi/ompi/assignees{/user}","branches_url":"https://api.github.com/repos/open-mpi/ompi/branches{/branch}","tags_url":"https://api.github.com/repos/open-mpi/ompi/tags","blobs_url":"https://api.github.com/repos/open-mpi/ompi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/open-mpi/ompi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/open-mpi/ompi/git/refs{/sha}","trees_url":"https://api.github.com/repos/open-mpi/ompi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/open-mpi/ompi/statuses/{sha}","languages_url":"https://api.github.com/repos/open-mpi/ompi/languages","stargazers_url":"https://api.github.com/repos/open-mpi/ompi/stargazers","contributors_url":"https://api.github.com/repos/open-mpi/ompi/contributors","subscribers_url":"https://api.github.com/repos/open-mpi/ompi/subscribers","subscription_url":"https://api.github.com/repos/open-mpi/ompi/subscription","commits_url":"https://api.github.com/repos/open-mpi/ompi/commits{/sha}","git_commits_url":"https://api.github.com/repos/open-mpi/ompi/git/commits{/sha}","comments_url":"https://api.github.com/repos/open-mpi/ompi/comments{/number}","issue_comment_url":"https://api.github.com/repos/open-mpi/ompi/issues/comments{/number}","contents_url":"https://api.github.com/repos/open-mpi/ompi/contents/{+path}","compare_url":"https://api.github.com/repos/open-mpi/ompi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/open-mpi/ompi/merges","archive_url":"https://api.github.com/repos/open-mpi/ompi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/open-mpi/ompi/downloads","issues_url":"https://api.github.com/repos/open-mpi/ompi/issues{/number}","pulls_url":"https://api.github.com/repos/open-mpi/ompi/pulls{/number}","milestones_url":"https://api.github.com/repos/open-mpi/ompi/milestones{/number}","notifications_url":"https://api.github.com/repos/open-mpi/ompi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/open-mpi/ompi/labels{/name}","releases_url":"https://api.github.com/repos/open-mpi/ompi/releases{/id}","deployments_url":"https://api.github.com/repos/open-mpi/ompi/deployments","created_at":"2014-09-16T16:08:30Z","updated_at":"2018-05-08T05:07:55Z","pushed_at":"2018-05-08T20:10:37Z","git_url":"git://github.com/open-mpi/ompi.git","ssh_url":"git@github.com:open-mpi/ompi.git","clone_url":"https://github.com/open-mpi/ompi.git","svn_url":"https://github.com/open-mpi/ompi","homepage":null,"size":114983,"stargazers_count":523,"watchers_count":523,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":322,"mirror_url":null,"archived":false,"open_issues_count":384,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":322,"open_issues":384,"watchers":523,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/4885"},"html":{"href":"https://github.com/open-mpi/ompi/pull/4885"},"issue":{"href":"https://api.github.com/repos/open-mpi/ompi/issues/4885"},"comments":{"href":"https://api.github.com/repos/open-mpi/ompi/issues/4885/comments"},"review_comments":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/4885/comments"},"review_comment":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/open-mpi/ompi/pulls/4885/commits"},"statuses":{"href":"https://api.github.com/repos/open-mpi/ompi/statuses/3c1c791f6ef02d3cbec2a101a15f0f49e8fd2417"}},"author_association":"NONE"}}
{"actor":{"display_login":"jsquyres"}}