[petsc-users] Investigate parallel code to improve parallelism

Matthew Knepley knepley at gmail.com
Sun Feb 28 10:50:41 CST 2016


On Sun, Feb 28, 2016 at 10:29 AM, TAY wee-beng <zonexo at gmail.com> wrote:

>
> On 27/2/2016 12:53 AM, Barry Smith wrote:
>
>> On Feb 26, 2016, at 10:27 AM, TAY wee-beng <zonexo at gmail.com> wrote:
>>>
>>>
>>> On 26/2/2016 11:32 PM, Barry Smith wrote:
>>>
>>>> On Feb 26, 2016, at 9:28 AM, TAY wee-beng <zonexo at gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I have got a 3D code. When I ran with 48 procs and 11 million cells,
>>>>> it runs for 83 min. When I ran with 96 procs and 22 million cells, it ran
>>>>> for 99 min.
>>>>>
>>>>     This is actually pretty good!
>>>>
>>> But if I'm not wrong, if I increase the no. of cells, the parallelism
>>> will keep on decreasing. I hope it scales up to maybe 300 - 400 procs.
>>>
>> Hi,
>
> I think I may have mentioned this before, that is, I need to submit a
> proposal to request for computing nodes. In the proposal, I'm supposed to
> run some simulations to estimate the time it takes to run my code. Then an
> excel file will use my input to estimate the efficiency when I run my code
> with more cells. They use 2 mtds to estimate:
>
> 1. strong scaling, whereby I run 2 cases - 1st with n cells and x procs,
> then with n cells and 2x procs. From there, they can estimate my expected
> efficiency when I have y procs. The formula is attached in the pdf.
>
> 2. weak scaling, whereby I run 2 cases - 1st with n cells and x procs,
> then with 2n cells and 2x procs. From there, they can estimate my expected
> efficiency when I have y procs. The formula is attached in the pdf.
>
> So if I use 48 and 96 procs and get maybe 80% efficiency, by the time I
> hit 800 procs, I get 32% efficiency for strong scaling. They expect at
> least 50% efficiency for my code. To reach that, I need to achieve 89%
> efficiency when I use 48 and 96 procs.
>

Only if things obey the kind of scaling you expect. You could have your
code degrade less quickly by changing the algorithm.


> So now my qn is how accurate is this type of calculation, especially wrt
> to PETSc?
>

You should also distinguish between "setup" and "run", where the later will
happen at each step.

  Thanks,

     Matt


> Similarly, for weak scaling, is it accurate?
>
> Can I argue that this estimation is not suitable for PETSc or hypre?
>
> Thanks
>
>
> So it's not that parallel. I want to find out which part of the code I
>>>>> need to improve. Also if PETsc and hypre is working well in parallel.
>>>>> What's the best way to do it?
>>>>>
>>>>    Run both with -log_summary and send the output for each case. This
>>>> will show where the time is being spent and which parts are scaling less
>>>> well.
>>>>
>>>>     Barry
>>>>
>>> That's only for the PETSc part, right? So for other parts of the code,
>>> including hypre part, I will not be able to find out. If so, what can I use
>>> to check these parts?
>>>
>>     You will still be able to see what percentage of the time is spent in
>> hypre and if it increases with the problem size and how much. So the
>> information will still be useful.
>>
>>    Barry
>>
>> I thought of doing profiling but if the code is optimized, I wonder if it
>>>>> still works well.
>>>>>
>>>>> --
>>>>> Thank you.
>>>>>
>>>>> Yours sincerely,
>>>>>
>>>>> TAY wee-beng
>>>>>
>>>>>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160228/94bb245f/attachment.html>


More information about the petsc-users mailing list