"Jin, Shuangshuang" <[email protected]> writes: > Hi, Shri, > > From the log_summary, we can see that the TSJacobianEval/SNESJacobianEval > dominates the computation time as you mentioned. > > Event Count Time (sec) Flops > --- Global --- --- Stage --- Total > Max Ratio Max Ratio Max Ratio Mess Avg len > Reduct %T %f %M %L %R %T %f %M %L %R Mflop/s > ------------------------------------------------------------------------------------------------------------------------ > TSJacobianEval 1782 1.0 3.1640e+02 1.0 0.00e+00 0.0 2.0e+03 7.4e+01 > 1.4e+04 90 0 0 0 21 90 0 0 0 21 0 > SNESJacobianEval 1782 1.0 3.1641e+02 1.0 0.00e+00 0.0 2.0e+03 7.4e+01 > 1.4e+04 90 0 0 0 21 90 0 0 0 21 0 > > It takes 316 seconds for the total Jacobian Eval out of the 350 seconds of > SNESSolve,which is the total simulation time. > > So I look into my IJacobian Function. However, all it does is forming > a 1152*1152 dimension Jacobian matrix.
Can you send code for it? If not, please create a "stage" for profiling (PetscLogStageRegister), use PetscLogStagePush at the start of your Jacobian function, and PetscLogStagePop at the end of the function. This will profile any PETSc operations that you call while inside your function separately from the solver. I suspect you are either doing a lot of communication or you have poor load balance.
pgp6eh9wxkxe0.pgp
Description: PGP signature
