CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

Unsteady parallel scalability definition

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree1Likes
  • 1 Post By SergeAS

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 27, 2012, 14:28
Default Unsteady parallel scalability definition
  #1
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Dear all,

I have a question.

In CFD unsteady simulation, how to define/calculate/measure the speedup?
Since it each time step the matrix needs to be solved is different, so is the iteration number. Then I mean, how did you set the "end time" and compare the clock time and calculate the speedup?

And in the meantime, if I got a bad speedup, isn't that a big possibility that the matrix solving scheme is not efficient enough. If then, when a person define the speedup, shouldn't he also provide the numerical schemes also? But how could we have a perfect scheme that will not affect the speedup measuring.

Thanks
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   March 28, 2012, 03:22
Default
  #2
Member
 
SergeAS's Avatar
 
Serge A. Suchkov
Join Date: Oct 2011
Location: Moscow, Russia
Posts: 74
Blog Entries: 5
Rep Power: 14
SergeAS is on a distinguished road
Send a message via Skype™ to SergeAS
In case of transient solution you can compare computing time for achieve a fixed "real" time in simulated process
__________________
OpenHyperFLOW2D Project
SergeAS is offline   Reply With Quote

Old   March 28, 2012, 10:12
Default
  #3
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
And another question,

Isn't there a possibility that the bad speedup in case one see, might be actually due to the bad matrix solution algorithm?
For example, if one uses bad multigrid method, and got a very bad sppedup, then his report of speedup is totally misleading.

If I was right, then, how could we find a "perfect" enough algorithm, that it will not affect the test of scalability?

Thanks, btw, love your signature!!
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   March 28, 2012, 10:40
Default
  #4
Member
 
SergeAS's Avatar
 
Serge A. Suchkov
Join Date: Oct 2011
Location: Moscow, Russia
Posts: 74
Blog Entries: 5
Rep Power: 14
SergeAS is on a distinguished road
Send a message via Skype™ to SergeAS
At first we must agree on what type of scalability we're talking about

One usually considers two types of scalability
1) The acceleration in solving the problem of fixed size for different number of cores
2) The solution of problems in several sizes for a fixed number of cores

Next, we must agree on what kind of scalability can be considered "bad" because as you know - everything is relative.

Usually the cause of poor scalability may be the presence of a significant piece of the algorithm can not be parallelized. As an example, see my blog on the comparison of the use of blocking and nonblocking MPI calls

If the algorithm does not contain any such places in an explicit form, the inefficiency may be associated with a significant number of barriers, synchronization and / or critical sections.

In the latter case can help to collect statistics on what part of the algorithm are called most frequently (in several data sets)
__________________
OpenHyperFLOW2D Project
SergeAS is offline   Reply With Quote

Old   March 28, 2012, 11:03
Default
  #5
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Thanks for your help.

So the real scalability test result is closely related to two major aspects, one is hardware side, another is software side.

Question concerning hardware side,
Is there a way, or what is the best way of finding where is the bottleneck?
For example, if I have a cluster, 2.5G cpu, 2G/core RAM, infiniband QDR, blahblah. Given a certain CFD software and case at hand, how could I know, how could I test, where is the bottleneck, so that I could choose another cluster?

Question concerning the software design.
If hardware is not a problem all the time, then how could I test that which part of the code can be further optimized for parallel efficiency?
I am not referring to which part takes the longest time, I just want to know which part can be ideally improved to a better efficiency. E.g., I know solving p equation takes the most of time, but we have no better choice, right, it is always so. I am also doing FSI simulations, I would hope that part of code that I am writing wont be too bad to slow down the whole simulation.


PS: Sorry, I am not from computer science, nor from pure programming, I am from other engineering field, I just want to make sure I dont make huge mistakes when choosing a cluster or writing a code.
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   March 28, 2012, 12:44
Default
  #6
Member
 
SergeAS's Avatar
 
Serge A. Suchkov
Join Date: Oct 2011
Location: Moscow, Russia
Posts: 74
Blog Entries: 5
Rep Power: 14
SergeAS is on a distinguished road
Send a message via Skype™ to SergeAS
Quote:
Originally Posted by lakeat View Post
So the real scalability test result is closely related to two major aspects, one is hardware side, another is software side.
Sure
Quote:
Originally Posted by lakeat View Post
Question concerning hardware side,
Is there a way, or what is the best way of finding where is the bottleneck?
For example, if I have a cluster, 2.5G cpu, 2G/core RAM, infiniband QDR, blahblah. Given a certain CFD software and case at hand, how could I know, how could I test, where is the bottleneck, so that I could choose another cluster?
The simplest test solution to your problem on the same node but on two cores (1-node x 2 core) and at two nodes, using one core in each (2-nodes x 1-core) can show what your problem is more sensitive: to memory access or interconnect


Quote:
Originally Posted by lakeat View Post
Question concerning the software design.
If hardware is not a problem all the time, then how could I test that which part of the code can be further optimized for parallel efficiency?
I am not referring to which part takes the longest time, I just want to know which part can be ideally improved to a better efficiency. E.g., I know solving p equation takes the most of time, but we have no better choice, right, it is always so. I am also doing FSI simulations, I would hope that part of code that I am writing wont be too bad to slow down the whole simulation.


PS: Sorry, I am not from computer science, nor from pure programming, I am from other engineering field, I just want to make sure I dont make huge mistakes when choosing a cluster or writing a code.
If you do not delve into the intricacies of the code analysis, I can advise you to use any simple profiler.

Personally, I like valgrind (see attached screenshot for one of my code)

If you want to analyze and debug parallel code is then that there are special tools, such as TotalView (in the case of the MPI code) and ThreadSpotter
Attached Images
File Type: jpg profiling2.jpg (93.3 KB, 26 views)
lakeat likes this.
__________________
OpenHyperFLOW2D Project
SergeAS is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFOAM static build on Cray XT5 asaijo OpenFOAM Installation 9 April 6, 2011 13:21
how to predict unsteady flow from case definition? Felix Main CFD Forum 6 August 28, 2007 17:40
Unsteady Velocity - UDF in parallel Prateep Chatterjee FLUENT 4 November 23, 2001 05:40
Parallel Scaling in Unsteady Sliding Mesh Cases Jonas Larsson FLUENT 9 September 5, 2000 11:13
Parallel simulation of unsteady flows MLJ Main CFD Forum 5 June 14, 2000 02:24


All times are GMT -4. The time now is 17:52.