§ 10. Многопоточное программирование
Задания
- Реализуйте параллельный алгоритм сортировки слиянием с помощью
std::thread
. Максимальное количество потоков должно быть ограничено количеством ядер вашего процессора (функцияstd::thread::hardware_concurrency
). В зависимости от версии компилятора вам может понадобится добавить зависимость в Мезоне:threads = dependency('threads') executable(..., dependencies: [threads], ...)
- Напишите модульный тест, который проверяет корректность работы сортировки с помощью последовательного аналога.
- Составьте таблицу или постройте график зависимости времени работы алгоритма от размера массива. Для этого измерьте время работы с помощью класса
std::chrono::system_clock
. Пример есть в презентации.