Показаны сообщения с ярлыком spin waiting. Показать все сообщения
Показаны сообщения с ярлыком spin waiting. Показать все сообщения

воскресенье, 4 октября 2009 г.

Spin-wait in HotSpot JVM

Тут Санкт-Петербургская группа тестирования JVM рассказывает про реализацию активного ожидания в Sun HotSpot JVM.
"... HotSpot тоже использует spin locks. В коде есть множество настраиваемых параметров. Перечислим эвристики, которые применяет Hotspot по умолчанию:
  1. Количество нитей, крутящихся в ожидании одной блокировки ограничено количеством процессоров (-XX:SyncKnobs=MaxSpinners=n)
  2. Если ожидаемая блокировка, захвачена нитью, которая сейчас не выполняется на процессоре, то крутиться не нужно (OState=0|1)
  3. Если блокировка поменяла хозяина, пока нить крутилась, то дальше крутиться не стоит. То же, если мы заметили освободившуюся блокировку, но ее захватили перед нашим CAS. ..."

PAUSE instruction in Pentium 4

Using Spin-Loops on Intel® Pentium® 4 Processor and Intel® Xeon™ Processor:
Погрузитесь в мир C + Asm:

четверг, 1 октября 2009 г.

Большой Брат следит за Дмитрием :)

3 базовых вещи относительно параллельныз вычислений - "3 базовых вещи относительно параллельных вычислений, и они же - 3 основные ошибки, которые часто допускают программисты при реализации параллельных алгоритмов. Ошибки в том плане, что они могут серьёзно снижать производительность и приводить не к ожидаемой линейной масштабируемости, а к супер-линейной деградации производительности при увеличении количества процессоров/ядер."