[Beowulf] How does one calculate the scalability of one's code?

daniel.kidger at quadrics.com daniel.kidger at quadrics.com
Thu Jun 10 07:27:22 PDT 2004


Chris,

> To make the number more clear
> Run1 Specs
> Grid Size: 100 x 100 x 100
> Nodes: 4
> Time: 605 seconds
> 
> Run2 Specs
> Grid Size: 200 x 200 x 200
> Nodes: 32
> Time: 944 seconds
> 
> So Run2 took ~ 1.6 times as long as Run1

You must also understand what your code is doing. If you code iterates to a converged solution (say using PCG) then the number of iterations rises as the number of freedoms increases.  So a 1.6x speedup might be perfect scaling still.

Also look at load balancing - how are the 200^3 grid cells distributed over the 32 Nodes.
You may well find that the workload given to each cpu is not equal.

For the record - what compute nodes are you using - how many cpus does each have. And are you using a high performance interconnect ?- if so it should be able to give you statistics of average message size, number of bytes transferred for each program run etc. This would be interesting.

Yours,
Daniel.

--------------------------------------------------------------
Dr. Dan Kidger, Quadrics Ltd.      daniel.kidger at quadrics.com
One Bridewell St., Bristol, BS1 2AA, UK         0117 915 5505
----------------------- www.quadrics.com --------------------


> -----Original Message-----
> From: Chris Oubre [mailto:chris_oubre at hotmail.com]
> Sent: 09 June 2004 17:24
> To: beowulf at scyld.com
> Subject: [Beowulf] How does one calculate the scalability of 
> one's code?
> 
> 
> Hello,
>   My name is Chris Oubre.  I am a physics graduate student at Rice
> University studying Maxwell's equations using a Finite Difference Time
> Domain code.  I am trying to calculate the scalability of my 
> code two ways
> 
> 1) Fixed job size
> 
> For Fixed job size, I can use Amdahl's law S = N/ (b * N + 
> (1-b)) and fit
> the curve to find b ( the % of code that is serial)
> 
> Or I could use the Gustafson-Baris Law S = N - b(N - 1) and 
> likewise fit to
> find b
> 
> 
> 2) Fixed load size
> 
> For fixed load size, I want to see how the algorithm behaves 
> if I make the
> jobs larger and increase the number of nodes to keep the job 
> size constant.
> Since I am using a 3D code, I double the job size and 
> increase the number of
> nodes by a factor of 8
> 
> I would expect that if the code scaled perfectly, they would 
> execute in the
> same amount of time.  I observe that the algorithm takes 1.6 
> times as long.
> How do I report this?  What does this number tell me 
> generally about the
> scalability of my code?  Do I need to calculate something else?
> 
> To make the number more clear
> Run1 Specs
> Grid Size: 100 x 100 x 100
> Nodes: 4
> Time: 605 seconds
> 
> Run2 Specs
> Grid Size: 200 x 200 x 200
> Nodes: 32
> Time: 944 seconds
> 
> So Run2 took ~ 1.6 times as long as Run1
> 
> Thank you for all of you help.
> 
> ****************************************************
> Christopher D. Oubre                               *
> email: chris_oubre at hotmail.com                     *
> research: http://cmt.rice.edu/~coubre              *
> Web: http://www.angelfire.com/la2/oubre            *
> Hangout: http://pub44.ezboard.com/bsouthterrebonne *
> Phone:(713)348-2506  Fax:   (713)348-4150          *
> Rice University                                    *
> Department of Physics, M.S. 61                     *
> 6100 Main St.                       ^-^            *
> Houston, Tx  77251-1892, USA       (O O)           *
> -= Phlax=-                         ( v )           *
> ************************************m*m*************
> 
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) 
> visit http://www.beowulf.org/mailman/listinfo/beowulf
> 




More information about the Beowulf mailing list