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