Há alguma alteração que possa ser feita nas CPUs para que elas tenham um desempenho melhor em tempos de execução simultâneos como o Rust? Por exemplo, há alterações nas implementações de previsão de ramificação ou nos tamanhos de cache que ajudariam nos tempos de execução simultâneos?
Tenho a impressão de que os designs atuais de CPU podem ser otimizados mais para tempos de execução procedimentais como C. Se, em vez disso, otimizássemos para tempos de execução simultâneos, como as CPUs seriam diferentes?
Por exemplo, a predição de ramificações foi implementada com base em generalizações desenhadas em trabalhos de pesquisa analisando códigos de procedimentos. Gostaria de saber se a abstração de simultaneidade adicionará um conjunto de trabalho significativo ao tempo de execução que afeta negativamente os algoritmos de previsão de ramificação existentes. Por exemplo, prever em um loop for é uma coisa, mas quando o destino da ramificação é sempre uma parte nova da memória (gráfico, texto, etc.), sempre haverá uma falta de cache e nunca haverá ramificação história para isso - porque ainda não o tocaram.
Essa provavelmente é uma pergunta boba, porque o conteúdo, embora possa sempre estar na RAM, será ramificado para uma ordem de magnitude menor do que será usado (depois de carregado no cache) ... mas ainda assim, deve ser um limite temporal observável para os contextos armazenados nos preditores de cache e ramificação em um tempo de execução processual, que se manifestariam como um limite de abstração em um ambiente mais paralelo. Então, eu estou pensando ... Esses limites foram observados? Algum trabalho de pesquisa analisou isso?
As arquiteturas de CPU são tendenciosas em relação ao código processual sobre o código simultâneo; ou as CPUs modernas são de uso geral suficiente para que uma linguagem altamente concorrente não sofra?