В PyPy появилась поддержка STM

Спустя два года после начала работы в PyPy была добавлена начальная поддержка Software Transactional Memory (STM). STM позволяет избавить многопоточные приложения от блокировок. Это достигается путём «оборачивания» доступа к общим данным внутрь транзакций которые выполнятся атомарно на уровне процессора и памяти. Пока эту технологию поддерживают лишь процессоры Intel и IBM.

Первые результаты показали очень хорошее масштабирование: выполнение кода в 8 потоков на неназванном четырёхъядерном процессоре увеличило скорость в 4.6 раза (процессор был с hyper-threading).

К сожалению, пока поддержка STM далека от оптимальной. Она создаёт значительные накладные расходы и на однопоточных приложениях скорость PyPy-STM не сильно отличается от CPython. Разработчики обещают в будущем исправить эту досадную проблему.

  pypy, python

©  Linux.org.ru