{"action":"created","issue":{"url":"https://api.github.com/repos/tensorflow/tensorflow/issues/8728","repository_url":"https://api.github.com/repos/tensorflow/tensorflow","labels_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/8728/labels{/name}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/8728/comments","events_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/8728/events","html_url":"https://github.com/tensorflow/tensorflow/pull/8728","id":217073429,"number":8728,"title":"PollZmqOp for network communication","user":{"login":"tillahoffmann","id":966348,"avatar_url":"https://avatars1.githubusercontent.com/u/966348?v=3","gravatar_id":"","url":"https://api.github.com/users/tillahoffmann","html_url":"https://github.com/tillahoffmann","followers_url":"https://api.github.com/users/tillahoffmann/followers","following_url":"https://api.github.com/users/tillahoffmann/following{/other_user}","gists_url":"https://api.github.com/users/tillahoffmann/gists{/gist_id}","starred_url":"https://api.github.com/users/tillahoffmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tillahoffmann/subscriptions","organizations_url":"https://api.github.com/users/tillahoffmann/orgs","repos_url":"https://api.github.com/users/tillahoffmann/repos","events_url":"https://api.github.com/users/tillahoffmann/events{/privacy}","received_events_url":"https://api.github.com/users/tillahoffmann/received_events","type":"User","site_admin":false},"labels":[{"id":300136587,"url":"https://api.github.com/repos/tensorflow/tensorflow/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false},{"id":386191887,"url":"https://api.github.com/repos/tensorflow/tensorflow/labels/stat:awaiting%20response","name":"stat:awaiting response","color":"5319e7","default":false}],"state":"closed","locked":false,"assignee":{"login":"mrry","id":192142,"avatar_url":"https://avatars2.githubusercontent.com/u/192142?v=3","gravatar_id":"","url":"https://api.github.com/users/mrry","html_url":"https://github.com/mrry","followers_url":"https://api.github.com/users/mrry/followers","following_url":"https://api.github.com/users/mrry/following{/other_user}","gists_url":"https://api.github.com/users/mrry/gists{/gist_id}","starred_url":"https://api.github.com/users/mrry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrry/subscriptions","organizations_url":"https://api.github.com/users/mrry/orgs","repos_url":"https://api.github.com/users/mrry/repos","events_url":"https://api.github.com/users/mrry/events{/privacy}","received_events_url":"https://api.github.com/users/mrry/received_events","type":"User","site_admin":false},"assignees":[{"login":"mrry","id":192142,"avatar_url":"https://avatars2.githubusercontent.com/u/192142?v=3","gravatar_id":"","url":"https://api.github.com/users/mrry","html_url":"https://github.com/mrry","followers_url":"https://api.github.com/users/mrry/followers","following_url":"https://api.github.com/users/mrry/following{/other_user}","gists_url":"https://api.github.com/users/mrry/gists{/gist_id}","starred_url":"https://api.github.com/users/mrry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrry/subscriptions","organizations_url":"https://api.github.com/users/mrry/orgs","repos_url":"https://api.github.com/users/mrry/repos","events_url":"https://api.github.com/users/mrry/events{/privacy}","received_events_url":"https://api.github.com/users/mrry/received_events","type":"User","site_admin":false},{"login":"martinwicke","id":577277,"avatar_url":"https://avatars1.githubusercontent.com/u/577277?v=3","gravatar_id":"","url":"https://api.github.com/users/martinwicke","html_url":"https://github.com/martinwicke","followers_url":"https://api.github.com/users/martinwicke/followers","following_url":"https://api.github.com/users/martinwicke/following{/other_user}","gists_url":"https://api.github.com/users/martinwicke/gists{/gist_id}","starred_url":"https://api.github.com/users/martinwicke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinwicke/subscriptions","organizations_url":"https://api.github.com/users/martinwicke/orgs","repos_url":"https://api.github.com/users/martinwicke/repos","events_url":"https://api.github.com/users/martinwicke/events{/privacy}","received_events_url":"https://api.github.com/users/martinwicke/received_events","type":"User","site_admin":false}],"milestone":null,"comments":14,"created_at":"2017-03-26T18:07:43Z","updated_at":"2017-05-02T00:08:17Z","closed_at":"2017-05-02T00:08:17Z","pull_request":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/8728","html_url":"https://github.com/tensorflow/tensorflow/pull/8728","diff_url":"https://github.com/tensorflow/tensorflow/pull/8728.diff","patch_url":"https://github.com/tensorflow/tensorflow/pull/8728.patch"},"body":"This PR adds `PollZmqOp` for retrieving data over the network (fixes #4836, ref #7951) . A few points for discussion:\r\n\r\n* ZeroMQ is LGPL but has some exceptions which seem to allow static linking. Is that a problem?\r\n* The `Compute` method of the Op is ensured to be thread safe by blocking. This could be improved by having a dictionary of sockets keyed by thread id or a connection pool. However, I have never needed concurrent calls to `Compute` in my work.\r\n* I'm not very familiar with `bazel` so there may be some problems in the dependencies.\r\n\r\nThis op allows for distributed training data generation to minimize the CPU workload on the training machine. For example, one or more machines can generate training data which can be retrieved by a training machine using the op. An example can be found in the test."},"comment":{"url":"https://api.github.com/repos/tensorflow/tensorflow/issues/comments/298464938","html_url":"https://github.com/tensorflow/tensorflow/pull/8728#issuecomment-298464938","issue_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/8728","id":298464938,"user":{"login":"vrv","id":463737,"avatar_url":"https://avatars3.githubusercontent.com/u/463737?v=3","gravatar_id":"","url":"https://api.github.com/users/vrv","html_url":"https://github.com/vrv","followers_url":"https://api.github.com/users/vrv/followers","following_url":"https://api.github.com/users/vrv/following{/other_user}","gists_url":"https://api.github.com/users/vrv/gists{/gist_id}","starred_url":"https://api.github.com/users/vrv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vrv/subscriptions","organizations_url":"https://api.github.com/users/vrv/orgs","repos_url":"https://api.github.com/users/vrv/repos","events_url":"https://api.github.com/users/vrv/events{/privacy}","received_events_url":"https://api.github.com/users/vrv/received_events","type":"User","site_admin":false},"created_at":"2017-05-02T00:08:17Z","updated_at":"2017-05-02T00:08:17Z","body":"@tillahoffmann I think given the extra zmq dependency, and the lack of clarity for exactly how the core system would use this, I'd prefer to keep the core code slim.\r\n\r\nBecause this is a nicely self-contained op, this is actually a great candidate to release / deploy as a custom, external operation via load_library.  If this op becomes popular, we can then assess the tradeoff of adding it to the core vs. the additional dependency / portability issues it creates.  It'll hopefully also be more clear why this op is even useful (and for example, why we wouldn't want an alternative to zeromq instead).  Without more context / use patterns, it's hard to know :).\r\n\r\nI'm going to close this for now, but feel free to ping me or open an issue to discuss this further."}}
{"actor":{"display_login":"vrv"}}