Кулагин И.   Курносов М.  

Алгоритмы оптимизации ложных конфликтов в параллельных программах на базе транзакционной памяти

Докладчик: Кулагин И.

Альтернативой использования классических методов синхронизации ветвей параллельных программ (мьютексы, семофоры и пр.) является использование программной транзакционной памяти (software transactional memory – STM) [1]. Одной из остро стоящих проблем является разработка эффективных алгоритмов обнаружения конфликтов при выполнении транзакций в параллельных STM-программах - обнаружения конкурентной модификации потоками объектов в памяти.
Широко используемые алгоритмы обнаружения конфликтов на основе машинного слова [1] (GCC TM, TinySTM, DSTM) не исключают возникновение ложных конфликтов - ситуации, при которой конфликт выполнения транзакций происходит на уровне метаданных runtime-библиотеки STM, а не на уровне объектов параллельной программы. В работе предлагаются алгоритмы сокращения числа ложных конфликтов по результатам предварительного профилирования программы (profile guided optimization). Алгоритмы исследованы на тестовых программах из пакета STAMP.

Работа выполнена при частичной финансовой поддержке Российского фонда фундаментальных исследований (15-07-00653, 15-07-02693).

ЛИТЕРАТУРА

  1. P. Felber, T. Riegel, C. Fetzer. Dynamic Performance Tuning of Word-Based Software Transactional Memory. 13th ACM PPoPP, Feb. 2008.


К списку докладов