{"action":"created","issue":{"url":"https://api.github.com/repos/su2code/SU2/issues/543","repository_url":"https://api.github.com/repos/su2code/SU2","labels_url":"https://api.github.com/repos/su2code/SU2/issues/543/labels{/name}","comments_url":"https://api.github.com/repos/su2code/SU2/issues/543/comments","events_url":"https://api.github.com/repos/su2code/SU2/issues/543/events","html_url":"https://github.com/su2code/SU2/pull/543","id":332067608,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0NjQxOTcz","number":543,"title":"Integrate MKL option for performance improvement on Intel Architectures.","user":{"login":"costat","id":6166190,"node_id":"MDQ6VXNlcjYxNjYxOTA=","avatar_url":"https://avatars3.githubusercontent.com/u/6166190?v=4","gravatar_id":"","url":"https://api.github.com/users/costat","html_url":"https://github.com/costat","followers_url":"https://api.github.com/users/costat/followers","following_url":"https://api.github.com/users/costat/following{/other_user}","gists_url":"https://api.github.com/users/costat/gists{/gist_id}","starred_url":"https://api.github.com/users/costat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/costat/subscriptions","organizations_url":"https://api.github.com/users/costat/orgs","repos_url":"https://api.github.com/users/costat/repos","events_url":"https://api.github.com/users/costat/events{/privacy}","received_events_url":"https://api.github.com/users/costat/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2018-06-13T16:16:54Z","updated_at":"2018-08-29T16:08:11Z","closed_at":"2018-08-29T16:06:13Z","author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/su2code/SU2/pulls/543","html_url":"https://github.com/su2code/SU2/pull/543","diff_url":"https://github.com/su2code/SU2/pull/543.diff","patch_url":"https://github.com/su2code/SU2/pull/543.patch"},"body":"This PR integrates new MKL features into SU2 to accelerate performance on Intel architectures. Changes 1) and 2) below are protected by a \"HAVE_MKL\" preprocessor flag. To observe performance improvement from change 2), the \"DIRECT_CALL_MKL_SEQ\" compiler flag must be enabled. These changes require MKL 2019 or newer, as the JIT GEMM feature is a brand new feature.\r\n\r\n1) Integrate MKL JIT GEMM to accelerate MatrixMatrix and MatrixVector Products. \r\n2) Use LAPACK DGETRF + DGETRS in place of Gaussian Elimination ILU when MKL is present. \r\n3) Use memcpy in Gaussian Elimination ILU. Source/dest overlap is not a concern and this is faster.\r\n\r\nThe changes improve Broadwell performance by up to 18% and Skylake performance by up to 28%. These improvements were measured on the Inviscid_ONERA_M6 tutorial.\r\n\r\n## PR Checklist\r\n*Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.*\r\n\r\n- [X] I am submitting my contribution to the develop branch.\r\n- [X] My contribution generates no new compiler warnings (try with the '-Wall -Wextra -Wno-unused-parameter -Wno-empty-body' compiler flags).\r\n- [X] My contribution is commented and consistent with SU2 style.\r\n- [ ] I have added a test case that demonstrates my contribution, if necessary.\r\n"},"comment":{"url":"https://api.github.com/repos/su2code/SU2/issues/comments/417009510","html_url":"https://github.com/su2code/SU2/pull/543#issuecomment-417009510","issue_url":"https://api.github.com/repos/su2code/SU2/issues/543","id":417009510,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNzAwOTUxMA==","user":{"login":"vdweide","id":15017924,"node_id":"MDQ6VXNlcjE1MDE3OTI0","avatar_url":"https://avatars3.githubusercontent.com/u/15017924?v=4","gravatar_id":"","url":"https://api.github.com/users/vdweide","html_url":"https://github.com/vdweide","followers_url":"https://api.github.com/users/vdweide/followers","following_url":"https://api.github.com/users/vdweide/following{/other_user}","gists_url":"https://api.github.com/users/vdweide/gists{/gist_id}","starred_url":"https://api.github.com/users/vdweide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vdweide/subscriptions","organizations_url":"https://api.github.com/users/vdweide/orgs","repos_url":"https://api.github.com/users/vdweide/repos","events_url":"https://api.github.com/users/vdweide/events{/privacy}","received_events_url":"https://api.github.com/users/vdweide/received_events","type":"User","site_admin":false},"created_at":"2018-08-29T16:08:11Z","updated_at":"2018-08-29T16:08:11Z","author_association":"CONTRIBUTOR","body":"@costat, the remaining question is whether we can do something with the MKL for the discrete adjoint. Are you still interested in looking into this?"}}
{"actor":{"display_login":"vdweide"}}