Software Archive
Read-only legacy content
17061 Discussions

Speed Up with MIC/ in Parallel

Bryar_S_
Beginner
631 Views

My question is not specific to MIC developers, it for all parallel developers in general. 

By increasing data sampling (n) in the program, I get better speed up. Also the sequential  is better than parallel version with small (n). 

I know this is normal in parallel programming, but would you tell me why ? or give me some reasons to convince me.

 

0 Kudos
1 Solution
Sunny_G_Intel
Employee
631 Views

Hello Bryar,

Can you please elaborate what kind of application and dataset you are referring to. I am assuming by increasing data sampling you mean increasing the size of data set. Correct?

If yes, your observation about correlation between data set v/s number of parallel threads/processes is correct for lot of HPC applications (especially embarrassingly parallel applications). As per my knowledge one of the reason this kind of behavior is observed is because there is always some finite amount of overhead involved in setting up and maintaining multiple threads/processes. Hence in case of small datasets this overhead subsides the benefit of parallel processing as a result you see that for small datasets sequential programs (without thread creation/maintainance overhead) runs faster. And as you increase the size of dataset, for any embarrassingly parallel application the benefits of parallel processing increases and hence the speedup increases. Besides parallel thread creation and maintenance there are lot of other things happening as well like communication, synchronization etc between threads. 

I hope this helps. 

View solution in original post

0 Kudos
2 Replies
Sunny_G_Intel
Employee
632 Views

Hello Bryar,

Can you please elaborate what kind of application and dataset you are referring to. I am assuming by increasing data sampling you mean increasing the size of data set. Correct?

If yes, your observation about correlation between data set v/s number of parallel threads/processes is correct for lot of HPC applications (especially embarrassingly parallel applications). As per my knowledge one of the reason this kind of behavior is observed is because there is always some finite amount of overhead involved in setting up and maintaining multiple threads/processes. Hence in case of small datasets this overhead subsides the benefit of parallel processing as a result you see that for small datasets sequential programs (without thread creation/maintainance overhead) runs faster. And as you increase the size of dataset, for any embarrassingly parallel application the benefits of parallel processing increases and hence the speedup increases. Besides parallel thread creation and maintenance there are lot of other things happening as well like communication, synchronization etc between threads. 

I hope this helps. 

0 Kudos
Bryar_S_
Beginner
631 Views

Thanks for explanation, I suppose using Monte Carlo Simulation and some Pseudo random number. By increasing data sampling, I mean increasing data set. 

 

0 Kudos
Reply