Maximizing Processing Speed ​​Through Parallelism

Are there cases where more than an increase in linear speed comes from parallelizing the algorithm?

+1


a source to share


2 answers


The maximum value that you can theoretically achieve is linear acceleration. In practice, super-linear acceleration is possible . If you can spread your problem away so you can use the effects of cpu caches eg. because it doesn't fit into a single core cache, your problem might scale better than linear.



+5


a source


In theory, not, but in practice it might be (depending on the underlying hardware and your specific problem). Its non-trivial to compare parallel and sequential code (you need to compare the fastest sequential implementation with your parallel implementation, not just your parallel implementation running on the same cpu / thread).



Still, when someone talks about more than linear acceleration, I would always be suspicious; they either didn't measure it correctly (see above), measured an artifact (hardware and OS dependent) and have to document it appropriately, or it only works for a specific problem / implementation / hardware combination.

+1


a source







All Articles