{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/19777","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/19777/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/19777/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/19777/events","html_url":"https://github.com/JuliaLang/julia/issues/19777","id":198161431,"number":19777,"title":"multi-threaded (@threads) dotcall/broadcast?","user":{"login":"stevengj","id":2913679,"avatar_url":"https://avatars.githubusercontent.com/u/2913679?v=3","gravatar_id":"","url":"https://api.github.com/users/stevengj","html_url":"https://github.com/stevengj","followers_url":"https://api.github.com/users/stevengj/followers","following_url":"https://api.github.com/users/stevengj/following{/other_user}","gists_url":"https://api.github.com/users/stevengj/gists{/gist_id}","starred_url":"https://api.github.com/users/stevengj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevengj/subscriptions","organizations_url":"https://api.github.com/users/stevengj/orgs","repos_url":"https://api.github.com/users/stevengj/repos","events_url":"https://api.github.com/users/stevengj/events{/privacy}","received_events_url":"https://api.github.com/users/stevengj/received_events","type":"User","site_admin":false},"labels":[{"id":184008807,"url":"https://api.github.com/repos/JuliaLang/julia/labels/multithreading","name":"multithreading","color":"fbca04","default":false},{"id":97639,"url":"https://api.github.com/repos/JuliaLang/julia/labels/speculative","name":"speculative","color":"999999","default":false},{"id":418435319,"url":"https://api.github.com/repos/JuliaLang/julia/labels/vectorization","name":"vectorization","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/JuliaLang/julia/milestones/4","html_url":"https://github.com/JuliaLang/julia/milestone/4","labels_url":"https://api.github.com/repos/JuliaLang/julia/milestones/4/labels","id":96266,"number":4,"title":"1.0","description":"","creator":{"login":"StefanKarpinski","id":153596,"avatar_url":"https://avatars.githubusercontent.com/u/153596?v=3","gravatar_id":"","url":"https://api.github.com/users/StefanKarpinski","html_url":"https://github.com/StefanKarpinski","followers_url":"https://api.github.com/users/StefanKarpinski/followers","following_url":"https://api.github.com/users/StefanKarpinski/following{/other_user}","gists_url":"https://api.github.com/users/StefanKarpinski/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanKarpinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanKarpinski/subscriptions","organizations_url":"https://api.github.com/users/StefanKarpinski/orgs","repos_url":"https://api.github.com/users/StefanKarpinski/repos","events_url":"https://api.github.com/users/StefanKarpinski/events{/privacy}","received_events_url":"https://api.github.com/users/StefanKarpinski/received_events","type":"User","site_admin":false},"open_issues":157,"closed_issues":81,"state":"open","created_at":"2012-03-15T04:57:43Z","updated_at":"2017-02-10T14:44:53Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2016-12-30T15:41:17Z","updated_at":"2017-02-11T16:41:41Z","closed_at":null,"body":"It would be nice to be able to put `@threads` in front of a dot call, e.g. `@threads X .= f.(Y)`, and have it call a multi-threaded version of `broadcast` (which would assume `f` is thread-safe)."},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/279158277","html_url":"https://github.com/JuliaLang/julia/issues/19777#issuecomment-279158277","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/19777","id":279158277,"user":{"login":"ChrisRackauckas","id":1814174,"avatar_url":"https://avatars.githubusercontent.com/u/1814174?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisRackauckas","html_url":"https://github.com/ChrisRackauckas","followers_url":"https://api.github.com/users/ChrisRackauckas/followers","following_url":"https://api.github.com/users/ChrisRackauckas/following{/other_user}","gists_url":"https://api.github.com/users/ChrisRackauckas/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisRackauckas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisRackauckas/subscriptions","organizations_url":"https://api.github.com/users/ChrisRackauckas/orgs","repos_url":"https://api.github.com/users/ChrisRackauckas/repos","events_url":"https://api.github.com/users/ChrisRackauckas/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisRackauckas/received_events","type":"User","site_admin":false},"created_at":"2017-02-11T16:41:41Z","updated_at":"2017-02-11T16:41:41Z","body":">@ChrisRackauckas, parallelizing arbitrary loops is precisely what the @threads macro does, no? I'm simply proposing using it for broadcast (and dot calls) as well.\r\n\r\nI was asking if there's a way to apply whatever implicit parallelism heuristic to a loop. Essentially a macro for \"multithread this if the size of the array is greater than x\" or whatever is involved in the heuristic, and have the options be tweakable. The broadcast would just be essentially applying that with the defaults. \r\n\r\nOtherwise I could see applications wanting to have a bunch of conditionals to check if multithreading should be ran? That last part is dependent on the overhead of multithreading, which I found to be measurable in many small problems, but may be confounded with https://github.com/JuliaLang/julia/issues/15276 issues."}}
{"actor":{"display_login":"ChrisRackauckas"}}