Когерентность кэша и Java Memory Model

1,00
р.
Может ли когерентность кэша повлиять на работу многопоточного Java-приложения? Или все проблемы решает виртуальная машина?
В каких случаях один и тот же многопоточный код будет работать по-разному в зависимости от кэш-памяти?


Ответ
По идее для объектов, отмеченных volatile когерентность должна обеспечиваться независимо от аппаратной поддержки когерентности кэшей.
У большинства современных (SMP) компьютеров обеспечение когерентности кэша встроено в конструкцию. Этого нет (насколько мне известно) у HPC (high performance computing) кластеров. Знаю, что в реализации JVM для них обещают Truly portable threads and synchronization model.
Вообще же, проблемы с параллельными потоками всегда на совести программиста.