Skip to content

OkayMarta/parallel-computing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Пошук найближчих і найдальших пар точок

Опис

Це навчальний проєкт з дисципліни «Паралельні обчислення і розподілені системи».
Програма працює з набором точок на площині та знаходить найближчу і найдальшу пару точок.
Мета проєкту - порівняти час роботи послідовного та паралельного алгоритмів і подивитися на прискорення при використанні кількох потоків.

Технології

  • C++
  • Стандартна бібліотека C++
  • std::thread для багатопотоковості
  • Консольний застосунок
  • Windows API (SetConsoleOutputCP) для коректного виводу UTF-8 у Windows

Структура проєкту

  • main.cpp - основний код програми
  • points_data.txt - файл з вхідними точками
  • lab1.exe - зібраний виконуваний файл для Windows
  • .gitignore - список файлів, які не відстежуються Git

Як запустити

1. Зібрати проєкт

Якщо компілюєте через g++:

g++ main.cpp -o lab1.exe -std=c++17

2. Запустити програму

./lab1.exe

Після запуску програма:

  1. Пропонує зчитати точки з файлу points_data.txt або згенерувати нові.
  2. Виконує послідовний алгоритм.
  3. Виконує паралельний алгоритм.
  4. Показує час виконання і простий бенчмарк для різної кількості потоків.

Функціонал

Програма вміє:

  • зчитувати точки з файлу;
  • генерувати випадкові точки;
  • за бажанням зберігати згенеровані дані у файл;
  • знаходити найближчу пару точок;
  • знаходити найдальшу пару точок;
  • порівнювати час роботи послідовного і паралельного алгоритмів;
  • будувати простий бенчмарк для різної кількості потоків.

Приклади використання

Приклад 1. Запуск із готовим файлом

./lab1.exe

Далі у програмі:

y

Приклад 2. Генерація нових даних

./lab1.exe

Далі у програмі:

n
1000
y

У цьому випадку програма згенерує 1000 точок і збереже їх у points_data.txt.

Автор

Навчальний проєкт Окілки Марти для дисципліни «Паралельні обчислення і розподілені системи».

About

C++: closest and farthest pair of points with multithreading and performance benchmarking

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages