Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397

Номер 5 2021 год

DOI: 10.17587/prin.12.267-273
УДК: 004.051
Повышение эффективности расчета B-сплайнов в задачах параллельного программирования
П. М. Николаев, д-р техн. наук, начальник отдела, prokopiy.nikolaev@tsagi.ru, Федеральное государственное унитарное предприятие Центральный аэрогидродинамический институт имени профессора Н. Е. Жуковского, Жуковский

Представлен способ повышения эффективности расчета B-сплайнов в задачах параллельного программирования за счет устранения блокировок при обращении к общим модифицируемым данным. Представлена программная реализация в виде шаблона класса C++, обеспечивающего перенос временного массива, используемого при расчете B-сплайна, в локальный буфер заданного размера с возможностью его увеличения в случае необходимости. Использование разработанного шаблона совместно с квалификатором thread_local позволяет сократить число запросов на увеличение буфера для B-сплайнов высокой степени (большей, чем изначально заданный размер буфера). Приведены результаты применения разработанного класса при расчете значений B-сплайнов в многопоточной среде, показывающие сокращение времени расчета пропорционально увеличению числа вычислительных процессоров.

Ключевые слова: параллельное программирование, многопоточный код, асинхронный доступ к данным, локальная память потока, B-сплайны
Стр. 267–273