Search
Кооперативный многопоточный планировщик для эффективного решения прикладных задач на многоядерных системах
View/ Open document files
Author
Date
2019Publisher
БрГТУUDC
004.272.2(075.8)Citation
Карасик, О. Н. Кооперативный многопоточный планировщик для эффективного решения прикладных задач на многоядерных системах / О. Н. Карасик, А. А. Прихожий // Вестник Брестского государственного технического университета. Серия: Физика, математика, информатика. – 2019. – № 5. – С. 67–72 : ил. – Библиогр.: с. 71–72 (17 назв.).Abstract
Предлагается архитектура кооперативного многопоточного планировщика выполнения потоков на многоядерных системах под управлением ОС Windows. Архитектура реализована с помощью механизма
User Mode Scheduling, позволяющего пользовательскому приложению
организовывать кооперативное выполнение потоков. Исследуемая
архитектура включает в себя потоки пользователя, исполняющие
пользовательский код; потоки планировщика, управляющие выполнением потоков пользователя; примитив синхронизации для организации
взаимодействия потоков пользователя, выполняющихся на разных
ядрах многоядерной системы; механизм передачи управления между
потоками пользователя, выполняющимися на одном ядре.
Распределенный по ядрам планировщик позволяет потокам самим логически планировать порядок передачи управления и повышать производительность многоядерной системы при исполнении
блочно-параллельных алгоритмов решения практически важных
задач. Многопоточные алгоритмы, построенные известными способами, не обладают нужными планировщику свойствами. В связи с
этим предложен новый способ построения кооперативных потоковых
блочно-параллельных алгоритмов.
Производительность планировщика оценена экспериментально на
кооперативных блочно-параллельных алгоритмах решения систем
линейных алгебраических уравнений методом Гаусса и на кооперативных блочно-параллельных алгоритмах нахождения кратчайших
путей на графе методом Флойда-Уоршелла. Алгоритмы балансируют
распределение блоков данных по потокам и потоков по ядрам; устанавливают порядок выполнения потоков на каждом ядре; минимизируют слоты времени на управление, ожидание и простаивание потоков; повышают полезную загрузку ядер близко к 100%; позволяют
находить оптимальный размер блока; сокращают обмен данными
между кэшем ядер и между уровнями иерархической памяти.
Annotation in another language
An architecture of the cooperative multi-thread scheduler for thread execution on a multi-core system that runs OS Windows is proposed. The architecture
is implemented using the User Mode Scheduling mechanism, which allows the user application to organize cooperative thread execution. The
architecture under development a user thread for executing user code, a new synchronization primitive for organizing the interaction of user threads on
different cores, a control transfer mechanism between user threads on the same core. The architecture allows a programmer to implement cooperative
multi-threaded algorithms to accelerate the solution of large-scale problems on multi-core systems.
Collection
- 2019 [19]
Это произведение доступно по лицензии Creative Commons «Attribution-NonCommercial» («Атрибуция-Некоммерчески») 4.0 Всемирная.