Це навчальний проєкт з дисципліни «Паралельні обчислення і розподілені системи».
Програма працює з набором точок на площині та знаходить найближчу і найдальшу пару точок.
Мета проєкту - порівняти час роботи послідовного та паралельного алгоритмів і подивитися на прискорення при використанні кількох потоків.
- C++
- Стандартна бібліотека C++
std::threadдля багатопотоковості- Консольний застосунок
- Windows API (
SetConsoleOutputCP) для коректного виводу UTF-8 у Windows
- main.cpp - основний код програми
- points_data.txt - файл з вхідними точками
lab1.exe- зібраний виконуваний файл для Windows- .gitignore - список файлів, які не відстежуються Git
Якщо компілюєте через g++:
g++ main.cpp -o lab1.exe -std=c++17./lab1.exeПісля запуску програма:
- Пропонує зчитати точки з файлу
points_data.txtабо згенерувати нові. - Виконує послідовний алгоритм.
- Виконує паралельний алгоритм.
- Показує час виконання і простий бенчмарк для різної кількості потоків.
Програма вміє:
- зчитувати точки з файлу;
- генерувати випадкові точки;
- за бажанням зберігати згенеровані дані у файл;
- знаходити найближчу пару точок;
- знаходити найдальшу пару точок;
- порівнювати час роботи послідовного і паралельного алгоритмів;
- будувати простий бенчмарк для різної кількості потоків.
./lab1.exeДалі у програмі:
y
./lab1.exeДалі у програмі:
n
1000
y
У цьому випадку програма згенерує 1000 точок і збереже їх у points_data.txt.
Навчальний проєкт Окілки Марти для дисципліни «Паралельні обчислення і розподілені системи».