{"action":"created","issue":{"url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/171","repository_url":"https://api.github.com/repos/ratt-ru/CubiCal","labels_url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/171/labels{/name}","comments_url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/171/comments","events_url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/171/events","html_url":"https://github.com/ratt-ru/CubiCal/pull/171","id":320962686,"number":171,"title":"OMP support. Bigger, better, faster.","user":{"login":"o-smirnov","id":6470079,"avatar_url":"https://avatars2.githubusercontent.com/u/6470079?v=4","gravatar_id":"","url":"https://api.github.com/users/o-smirnov","html_url":"https://github.com/o-smirnov","followers_url":"https://api.github.com/users/o-smirnov/followers","following_url":"https://api.github.com/users/o-smirnov/following{/other_user}","gists_url":"https://api.github.com/users/o-smirnov/gists{/gist_id}","starred_url":"https://api.github.com/users/o-smirnov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/o-smirnov/subscriptions","organizations_url":"https://api.github.com/users/o-smirnov/orgs","repos_url":"https://api.github.com/users/o-smirnov/repos","events_url":"https://api.github.com/users/o-smirnov/events{/privacy}","received_events_url":"https://api.github.com/users/o-smirnov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-05-07T21:22:31Z","updated_at":"2018-05-11T11:12:08Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/ratt-ru/CubiCal/pulls/171","html_url":"https://github.com/ratt-ru/CubiCal/pull/171","diff_url":"https://github.com/ratt-ru/CubiCal/pull/171.diff","patch_url":"https://github.com/ratt-ru/CubiCal/pull/171.patch"},"body":"This adds in the shiny new OMP-enabled kernels. Also fixes a whole load of recent issues (#168, #169, #170). Also adds things like fully diagonal modes (``--sol-diag diag True`` and ``--g-type complex-diag``, for example).\r\n\r\nI have also added acceptance tests. Now that people are actually using the thing in anger, we need a modicum of confidence for future updates. Nosetests will now do something useful: \r\n\r\n* kernels are verified against the frozen reference kernels\r\n\r\n* a small subset of the 3C147 data is used to test solvers, and verify corrected residuals against a set of reference columns. The reference data is checked in with git lfs (perhaps unwisely...)\r\n\r\n@bennahugo once this goes in, we can add the testing to jenkins. The tests only take a few minutes. (TODO: add a DD-solution test). "},"comment":{"url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/comments/388334586","html_url":"https://github.com/ratt-ru/CubiCal/pull/171#issuecomment-388334586","issue_url":"https://api.github.com/repos/ratt-ru/CubiCal/issues/171","id":388334586,"user":{"login":"o-smirnov","id":6470079,"avatar_url":"https://avatars2.githubusercontent.com/u/6470079?v=4","gravatar_id":"","url":"https://api.github.com/users/o-smirnov","html_url":"https://github.com/o-smirnov","followers_url":"https://api.github.com/users/o-smirnov/followers","following_url":"https://api.github.com/users/o-smirnov/following{/other_user}","gists_url":"https://api.github.com/users/o-smirnov/gists{/gist_id}","starred_url":"https://api.github.com/users/o-smirnov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/o-smirnov/subscriptions","organizations_url":"https://api.github.com/users/o-smirnov/orgs","repos_url":"https://api.github.com/users/o-smirnov/repos","events_url":"https://api.github.com/users/o-smirnov/events{/privacy}","received_events_url":"https://api.github.com/users/o-smirnov/received_events","type":"User","site_admin":false},"created_at":"2018-05-11T11:12:07Z","updated_at":"2018-05-11T11:12:07Z","author_association":"COLLABORATOR","body":"Yeah, I think this line is where I screwed up the ncpu/nworker logic: https://github.com/ratt-ru/CubiCal/blob/omp-support/cubical/main.py#L352\r\n\r\nIt's a little redundant I agree, but my motivation for keeping ``--dist-ncpu`` is because I want to have automatic worker/thread selection logic at some point in the future, so the user should only need to specify how many cores to occupy. ``nworker`` and ``nthread`` would then be \"power user\" options for people who want explicit control. So how about this proposal:\r\n\r\n* ncpu=nworker=nthread=0 (i.e. defaults): no paralellism at all\r\n\r\n* nworker>0 and nthread>0: ignore the ncpu setting (\"power user mode\")\r\n\r\n* ncpu>0, nworker=nthread=0: determine workers and threads automatically (in the future), but for now use nworker=ncpu and nthread=1.\r\n\r\n* ncpu>0 nworker>0 nthread=0: use nthread=ncpu/nworker. \r\n\r\n* ncpu>0 nworker=0 nthread>0: use nworker=ncpu/nthread\r\n\r\n\r\n\r\n\r\n\r\n"}}
{"actor":{"display_login":"o-smirnov"}}