- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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?
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
