[petsc-users] Scaling problem when cores > 600
Smith, Barry F.
bsmith at mcs.anl.gov
Wed Feb 28 23:04:19 CST 2018
> On Feb 28, 2018, at 10:59 PM, TAY wee-beng <zonexo at gmail.com> wrote:
>
>
> On 1/3/2018 10:07 AM, Matthew Knepley wrote:
>> On Wed, Feb 28, 2018 at 9:01 PM, TAY wee-beng <zonexo at gmail.com> wrote:
>>
>> On 1/3/2018 12:10 AM, Matthew Knepley wrote:
>>> On Wed, Feb 28, 2018 at 10:45 AM, TAY wee-beng <zonexo at gmail.com> wrote:
>>> Hi,
>>>
>>> I have a CFD code which uses PETSc and HYPRE. I found that for a certain case with grid size of 192,570,048, I encounter scaling problem when my cores > 600. At 600 cores, the code took 10min for 100 time steps. At 960, 1440 and 2880 cores, it still takes around 10min. At 360 cores, it took 15min.
>>>
>>> So how can I find the bottleneck? Any recommended steps?
>>>
>>> For any performance question, we need to see the output of -log_view for all test cases.
>> Hi,
>>
>> To be more specific, I use PETSc KSPBCGS and HYPRE geometric multigrid (entirely based on HYPRE, no PETSc) for the momentum and Poisson eqns in my code.
>>
>> So can log_view be used in this case to give a meaningful? Since part of the code uses HYPRE?
>>
>> Make an event to time the HYPRE solve. It only takes a few lines of code.
> Hi,
>
> I check PETSc and found some routines which can be used to time the HYPRE solve, like PetscGetTime and PetscGetCPUTime.
>
> And then using:
>
> PetscLogDouble t1, t2;
>
> ierr = PetscGetCPUTime(&t1);CHKERRQ(ierr);
> ... code to time ...
> ierr = PetscGetCPUTime(&t2);CHKERRQ(ierr);
> printf("Code took %f CPU seconds\n", t2-t1);
>
> Are these 2 routines suitable? Which one should I use?
Absolutely not please don't use those things.
Matt specifically mentioned PetscLogEventRegister(). Please look at the manual page for that and use that plus PetscLogEventBegin() and PetscLogEventEnd()
>>
>> I also program another subroutine in the past which uses PETSc to solve the Poisson eqn. It uses either HYPRE's boomeramg, KSPBCGS or KSPGMRES.
>>
>> If I use boomeramg, can log_view be used in this case?
>>
>> Yes, its automatic.
>>
>> Or do I have to use KSPBCGS or KSPGMRES, which is directly from PETSc? However, I ran KSPGMRES yesterday with the Poisson eqn and my ans didn't converge.
>>
>> Plain GMRES is not good for Poisson. You would be better off with GMRES/GAMG.
>>
>> Thanks,
>>
>> Matt
>>
>> Thanks.
>>>
>>> I must also mention that I partition my grid only in the x and y direction. There is no partitioning in the z direction due to limited code development. I wonder if there is a strong effect in this case.
>>>
>>> Maybe. Usually what happens is you fill up memory with a z-column and cannot scale further.
>>>
>>> Thanks,
>>>
>>> Matt
>>>
>>>
>>> --
>>> Thank you very much
>>>
>>> Yours sincerely,
>>>
>>> ================================================
>>> TAY Wee-Beng 郑伟明 (Zheng Weiming)
>>> Personal research webpage: http://tayweebeng.wixsite.com/website
>>> Youtube research showcase: https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
>>> linkedin: www.linkedin.com/in/tay-weebeng
>>> ================================================
>>>
>>>
>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>>> -- Norbert Wiener
>>>
>>> https://www.cse.buffalo.edu/~knepley/
>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>> -- Norbert Wiener
>>
>> https://www.cse.buffalo.edu/~knepley/
>
More information about the petsc-users
mailing list