- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We use the Intel MKL Pardiso solver to solve a small (couple hundred row) sparse (4%) system. Running our test case two consecutive times using the Pardiso solver produces very different results. In fact, there seems to be inherent non-determinism in the Pardiso solver.
Now for the standard caveats, our code is memory clean, both purify and valgrind are content. Replacing Pardiso with a standard biconjugate gradient solver and running the same test case on the same hardware produces identically repeatable results. We see this hysteresis on Windows, Mac and Linux in both debug and -O2. The code is serial, we don't enable OpenMP nor do we use the parallel Pardiso solver.
Has anyone else noticed this behavior or is this a known potential problem, any ideas? We haven't yet tried to produce a small test case demonstrating this problem, thought we'd ask first.
-- Noel Belcourt
S896822:~ kbelco$ icpc -V
Intel C++ Intel 64 Compiler Professional for applications running on Intel 64, Version 11.1 Build 20100806 Package ID: m_cproc_p_11.1.089
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Might beyour matrices areill-conditioned or close to them. Did you estimate the conditin numbers of your input matrixes?
--Gennay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Noel,
An answer to your question might be that even in case of iparam(2)=1 (#cores) you must use single threaded BLAS.
As an alternative you could also use the new version PARDISO 4.0.0 (www.pardiso-project.org). This version will always compute a bit-by-bit identical solution even on multicores e.g. using eight cores for the parallel factorization and the parallel solution.
Regards,
Olaf Schenk
An answer to your question might be that even in case of iparam(2)=1 (#cores) you must use single threaded BLAS.
As an alternative you could also use the new version PARDISO 4.0.0 (www.pardiso-project.org). This version will always compute a bit-by-bit identical solution even on multicores e.g. using eight cores for the parallel factorization and the parallel solution.
Regards,
Olaf Schenk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I love answering my own question.
Our matrix is not ill-conditioned. We did find the source of the non-determinism. We were passing a phase=0 in our last call to pardiso to release internal memory. Phase=0 releases memory for L and U. Passing phase=-1 fixed our problem. Phase=-1 releases all internal memory for all matrices. Changing phase from zero to negative one eliminated the nondeterminism in the solver.
I'd like to request that the developers look at this issue as we nearly gave up on Pardiso entirely due to the inability to reproduce the exact same answer given the exact same inputs. Perhaps some additional (re) initialization can be added with phase=0 to ensure both phases (0 and -1) produce the exact same answer.
Thanks for your responses.
-- Noel Belcourt
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As an alternative you could also use the new version PARDISO 4.0.0 (www.pardiso-project.org). This version will always compute a bit-by-bit identical solution even on multicores e.g. using eight cores for the parallel factorization and the parallel solution.
In fact, we will try this out as eliminating sources of non-determinism in parallel are extremely important to us, e.g. MPI and OpenMP reductions in rank order and so forth.
In fact, we will try this out as eliminating sources of non-determinism in parallel are extremely important to us, e.g. MPI and OpenMP reductions in rank order and so forth.
Look forward to trying your solver.
-- Noel Belcourt

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