- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi,
We are currently upgrading from MKL 2017 to MKL 2019. After the upgrade some of our unit tests fail.
What they do is to solve the system Ax = b, where A and X are sparse with known sparsity patterns. To solve this system we use Pardiso and choose to only calculate certain components of X as we know the others are assumed to be zero. We use the iparm[30] = 3 setting to do this and specify the components of x to solve for with the perm array. However after the upgrade this appears not to work anymore - the output is simply equal to the right hand side. If we change to iparm[30] = 0 it works, but then you don't get the speed benefit of solving for certain components only. Can you please help me see if we are somehow invoking Pardiso wrong or whether there is in fact a bug somewhere, in our code or in Pardiso?
I searched the forum and I could not find other reports, though this post does sound similar in that they use some of the same features and also have problems going from 2017 to later versions.
I have made a minimally reproducible example in C++. I source the mklvars.sh from the 2017.2.174/2019.5.281 distribution and compile with GCC 9.2.0 on Ubuntu 16.04. I have provided both source code, Makefile and the output I get with iparm[30] = 0 or 3 with both MKL 2017 (working) and MKL 2019 (not working - weird/no output).
Hope to hear from you, thanks.
Sincerely,
Filip Rasmussen
- 태그:
- pardiso
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Filip,
please try to disable the two-level factorization algorithm by setting
iparm[23] == 0 and check if the problem will exist on your end. I see no problem on my side with the current version of oneMKL 2021.3:
Enter iparm[30] value MKL v. 2021.0.3
Processor optimization: Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
a = [3, 7, 6, 3, 8, 5, 9, 4, 7, 8, 2, 9, 3, 9, 9, 9, 9, ]
ia = [0, 3, 6, 10, 14, 17, ]
ja = [0, 1, 3, 0, 1, 4, 0, 2, 3, 4, 0, 1, 3, 4, 0, 3, 4, ]
Calling Pardiso with iparm[30]=1
...Pardiso, phase ==12 is passed...
...Pardiso, phase == 33 is passed...
...Pardiso, phase == -1 is passed...
Pardiso calculation done
x =
0.471053,
0.0552632,
0.557237,
-0.3,
-0.171053,
...Test passed...
it might be the work-around the problem which we are planning to fix into one of the future versions.
-Gennady
링크가 복사됨
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Filip, thanks for the report. We will check this case and get back soon.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Any news on this question? I can add that the issue is also reproducible in oneAPI 2021.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
yes, we were able to reproduce the problem with the latest versions of mkl as well. The issue is escalated and we will keep this thread updated.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Thanks for looking into this. We have disabled the functionality that depends on this for now as it wasn't super critical anyway. In worst case we can properly replace the implementation with one of the other million sparse linear solvers out there, so it's not super urgent anymore - for us at least.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Filip,
please try to disable the two-level factorization algorithm by setting
iparm[23] == 0 and check if the problem will exist on your end. I see no problem on my side with the current version of oneMKL 2021.3:
Enter iparm[30] value MKL v. 2021.0.3
Processor optimization: Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
a = [3, 7, 6, 3, 8, 5, 9, 4, 7, 8, 2, 9, 3, 9, 9, 9, 9, ]
ia = [0, 3, 6, 10, 14, 17, ]
ja = [0, 1, 3, 0, 1, 4, 0, 2, 3, 4, 0, 1, 3, 4, 0, 3, 4, ]
Calling Pardiso with iparm[30]=1
...Pardiso, phase ==12 is passed...
...Pardiso, phase == 33 is passed...
...Pardiso, phase == -1 is passed...
Pardiso calculation done
x =
0.471053,
0.0552632,
0.557237,
-0.3,
-0.171053,
...Test passed...
it might be the work-around the problem which we are planning to fix into one of the future versions.
-Gennady
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Gennady,
Yeah, we will use this as a workaround for now. Thanks for spending time to investigate this.
- Filip
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Filip,
The ticket is closing. We will update this thread when the fix of the issue would available in the official version of MKL.
Gennady