Hello,
I have an application with a matrix with lots of nonzero entries (that are perfectly load balanced between processes and rows). A end user is currently using a PETSc library compiled with the following flags (among others): --CFLAGS=-O2 --COPTFLAGS=-O3 --CXXFLAGS="-O2 -std=c++11" --CXXOPTFLAGS=-O3 --FFLAGS=-O2 --FOPTFLAGS=-O3
Notice the lack of --with-debugging=no
The matrix is assembled using MatMPIAIJSetPreallocationCSR and we end up with something like that in the -log_view: MatAssemblyBegin 2 1.0 1.2520e+002602.1 0.00e+00 0.0 0.0e+00 0.0e+00 8.0e+00 0 0 0 0 2 0 0 0 0 2 0 MatAssemblyEnd 2 1.0 4.5104e+01 1.0 0.00e+00 0.0 8.2e+05 3.2e+04 4.6e+01 40 0 14 4 9 40 0 14 4 9 0

For reference, here is what the matrix looks like (keep in mind it is well balanced)
  Mat Object:   640 MPI processes
    type: mpiaij
    rows=10682560, cols=10682560
    total: nonzeros=51691212800, allocated nonzeros=51691212800
    total number of mallocs used during MatSetValues calls =0
      not using I-node (on process 0) routines

Are MatAssemblyBegin/MatAssemblyEnd highly sensitive to the --with-debugging option on x86 even though the corresponding code is compiled with -O2, i.e., should I tell the user to have its PETSc lib recompiled, or would you recommend me to use another routine for assembling such a matrix?

Thanks,
Pierre

Reply via email to