/paralabs

University course (Parallel Programming)

Primary LanguageC

Курс "Параллельное программирование", практические задания

01. Запускаем два потока, первый поток считает что-нибудь, второй поток ждёт конца вычислений и начинает работу.
02. Запускаем два потока, которые по очереди изменяют глобальный счетчик (первый пишет четные числа, второй нечетные) в пределах от 1 до N=120.
03. Добавляем в (2) третий поток, который после каждого изменения счетчика получает обновленное значение, сохраняет его в другой переменной и печатает.

04. Найти ошибку в программе, заданной в файле code_OMP_Error.c (существует как минимум 3 решения).
05. Написать параллельный QuickSort, используя OpenMP.
06. Написать параллельный MergeSort, но для кусочков массива размером меньше K (K определить самому) вызывать процедуру QuickSort из задания (05).

В заданиях 05-06 необходимо провести замер производительности по сравнению с не параллельными версиями.

07. Перемножить две матрицы с помощью MPI. Каждая матрица должна дробиться на M столбцов и K строк (параметры командной строки), где 1 <= M <= 3, 1 <= K <= 3. Информацию о других частях матрицы получать с помощью send/recv.
08. Лабиринт NxN (N <= 10^3): ASCII, * -- начало, # -- стенки, E -- выход, . -- свободная ячейка. Ищем кратчайший путь из * в E. Параметром командной строки задаётся K (кратное N) -- число секторов, на которые дробим. Матрица читается из файла.