The challenge of time-predictability in modern many-core architectures