[petsc-users] Optimized mode

Smith, Barry F. bsmith at mcs.anl.gov
Tue Sep 17 13:16:56 CDT 2019


  In parallel the order of operations will always change with different number of processes; even with the same number the orders will be changed based on order of arrival of data from other processes; so identical runs can produce different results.

   Barry


> On Sep 17, 2019, at 12:17 PM, Emmanuel Ayala <juaneah at gmail.com> wrote:
> 
> Hi, thanks for the quick reply.
> 
> 
> El lun., 16 de sep. de 2019 a la(s) 23:40, Smith, Barry F. (bsmith at mcs.anl.gov) escribió:
> 
>   What do you mean by 2.0e-4 units ?   If you mean the last 4 digits may differ in the two solutions,
> 
> yes, that is the meaning
> 
> yes that is completely normal. How many digits you lose depends on the order of the operations  and the condition number of the matrix and and for elasticity that will very easily be  greater than 10^4
> 
> OK. I understand that two solution can produce slightly different results. So,  I guess, the optimized mode produce slightly different results because internally something change (order of some operations, maybe) when the number of process change?.
> 
>   Barry
> 
> From: https://pdfs.semanticscholar.org/dccf/d6daa35fc9d585de1f927c58cc29c4cd0bab.pdf
> 
> We conclude this section by noting the need for care in interpreting the forward error. Experiments in [24] show that simply changing the order of evaluation of an inner product in the substitution algorithm for solution of a triangular system can change the forward error in the computed solution by orders of magnitude. This means, for example, that it is dangerous to compare different codes or algorithms solely in terms of observed forward errors.
> 
> Thank you very much!
> Best regards.
> 
> > On Sep 16, 2019, at 11:13 PM, Emmanuel Ayala via petsc-users <petsc-users at mcs.anl.gov> wrote:
> > 
> > Hi everyone,
> > 
> > I have a code for elastic linear analysis which involves DMDA, SuperLu and matrix operations. I have a MPI vector which contains the nodal displacements, when I run the code in debug mode i get the same value for the norm (2 or Inf), for different number of process. But when I use the optimized mode, I have small variations for the same norm depending on the number of process.
> > 
> > -Debug mode: the same norm value for any number of processes.
> > -Optimized mode: the norm value changes with the number of processes. The variations are around 2.0e-4 units.
> > 
> >  This is normal?
> > 
> > For my optimized mode I used the next configuration
> > 
> > ./configure --with-debugging=0 COPTFLAGS='-O3 -march=native -mtune=native' CXXOPTFLAGS='-O3 -march=native -mtune=native' FOPTFLAGS='-O3 -march=native -mtune=native' --download-mpich --download-superlu_dist --download-metis --download-parmetis --download-cmake --download-fblaslapack=1 --with-cxx-dialect=C++11
> > 
> > Best regards.
> 



More information about the petsc-users mailing list