Skip to content

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторные работы по дисциплине "Параллельное программирование"

Лабораторные работы по MPI

Репозиторий с заданиями

Лабораторная работа по методам обработки сигналов

Репозиторий с заданиями

Задания по CUDA

Репозиторий с заданиями

Лабораторная работа 1 Построение модели распределённой гетерогенной вычислительной системы

  1. Разработать классы GpuSpec, CpuSpec, RamSpec, LanSpec, сохраняющие информацию о технических характеристиках соответствующих устройств.
  2. Разработать класс ClusterNode, моделирующий вычислительный узел кластера. ClusterNode должен содержать сведения об установленных в нём технических устройствах.
  3. Разработать класс Cluster, моделирующий структуру вычислительного кластера.

Для всех классов реализовать методы Print, Import, Export, соответственно выводящие сведения в консоль и реализующих импорт/экспорт данных из/в текстовые файлы. Разработать модульные тесты.

Диаграмма классов

Диаграмма классов

Программа для 1-ой лабораторной работы находится по пути 1/lab1 (пакетный файл). Тесты для программы 1-ой лабораторной работы находится по пути 1/lab1_tests (пакетный файл). Если тесты ни разу не запускались, сначала необходимо запустить rebuild_tests (пакетный файл). При запуске пакетных файлов убедитесь, что на пк установлен g++ и cmake.

Лабораторная работа 2 Операции с матрицами

Разработать классы DenseMatrix, DiagonalMatrix, BlockMatrix, способные выполнять плюс, минус, умножение (скалярное и матричное), транспонирование матрицы. Реализовать проверку импортированной матрицы.

Для всех классов реализовать методы Print, Import, Export, соответственно выводящие сведения в консоль и реализующих импорт/экспорт данных из/в текстовые файлы.

Программа для 2-ой лабораторной работы находится по пути 2/main.exe (скомпилированная).

Лабораторная работа 3 Параллельные вычисления

Разработать класс Vector, от которого будут наследоваться VectorSingleThread для однопоточныйх вычислений и VectorMultiThread с учетом многопоточныйх вычислений с std::thread.

Для классов вектора разработать методы: инициализации константным значением, инициализации случайным значением, нахождения минимального значения, нахождения индекса минимального значения, нахождения максимального значения, нахождения индекса максимального значения, нахождения суммы значений, нахождения cреднего значения, нахождения эвклидовой нормы, нахождения скалярного произведения и создания данных теста времени выполнения.

Для классов VectorSingleThread, VectorMultiThread и VectorOpenMP реализовать импорт и экспорт вектора. Сделать проверку на иницализацию объекта перед использованием методов.

Замер маштабирования производительности от потоков для вектора типа double размером 109 (реализация std::thread)

График потоков thread

Замер маштабирования производительности от потоков для вектора типа double размером 109 (реализация OpenMP)

График потоков openmp

Программа для 3-ей лабораторной работы находится по пути 3/main.exe (скомпилированная). Для отображения графика можно использовать ярлык plot_graph, но для начала его нужно пересоздать (recreate_shortcut.bat). Если не работает построение, нужно убедиться, что установлен python, уставновить пакеты (install_requirements.bat) и собрать программу (build_python_app.bat). Для того, чтобы использовать импорт из файла для инициализации объекта, нужно сгенерировать файлы для импорта, запустив create_import_data.exe. Данные тестов можно получить, запустив create_test_data.exe. Параметры данных для тестов настраиваются в конфигах (директория config).

P.S. Параметры размерности вектора в конфигах влияют на загрузку озу. Т.к. при использовании размера вектора в 109, использование памяти одним только create_test_data.exe переходит за 16гб. При размерности вектора 108 потребление памяти около 3гб.

About

Сборник заданий по дисциплине "Параллельное программирование" и "Методы обработки сигналов и изображений"

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages