- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm currently wondering about the scaling of my application with the number or cores. Basically I'm getting a 70x speedup with 56 cores compared to a single core. However the whole plot (see attached image) still looks more or less like a line but with a slope of about 1.2. I'm runing this application with thread numbers that are multiples of 4 and KMP_AFFINITY set to compact. What could possibly explain my curve?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Super-linear speedup may happen if all of a sudden your problem fits in cache with multiple threads when it did not fit with only one thread. However, in this case, would expect a discontinuity in the speedup curve, but yours looks continuous.
Could it be that simply the reported baseline measurement with 1 core/4 threads is ~20% lower than its average value?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oh I just realized that with a 20% lower baseline my curve stays a line but only the slope changes. Somehow I tought if the baseline was wrong I would see a bend. I will try to find a better baseline because everything was optimized for 56 cores.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The periodic dips in the plot is likely due to the dataset per core hitting unfavorable multiples of sizes. 32KB seems most interfering, 8KB next most. There are some other threads on this forum that explain this characteristic in detail. Search for Bandwidth.
Jim Dempsey

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page