Оптимизация обнаружения конфликтов в параллельных программах с транзакционной памятью
Автор: Кулагин И.И., Курносов М.Г.
Рубрика: Информатика, вычислительная техника и управление
Статья в выпуске: 4 т.5, 2016 года.
Бесплатный доступ
В настоящее время активно развивается альтернативный подход к созданию масштабируемых и потокобезопасных параллельных программ для многопроцессорных систем с общей памятью - технология транзакционной памяти (transactional memory). Ожидается, что она войдет в стандарт языка С++17. В данной работе предложен метод оптимизации обнаружения конфликтов (конкурентного доступа потоков к общим областям памяти), возникающих при выполнении параллельных программ на базе транзакционной памяти. Реализован модуль компилятора GCC для профилирования параллельных программ и адаптивной настройки параметров реализации транзакционной памяти под программу. Эффективность метода исследована на тестовых программах из пакета STAMP.
Программная транзакционная память, параллельное программирование, профилирование, компиляторы
Короткий адрес: https://sciup.org/147160606
IDR: 147160606 | DOI: 10.14529/cmse160404
Список литературы Оптимизация обнаружения конфликтов в параллельных программах с транзакционной памятью
- Herlihy М., Shavit N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008. 508 p.
- Hendler D., Shavit N., Yerushalmi L. A scalable lock-free stack algorithm//Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures. 2004. P. 206-215.
- Кузнецов С.Д. Транзакционная память. URL: www.citforum.ru/programming/digest/transactional_memory/(дата обращения: 21.06.2016).
- Shavit N., Touitou D. Software Transactional Memory//Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing. Aug. 1995. New York, NY, USA, P. 204-213.
- Felber P., Fetzer C.,Marlier P., Riegel T. Time-based Software Transactional Memory//IEEE Transactions on Parallel and Distributed Systems. December 2010. Vol. 21, Issue 12. P. 1793-1807.
- Riegel T., Felber P., Fetzer C. A Lazy Snapshot Algorithm with Eager Validation//20th International Symposium on Distributed Computing. 2006.
- Luchango V., Maurer J., Moir M. Transactional memory for C++. URL: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3718.pdf (дата обращения: 21.06.2016).
- Scott M.L. Rochester Software Transactional Memory Runtime. URL: www.cs.rochester.edu/research/synchronization/rstm/(дата обращения: 21.06.2016).
- Spear M.F., Dalessandro L., Marathe V.J., Scott M.L. A comprehensive strategy for contention management in software transactional memory//Proc. 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. February 2009. P. 141-150.
- Moore K.E., Bobba J., Moravan M.J., Hill M.D., Wood D.A. LogTM: Log-based transactional memory//Proceedings of the 12th International Symposium on High-Performance Computer Architecture. February 2006. P. 254-265.
- Spear M.F., Michael M.M., Praun C. RingSTM: scalable transactions with a single atomic instruction//Proceedings of the 20th Annual Symposium on Parallelism in Algorithms and Architectures. June 2008. P. 275-284.
- Dice D., Shalev O., Shavit N. Transactional locking II//Proceedings of the 20th International Symposium on Distributed Computing. September 2006. Vol. 4167. P. 194-208.
- Felber P., Fetzer C., Riegel T. Dynamic performance tuning of word-based software transactional memory//Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. 2008. P. 237-246.
- Zilles C., Rajwar R. Implications of false conflict rate trends for robust software transactional memory. URL: http://zilles.cs.illinois.edu/papers/tm_false_conflicts.iiswc2007.pdf (дата обращения: 21.06.2016).
- Olszewski M., Cutler J., Steffan J.G. JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory//Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques. 2007. P. 365-375.
- Intel Corporation. Intel Transactional Memory Compiler and Runtime Application Binary Interface. URL: https://software.intel.com/sites/default/files/m/5/a/2/a/f/8097-Intel_TM_ABI_1_0_1.pdf (дата обращения: 21.06.2016)