Правильная ссылка на статью:
Пекунов В.В..
Объектно-транзакционное расширение Cilk++
// Программные системы и вычислительные методы. – 2022. – № 3.
– С. 28-34.
DOI: 10.7256/2454-0714.2022.3.38823.
DOI: 10.7256/2454-0714.2022.3.38823
Читать статью
Аннотация: В данной работе рассматривается проблема разработки компактных средств, поддерживающих программирование в условиях динамической транзакционной памяти, подразумевающей оперативное порождение транзакционных страниц, для языка Cilk++. Утверждается, что подобная реализация требует ослабленной изоляции транзакций. Анализируется современное состояние проблемы. Отмечается, что существующие решения достаточно громоздки, хотя и позволяют работать со сложными структурами данных, такими как списки и деревья. Утверждается необходимость разработки новых решений в стиле минимализма, основанных на применении специализированных классов (порождающих транзакционные страницы; реализующих согласуемые транзакционные переменные) в сочетании с набором ключевых слов, характерных для Cilk++. Предлагаются соответствующие новые решения. Вводятся новые элементы синтаксиса, реализуемые с помощью средств расширения языка, характерных для платформы Planning C. Описана семантика новых языковых элементов. Отмечается, что в отличие от аналогов, разработанные средства позволяют декларативно «выстроить» транзакции в сеть (сетевой график работ), определяющую порядок исполнения транзакций и существующий при этом потенциал параллелизма. Проведена апробация предложенного подхода на примере задачи построения гистограммы. Также упоминается об успешном решении с применением разработанных средств задачи обучения искусственной нейронной сети методом обратного распространения ошибки и задачи целочисленного линейного программирования методом ветвей и границ.
Ключевые слова: управление очередностью транзакций, расширение языка, синтаксические конструкции, библиотека классов, объектно-ориентированное программирование, динамическая транзакционная память, язык программирования, программная транзакционная память, Силк Плюс Плюс, сеть транзакций
Библиография:
M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In A. J. Smith, editor, Proceedings of the 20th Annual International Symposium on Computer Architecture. San Diego, CA, May 1993, pages 289–300. ACM, 1993.
Marathe, V.J., Scherer, W.N., Scott, M.L. (2005). Adaptive Software Transactional Memory. In: Fraigniaud, P. (eds) Distributed Computing. DISC 2005. Lecture Notes in Computer Science, vol 3724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561927_26
Herlihy, M., Luchangco, V., Moir, M., and Scherer, W.N. 2003. Software transactional memory for dynamic-sized data structures. In Proceedings of the twenty-second annual symposium on Principles of distributed computing (PODC '03). Association for Computing Machinery, New York, NY, USA, 92–101. https://doi.org/10.1145/872035.872048
Miculan, M., Peressotti, M. Software Transactional Memory with Interactions. Proceedings of the 21st Italian Conference on Theoretical Computer Science, Ischia,