> On Jun 29, 2015, at 1:35 PM, Li, Xinya <[email protected]> wrote:
> 
> Yes. it is C++.
> I attached the major routines for TSSolve.

   Thanks. There is not much in the functions to explain why they are taking 
the vast bulk of the time but I am going to go out on a limb and guess that it 
is the C++ implementation of complex numbers and the use of the cos() and sin() 
of those complex numbers that it causing the terrible performance. 

  Since your code has actually very little C++ specific stuff in it I would 
suggest building PETSc without the --with-clanguage=c++ and use C for 
everything, changing your code as needed to remove the C++ isms. In C99 complex 
is a native data type (not a C++ class) so can potentially give better 
performance.

  Barry

> 
> Thanks
> Xinya
> 
> 
> -----Original Message-----
> From: Barry Smith [mailto:[email protected]] 
> Sent: Monday, June 29, 2015 11:27 AM
> To: Li, Xinya
> Cc: [email protected]
> Subject: Re: [petsc-users] TSSolve problems
> 
> 
>  Is your code C++?
> 
>                             count        time               percent time
> ---------------------------------------------------------------------
> TSStep                     600    3.1174e+02    100
> TSFunctionEval      2937    1.4288e+02     46
> TSJacobianEval      1737    1.3074e+02    42
> KSPSolve                1737    3.5144e+01    11
> 
>  Ok I pulled out the important time from the table.  46 percent of the time 
> is in your function evaluation, 42 percent in the Jacobian evaluation and 11 
> percent in the linear solve.
> 
>  The only way to improve the time significantly is by speeding up the 
> function and Jacobian computations. What is happening in those routines, can 
> you email them?
> 
>  Barry
> 
> 
> 
> 
> 
>> On Jun 29, 2015, at 11:57 AM, Li, Xinya <[email protected]> wrote:
>> 
>> Barry,
>> 
>> Here is the new output without debugging.
>> 
>> Thank you.
>> 
>> Xinya
>> 
>> ********************************************************************
>> 
>> 
>> -----Original Message-----
>> From: Barry Smith [mailto:[email protected]] 
>> Sent: Friday, June 26, 2015 12:04 PM
>> To: Li, Xinya
>> Cc: [email protected]
>> Subject: Re: [petsc-users] TSSolve problems
>> 
>> 
>> ##########################################################
>>     #                                                        #
>>     #                          WARNING!!!                    #
>>     #                                                        #
>>     #   This code was compiled with a debugging option,      #
>>     #   To get timing results run ./configure                #
>>     #   using --with-debugging=no, the performance will      #
>>     #   be generally two or three times faster.              #
>>     #                                                        #
>>     ##########################################################
>> 
>> First you need to configure PETSc again without all the debugging. So do, 
>> for example,
>> 
>> export PETSC=arch-opt
>> ./configure --with-cc=gcc --with-fc=gfortran --with-cxx=g++ 
>> --with-scalar-type=complex --with-clanguage=C++ --with-cxx-dialect=C++11  
>> --download-mpich --download-superlu_dist --download-mumps 
>> --download-scalapack --download-parmetis --download-metis 
>> --download-elemental make all test
>> 
>> then recompile and rerun your example again with -log_summary and send the 
>> output.
>> 
>> Note that you should not pass --download-fblaslapack nor the fortran kernel 
>> stuff.
>> 
>> Barry
>> 
>> 
>>> On Jun 26, 2015, at 12:16 PM, Li, Xinya <[email protected]> wrote:
>>> 
>>> Barry,
>>> 
>>> Thank you for your response.
>>> 
>>> Attached is the output. SNESSolve was taking most of the time. 
>>> 
>>> 
>>> Xinya
>>> 
>>> 
>>> 
>>> -----Original Message-----
>>> From: Barry Smith [mailto:[email protected]]
>>> Sent: Thursday, June 25, 2015 5:47 PM
>>> To: Li, Xinya
>>> Cc: [email protected]
>>> Subject: Re: [petsc-users] TSSolve problems
>>> 
>>> 
>>> Run with -ts_view -log_summary and send the output. This will tell the 
>>> current solvers and where the time is being spent.
>>> 
>>> Barry
>>> 
>>>> On Jun 25, 2015, at 6:37 PM, Li, Xinya <[email protected]> wrote:
>>>> 
>>>> Dear Sir,
>>>> 
>>>> I am using the ts solver to solve a set of ODE and DAE. The Jacobian 
>>>> matrix is a 1152 *1152 sparse complex matrix.
>>>> Each TSStep in TSSolve is taking nearly 1 second. Thus, I need  to improve 
>>>> the speed of TSSolve.
>>>> Which parts should be taking into account to accelerate TSSolve?
>>>> Thank you very much.
>>>> Regards
>>>> __________________________________________________
>>>> Xinya Li
>>>> Scientist
>>>> EED/Hydrology
>>>> Pacific Northwest National Laboratory
>>>> 902 Battelle Boulevard
>>>> P.O. Box 999, MSIN K9-33
>>>> Richland, WA  99352 USA
>>>> Tel:  509-372-6248
>>>> Fax: 509-372-6089
>>>> [email protected]
>>> 
>>> <288g1081b_short.log>
>> 
>> <d288gen.log>
> 
> <simulation.C>

Reply via email to