- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
My Pardiso-solver (C++) gives a segfault:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff67d959d in mkl_pds_lp64_blkldlslvs1_omp_pardiso () from /.../intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so
I use "Intel-Compiler Version 9999" (really, 9999, output of __INTEL_COMPILER), Build-Date 20110811 and "Intel Math Kernel Library Version 10.3.6 Product Build 20110809 for Intel 64 architecture applications" on a Xeon 5160. I don't use MKL_ILP64 (besides, I get the same problem with or without).
When I use composerxe-2011.4.191, everything works fine (always). Sometimes it also works von composer_xe_2011_sp1.6.233 (version numbers as above), but in most cases, it does not. I always took the same matrices and same data.
Any ideas? I tried to extract a code example, but it's very difficult, since I haven't found a way to reliable reproduce the segfault.
Thanks,
Fabian
My Pardiso-solver (C++) gives a segfault:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff67d959d in mkl_pds_lp64_blkldlslvs1_omp_pardiso () from /.../intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so
I use "Intel-Compiler Version 9999" (really, 9999, output of __INTEL_COMPILER), Build-Date 20110811 and "Intel Math Kernel Library Version 10.3.6 Product Build 20110809 for Intel 64 architecture applications" on a Xeon 5160. I don't use MKL_ILP64 (besides, I get the same problem with or without).
When I use composerxe-2011.4.191, everything works fine (always). Sometimes it also works von composer_xe_2011_sp1.6.233 (version numbers as above), but in most cases, it does not. I always took the same matrices and same data.
Any ideas? I tried to extract a code example, but it's very difficult, since I haven't found a way to reliable reproduce the segfault.
Thanks,
Fabian
Link Copied
10 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You may give us the input matrix and the Pardiso's parameters. We will check the problem on our side.
did you check if your input matrixes are ill-conditioned?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi! Could you set msglvl=1 before reordering stage and provide us with output info? This info will be useful for us in addition to input matrix and PARDISO parameters.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok. Here we go. Sorry it took so long, but I wanted to avoid bugs from (my) framework. I'm using Ubuntu 10.04.
SolverParidso.A.0.crs.crash contains the one-based CRS-matrix (symmetric, indefinite). You can import it in MATLAB by
A = spconvert(load('SolverParidso.A.0.crs.crash'));
SolverParidso.A.0.b.crash contains the RHS. The strange thing is (and that's why I stick to "occasional" here): the segfault is reproducible after a make clean. When I run that same thing a second time, the segfault does not occur, and I get a nice result with a small residual. However, the matrices are identical up to 10E-19.
Condition is probably not good. But it is a standard Saddlepoint-Problem which can be successful solved by hundreds of solvers and dozents of former MKL-versions...
Thanks a lot for trying!
Initialization of PARDISO is done like this:
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
Percentage of computed non-zeros for LL^T factorization
0 % 1 % 2 % 3 % 4 % 5 % 6 % 7 % 8 % 9 % 10 % 11 % 12 % 13 % 14 % 15 % 16 % 17 % 18 % 19 % 20 % 21 % 22 % 23 % 24 % 25 % 26 % 27 % 28 % 29 % 30 % 31 % 32 % 33 % 34 % 35 % 36 % 37 % 38 % 39 % 40 % 41 % 42 % 43 % 44 % 45 % 46 % 47 % 48 % 49 % 50 % 51 % 52 % 53 % 54 % 55 % 56 % 57 % 58 % 59 % 60 % 61 % 62 % 63 % 64 % 65 % 66 % 67 % 68 % 69 % 70 % 71 % 72 % 73 % 74 % 75 % 76 % 77 % 78 % 79 % 80 % 81 % 82 % 83 % 84 % 85 % 86 % 87 % 89 % 91 % 92 % 94 % 95 % 97 % 99 % 100 %
Segmentation fault
SolverParidso.A.0.crs.crash contains the one-based CRS-matrix (symmetric, indefinite). You can import it in MATLAB by
A = spconvert(load('SolverParidso.A.0.crs.crash'));
SolverParidso.A.0.b.crash contains the RHS. The strange thing is (and that's why I stick to "occasional" here): the segfault is reproducible after a make clean. When I run that same thing a second time, the segfault does not occur, and I get a nice result with a small residual. However, the matrices are identical up to 10E-19.
Condition is probably not good. But it is a standard Saddlepoint-Problem which can be successful solved by hundreds of solvers and dozents of former MKL-versions...
Thanks a lot for trying!
Initialization of PARDISO is done like this:
[cpp]for (int i = 0; i < 64; i++) pt = NULL; for (int i = 0; i < 64; i++) iparm = 0; pardisoinit (pt, &mtype, iparm); nrhs = 1; // Number of right hand sides. mnum = 1; // Which factorization to use. maxfct = 1; msglvl = 1; // Print statistical information in file iparm[0] = 1; // 1: No solver default 0: default[/cpp]
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
Percentage of computed non-zeros for LL^T factorization
0 % 1 % 2 % 3 % 4 % 5 % 6 % 7 % 8 % 9 % 10 % 11 % 12 % 13 % 14 % 15 % 16 % 17 % 18 % 19 % 20 % 21 % 22 % 23 % 24 % 25 % 26 % 27 % 28 % 29 % 30 % 31 % 32 % 33 % 34 % 35 % 36 % 37 % 38 % 39 % 40 % 41 % 42 % 43 % 44 % 45 % 46 % 47 % 48 % 49 % 50 % 51 % 52 % 53 % 54 % 55 % 56 % 57 % 58 % 59 % 60 % 61 % 62 % 63 % 64 % 65 % 66 % 67 % 68 % 69 % 70 % 71 % 72 % 73 % 74 % 75 % 76 % 77 % 78 % 79 % 80 % 81 % 82 % 83 % 84 % 85 % 86 % 87 % 89 % 91 % 92 % 94 % 95 % 97 % 99 % 100 %
Segmentation fault
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Fabian,
Thank you very much forthe attached reproducer! We'll investigate the issue and come back to you as the first resultsare available.
Regards,
Konstantin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Fabian, Am I understand correct that the number of non zeroes == 1238997 and number of equations ==87116?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Exactly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Fabian,
You said that your matrix is symmetrical indefinite, but the files you provided contains the full matrix (not just the upper side). Did you exclude the upper side when run it with PARDISO?
Anyway, I tried both symmetrical and unsymmetrical cases (mtype=-2 and mtype=11) and did not observe segfaults. BTW, do you know the condition number of the matrix - it seemsrather large.
Regards,
Konstantin
You said that your matrix is symmetrical indefinite, but the files you provided contains the full matrix (not just the upper side). Did you exclude the upper side when run it with PARDISO?
Anyway, I tried both symmetrical and unsymmetrical cases (mtype=-2 and mtype=11) and did not observe segfaults. BTW, do you know the condition number of the matrix - it seemsrather large.
Regards,
Konstantin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The files are just the output, which is always "upper and lower side". I can provide the plain upper side, if wanted. But it's a good idea to check if I also get segfaults with the "full" matrix. Thx.
As said, the segfault occurs only sometimes (as described in an earlier post), with the SAME data.
I know about problems with condition (I know math), but never actually experienced them with PARDISO.
As said, the segfault occurs only sometimes (as described in an earlier post), with the SAME data.
I know about problems with condition (I know math), but never actually experienced them with PARDISO.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Fabian,
We checked the matrix and it turned out that it's singular as far as it has more than 1000 absolutely empty rows.
Could you please check it on your side?
Regards,
Konstantin
We checked the matrix and it turned out that it's singular as far as it has more than 1000 absolutely empty rows.
Could you please check it on your side?
Regards,
Konstantin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
since Update 7 of the Composer XE, the error does not occure anymore. At least not in this particular test case. I still do not see a problem in the shape or condition of the matrix, since the error occured only sometimes with the same exact data.
Thanks anyway; it's working now.
All the best,
Fabian
since Update 7 of the Composer XE, the error does not occure anymore. At least not in this particular test case. I still do not see a problem in the shape or condition of the matrix, since the error occured only sometimes with the same exact data.
Thanks anyway; it's working now.
All the best,
Fabian
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page