Многопоточное программирование
Скачать 128.85 Kb.
|
Курс «Вычислительные системы» НГТУ, Кафедра ВТ, 2021 г. Лабораторная работа № 4 Тема: многопоточное программирование. Задание. 1. Для программы умножения двух квадратных матриц DGEMM BLAS разработанной в лабораторной работе №3 на языке С/С++ реализовать многопоточные вычисления. В потоках необходимо реализовать инициализацию массивов случайными числами типа double и равномерно распределить вычислительную нагрузку. Обеспечить возможность задавать размерность матриц и количество потоков при запуске программы. Многопоточность реализовать несколькими способами. 1) С использованием библиотеки стандарта POSIX Threads. 2) С использованием библиотеки стандарта OpenMP. 3) *C использованием библиотеки Intel TBB. 4) **C использованием библиотеки стандарта MPI. Все матрицы помещаются в общей памяти одного вычислителя. 5) ***C использованием технологий многопоточности для графических сопроцессоров (GPU) - CUDA/OpenCL/OpenGL/OpenACC. 2. Для всех способов организации многопоточности построить график зависимости коэффициента ускорения многопоточной программы от числа потоков для заданной размерности матрицы, например, 5000, 10000 и 20000 элементов. 3. Определить оптимальное число потоков для вашего оборудования. 4. Подготовить отчет отражающий суть, этапы и результаты проделанной работы. |