For numerical reproducibility we need to set iparm[33] > 0 before the symbolic factorization, and this iparm cannot be changed after.
Is there a way to request reproducibility for a particular phase of the solving. E.g. how to request that only the numerical factorization is reproducible? That is I want to do e.g.
iparm[33] = 4;
numerical factorization
iparm[33] = 0
Thank you.
連結已複製
Hi,
>>For numerical reproducibility we need to set iparm[33] > 0 before the symbolic factorization, and this iparm cannot be changed after.
Intel® oneAPI Math Kernel Library PARDISO reads the value of iparm[33] during the analysis phase (phase 1), so it cannot be changed later.
Optimal number of OpenMP threads for conditional numerical reproducibility (CNR) mode.
|
0* |
CNR mode for Intel® oneAPI Math Kernel Library PARDISO is enabled only if it is enabled for Intel® oneAPI Math Kernel Library using the functionality described inSupport Functions for CNRand the in-core version is used. Intel® oneAPI Math Kernel Library PARDISO determines the optimal number of OpenMP threads automatically, and produces numerically reproducible results regardless of the number of threads. |
|
>0 |
CNR mode is enabled for Intel® oneAPI Math Kernel Library PARDISO if in-core version is used and the optimal number of OpenMP threads for Intel® oneAPI Math Kernel Library PARDISO to rely on is defined by the value of Iparm [33]. You can use iparm[33]to enable CNR mode independent from other Intel® oneAPI Math Kernel Library domains. To get the best performance, set iparm[33] to the actual number of hardware threads dedicated for Intel® oneAPI Math Kernel Library PARDISO. Setting iparm[33] to fewer OpenMP threads than the maximum number of them in use reduces the scalability of the problem being solved. Setting iparm[33] to more threads than are available can reduce the performance of Intel® oneAPI Math Kernel Library PARDISO. |
Could you elaborate a bit regarding why iparam[33] Is required to change in your case.
Best Regards,
Shanmukh.SS
>> Could you elaborate a bit regarding why iparam[33] Is required to change in your case.
I wanted to figure out which part of the solution process causes the different results I am getting. I was hoping to turn on and off
this parameter for the various parts of the solving.
Thanks,
Ned
Hi,
Kindly refer the below link for the usage of iparm[33] and various other iparm parameters.
You cannot change the iparm[33] parameter later , because Intel® oneAPI Math Kernel Library PARDISO reads the value of iparm[33] during the analysis phase (phase 1)
Intel® oneAPI Math Kernel Library PARDISO uses C random number generator facilities during the analysis phase (phase 1)
You must take these precautions to get numerically reproducible results:
Do not alter the states of the random number generators.
Do not run multiple instances of Intel® oneAPI Math Kernel Library PARDISO in parallel in the analysis phase (phase 1).
>> I wanted to figure out which part of the solution process causes the different results I am getting.
In addition, Could you please share us a sample reproducer so that we could try it at our end?
Best Regards,
Shanmukh.SS
Hi,
We haven't heard back from you. We assume that your issue is resolved. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.
Best Regards,
Shanmukh.SS