{"action":"created","issue":{"url":"https://api.github.com/repos/openMVG/openMVG/issues/444","labels_url":"https://api.github.com/repos/openMVG/openMVG/issues/444/labels{/name}","comments_url":"https://api.github.com/repos/openMVG/openMVG/issues/444/comments","events_url":"https://api.github.com/repos/openMVG/openMVG/issues/444/events","html_url":"https://github.com/openMVG/openMVG/pull/444","id":124244881,"number":444,"title":"Features subprocess","user":{"login":"cpichard","id":300243,"avatar_url":"https://avatars.githubusercontent.com/u/300243?v=3","gravatar_id":"","url":"https://api.github.com/users/cpichard","html_url":"https://github.com/cpichard","followers_url":"https://api.github.com/users/cpichard/followers","following_url":"https://api.github.com/users/cpichard/following{/other_user}","gists_url":"https://api.github.com/users/cpichard/gists{/gist_id}","starred_url":"https://api.github.com/users/cpichard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cpichard/subscriptions","organizations_url":"https://api.github.com/users/cpichard/orgs","repos_url":"https://api.github.com/users/cpichard/repos","events_url":"https://api.github.com/users/cpichard/events{/privacy}","received_events_url":"https://api.github.com/users/cpichard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-29T17:43:47Z","updated_at":"2016-01-19T14:54:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openMVG/openMVG/pulls/444","html_url":"https://github.com/openMVG/openMVG/pull/444","diff_url":"https://github.com/openMVG/openMVG/pull/444.diff","patch_url":"https://github.com/openMVG/openMVG/pull/444.patch"},"body":"Hi Pierre,\r\n\r\nThis pull request allows to run multiple features extraction sub-processes in main_ComputeFeatures using -j command line option. This method is faster on our machines, up to x6 depending on the number of jobs, but with the increase of speed comes the increase of memory consumptionm so there is a tradeof.\r\nPlease let me know if that might interest you, I'll be happy if you could test this PR on your system to check if this gives better feature extraction speed.   \r\n\r\nBest,\r\n\r\nCyril  "},"comment":{"url":"https://api.github.com/repos/openMVG/openMVG/issues/comments/172877006","html_url":"https://github.com/openMVG/openMVG/pull/444#issuecomment-172877006","issue_url":"https://api.github.com/repos/openMVG/openMVG/issues/444","id":172877006,"user":{"login":"cpichard","id":300243,"avatar_url":"https://avatars.githubusercontent.com/u/300243?v=3","gravatar_id":"","url":"https://api.github.com/users/cpichard","html_url":"https://github.com/cpichard","followers_url":"https://api.github.com/users/cpichard/followers","following_url":"https://api.github.com/users/cpichard/following{/other_user}","gists_url":"https://api.github.com/users/cpichard/gists{/gist_id}","starred_url":"https://api.github.com/users/cpichard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cpichard/subscriptions","organizations_url":"https://api.github.com/users/cpichard/orgs","repos_url":"https://api.github.com/users/cpichard/repos","events_url":"https://api.github.com/users/cpichard/events{/privacy}","received_events_url":"https://api.github.com/users/cpichard/received_events","type":"User","site_admin":false},"created_at":"2016-01-19T14:54:52Z","updated_at":"2016-01-19T14:54:52Z","body":"Hi,\r\nnothing forbids to use threads instead of processes, I chose the sub processes on linux for the following reasons:\r\n  - It was an easy and fast way to implement a safe dispatcher,\r\n    - we don't need to share memory between several features extraction, so each computation can be totally independent.\r\n    - by being independent, we can easily use a process to encapsulate/protect the memory: when one subprocess crash, it does not crash the whole application \r\n    - no possible memory corruption as each subprocess has its own virtual memory\r\n  - A subprocess having problems can be easily monitored/killed by any sysadmin or developer\r\n  - It potentially works with and without openmp\r\n  - Given the granularity of the feature extraction, it seemed to me that a subprocess was more appropriate than openmp threads.                              \r\n\r\nWe could try to dispatch with C++ 11 threads, it might be a solution to dispatch on windows, but I have no idea how it is going to interact with openmp yet.\r\n\r\nC\r\n"}}