{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/22631","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/22631/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/22631/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/22631/events","html_url":"https://github.com/JuliaLang/julia/pull/22631","id":239772670,"node_id":"MDExOlB1bGxSZXF1ZXN0MTI4MzY1MjMx","number":22631,"title":"WIP: parallel task runtime","user":{"login":"kpamnany","id":3784427,"node_id":"MDQ6VXNlcjM3ODQ0Mjc=","avatar_url":"https://avatars1.githubusercontent.com/u/3784427?v=4","gravatar_id":"","url":"https://api.github.com/users/kpamnany","html_url":"https://github.com/kpamnany","followers_url":"https://api.github.com/users/kpamnany/followers","following_url":"https://api.github.com/users/kpamnany/following{/other_user}","gists_url":"https://api.github.com/users/kpamnany/gists{/gist_id}","starred_url":"https://api.github.com/users/kpamnany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kpamnany/subscriptions","organizations_url":"https://api.github.com/users/kpamnany/orgs","repos_url":"https://api.github.com/users/kpamnany/repos","events_url":"https://api.github.com/users/kpamnany/events{/privacy}","received_events_url":"https://api.github.com/users/kpamnany/received_events","type":"User","site_admin":false},"labels":[{"id":184008807,"node_id":"MDU6TGFiZWwxODQwMDg4MDc=","url":"https://api.github.com/repos/JuliaLang/julia/labels/multithreading","name":"multithreading","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":84,"created_at":"2017-06-30T13:02:38Z","updated_at":"2018-12-06T17:17:50Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/JuliaLang/julia/pulls/22631","html_url":"https://github.com/JuliaLang/julia/pull/22631","diff_url":"https://github.com/JuliaLang/julia/pull/22631.diff","patch_url":"https://github.com/JuliaLang/julia/pull/22631.patch"},"body":"This replaces the existing fork-join threading infrastructure with a parallel task runtime (partr) that implements [parallel depth first scheduling](http://www.cs.cmu.edu/%7Echensm/papers/ConstructiveCacheSharing_spaa07.pdf). This model fully supports nested parallelism.\r\n\r\nThe default remains the original threading code. Enable partr by setting `JULIA_PARTR := 1` in your `Make.user`.\r\n\r\nThe core idea is simple -- Julia tasks can now be run by any thread. The task scheduler attempts to order task execution depth-first for provably better cache efficiency, and for true nested parallelism.\r\n\r\nHowever, as tasks are an existing thing in Julia and used in a number of places, we're first introducing the infrastructure that will enable parallel tasks with this PR, keeping (hopefully) the serial semantics of the existing task interface. This PR does not introduce any new interface calls for parallel tasks -- those will be in future PRs.\r\n\r\nAll test-cases pass with `JULIA_PARTR` off (as they should). With `JULIA_PARTR` on, all test cases are currently passing on Linux and OS-X.\r\n\r\nCc: @JeffBezanson, @vtjnash, @yuyichao, @ViralBShah, @vchuravy, @anton-malakhov."},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/444953532","html_url":"https://github.com/JuliaLang/julia/pull/22631#issuecomment-444953532","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/22631","id":444953532,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NDk1MzUzMg==","user":{"login":"JeffBezanson","id":744556,"node_id":"MDQ6VXNlcjc0NDU1Ng==","avatar_url":"https://avatars0.githubusercontent.com/u/744556?v=4","gravatar_id":"","url":"https://api.github.com/users/JeffBezanson","html_url":"https://github.com/JeffBezanson","followers_url":"https://api.github.com/users/JeffBezanson/followers","following_url":"https://api.github.com/users/JeffBezanson/following{/other_user}","gists_url":"https://api.github.com/users/JeffBezanson/gists{/gist_id}","starred_url":"https://api.github.com/users/JeffBezanson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JeffBezanson/subscriptions","organizations_url":"https://api.github.com/users/JeffBezanson/orgs","repos_url":"https://api.github.com/users/JeffBezanson/repos","events_url":"https://api.github.com/users/JeffBezanson/events{/privacy}","received_events_url":"https://api.github.com/users/JeffBezanson/received_events","type":"User","site_admin":false},"created_at":"2018-12-06T17:17:50Z","updated_at":"2018-12-06T17:17:50Z","author_association":"MEMBER","body":"win32: generate_precompile hanging\r\nwin64: a node 1 test is hanging, either precompile, SharedArrays, or Distributed"}}
{"actor":{"display_login":"JeffBezanson"}}