Поиск по всему репозиторию:
Кооперативный многопоточный планировщик для эффективного решения прикладных задач на многоядерных системах
Открыть/скачать файлы документа
Дата издания
2019Издательство
БрГТУУДК
004.272.2(075.8)Библиографическое описание
Карасик, О. Н. Кооперативный многопоточный планировщик для эффективного решения прикладных задач на многоядерных системах / О. Н. Карасик, А. А. Прихожий // Вестник Брестского государственного технического университета. Серия: Физика, математика, информатика. – 2019. – № 5. – С. 67–72 : ил. – Библиогр.: с. 71–72 (17 назв.).Аннотация
Предлагается архитектура кооперативного многопоточного планировщика выполнения потоков на многоядерных системах под управлением ОС Windows. Архитектура реализована с помощью механизма
User Mode Scheduling, позволяющего пользовательскому приложению
организовывать кооперативное выполнение потоков. Исследуемая
архитектура включает в себя потоки пользователя, исполняющие
пользовательский код; потоки планировщика, управляющие выполнением потоков пользователя; примитив синхронизации для организации
взаимодействия потоков пользователя, выполняющихся на разных
ядрах многоядерной системы; механизм передачи управления между
потоками пользователя, выполняющимися на одном ядре.
Распределенный по ядрам планировщик позволяет потокам самим логически планировать порядок передачи управления и повышать производительность многоядерной системы при исполнении
блочно-параллельных алгоритмов решения практически важных
задач. Многопоточные алгоритмы, построенные известными способами, не обладают нужными планировщику свойствами. В связи с
этим предложен новый способ построения кооперативных потоковых
блочно-параллельных алгоритмов.
Производительность планировщика оценена экспериментально на
кооперативных блочно-параллельных алгоритмах решения систем
линейных алгебраических уравнений методом Гаусса и на кооперативных блочно-параллельных алгоритмах нахождения кратчайших
путей на графе методом Флойда-Уоршелла. Алгоритмы балансируют
распределение блоков данных по потокам и потоков по ядрам; устанавливают порядок выполнения потоков на каждом ядре; минимизируют слоты времени на управление, ожидание и простаивание потоков; повышают полезную загрузку ядер близко к 100%; позволяют
находить оптимальный размер блока; сокращают обмен данными
между кэшем ядер и между уровнями иерархической памяти.
Аннотация на другом языке
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.
URI документа
https://rep.bstu.by/handle/data/4935Документ расположен в коллекции
- 2019 [19]
Это произведение доступно по лицензии Creative Commons «Attribution-NonCommercial» («Атрибуция-Некоммерчески») 4.0 Всемирная.