Research indexJournal article
Applying composable parallelism in programs using parallel libraries
Bakhtin, Катаев, Бахтин and 3 others
Vyčislitelʹnye metody i programmirovanie6 Oct 2025Open access
NobleIDark:/48914/w1/20260526/5EE28D60DOI10.26089/nummet.v26r430
Applying composable parallelism in programs using parallel libraries
Bakhtin, Катаев, Бахтин and 3 others · Vyčislitelʹnye metody i programmirovanie · 2025
NobleIDark:/48914/w1/20260526/5EE28D60DOI10.26089/nummet.v26r430
Abstract
As the number of computational cores and the threads utilizing them increases, the overhead associated with thread scheduling, creation, and destruction grows, while the amount of computation performed by each individual thread decreases. Multilevel parallelism is a way to address this issue. One potential source of such parallelism is the optimization of functions within libraries called from parallel programs. However, this approach may require additional support at the level of parallel programming models. In our study, we propose an alternative implementation of the OpenMP runtime library and evaluate its efficiency using the OpenBLAS library and the High Performance Linpack (HPL) benchmark on Arm-based systems. С ростом числа вычислительных ядер и использующих их потоков возрастают накладные расходы на их планирование, порождение и уничтожение, а объем вычислений, выполняемых каждым потоком в отдельности, сокращается. Многоуровневый параллелизм — способ обойти данную проблему. Его источником может стать распараллеливание функций, реализованных внутри библиотек, вызываемых из параллельной программы. Данный подход может потребовать дополнительной поддержки на уровне моделей параллельного программирования. В нашем исследовании мы предлагаем альтернативный способ реализации библиотеки времени выполнения OpenMP и исследуем его эффективность на примере библиотеки OpenBLAS и бенчмарка High Performance Linpack для Arm-систем.