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