{"action":"opened","number":12,"pull_request":{"url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12","id":151070196,"html_url":"https://github.com/DMProAccelerator/qbart/pull/12","diff_url":"https://github.com/DMProAccelerator/qbart/pull/12.diff","patch_url":"https://github.com/DMProAccelerator/qbart/pull/12.patch","issue_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/12","number":12,"state":"open","locked":false,"title":"Adds distributed computing functionality","user":{"login":"N35N0M","id":10604103,"avatar_url":"https://avatars2.githubusercontent.com/u/10604103?v=4","gravatar_id":"","url":"https://api.github.com/users/N35N0M","html_url":"https://github.com/N35N0M","followers_url":"https://api.github.com/users/N35N0M/followers","following_url":"https://api.github.com/users/N35N0M/following{/other_user}","gists_url":"https://api.github.com/users/N35N0M/gists{/gist_id}","starred_url":"https://api.github.com/users/N35N0M/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/N35N0M/subscriptions","organizations_url":"https://api.github.com/users/N35N0M/orgs","repos_url":"https://api.github.com/users/N35N0M/repos","events_url":"https://api.github.com/users/N35N0M/events{/privacy}","received_events_url":"https://api.github.com/users/N35N0M/received_events","type":"User","site_admin":false},"body":"Server_client adds files that enables several PYNQs to work together given a QNN and a decently sized image set (30+). It uses python TCP sockets and the on-board ethernet connection to communicate. 1G ethernet ensures that there is relatively very little overhead associated with data transfer.\r\n\r\nA master PYNQ (where the user uses the python notebook MVP_notebook) uses a server_list consisting of one or several server IP-port pairs, which can also include its own PYNQ (localhost). It tries to establish a socket with every server, and if successful, it adds it to an active_socket list. With this list, we send out a fair of images to each PYNQ and a copy of the pickled QNN.\r\n\r\nThe PYNQ servers bind themselves to port 64646, and listen for a single connection (there can't be several masters in this master-slave environment). When the servers have received the images and the qnn, they run qbart_execute (the actual QNN inference on all the images), collect results, and send them back to the master PYNQ for collection.\r\n\r\nEach PYNQ should run the server.py script upon startup.\r\n\r\nA potential enhancement, when the PCB becomes ready and if there is time, is to send progress messages back to master from the servers (1% complete, 22 out of 1000 images processed, for example) that can be used by the PCB-team for their informative LCD-display.","created_at":"2017-11-07T10:04:46Z","updated_at":"2017-11-07T10:04:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12/commits","review_comments_url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12/comments","review_comment_url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/12/comments","statuses_url":"https://api.github.com/repos/DMProAccelerator/qbart/statuses/b5e61fe585298bdd1ce179c84e5790f39741eca6","head":{"label":"DMProAccelerator:server_client","ref":"server_client","sha":"b5e61fe585298bdd1ce179c84e5790f39741eca6","user":{"login":"DMProAccelerator","id":31241800,"avatar_url":"https://avatars0.githubusercontent.com/u/31241800?v=4","gravatar_id":"","url":"https://api.github.com/users/DMProAccelerator","html_url":"https://github.com/DMProAccelerator","followers_url":"https://api.github.com/users/DMProAccelerator/followers","following_url":"https://api.github.com/users/DMProAccelerator/following{/other_user}","gists_url":"https://api.github.com/users/DMProAccelerator/gists{/gist_id}","starred_url":"https://api.github.com/users/DMProAccelerator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DMProAccelerator/subscriptions","organizations_url":"https://api.github.com/users/DMProAccelerator/orgs","repos_url":"https://api.github.com/users/DMProAccelerator/repos","events_url":"https://api.github.com/users/DMProAccelerator/events{/privacy}","received_events_url":"https://api.github.com/users/DMProAccelerator/received_events","type":"Organization","site_admin":false},"repo":{"id":103038226,"name":"qbart","full_name":"DMProAccelerator/qbart","owner":{"login":"DMProAccelerator","id":31241800,"avatar_url":"https://avatars0.githubusercontent.com/u/31241800?v=4","gravatar_id":"","url":"https://api.github.com/users/DMProAccelerator","html_url":"https://github.com/DMProAccelerator","followers_url":"https://api.github.com/users/DMProAccelerator/followers","following_url":"https://api.github.com/users/DMProAccelerator/following{/other_user}","gists_url":"https://api.github.com/users/DMProAccelerator/gists{/gist_id}","starred_url":"https://api.github.com/users/DMProAccelerator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DMProAccelerator/subscriptions","organizations_url":"https://api.github.com/users/DMProAccelerator/orgs","repos_url":"https://api.github.com/users/DMProAccelerator/repos","events_url":"https://api.github.com/users/DMProAccelerator/events{/privacy}","received_events_url":"https://api.github.com/users/DMProAccelerator/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DMProAccelerator/qbart","description":"A general purpose QNN accelerator.","fork":false,"url":"https://api.github.com/repos/DMProAccelerator/qbart","forks_url":"https://api.github.com/repos/DMProAccelerator/qbart/forks","keys_url":"https://api.github.com/repos/DMProAccelerator/qbart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DMProAccelerator/qbart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DMProAccelerator/qbart/teams","hooks_url":"https://api.github.com/repos/DMProAccelerator/qbart/hooks","issue_events_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/events{/number}","events_url":"https://api.github.com/repos/DMProAccelerator/qbart/events","assignees_url":"https://api.github.com/repos/DMProAccelerator/qbart/assignees{/user}","branches_url":"https://api.github.com/repos/DMProAccelerator/qbart/branches{/branch}","tags_url":"https://api.github.com/repos/DMProAccelerator/qbart/tags","blobs_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/refs{/sha}","trees_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DMProAccelerator/qbart/statuses/{sha}","languages_url":"https://api.github.com/repos/DMProAccelerator/qbart/languages","stargazers_url":"https://api.github.com/repos/DMProAccelerator/qbart/stargazers","contributors_url":"https://api.github.com/repos/DMProAccelerator/qbart/contributors","subscribers_url":"https://api.github.com/repos/DMProAccelerator/qbart/subscribers","subscription_url":"https://api.github.com/repos/DMProAccelerator/qbart/subscription","commits_url":"https://api.github.com/repos/DMProAccelerator/qbart/commits{/sha}","git_commits_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/commits{/sha}","comments_url":"https://api.github.com/repos/DMProAccelerator/qbart/comments{/number}","issue_comment_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/comments{/number}","contents_url":"https://api.github.com/repos/DMProAccelerator/qbart/contents/{+path}","compare_url":"https://api.github.com/repos/DMProAccelerator/qbart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DMProAccelerator/qbart/merges","archive_url":"https://api.github.com/repos/DMProAccelerator/qbart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DMProAccelerator/qbart/downloads","issues_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues{/number}","pulls_url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls{/number}","milestones_url":"https://api.github.com/repos/DMProAccelerator/qbart/milestones{/number}","notifications_url":"https://api.github.com/repos/DMProAccelerator/qbart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DMProAccelerator/qbart/labels{/name}","releases_url":"https://api.github.com/repos/DMProAccelerator/qbart/releases{/id}","deployments_url":"https://api.github.com/repos/DMProAccelerator/qbart/deployments","created_at":"2017-09-10T15:01:19Z","updated_at":"2017-10-24T10:20:43Z","pushed_at":"2017-11-07T09:54:06Z","git_url":"git://github.com/DMProAccelerator/qbart.git","ssh_url":"git@github.com:DMProAccelerator/qbart.git","clone_url":"https://github.com/DMProAccelerator/qbart.git","svn_url":"https://github.com/DMProAccelerator/qbart","homepage":null,"size":93832,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"DMProAccelerator:master","ref":"master","sha":"504fdcec3f32b8f02ef2d851d318662f3f3ff18e","user":{"login":"DMProAccelerator","id":31241800,"avatar_url":"https://avatars0.githubusercontent.com/u/31241800?v=4","gravatar_id":"","url":"https://api.github.com/users/DMProAccelerator","html_url":"https://github.com/DMProAccelerator","followers_url":"https://api.github.com/users/DMProAccelerator/followers","following_url":"https://api.github.com/users/DMProAccelerator/following{/other_user}","gists_url":"https://api.github.com/users/DMProAccelerator/gists{/gist_id}","starred_url":"https://api.github.com/users/DMProAccelerator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DMProAccelerator/subscriptions","organizations_url":"https://api.github.com/users/DMProAccelerator/orgs","repos_url":"https://api.github.com/users/DMProAccelerator/repos","events_url":"https://api.github.com/users/DMProAccelerator/events{/privacy}","received_events_url":"https://api.github.com/users/DMProAccelerator/received_events","type":"Organization","site_admin":false},"repo":{"id":103038226,"name":"qbart","full_name":"DMProAccelerator/qbart","owner":{"login":"DMProAccelerator","id":31241800,"avatar_url":"https://avatars0.githubusercontent.com/u/31241800?v=4","gravatar_id":"","url":"https://api.github.com/users/DMProAccelerator","html_url":"https://github.com/DMProAccelerator","followers_url":"https://api.github.com/users/DMProAccelerator/followers","following_url":"https://api.github.com/users/DMProAccelerator/following{/other_user}","gists_url":"https://api.github.com/users/DMProAccelerator/gists{/gist_id}","starred_url":"https://api.github.com/users/DMProAccelerator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DMProAccelerator/subscriptions","organizations_url":"https://api.github.com/users/DMProAccelerator/orgs","repos_url":"https://api.github.com/users/DMProAccelerator/repos","events_url":"https://api.github.com/users/DMProAccelerator/events{/privacy}","received_events_url":"https://api.github.com/users/DMProAccelerator/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DMProAccelerator/qbart","description":"A general purpose QNN accelerator.","fork":false,"url":"https://api.github.com/repos/DMProAccelerator/qbart","forks_url":"https://api.github.com/repos/DMProAccelerator/qbart/forks","keys_url":"https://api.github.com/repos/DMProAccelerator/qbart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DMProAccelerator/qbart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DMProAccelerator/qbart/teams","hooks_url":"https://api.github.com/repos/DMProAccelerator/qbart/hooks","issue_events_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/events{/number}","events_url":"https://api.github.com/repos/DMProAccelerator/qbart/events","assignees_url":"https://api.github.com/repos/DMProAccelerator/qbart/assignees{/user}","branches_url":"https://api.github.com/repos/DMProAccelerator/qbart/branches{/branch}","tags_url":"https://api.github.com/repos/DMProAccelerator/qbart/tags","blobs_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/refs{/sha}","trees_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DMProAccelerator/qbart/statuses/{sha}","languages_url":"https://api.github.com/repos/DMProAccelerator/qbart/languages","stargazers_url":"https://api.github.com/repos/DMProAccelerator/qbart/stargazers","contributors_url":"https://api.github.com/repos/DMProAccelerator/qbart/contributors","subscribers_url":"https://api.github.com/repos/DMProAccelerator/qbart/subscribers","subscription_url":"https://api.github.com/repos/DMProAccelerator/qbart/subscription","commits_url":"https://api.github.com/repos/DMProAccelerator/qbart/commits{/sha}","git_commits_url":"https://api.github.com/repos/DMProAccelerator/qbart/git/commits{/sha}","comments_url":"https://api.github.com/repos/DMProAccelerator/qbart/comments{/number}","issue_comment_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues/comments{/number}","contents_url":"https://api.github.com/repos/DMProAccelerator/qbart/contents/{+path}","compare_url":"https://api.github.com/repos/DMProAccelerator/qbart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DMProAccelerator/qbart/merges","archive_url":"https://api.github.com/repos/DMProAccelerator/qbart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DMProAccelerator/qbart/downloads","issues_url":"https://api.github.com/repos/DMProAccelerator/qbart/issues{/number}","pulls_url":"https://api.github.com/repos/DMProAccelerator/qbart/pulls{/number}","milestones_url":"https://api.github.com/repos/DMProAccelerator/qbart/milestones{/number}","notifications_url":"https://api.github.com/repos/DMProAccelerator/qbart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DMProAccelerator/qbart/labels{/name}","releases_url":"https://api.github.com/repos/DMProAccelerator/qbart/releases{/id}","deployments_url":"https://api.github.com/repos/DMProAccelerator/qbart/deployments","created_at":"2017-09-10T15:01:19Z","updated_at":"2017-10-24T10:20:43Z","pushed_at":"2017-11-07T09:54:06Z","git_url":"git://github.com/DMProAccelerator/qbart.git","ssh_url":"git@github.com:DMProAccelerator/qbart.git","clone_url":"https://github.com/DMProAccelerator/qbart.git","svn_url":"https://github.com/DMProAccelerator/qbart","homepage":null,"size":93832,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12"},"html":{"href":"https://github.com/DMProAccelerator/qbart/pull/12"},"issue":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/issues/12"},"comments":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/DMProAccelerator/qbart/statuses/b5e61fe585298bdd1ce179c84e5790f39741eca6"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":9,"additions":2467,"deletions":234,"changed_files":16}}
{"actor":{"display_login":"N35N0M"}}