Kyle,
There is no specific app I am targeting. Assuming an oracle sets these
pinning constraints for any app and the oracle is "perfect", the
oracle would just decide to do no pinning at core level if the data
reuse pattern is not suitable for it or if it leads to load imbalance.
That said, HPT have been shown to, at least in some cases, show
speedup, but not necessarily at core level. I know it is a tough nut
to crack... :(
Dylan,
I am not sure why load imbalance before pinning is an issue - I am
focusing on apps where load balance is perfect before pinning, but
that may not have good locality because of that. Without pinning, the
work may be completely balanced, but just the overall time will suffer
because of lack of cache locality. By adding pinning (at whatever
level), we trade off load balancing for more locality, which can
increase the overall performance or may decrease it, depending on the
pinning done. I was hoping that there is an opportunity for pinning at
core level also, even though the load balancing is even mode
restricted than with pinning at socket level. I hope to avoid load
balancing issues by leaving a percentage of tasks un-pinned for each
application.
Do you guys have more experience to share about possible issues that
could happen with pinning at core level versus socket level?
Best,
Dragos